@@ -14,6 +14,9 @@ NanodeMQTT mqtt(&uip);
1414#define GREEN_LED 5
1515#define RED_LED 6
1616
17+ #define ON LOW
18+ #define OFF HIGH
19+
1720
1821// this must be added since we're using the watchdog for low-power waiting
1922// ISR(WDT_vect) { Sleepy::watchdogEvent(); }
@@ -23,10 +26,10 @@ char topic[STRING_BUFFER];
2326char message[STRING_BUFFER];
2427
2528// Payload data structure
26- typedef struct {
27- int nodeid; // sending node ID
29+ typedef struct {
30+ int nodeid; // sending node ID
2831 char type;
29- float data;
32+ float data;
3033} Payload;
3134Payload data;
3235
@@ -35,6 +38,11 @@ Payload data;
3538void setup () {
3639 byte macaddr[6 ];
3740 NanodeUNIO unio (NANODE_MAC_DEVICE);
41+
42+ pinMode (RED_LED, OUTPUT);
43+ pinMode (GREEN_LED, OUTPUT);
44+ digitalWrite (RED_LED, OFF);
45+ digitalWrite (GREEN_LED, ON);
3846
3947 Serial.begin (57600 );
4048 Serial.println (" Initialising..." );
@@ -51,18 +59,17 @@ void setup() {
5159
5260 // FIXME: resolve using DNS instead
5361 mqtt.set_server_addr (192 , 168 , 1 , 103 );
54- Serial.println (" 1" );
5562 mqtt.connect ();
56- Serial.println (" 2" );
5763 rf12_initialize (RF_NODEID, RF12_868MHZ, RF_CHANNEL);
58- Serial.println (" 3" );
64+ mqtt.publish (" test" , " nanode booted" );
65+ digitalWrite (GREEN_LED, OFF);
5966}
6067
6168
6269void loop () {
6370
6471 uip.poll ();
65- Serial.print (" ." );
72+ // Serial.print(".");
6673
6774 if (rf12_recvDone ()) {
6875 if (rf12_crc == 0 ) {
@@ -77,32 +84,27 @@ void loop() {
7784 Serial.print (data.data );
7885 Serial.println ();
7986
80- sprintf (topic, " nanode/sensor/%d" , data.nodeid );
81- dtostrf (data.data , 4 , 2 , message);
82-
83- // Serial.print(topic);
84- // Serial.print(", ");
85- // Serial.println(message);
86-
87-
88-
89-
87+ sprintf (topic, " nanode/sensor/%d/%c" , data.nodeid , data.type );
88+ dtostrf (data.data , 10 , 8 , message);
89+
9090 if (mqtt.connected ()) {
91+ digitalWrite (GREEN_LED, OFF);
92+ digitalWrite (RED_LED, ON);
93+
9194 Serial.print (" Publishing " );
9295 Serial.print (topic);
93- Serial.print (" : " );
96+ Serial.print (" : " );
9497 Serial.println (message);
9598
9699 mqtt.publish (topic, message);
97- mqtt.publish (" Test" , " Hello World!" );
98- Serial.println (" Published." );
100+
101+ digitalWrite (RED_LED, OFF);
102+ } else {
103+ digitalWrite (RED_LED, ON);
104+ digitalWrite (GREEN_LED, ON);
99105
100- // quick flash on publish
101- digitalWrite (RED_LED, LOW);
102- delay (50 );
103- digitalWrite (RED_LED, HIGH);
106+ Serial.println (" not connected" );
104107 }
105108 }
106109 }
107110}
108-
0 commit comments