Ultrasonic Sensor+1 Relay node does not work
-
Hi,
I am trying to build a node with Ultrasonic sensor and 1 relay. I used the sample code and tried to build one. I am facing issues. The Domoticz will detect the ultrasonic sensor using the provided example code but when I merge them it gives error and does not detect. My sketch is as below:
#include <SPI.h> #include <MySensor.h> #include <NewPing.h> #define CHILD_ID_DISTANCE 1 #define CHILD_ID_RELAY 10 #define TRIGGER_PIN 6 // Arduino pin tied to trigger pin on the ultrasonic sensor. #define ECHO_PIN 5 // Arduino pin tied to echo pin on the ultrasonic sensor. #define MAX_DISTANCE 300 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm. #define RELAY_1 3 // Arduino Digital I/O pin number for first relay (second on pin+1 etc) #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; NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance. MyMessage msg(CHILD_ID_DISTANCE, V_DISTANCE); int lastDist; boolean metric = true; void setup() { gw.begin(incomingMessage, AUTO,false); // Send the sketch version information to the gateway and Controller gw.sendSketchInfo("Distance Sensor", "1.0"); // Register all sensors to gw (they will be created as child devices) gw.present(CHILD_ID_DISTANCE, S_DISTANCE); boolean metric = gw.getConfig().isMetric; gw.sendSketchInfo("Relay", "1.0"); // Register all sensors to gw (they will be created as child devices) gw.present(CHILD_ID_RELAY, S_LIGHT); // Then set relay pins in output mode pinMode(RELAY_1, OUTPUT); // Set relay to last known state (using eeprom storage) digitalWrite(RELAY_1, gw.loadState(CHILD_ID_RELAY)?RELAY_ON:RELAY_OFF); } void loop() { gw.process(); int dist = metric?sonar.ping_cm():sonar.ping_in(); Serial.print("Ping: "); Serial.print(dist); // Convert ping time to distance in cm and print result (0 = outside set distance range) Serial.println(metric?" cm":" in"); if (dist != lastDist) { gw.send(msg.set(dist)); lastDist = dist; } //gw.sleep(SLEEP_TIME); } 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(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()); } }I am unable to figure out why it is not working.
The log file from Domoticz shows the below:
2015-05-26 07:05:52.585 MySensors: Using serial port: /dev/ttyUSB0 2015-05-26 07:05:57.410 Error: MySensors: Unhandled sensor (sub-type=13), please report with log! 2015-05-26 07:05:57.429 Error: MySensors: Unhandled sensor (sub-type=13), please report with log! 2015-05-26 07:05:57.440 Error: MySensors: Unhandled sensor (sub-type=13), please report with log!and it keeps on going.
Below is the output when Node is connected to serial port.Ping: 11 cm send: 5-5-0-0 s=1,c=1,t=13,pt=2,l=2,st=ok:11 read: 5-1-0 s=10,c=0,t=3,pt=0,l=5:1.4.1 Ping: 9 cm send: 5-5-0-0 s=1,c=1,t=13,pt=2,l=2,st=ok:9 read: 5-1-0 s=10,c=0,t=3,pt=0,l=5:1.4.1 Ping: 9 cm Ping: 11 cm send: 5-5-0-0 s=1,c=1,t=13,pt=2,l=2,st=ok:11 read: 5-1-0 s=10,c=0,t=3,pt=0,l=5:1.4.1I am using Raspberry pi as gateway with Arduino Uno. Arduino Mini Pro as node.
Please help me figure out what could be the issue. Any help is really appreciated. Thanks.!:smiley:
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