Added Arduino codes for 4-node chain

pull/1/head
Jan Gromeš 2018-03-09 20:15:35 +01:00
rodzic a12d8472f5
commit 9e5655b028
4 zmienionych plików z 235 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,52 @@
#include "KiteLib.h"
HC05 bluetooth = Kite.ModuleA;
SX1278 lora = Kite.ModuleB;
void setup() {
Serial.begin(9600);
bluetooth.begin(9600);
Serial.println("[HC05] Port open!");
Serial.print("[SX1278] Initializing ... ");
byte state = lora.begin();
if(state == ERR_NONE) {
Serial.println("success!");
} else {
Serial.print("failed, code 0x");
Serial.println(state, HEX);
while(true);
}
}
void loop() {
bool receivedFlag = false;
String receivedString;
Serial.println("[HC05] Waiting for incoming data ...");
while(bluetooth.available() > 0) {
char receivedCharacter = bluetooth.read();
receivedString += receivedCharacter;
if(receivedCharacter == '\n') {
Serial.print("[HC05] Received string: ");
Serial.println(receivedString);
receivedFlag = true;
break;
}
}
if(receivedFlag) {
receivedFlag = false;
Packet pack("01:23:45:67:89:AB:CD:EF", receivedString.c_str());
Serial.print("[SX1278] Transmitting packet ... ");
byte state = lora.transmit(pack);
if(state == ERR_NONE) {
Serial.println("success!");
} else {
Serial.print("failed, code 0x");
Serial.println(state, HEX);
}
}
}

Wyświetl plik

@ -0,0 +1,70 @@
#include "KiteLib.h"
SX1278 lora = Kite.ModuleA;
XBee bee = Kite.ModuleB;
Packet pack;
void setup() {
Serial.begin(9600);
Serial.print("[SX1278] Initializing ... ");
byte state = lora.begin();
if(state == ERR_NONE) {
Serial.println("success!");
} else {
Serial.print("failed, code 0x");
Serial.println(state, HEX);
while(true);
}
bee.begin(9600);
Serial.println("[XBee] Port open!");
}
void loop() {
Serial.print("[SX1278] Waiting for incoming transmission ... ");
byte state = lora.receive(pack);
if(state == ERR_NONE) {
Serial.println("success!");
char str[24];
pack.getSourceStr(str);
Serial.print("[SX1278] Source:\t\t");
Serial.println(str);
pack.getDestinationStr(str);
Serial.print("[SX1278] Destination:\t");
Serial.println(str);
Serial.print("[SX1278] Length:\t\t");
Serial.println(pack.length);
Serial.print("[SX1278] Data:\t\t");
Serial.println(pack.data);
Serial.print("[SX1278] Datarate:\t");
Serial.print(lora.dataRate);
Serial.println(" bps");
Serial.print("[SX1278] RSSI:\t\t");
Serial.print(lora.lastPacketRSSI);
Serial.println(" dBm");
Serial.print("[XBee] Sending packet ...");
state = bee.send(0x0013A200, 0x40A58A62, pack.data);
if(state == ERR_NONE) {
Serial.println("success!");
}
} else if(state == ERR_RX_TIMEOUT) {
Serial.println("timeout!");
} else if(state == ERR_CRC_MISMATCH) {
Serial.println("CRC error!");
}
}

Wyświetl plik

@ -0,0 +1,28 @@
#include "KiteLib.h"
XBee bee = Kite.ModuleA;
RF69 rf = Kite.ModuleB;
Packet pack;
void setup() {
Serial.begin(9600);
bee.begin(9600);
Serial.println("[XBee] Port open!");
Serial.print("[RF69] Initializing ... ");
byte state = rf.begin();
if(state == ERR_NONE) {
Serial.println("success!");
} else {
Serial.print("failed, code 0x");
Serial.println(state, HEX);
while(true);
}
}
void loop() {
}

Wyświetl plik

@ -0,0 +1,85 @@
#include "KiteLib.h"
RF69 rf = Kite.ModuleA;
ESP8266 wifi = Kite.ModuleB;
void setup() {
Serial.begin(9600);
Serial.print("[RF69] Initializing ... ");
byte state = rf.begin();
if(state == ERR_NONE) {
Serial.println("success!");
} else {
Serial.print("failed, code 0x");
Serial.println(state, HEX);
while(true);
}
Serial.print("[ESP8266] Connecting ... ");
byte state = wifi.begin(9600);
if(state == ERR_NONE) {
Serial.println("success!");
} else {
Serial.print("failed, code 0x");
Serial.println(state, HEX);
while(true);
}
}
void loop() {
Serial.print("[RF69] Waiting for incoming transmission ... ");
byte state = rf.receive(pack);
if(state == ERR_NONE) {
Serial.println("success!");
char str[24];
pack.getSourceStr(str);
Serial.print("[RF69] Source:\t\t");
Serial.println(str);
pack.getDestinationStr(str);
Serial.print("[RF69] Destination:\t");
Serial.println(str);
Serial.print("[RF69] Length:\t\t");
Serial.println(pack.length);
Serial.print("[RF69] Data:\t\t");
Serial.println(pack.data);
Serial.print("[RF69] Datarate:\t");
Serial.print(lora.dataRate);
Serial.println(" bps");
Serial.print("[RF69] RSSI:\t\t");
Serial.print(lora.lastPacketRSSI);
Serial.println(" dBm");
Serial.print("[ESP266] Sending HTTP POST ...");
String response;
int http_code = wifi.HttpPost("http://www.httpbin.org/ip", response);
if(http_code == 200) {
Serial.println("success!");
Serial.println("[ESP8266] Response:\n");
Serial.println(response);
} else {
Serial.print("failed, code 0x");
Serial.println(http_code, HEX);
}
if(state == ERR_NONE) {
Serial.println("success!");
}
} else if(state == ERR_RX_TIMEOUT) {
Serial.println("timeout!");
} else if(state == ERR_CRC_MISMATCH) {
Serial.println("CRC error!");
}
}