From 896326fefbd3ccf7f3550ee3cfe91c2af32f9747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Grome=C5=A1?= Date: Fri, 13 Apr 2018 20:52:50 +0200 Subject: [PATCH] Added LED signals to node examples --- examples/Node0/Node0.ino | 37 +++++++++++++++++++++++++++ examples/Node1/Node1.ino | 54 +++++++++++++++++++++++++++++++++++++++- examples/Node2/Node2.ino | 52 ++++++++++++++++++++++++++++++++++++++ examples/Node3/Node3.ino | 53 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 195 insertions(+), 1 deletion(-) diff --git a/examples/Node0/Node0.ino b/examples/Node0/Node0.ino index 93a5ac75..f8239f35 100644 --- a/examples/Node0/Node0.ino +++ b/examples/Node0/Node0.ino @@ -1,11 +1,25 @@ #include "KiteLib.h" +#define LED_START_ERROR A1 +#define LED_START_OK A0 +#define LED_RECEIVING A3 +#define LED_TRANSMITING A2 + +#define BLINK_DELAY 250 + HC05 bluetooth = Kite.ModuleA; RF69 rf = Kite.ModuleB; void setup() { Serial.begin(9600); + pinMode(LED_START_ERROR, OUTPUT); + pinMode(LED_START_OK, OUTPUT); + pinMode(LED_RECEIVING, OUTPUT); + pinMode(LED_TRANSMITING, OUTPUT); + + ledsHigh(); + bluetooth.begin(9600); Serial.println("[HC05] Port open!"); @@ -16,9 +30,14 @@ void setup() { } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } + ledsLow(); + digitalWrite(LED_START_OK, HIGH); + Serial.println("[HC05] Waiting for incoming data ... "); } @@ -27,11 +46,13 @@ void loop() { String receivedString; while(bluetooth.available() > 0) { + digitalWrite(LED_RECEIVING, HIGH); char receivedCharacter = bluetooth.read(); Serial.print("[HC05] "); Serial.print(receivedCharacter); Serial.print("\t 0x"); Serial.println(receivedCharacter, HEX); + digitalWrite(LED_RECEIVING, LOW); if(receivedCharacter != '\n') { receivedString += receivedCharacter; } else { @@ -43,6 +64,7 @@ void loop() { } if(receivedFlag) { + digitalWrite(LED_TRANSMITING, HIGH); receivedFlag = false; Packet pack("01:23:45:67:89:AB:CD:EF", receivedString.c_str()); Serial.print("[RF69] Transmitting packet ... "); @@ -53,7 +75,22 @@ void loop() { Serial.print("failed, code 0x"); Serial.println(state, HEX); } + digitalWrite(LED_TRANSMITING, LOW); Serial.println("[HC05] Waiting for incoming data ... "); } } +void ledsHigh() { + digitalWrite(LED_START_ERROR, HIGH); + digitalWrite(LED_START_OK, HIGH); + digitalWrite(LED_RECEIVING, HIGH); + digitalWrite(LED_TRANSMITING, HIGH); +} + +void ledsLow() { + digitalWrite(LED_START_ERROR, LOW); + digitalWrite(LED_START_OK, LOW); + digitalWrite(LED_RECEIVING, LOW); + digitalWrite(LED_TRANSMITING, LOW); +} + diff --git a/examples/Node1/Node1.ino b/examples/Node1/Node1.ino index ce8957ec..9c9342f1 100644 --- a/examples/Node1/Node1.ino +++ b/examples/Node1/Node1.ino @@ -1,5 +1,12 @@ #include "KiteLib.h" +#define LED_START_ERROR A1 +#define LED_START_OK A0 +#define LED_RECEIVING A3 +#define LED_TRANSMITING A2 + +#define BLINK_DELAY 250 + XBee bee = Kite.ModuleA; RF69 rf = Kite.ModuleB; @@ -8,13 +15,25 @@ Packet pack; void setup() { Serial.begin(9600); + pinMode(LED_START_ERROR, OUTPUT); + pinMode(LED_START_OK, OUTPUT); + pinMode(LED_RECEIVING, OUTPUT); + pinMode(LED_TRANSMITING, OUTPUT); + + ledsHigh(); + Serial.print("[XBee] Initializing ... "); byte state = bee.begin(9600); if(state == ERR_NONE) { Serial.println("success!"); + ledsLow(); + delay(BLINK_DELAY); + ledsHigh(); } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } @@ -22,9 +41,14 @@ void setup() { state = bee.setPanId("0123456789ABCDEF"); if(state == ERR_NONE) { Serial.println("success!"); + ledsLow(); + delay(BLINK_DELAY); + ledsHigh(); } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } @@ -32,9 +56,14 @@ void setup() { state = bee.setDestinationAddress("0013A200", "40A58A5D"); if(state == ERR_NONE) { Serial.println("success!"); + ledsLow(); + delay(BLINK_DELAY); + ledsHigh(); } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } @@ -45,16 +74,21 @@ void setup() { } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } + + ledsLow(); + digitalWrite(LED_START_OK, HIGH); } void loop() { Serial.print("[RF69] Waiting for incoming transmission ... "); byte state = rf.receive(pack); - bee.println("Hello World!"); if(state == ERR_NONE) { + digitalWrite(LED_RECEIVING, HIGH); Serial.println("success!"); char str[24]; @@ -73,8 +107,12 @@ void loop() { Serial.print("[RF69] Data:\t\t"); Serial.println(pack.data); + digitalWrite(LED_RECEIVING, LOW); + Serial.print("[XBee] Sending packet ... "); + digitalWrite(LED_TRANSMITING, HIGH); bee.println(pack.data); + digitalWrite(LED_TRANSMITING, LOW); Serial.println("done!"); } else if(state == ERR_RX_TIMEOUT) { @@ -86,3 +124,17 @@ void loop() { } } +void ledsHigh() { + digitalWrite(LED_START_ERROR, HIGH); + digitalWrite(LED_START_OK, HIGH); + digitalWrite(LED_RECEIVING, HIGH); + digitalWrite(LED_TRANSMITING, HIGH); +} + +void ledsLow() { + digitalWrite(LED_START_ERROR, LOW); + digitalWrite(LED_START_OK, LOW); + digitalWrite(LED_RECEIVING, LOW); + digitalWrite(LED_TRANSMITING, LOW); +} + diff --git a/examples/Node2/Node2.ino b/examples/Node2/Node2.ino index 81f43058..f2f0c9b6 100644 --- a/examples/Node2/Node2.ino +++ b/examples/Node2/Node2.ino @@ -1,18 +1,37 @@ #include "KiteLib.h" +#define LED_START_ERROR A1 +#define LED_START_OK A0 +#define LED_RECEIVING A3 +#define LED_TRANSMITING A2 + +#define BLINK_DELAY 250 + XBee bee = Kite.ModuleA; SX1278 lora = Kite.ModuleB; void setup() { Serial.begin(9600); + pinMode(LED_START_ERROR, OUTPUT); + pinMode(LED_START_OK, OUTPUT); + pinMode(LED_RECEIVING, OUTPUT); + pinMode(LED_TRANSMITING, OUTPUT); + + ledsHigh(); + Serial.print("[XBee] Initializing ... "); byte state = bee.begin(9600); if(state == ERR_NONE) { Serial.println("success!"); + ledsLow(); + delay(BLINK_DELAY); + ledsHigh(); } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } @@ -20,9 +39,14 @@ void setup() { state = bee.setPanId("0123456789ABCDEF"); if(state == ERR_NONE) { Serial.println("success!"); + ledsLow(); + delay(BLINK_DELAY); + ledsHigh(); } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } @@ -30,9 +54,14 @@ void setup() { state = bee.setDestinationAddress("0013A200", "40A58A5D"); if(state == ERR_NONE) { Serial.println("success!"); + ledsLow(); + delay(BLINK_DELAY); + ledsHigh(); } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } @@ -43,9 +72,14 @@ void setup() { } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } + ledsLow(); + digitalWrite(LED_START_OK, HIGH); + Serial.println("[XBee] Waiting for incoming data ... "); } @@ -54,11 +88,13 @@ void loop() { String receivedString; while(bee.available() > 0) { + digitalWrite(LED_RECEIVING, HIGH); char receivedCharacter = bee.read(); Serial.print("[XBee] "); Serial.print(receivedCharacter); Serial.print("\t 0x"); Serial.println(receivedCharacter, HEX); + digitalWrite(LED_RECEIVING, LOW); if(receivedCharacter != '\n') { receivedString += receivedCharacter; } else { @@ -70,6 +106,7 @@ void loop() { } if(receivedFlag) { + digitalWrite(LED_TRANSMITING, HIGH); receivedFlag = false; Packet pack("01:23:45:67:89:AB:CD:EF", receivedString.c_str()); Serial.print("[SX1278] Transmitting packet ... "); @@ -80,6 +117,21 @@ void loop() { Serial.print("failed, code 0x"); Serial.println(state, HEX); } + digitalWrite(LED_TRANSMITING, LOW); } } +void ledsHigh() { + digitalWrite(LED_START_ERROR, HIGH); + digitalWrite(LED_START_OK, HIGH); + digitalWrite(LED_RECEIVING, HIGH); + digitalWrite(LED_TRANSMITING, HIGH); +} + +void ledsLow() { + digitalWrite(LED_START_ERROR, LOW); + digitalWrite(LED_START_OK, LOW); + digitalWrite(LED_RECEIVING, LOW); + digitalWrite(LED_TRANSMITING, LOW); +} + diff --git a/examples/Node3/Node3.ino b/examples/Node3/Node3.ino index cc20dd33..3a48b10c 100644 --- a/examples/Node3/Node3.ino +++ b/examples/Node3/Node3.ino @@ -1,5 +1,12 @@ #include "KiteLib.h" +#define LED_START_ERROR A1 +#define LED_START_OK A0 +#define LED_RECEIVING A3 +#define LED_TRANSMITING A2 + +#define BLINK_DELAY 250 + ESP8266 wifi = Kite.ModuleA; SX1278 lora = Kite.ModuleB; @@ -8,13 +15,25 @@ Packet pack; void setup() { Serial.begin(9600); + pinMode(LED_START_ERROR, OUTPUT); + pinMode(LED_START_OK, OUTPUT); + pinMode(LED_RECEIVING, OUTPUT); + pinMode(LED_TRANSMITING, OUTPUT); + + ledsHigh(); + Serial.print("[SX1278] Initializing ... "); byte state = lora.begin(); if(state == ERR_NONE) { Serial.println("success!"); + ledsLow(); + delay(BLINK_DELAY); + ledsHigh(); } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } @@ -22,9 +41,14 @@ void setup() { state = wifi.begin(9600); if(state == ERR_NONE) { Serial.println("success!"); + ledsLow(); + delay(BLINK_DELAY); + ledsHigh(); } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } @@ -32,9 +56,14 @@ void setup() { state = wifi.join("SSID", "PASSWORD"); if(state == ERR_NONE) { Serial.println("success!"); + ledsLow(); + delay(BLINK_DELAY); + ledsHigh(); } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } @@ -45,8 +74,13 @@ void setup() { } else { Serial.print("failed, code 0x"); Serial.println(state, HEX); + ledsLow(); + digitalWrite(LED_START_ERROR, HIGH); while(true); } + + ledsLow(); + digitalWrite(LED_START_OK, HIGH); } void loop() { @@ -54,6 +88,7 @@ void loop() { byte state = lora.receive(pack); if(state == ERR_NONE) { + digitalWrite(LED_RECEIVING, HIGH); Serial.println("success!"); char str[24]; @@ -80,7 +115,10 @@ void loop() { Serial.print(lora.lastPacketRSSI); Serial.println(" dBm"); + digitalWrite(LED_RECEIVING, LOW); + Serial.print("[ESP8266] Publishing MQTT message ... "); + digitalWrite(LED_TRANSMITING, HIGH); byte state = wifi.MqttPublish("Kite", String(pack.data)); if(state == ERR_NONE) { Serial.println("success!"); @@ -88,6 +126,7 @@ void loop() { Serial.print("failed, code 0x"); Serial.println(state, HEX); } + digitalWrite(LED_TRANSMITING, LOW); } else if(state == ERR_RX_TIMEOUT) { Serial.println("timeout!"); @@ -98,3 +137,17 @@ void loop() { } } +void ledsHigh() { + digitalWrite(LED_START_ERROR, HIGH); + digitalWrite(LED_START_OK, HIGH); + digitalWrite(LED_RECEIVING, HIGH); + digitalWrite(LED_TRANSMITING, HIGH); +} + +void ledsLow() { + digitalWrite(LED_START_ERROR, LOW); + digitalWrite(LED_START_OK, LOW); + digitalWrite(LED_RECEIVING, LOW); + digitalWrite(LED_TRANSMITING, LOW); +} +