Skip to content
Commits on Source (2)
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
*/ */
#include <heltec.h> #include <heltec.h>
byte localAddress = 0xBB; // address of this device byte localAddress = 0xDD; // address of this device
byte destination = 0xAA; // destination to send to byte destination = 0xDE; // destination to send to
#define RELE_1 17 #define RELE_1 17
#define RELE_2 21 #define RELE_2 21
...@@ -16,13 +16,15 @@ byte destination = 0xAA; // destination to send to ...@@ -16,13 +16,15 @@ byte destination = 0xAA; // destination to send to
String lastCommand = ""; String lastCommand = "";
String signalLevel = ""; String signalLevel = "";
#define BAND 868E6
void setup() { void setup() {
Heltec.begin(true /*DisplayEnable Enable*/, true /*LoRa Enable*/, true /*Serial Enable*/, true /*LoRa use PABOOST*/, 868E6 /*LoRa RF working band*/); Heltec.begin(true /*DisplayEnable Enable*/, true /*LoRa Enable*/, true /*Serial Enable*/, true /*LoRa use PABOOST*/, BAND /*LoRa RF working band*/);
Heltec.display -> clear(); Heltec.display -> clear();
Serial.println("LoRa Sender"); Serial.println("LoRa Sender");
LoRa.setTxPowerMax(10); LoRa.setTxPowerMax(15);
//LoRa.enableCrc(); //LoRa.enableCrc();
LoRa.setPreambleLength(4); LoRa.setPreambleLength(4);
...@@ -47,13 +49,28 @@ void setup() { ...@@ -47,13 +49,28 @@ void setup() {
unsigned long previousMillisLed = 0; unsigned long previousMillisLed = 0;
const long intervalLed = 60000 * 10; const long intervalLed = 60000 * 10;
unsigned long previousMillisRele = 0;
const long intervalRele = 1000 * 10;
bool isLoRaOnSenderMode = false; bool isLoRaOnSenderMode = false;
bool isLedOff = true; bool isLedOff = true;
bool lockRequestsFor10sec = false;
void loop() { void loop() {
unsigned long currentMillis = millis(); unsigned long currentMillis = millis();
if (currentMillis - previousMillisRele > intervalRele) {
lockRequestsFor10sec = false;
} else {
lockRequestsFor10sec = true;
Heltec.display -> clear();
Heltec.display -> drawString(0, 0, lastCommand);
Heltec.display -> display();
}
if (isLedOff) { if (isLedOff) {
delay(2000);
isLedOff = false; isLedOff = false;
//Reset rele //Reset rele
digitalWrite(RELE_1, LOW); digitalWrite(RELE_1, LOW);
...@@ -69,6 +86,10 @@ void loop() { ...@@ -69,6 +86,10 @@ void loop() {
{ {
isLoRaOnSenderMode = false; isLoRaOnSenderMode = false;
Heltec.display -> clear();
Heltec.display -> drawString(0, 0, lastCommand);
Heltec.display -> display();
String outgoing = lastCommand; String outgoing = lastCommand;
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
...@@ -81,6 +102,7 @@ void loop() { ...@@ -81,6 +102,7 @@ void loop() {
LoRa.print(outgoing); // add payload LoRa.print(outgoing); // add payload
LoRa.endPacket(); LoRa.endPacket();
delay(2000);
} }
// put the radio into receive mode // put the radio into receive mode
...@@ -91,6 +113,7 @@ void loop() { ...@@ -91,6 +113,7 @@ void loop() {
String r1 = String(RELE_1, DEC); String r1 = String(RELE_1, DEC);
String r2 = String(RELE_2, DEC); String r2 = String(RELE_2, DEC);
String r3 = String(RELE_3, DEC); String r3 = String(RELE_3, DEC);
String r0 = "0";
String read_r1 = String(RELE_READ_1, DEC); String read_r1 = String(RELE_READ_1, DEC);
String read_r2 = String(RELE_READ_2, DEC); String read_r2 = String(RELE_READ_2, DEC);
...@@ -140,6 +163,10 @@ void onReceive(int packetSize) ...@@ -140,6 +163,10 @@ void onReceive(int packetSize)
if (str.indexOf("p : ") == 0) if (str.indexOf("p : ") == 0)
{ {
if (lockRequestsFor10sec == false) {
lastCommand = str;
previousMillisRele = millis();
isLedOff = true;
if (str.indexOf(r1) > 0) if (str.indexOf(r1) > 0)
{ {
setRele1(); setRele1();
...@@ -152,10 +179,11 @@ void onReceive(int packetSize) ...@@ -152,10 +179,11 @@ void onReceive(int packetSize)
{ {
setRele3(); setRele3();
} }
if (str.indexOf(r0) > 0)
lastCommand = str; {
setRele0();
isLoRaOnSenderMode = true; }
}
} }
if (str.indexOf("r : ") == 0) if (str.indexOf("r : ") == 0)
...@@ -170,32 +198,35 @@ void onReceive(int packetSize) ...@@ -170,32 +198,35 @@ void onReceive(int packetSize)
val = readRele2(); val = readRele2();
} }
isLoRaOnSenderMode = true;
lastCommand = str + " " + val; lastCommand = str + " " + val;
isLoRaOnSenderMode = true;
} }
} }
void setRele0()
{
digitalWrite(RELE_1, HIGH);
digitalWrite(RELE_2, HIGH);
digitalWrite(RELE_3, HIGH); // LUCI LED
previousMillisLed = millis();
}
void setRele1() void setRele1()
{ {
isLedOff = true;
digitalWrite(RELE_1, HIGH); digitalWrite(RELE_1, HIGH);
digitalWrite(RELE_3, HIGH); // LUCI LED digitalWrite(RELE_3, HIGH); // LUCI LED
delay(2000);
previousMillisLed = millis(); previousMillisLed = millis();
} }
void setRele2() void setRele2()
{ {
isLedOff = true;
digitalWrite(RELE_2, HIGH); digitalWrite(RELE_2, HIGH);
digitalWrite(RELE_3, HIGH); // LUCI LED digitalWrite(RELE_3, HIGH); // LUCI LED
delay(2000);
previousMillisLed = millis(); previousMillisLed = millis();
} }
void setRele3() void setRele3()
{ {
digitalWrite(RELE_3, HIGH); digitalWrite(RELE_3, HIGH);
......
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
const char* ssid = "Thomas"; const char* ssid = "Thomas";
const char* password = "viapiccardi47!!thomas"; const char* password = "viapiccardi47!!thomas";
byte localAddress = 0xAA; // address of this device byte localAddress = 0xDE; // address of this device
byte destination = 0xBB; // destination to send to byte destination = 0xDD; // destination to send to
// TCP server at port 80 will respond to HTTP requests // TCP server at port 80 will respond to HTTP requests
WiFiServer server(80); WiFiServer server(80);
...@@ -59,14 +59,16 @@ void WIFISetUp(void) ...@@ -59,14 +59,16 @@ void WIFISetUp(void)
delay(500); delay(500);
} }
#define BAND 868E6
void setup(void) void setup(void)
{ {
Heltec.begin(true /*DisplayEnable Enable*/, true /*LoRa Enable*/, true /*Serial Enable*/, true /*LoRa use PABOOST*/, 868E6 /*LoRa RF working band*/); Heltec.begin(true /*DisplayEnable Enable*/, true /*LoRa Enable*/, false /*Serial Enable*/, true /*LoRa use PABOOST*/, BAND /*LoRa RF working band*/);
Heltec.display -> clear(); Heltec.display -> clear();
Serial.println("LoRa Sender"); Serial.println("LoRa Sender");
LoRa.setTxPowerMax(10); LoRa.setTxPowerMax(15);
//LoRa.enableCrc(); //LoRa.enableCrc();
LoRa.setPreambleLength(4); LoRa.setPreambleLength(4);
...@@ -88,7 +90,7 @@ void setup(void) ...@@ -88,7 +90,7 @@ void setup(void)
String s; String s;
unsigned long previousMillis = 0; unsigned long previousMillis = 0;
const long interval = 10000; const long interval = 25000;
int val = 0; int val = 0;
void loop(void) void loop(void)
...@@ -141,7 +143,6 @@ void loop(void) ...@@ -141,7 +143,6 @@ void loop(void)
} else if (req.indexOf("/pin") >= 0) { } else if (req.indexOf("/pin") >= 0) {
pinRequest(req); pinRequest(req);
lastCommandReceived = "";
s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"; s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
s += req; s += req;
s += ""; s += "";
...@@ -150,7 +151,6 @@ void loop(void) ...@@ -150,7 +151,6 @@ void loop(void)
} else if (req.indexOf("/brightness") >= 0) { } else if (req.indexOf("/brightness") >= 0) {
setBrightness(req); setBrightness(req);
lastCommandReceived = "";
s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"; s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
s += req; s += req;
s += ""; s += "";
...@@ -239,14 +239,6 @@ void onReceive(int packetSize) ...@@ -239,14 +239,6 @@ void onReceive(int packetSize)
if (incoming.indexOf("r : ") == 0) { if (incoming.indexOf("r : ") == 0) {
lastCommandReceived = incoming; lastCommandReceived = incoming;
} }
if (incoming.indexOf("p : ") == 0) {
lastCommandReceived = incoming;
}
if (incoming.indexOf("b : ") == 0) {
lastCommandReceived = incoming;
}
} }
//---------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------
...@@ -259,6 +251,7 @@ void pinRequest(String req) ...@@ -259,6 +251,7 @@ void pinRequest(String req)
String outgoing = "p : " + req; String outgoing = "p : " + req;
for (int i = 0; i < 5; i++) {
// send packet // send packet
LoRa.beginPacket(); LoRa.beginPacket();
...@@ -268,9 +261,10 @@ void pinRequest(String req) ...@@ -268,9 +261,10 @@ void pinRequest(String req)
LoRa.print(outgoing); // add payload LoRa.print(outgoing); // add payload
LoRa.endPacket(); LoRa.endPacket();
delay(2000);
}
// put the radio into receive mode lastCommandReceived = outgoing;
LoRa.receive();
} }
void setBrightness(String req) void setBrightness(String req)
...@@ -279,6 +273,7 @@ void setBrightness(String req) ...@@ -279,6 +273,7 @@ void setBrightness(String req)
String outgoing = "b : " + req; String outgoing = "b : " + req;
for (int i = 0; i < 5; i++) {
// send packet // send packet
LoRa.beginPacket(); LoRa.beginPacket();
...@@ -288,9 +283,10 @@ void setBrightness(String req) ...@@ -288,9 +283,10 @@ void setBrightness(String req)
LoRa.print(outgoing); // add payload LoRa.print(outgoing); // add payload
LoRa.endPacket(); LoRa.endPacket();
delay(2000);
}
// put the radio into receive mode lastCommandReceived = outgoing;
LoRa.receive();
} }
void pinRequestRead(String req) void pinRequestRead(String req)
...@@ -299,6 +295,7 @@ void pinRequestRead(String req) ...@@ -299,6 +295,7 @@ void pinRequestRead(String req)
String outgoing = "r : " + req; String outgoing = "r : " + req;
for (int i = 0; i < 5; i++) {
// send packet // send packet
LoRa.beginPacket(); LoRa.beginPacket();
...@@ -308,6 +305,8 @@ void pinRequestRead(String req) ...@@ -308,6 +305,8 @@ void pinRequestRead(String req)
LoRa.print(outgoing); // add payload LoRa.print(outgoing); // add payload
LoRa.endPacket(); LoRa.endPacket();
delay(2000);
}
// put the radio into receive mode // put the radio into receive mode
LoRa.receive(); LoRa.receive();
......