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. Development
  3. Newbie Problem! Get Started with NRF24L01+

Newbie Problem! Get Started with NRF24L01+

Scheduled Pinned Locked Moved Development
55 Posts 9 Posters 26.9k Views 2 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.
  • F Offline
    F Offline
    fakeJake
    wrote on last edited by fakeJake
    #18

    The inclusion button is used to detect the connecting modules, yes?

    This is the output I get when I press the inclusion button on the serial gateway

    0;0;3;0;14;Gateway startup complete.
    0;0;3;0;9;Inclusion started by button.
    0;0;3;0;5;1
    0;0;3;0;5;0
    

    I have another NRF module with ds18b20 connected. Can you help me on how I can get the temp sensor to connect to the serial gateway? I c

    I used the code here and changed the gw.begin() to gw.begin(NULL, 1)

    sensor started, id 1
    send: 1-1-0-0 s=255,c=0,t=17,pt=0,l=5,st=fail:1.4.1
    send: 1-1-0-0 s=255,c=3,t=6,pt=1,l=1,st=ok:0
    send: 1-1-0-0 s=255,c=3,t=11,pt=0,l=18,st=fail:Temperature Sensor
    send: 1-1-0-0 s=255,c=3,t=12,pt=0,l=3,st=fail:1.0
    send: 1-1-0-0 s=0,c=0,t=6,pt=0,l=5,st=fail:1.4.1
    send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:29.6
    send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:29.7
    send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:29.6
    send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:29.7
    send: 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,st=fail:
    send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:29.6
    send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:29.8
    send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:29.7
    send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:29.6
    send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:29.7
    send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:29.6
    send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:29.7
    send: 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,st=fail:
    
    1 Reply Last reply
    0
    • A Offline
      A Offline
      andriej
      wrote on last edited by
      #19
      This post is deleted!
      1 Reply Last reply
      0
      • R Offline
        R Offline
        rvendrame
        Hero Member
        wrote on last edited by
        #20

        How are you powering your node? Your node's radio is constantly fail to transmit (st=fail).

        Home Assistant / Vera Plus UI7
        ESP8266 GW + mySensors 2.3.2
        Alexa / Google Home

        H 1 Reply Last reply
        0
        • R rvendrame

          How are you powering your node? Your node's radio is constantly fail to transmit (st=fail).

          H Offline
          H Offline
          hek
          Admin
          wrote on last edited by
          #21

          How are you powering your node? Your node's radio is constantly fail to transmit (st=fail).

          It's actually the gateway having problems transmitting acks back to node.

          F 1 Reply Last reply
          0
          • H hek

            How are you powering your node? Your node's radio is constantly fail to transmit (st=fail).

            It's actually the gateway having problems transmitting acks back to node.

            F Offline
            F Offline
            fakeJake
            wrote on last edited by
            #22

            @hek said:

            How are you powering your node? Your node's radio is constantly fail to transmit (st=fail).

            It's actually the gateway having problems transmitting acks back to node.

            I'm powering the nrf modules from same 3.3V supply since I haven't bought a regulator yet. I'll test it again later. I'll be going out to buy them now.

            Just to give me a heads up. What should the serial gateway get after i press the inclusion button?

            1 Reply Last reply
            0
            • F Offline
              F Offline
              fakeJake
              wrote on last edited by fakeJake
              #23

              Sorry for the late reply

              Each modules are now supplied with 5V and 3.3V.

              This is the serial gateway output:

              0;0;3;0;14;Gateway startup complete.
              0;0;3;0;9;read: 1-1-0 s=0,c=1,t=0,pt=7,l=5:30.2
              1;0;1;0;0;30.2
              0;0;3;0;9;Inclusion started by button.
              0;0;3;0;5;1
              0;0;3;0;5;0
              

              This is the temp output:

              sensor started, id 1
              send: 1-1-0-0 s=255,c=0,t=17,pt=0,l=5,st=fail:1.4.1
              send: 1-1-0-0 s=255,c=3,t=6,pt=1,l=1,st=ok:0
              send: 1-1-0-0 s=255,c=3,t=11,pt=0,l=18,st=fail:Temperature Sensor
              send: 1-1-0-0 s=255,c=3,t=12,pt=0,l=3,st=fail:1.0
              send: 1-1-0-0 s=0,c=0,t=6,pt=0,l=5,st=fail:1.4.1
              send: 1-1-0-0 s=0,c=1,t=0,pt=7,l=5,st=fail:30.2
              

              st keeps on failing. I checked the nrf supply and it ranges from 3.1v to 3.3 v. Is this bad? I'm using spx2815 since it's the only thing available to me. I placed 10uF capacitor in the 5v input and 3.3v output to ground

              1 Reply Last reply
              0
              • R rvendrame

                Maybe this may cover it http://www.mysensors.org/download/serial_api_14

                F Offline
                F Offline
                fakeJake
                wrote on last edited by
                #24

                @rvendrame said:

                Maybe this may cover it http://www.mysensors.org/download/serial_api_14

                It only explains the "0;0;3;0;14;" but not the "s=255,c=3,t=11,pt=0,l=18,st=fail:Temperature Sensor" that it sends or reads

                1 Reply Last reply
                0
                • R Offline
                  R Offline
                  rvendrame
                  Hero Member
                  wrote on last edited by
                  #25

                  @fakeJake , are the node far from gateway, or any obstacle (such as a wall) in between? Another source of interference is for example a microwave.

                  Home Assistant / Vera Plus UI7
                  ESP8266 GW + mySensors 2.3.2
                  Alexa / Google Home

                  F 1 Reply Last reply
                  0
                  • R rvendrame

                    @fakeJake , are the node far from gateway, or any obstacle (such as a wall) in between? Another source of interference is for example a microwave.

                    F Offline
                    F Offline
                    fakeJake
                    wrote on last edited by
                    #26

                    @rvendrame said:

                    @fakeJake , are the node far from gateway, or any obstacle (such as a wall) in between? Another source of interference is for example a microwave.

                    They are just 6 inches apart :worried:

                    1 Reply Last reply
                    0
                    • R Offline
                      R Offline
                      rvendrame
                      Hero Member
                      wrote on last edited by
                      #27

                      Some people reported trouble with cheap fake radios. If you have spares nRF try replacing one of them or both.

                      You mentioned a flotation (3.1 to 3.3) in radio VCC, this can also be a reason, as these nRF are very sensible to power variations.

                      Post your sketches too, just incase...

                      Home Assistant / Vera Plus UI7
                      ESP8266 GW + mySensors 2.3.2
                      Alexa / Google Home

                      1 Reply Last reply
                      0
                      • F Offline
                        F Offline
                        fakeJake
                        wrote on last edited by
                        #28

                        I'm using the DallasTemperatureSensor.ino on MySensors library. I just change the gw.begin(); to gw.begin(NULL, 1);

                        // Example sketch showing how to send in OneWire temperature readings
                        #include <MySensor.h>  
                        #include <SPI.h>
                        #include <DallasTemperature.h>
                        #include <OneWire.h>
                        
                        #define ONE_WIRE_BUS 3 // Pin where dallase sensor is connected 
                        #define MAX_ATTACHED_DS18B20 16
                        unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
                        OneWire oneWire(ONE_WIRE_BUS);
                        DallasTemperature sensors(&oneWire);
                        MySensor gw;
                        float lastTemperature[MAX_ATTACHED_DS18B20];
                        int numSensors=0;
                        boolean receivedConfig = false;
                        boolean metric = true; 
                        // Initialize temperature message
                        MyMessage msg(0,V_TEMP);
                        
                        void setup()  
                        { 
                          // Startup OneWire 
                          sensors.begin();
                        
                          // Startup and initialize MySensors library. Set callback for incoming messages. 
                          gw.begin(NULL,1); 
                        
                          // Send the sketch version information to the gateway and Controller
                          gw.sendSketchInfo("Temperature Sensor", "1.0");
                        
                          // Fetch the number of attached temperature sensors  
                          numSensors = sensors.getDeviceCount();
                        
                          // Present all sensors to controller
                          for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {   
                             gw.present(i, S_TEMP);
                          }
                        }
                        
                        
                        void loop()     
                        {     
                          // Process incoming messages (like config from server)
                          gw.process(); 
                        
                          // Fetch temperatures from Dallas sensors
                          sensors.requestTemperatures(); 
                        
                          // Read temperatures and send them to controller 
                          for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {
                         
                            // Fetch and round temperature to one decimal
                            float temperature = static_cast<float>(static_cast<int>((gw.getConfig().isMetric?sensors.getTempCByIndex(i):sensors.getTempFByIndex(i)) * 10.)) / 10.;
                         
                            // Only send data if temperature has changed and no error
                            if (lastTemperature[i] != temperature && temperature != -127.00) {
                         
                              // Send in the new temperature
                              gw.send(msg.setSensor(i).set(temperature,1));
                              lastTemperature[i]=temperature;
                            }
                          }
                          gw.sleep(SLEEP_TIME);
                        }
                        
                        1 Reply Last reply
                        0
                        • F Offline
                          F Offline
                          fakeJake
                          wrote on last edited by
                          #29

                          Good news! The gateway is now working :)
                          I changed the dallas temperature to relay actuator and, yes, it's now working!
                          Bad news is I still don't know what went wrong with my temperature sensor.
                          I'll investigate on it soon.

                          This is the gateway output:

                          0;0;3;0;14;Gateway startup complete.
                          0;0;3;0;9;read: 2-2-0 s=255,c=0,t=18,pt=0,l=5:1.4.1
                          2;255;0;0;18;1.4.1
                          0;0;3;0;9;read: 2-2-0 s=255,c=3,t=6,pt=1,l=1:0
                          2;255;3;0;6;0
                          0;0;3;0;9;read: 2-2-0 s=255,c=3,t=11,pt=0,l=5:Relay
                          2;255;3;0;11;Relay
                          0;0;3;0;9;read: 2-2-0 s=255,c=3,t=12,pt=0,l=3:1.0
                          2;255;3;0;12;1.0
                          0;0;3;0;9;read: 2-2-0 s=1,c=0,t=3,pt=0,l=5:1.4.1
                          2;1;0;0;3;1.4.1
                          

                          This is the relay output:

                          repeater started, id 2
                          send: 2-2-0-0 s=255,c=0,t=18,pt=0,l=5,st=ok:1.4.1
                          send: 2-2-0-0 s=255,c=3,t=6,pt=1,l=1,st=ok:0
                          send: 2-2-0-0 s=255,c=3,t=11,pt=0,l=5,st=ok:Relay
                          send: 2-2-0-0 s=255,c=3,t=12,pt=0,l=3,st=ok:1.0
                          send: 2-2-0-0 s=1,c=0,t=3,pt=0,l=5,st=ok:1.4.1
                          

                          I just need to test it.
                          Since I'll be using a gsm to control the relay. Can you help me on what to send to the relay to turn it on/off?

                          1 Reply Last reply
                          0
                          • R Offline
                            R Offline
                            rvendrame
                            Hero Member
                            wrote on last edited by
                            #30

                            @fakeJake , I' m glad it worked with relay sketch.

                            Regarding the temperature, try to move the sensor to other arduino pin. Pin 2 & 3 are used by interrupts and may not play nice with gw.sleep depending on the lib used.

                            To send a message to the relay , you need a controller connected to the GW, either via USB or ethernet. You can also simulate it by entering the message on the Serial monitor.

                            The protocol is described here http://www.mysensors.org/download/serial_api_14

                            Home Assistant / Vera Plus UI7
                            ESP8266 GW + mySensors 2.3.2
                            Alexa / Google Home

                            1 Reply Last reply
                            0
                            • F Offline
                              F Offline
                              fakeJake
                              wrote on last edited by fakeJake
                              #31

                              I tried entering message on the serial monitor of the gateway but still no luck.
                              This is the closest thing that I did to tell the relay to turn the light on.

                              Gateway output after I enter "2;0;1;1;2;1;" to the Serial monitor:

                              0;0;3;0;14;Gateway startup complete.
                              0;0;3;0;9;read: 2-2-0 s=255,c=0,t=17,pt=0,l=5:1.4.1
                              2;255;0;0;17;1.4.1
                              0;0;3;0;9;read: 2-2-0 s=255,c=3,t=6,pt=1,l=1:0
                              2;255;3;0;6;0
                              0;0;3;0;9;read: 2-2-0 s=255,c=3,t=11,pt=0,l=5:Relay
                              2;255;3;0;11;Relay
                              0;0;3;0;9;read: 2-2-0 s=255,c=3,t=12,pt=0,l=3:1.0
                              2;255;3;0;12;1.0
                              0;0;3;0;9;read: 2-2-0 s=1,c=0,t=3,pt=0,l=5:1.4.1
                              2;1;0;0;3;1.4.1
                              0;0;3;0;9;send: 0-0-2-2 s=0,c=1,t=2,pt=0,l=1,st=ok:1
                              0;0;3;0;9;read: 2-2-0 s=0,c=1,t=2,pt=0,l=1:1
                              2;0;1;1;2;1
                              

                              Relay output after "2;0;1;1;2;1;" :

                              sensor started, id 2
                              send: 2-2-0-0 s=255,c=0,t=17,pt=0,l=5,st=ok:1.4.1
                              send: 2-2-0-0 s=255,c=3,t=6,pt=1,l=1,st=ok:0
                              send: 2-2-0-0 s=255,c=3,t=11,pt=0,l=5,st=ok:Relay
                              send: 2-2-0-0 s=255,c=3,t=12,pt=0,l=3,st=ok:1.0
                              send: 2-2-0-0 s=1,c=0,t=3,pt=0,l=5,st=ok:1.4.1
                              read: 0-0-2 s=0,c=1,t=2,pt=0,l=1:1
                              send: 2-2-0-0 s=0,c=1,t=2,pt=0,l=1,st=ok:1
                              Incoming change for sensor:0, New status: 1
                              

                              Still it doesn't turn on the light

                              1 Reply Last reply
                              0
                              • R Offline
                                R Offline
                                rvendrame
                                Hero Member
                                wrote on last edited by
                                #32

                                Maybe you can you connect the node also in a USB port, and open a serial monitor for it? You would see if it is receiving the message correctly.

                                Home Assistant / Vera Plus UI7
                                ESP8266 GW + mySensors 2.3.2
                                Alexa / Google Home

                                F 1 Reply Last reply
                                0
                                • R rvendrame

                                  Maybe you can you connect the node also in a USB port, and open a serial monitor for it? You would see if it is receiving the message correctly.

                                  F Offline
                                  F Offline
                                  fakeJake
                                  wrote on last edited by
                                  #33

                                  @rvendrame Sorry I forgot to include that, I edited the post

                                  1 Reply Last reply
                                  0
                                  • F Offline
                                    F Offline
                                    fakeJake
                                    wrote on last edited by fakeJake
                                    #34

                                    It still doesn't open the light even if I change it to "2;255;1;1;2;1;"
                                    I checked the relay using relay.ino from an instructable controlling ac light with relay and it's working.

                                    1 Reply Last reply
                                    0
                                    • R Offline
                                      R Offline
                                      rvendrame
                                      Hero Member
                                      wrote on last edited by
                                      #35

                                      Can we see your sensor's sketch?

                                      Home Assistant / Vera Plus UI7
                                      ESP8266 GW + mySensors 2.3.2
                                      Alexa / Google Home

                                      1 Reply Last reply
                                      0
                                      • F Offline
                                        F Offline
                                        fakeJake
                                        wrote on last edited by fakeJake
                                        #36

                                        I just changed the gw.begin();

                                        // Example sketch showing how to control physical relays. 
                                        // This example will remember relay state even after power failure.
                                        
                                        #include <MySensor.h>
                                        #include <SPI.h>
                                        
                                        #define RELAY_1  3  // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
                                        #define NUMBER_OF_RELAYS 1 // Total number of attached relays
                                        #define RELAY_ON 1  // GPIO value to write to turn on attached relay
                                        #define RELAY_OFF 0 // GPIO value to write to turn off attached relay
                                        
                                        MySensor gw;
                                        
                                        void setup()  
                                        {   
                                          // Initialize library and add callback for incoming messages
                                          gw.begin(incomingMessage, 2);
                                          // Send the sketch version information to the gateway and Controller
                                          gw.sendSketchInfo("Relay", "1.0");
                                        
                                          // Fetch relay status
                                          for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS;sensor++, pin++) {
                                            // Register all sensors to gw (they will be created as child devices)
                                            gw.present(sensor, S_LIGHT);
                                            // Then set relay pins in output mode
                                            pinMode(pin, OUTPUT);   
                                            // Set relay to last known state (using eeprom storage) 
                                            digitalWrite(pin, gw.loadState(sensor)?RELAY_ON:RELAY_OFF);
                                          }
                                        }
                                        
                                        
                                        void loop() 
                                        {
                                          // Alway process incoming messages whenever possible
                                          gw.process();
                                        }
                                        
                                        void incomingMessage(const MyMessage &message) {
                                          // We only expect one type of message from controller. But we better check anyway.
                                          if (message.type==V_LIGHT) {
                                             // Change relay state
                                             digitalWrite(message.sensor-1+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF);
                                             // Store state in eeprom
                                             gw.saveState(message.sensor, message.getBool());
                                             // Write some debug info
                                             Serial.print("Incoming change for sensor:");
                                             Serial.print(message.sensor);
                                             Serial.print(", New status: ");
                                             Serial.println(message.getBool());
                                           } 
                                        }
                                        
                                        1 Reply Last reply
                                        0
                                        • R Offline
                                          R Offline
                                          rvendrame
                                          Hero Member
                                          wrote on last edited by
                                          #37

                                          @fakeJake said:

                                          > Incoming change for sensor:0
                                          

                                          Means your are asking to activate relay 'zero'.

                                          digitalWrite(message.sensor-1+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF);
                                          

                                          So digital pin will be 0 - 1 + RELAY_1 = 0 - 1 + 3 = 2

                                          Conclusion: Try activating relay 1 instead 0. ;-)

                                          Home Assistant / Vera Plus UI7
                                          ESP8266 GW + mySensors 2.3.2
                                          Alexa / Google Home

                                          F 1 Reply Last reply
                                          1

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          15

                                          Online

                                          12.0k

                                          Users

                                          11.2k

                                          Topics

                                          113.4k

                                          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