Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. Sending sensor data from arduino pro mini via NRF24L01+ to raspberry pi 4

Sending sensor data from arduino pro mini via NRF24L01+ to raspberry pi 4

Scheduled Pinned Locked Moved Troubleshooting
5 Posts 3 Posters 79 Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • LeonL Offline
    LeonL Offline
    Leon
    wrote on last edited by
    #1

    Hello,
    for a project I need to send sensor data to a gateway.

    For this I followed the following tutorial:
    https://www.mysensors.org/build/connect_radio
    https://www.mysensors.org/build/temp
    https://www.mysensors.org/build/raspberry

    The output of my Arduino looks like this:

    16 MCO:BGN:INIT NODE,CP=RNNNA---,FQ=8,REL=255,VER=2.3.2
    28 MCO:BGN:BFR
    51 TSM:INIT
    53 TSF:WUR:MS=0
    61 TSM:INIT:TSP OK
    61 TSM:FPAR
    65 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    2074 !TSM:FPAR:NO REPLY
    2076 TSM:FPAR
    2078 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    4087 !TSM:FPAR:NO REPLY
    4089 TSM:FPAR
    4091 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    6103 !TSM:FPAR:NO REPLY
    6105 TSM:FPAR
    6107 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    8116 !TSM:FPAR:FAIL
    8118 TSM:FAIL:CNT=1
    8120 TSM:FAIL:DIS
    8122 TSF:TDI:TSL
    18124 TSM:FAIL:RE-INIT
    18126 TSM:INIT
    18132 TSM:INIT:TSP OK
    18135 TSM:FPAR
    18139 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    20148 !TSM:FPAR:NO REPLY
    

    The Raspberry has the following output (in debug mode):

    pi@raspberrypi:~/MySensors $ sudo ./bin/mysgw 
    Mar 04 13:25:39 INFO  Starting gateway...
    Mar 04 13:25:39 INFO  Protocol version - 2.4.0-alpha
    Mar 04 13:25:39 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,FQ=NA,REL=0,VER=2.4.0-alpha
    Mar 04 13:25:39 DEBUG TSF:LRT:OK
    Mar 04 13:25:39 DEBUG TSM:INIT
    Mar 04 13:25:39 DEBUG TSF:WUR:MS=0
    Mar 04 13:25:39 DEBUG TSM:INIT:TSP OK
    Mar 04 13:25:39 DEBUG TSM:INIT:GW MODE
    Mar 04 13:25:39 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
    Mar 04 13:25:39 DEBUG MCO:REG:NOT NEEDED
    Mar 04 13:25:39 DEBUG Listening for connections on pE��:5003
    Mar 04 13:25:39 DEBUG MCO:BGN:STP
    Mar 04 13:25:39 DEBUG MCO:BGN:INIT OK,TSP=1
    Mar 04 13:25:39 DEBUG TSM:READY:NWD REQ
    Mar 04 13:25:40 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
    

    Can someone maybe tell me where my error is and how I can read the sensor data?

    E 1 Reply Last reply
    1
    • H Offline
      H Offline
      haloway13
      wrote on last edited by haloway13
      #2

      I am in the same boat as you. I am trying to get temperature and humidity interfaced into OH3. I have gotten slightly farther than you using these links:

      Parent Link: https://www.smarthomeblog.net/diy-home-automation-sensors/

      Referenced steps:

      https://www.smarthomeblog.net/mqtt-openhab/
      https://www.smarthomeblog.net/diy-home-automation-sensors-gateway/ (They mention that 98% of the time its a wiring issue. Sometimes its the NRLF24L01)
      https://www.smarthomeblog.net/diy-home-automation-sensors-first-node/

      LeonL 1 Reply Last reply
      0
      • LeonL Leon

        Hello,
        for a project I need to send sensor data to a gateway.

        For this I followed the following tutorial:
        https://www.mysensors.org/build/connect_radio
        https://www.mysensors.org/build/temp
        https://www.mysensors.org/build/raspberry

        The output of my Arduino looks like this:

        16 MCO:BGN:INIT NODE,CP=RNNNA---,FQ=8,REL=255,VER=2.3.2
        28 MCO:BGN:BFR
        51 TSM:INIT
        53 TSF:WUR:MS=0
        61 TSM:INIT:TSP OK
        61 TSM:FPAR
        65 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
        2074 !TSM:FPAR:NO REPLY
        2076 TSM:FPAR
        2078 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
        4087 !TSM:FPAR:NO REPLY
        4089 TSM:FPAR
        4091 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
        6103 !TSM:FPAR:NO REPLY
        6105 TSM:FPAR
        6107 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
        8116 !TSM:FPAR:FAIL
        8118 TSM:FAIL:CNT=1
        8120 TSM:FAIL:DIS
        8122 TSF:TDI:TSL
        18124 TSM:FAIL:RE-INIT
        18126 TSM:INIT
        18132 TSM:INIT:TSP OK
        18135 TSM:FPAR
        18139 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
        20148 !TSM:FPAR:NO REPLY
        

        The Raspberry has the following output (in debug mode):

        pi@raspberrypi:~/MySensors $ sudo ./bin/mysgw 
        Mar 04 13:25:39 INFO  Starting gateway...
        Mar 04 13:25:39 INFO  Protocol version - 2.4.0-alpha
        Mar 04 13:25:39 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,FQ=NA,REL=0,VER=2.4.0-alpha
        Mar 04 13:25:39 DEBUG TSF:LRT:OK
        Mar 04 13:25:39 DEBUG TSM:INIT
        Mar 04 13:25:39 DEBUG TSF:WUR:MS=0
        Mar 04 13:25:39 DEBUG TSM:INIT:TSP OK
        Mar 04 13:25:39 DEBUG TSM:INIT:GW MODE
        Mar 04 13:25:39 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
        Mar 04 13:25:39 DEBUG MCO:REG:NOT NEEDED
        Mar 04 13:25:39 DEBUG Listening for connections on pE��:5003
        Mar 04 13:25:39 DEBUG MCO:BGN:STP
        Mar 04 13:25:39 DEBUG MCO:BGN:INIT OK,TSP=1
        Mar 04 13:25:39 DEBUG TSM:READY:NWD REQ
        Mar 04 13:25:40 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
        

        Can someone maybe tell me where my error is and how I can read the sensor data?

        E Offline
        E Offline
        evb
        wrote on last edited by
        #3

        @Leon your node is sending a request to find a parent, in this case your gateway, but your gateway is not responding.
        Without more information it will be impossible to help you further...

        The sketch of the arduino can help, the config file of the Pi gateway, activating the log option in the configuration, ...

        On the hardware side, verify your connections to be sure, did you use the capacitor next to the nrf24?, ...

        LeonL 1 Reply Last reply
        0
        • E evb

          @Leon your node is sending a request to find a parent, in this case your gateway, but your gateway is not responding.
          Without more information it will be impossible to help you further...

          The sketch of the arduino can help, the config file of the Pi gateway, activating the log option in the configuration, ...

          On the hardware side, verify your connections to be sure, did you use the capacitor next to the nrf24?, ...

          LeonL Offline
          LeonL Offline
          Leon
          wrote on last edited by
          #4

          @evb
          Hey, thanks for the quick reply.
          I have checked the wiring several times for correctness.
          Also the config was set up according to the instructions.

          Meanwhile I have found an alternative solution.
          Thanks a lot for your help!

          1 Reply Last reply
          0
          • H haloway13

            I am in the same boat as you. I am trying to get temperature and humidity interfaced into OH3. I have gotten slightly farther than you using these links:

            Parent Link: https://www.smarthomeblog.net/diy-home-automation-sensors/

            Referenced steps:

            https://www.smarthomeblog.net/mqtt-openhab/
            https://www.smarthomeblog.net/diy-home-automation-sensors-gateway/ (They mention that 98% of the time its a wiring issue. Sometimes its the NRLF24L01)
            https://www.smarthomeblog.net/diy-home-automation-sensors-first-node/

            LeonL Offline
            LeonL Offline
            Leon
            wrote on last edited by
            #5

            @haloway13
            Hey, as I said below, I have found a solution to the problem.

            I have made use of two other tutorials.
            (Attention German language!)
            https://draeger-it.blog/arduino-lektion-48-temperatursensor-ds18b20/
            https://tutorials-raspberrypi.de/funkkommunikation-zwischen-raspberry-pis-und-arduinos-2-4-ghz/

            If you look at the wiring, I can send you my code so far:

            #include <SPI.h>
            #include "printf.h"
            #include "RF24.h"
            #include <OneWire.h>
            #include <DallasTemperature.h>
            
            #define ONE_WIRE_BUS 2  //Sensor DS18B20 at digital pin 2
            
            RF24 radio(7, 8); // using pin 7 for the CE pin, and pin 8 for the CSN pin
            OneWire oneWire(ONE_WIRE_BUS);
            
            DallasTemperature sensors(&oneWire); // Transfer of the OnewWire reference to communicate with the sensor.
            
            uint8_t address[][6] = {"1Node", "2Node"}; // Let these addresses be used for the pair
            bool radioNumber = 1; //to use different addresses on a pair of radios, we need a variable to uniquely identify which address this radio will use to transmit
            int sensorCount;
            
            float payload = 0.0; 
            int ID = 0; 
            float temperature = 0.0;
            float battery = 0.0;
            
            void setup() {
              Serial.begin(115200);
              while (!Serial) {
                // some boards need to wait to ensure access to serial over USB
              }
              
              // initialize the transceiver on the SPI bus
              if (!radio.begin()) {
                Serial.println(F("radio hardware is not responding!!"));
                while (1) {} // hold in infinite loop
              }
            
              // Set the PA Level low to try preventing power supply related problems
              // because these examples are likely run with nodes in close proximity to
              // each other.
              radio.setPALevel(RF24_PA_LOW);  // RF24_PA_MAX is default.
            
              sensors.begin(); // Start communication with the sensor
              sensorCount = sensors.getDS18Count(); // Reading the number of connected
            
              // save on transmission time by setting the radio to only transmit the
              // number of bytes we need to transmit a float
              radio.setPayloadSize(sizeof(payload)); // float datatype occupies 4 bytes
            
              // set the TX address of the RX node into the TX pipe
              radio.openWritingPipe(address[radioNumber]);     // always uses pipe 0
            
              // set the RX address of the TX node into a RX pipe
              radio.openReadingPipe(1, address[!radioNumber]); // using pipe 1
              
              radio.stopListening();  // put radio in TX mode
            
            } // setup
            
            void loop() {
            
              if(sensorCount ==0){
                 Serial.println("No temperature sensors found");
                 Serial.println("Please check your circuit!");
               }
              
              sensors.requestTemperatures();
              
                // This device is a TX node
                payload = sensors.getTempCByIndex(0);
                
                unsigned long start_timer = micros();                    // start the timer
                bool report = radio.write(&payload, sizeof(float));      // transmit & save the report
                unsigned long end_timer = micros();                      // end the timer
            
                if (report) {
                  Serial.print(F("Transmission successful! "));          // payload was delivered
                  Serial.print(F("Time to transmit = "));
                  Serial.print(end_timer - start_timer);                 // print the timer result
                  Serial.print(F(" us. Sent: "));
                  Serial.println(payload);                               // print payload sent
                } else {
                  Serial.println(F("Transmission failed or timed out")); // payload was not delivered
                }
            
                // to make this example readable in the serial monitor
                delay(1000);  // slow transmissions down by 1 second
            
            } // loop
            
            1 Reply Last reply
            0
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            15

            Online

            11.7k

            Users

            11.2k

            Topics

            113.1k

            Posts


            Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • MySensors
            • OpenHardware.io
            • Categories
            • Recent
            • Tags
            • Popular