Newbie Problem! Get Started with NRF24L01+
-
Don't use 0 for your node ID! (gw.begin(NULL, 0);) Choose a value beween 1 and 254.
nodeId - The unique id (1-254) for this sensor.Do not confuse this with child sensor ID
childSensorId - The unique child id you want to choose for the sensor connected to this Arduino. Range 0-254. -
Maybe this may cover it http://www.mysensors.org/download/serial_api_14
-
@korttoma : Ok. Thank you! Could you kindly explain what are the send, s, c, t, pt, l and st?
-
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;0I 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: -
How are you powering your node? Your node's radio is constantly fail to transmit (st=fail).
-
How are you powering your node? Your node's radio is constantly fail to transmit (st=fail).
-
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.
@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?
-
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;0This 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.2st 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
-
Maybe this may cover it http://www.mysensors.org/download/serial_api_14
@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
-
@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.
-
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...
-
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); } -
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.1This 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.1I 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? -
@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
-
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;1Relay 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: 1Still it doesn't turn on the light
-
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.
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