You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.1 KiB
C++
86 lines
2.1 KiB
C++
#include <LoRa.h>
|
|
#include "boards.h"
|
|
#include <SafeString.h>
|
|
#include <millisDelay.h>
|
|
|
|
|
|
//elapsedMillis timeElapsed;
|
|
//unsigned int interval = 20000;
|
|
millisDelay codetimer;
|
|
int counter = 0;
|
|
int percent = 0;
|
|
int prevPercent = 0;
|
|
long futuretime = 0;
|
|
long timetowait = 1000 * 3; //thelast number is the seconds
|
|
int secretcode = 21;
|
|
int addedRandom = 0;
|
|
|
|
|
|
void setup()
|
|
{
|
|
Serial.begin( 9600 );
|
|
initBoard();
|
|
// When the power is turned on, a delay is required.
|
|
delay(1500);
|
|
Serial.println("LoRa Sender");
|
|
LoRa.setPins(RADIO_CS_PIN, RADIO_RST_PIN, RADIO_DI0_PIN);
|
|
if (!LoRa.begin(LoRa_frequency)) {
|
|
Serial.println("Starting LoRa failed!");
|
|
while (1);
|
|
}
|
|
}
|
|
|
|
void loop(){
|
|
percent = round(analogRead(2) / 4095.00 * 100 + addedRandom);
|
|
|
|
if(percent != prevPercent) {
|
|
Serial.println(percent);
|
|
LoRa.beginPacket();
|
|
LoRa.print("node4 ");
|
|
LoRa.print(percent);
|
|
LoRa.endPacket();
|
|
prevPercent = percent;
|
|
futuretime = millis() + timetowait; // current time plus the timetowait
|
|
}
|
|
|
|
|
|
// delay(100);
|
|
// Serial.print("Sending packet: ");
|
|
// Serial.println(percent);
|
|
|
|
// send packet
|
|
|
|
|
|
|
|
|
|
#ifdef HAS_DISPLAY
|
|
|
|
if (u8g2) {
|
|
char buf[256];
|
|
dtostrf(percent,3,0,buf);
|
|
u8g2->clearBuffer();
|
|
String message = String(percent);
|
|
u8g2->drawStr(0, 20, " Gateway code:");
|
|
// snprintf(buf, sizeof(buf), "Sending: %d", counter);
|
|
u8g2->drawStr(0, 40, buf);
|
|
if(futuretime > millis()){ // checks the current time with the future time -> count down
|
|
u8g2->drawStr(0, 60, " connecting...");
|
|
}
|
|
|
|
|
|
|
|
if(percent == secretcode && futuretime+10000 < millis()){
|
|
u8g2->drawStr(0, 60, " connecting...");
|
|
addedRandom = random(0,10);
|
|
}
|
|
|
|
else if(percent == secretcode && futuretime < millis()) {
|
|
u8g2->drawStr(0, 60, " PORT: 20.15.18");
|
|
}
|
|
// u8g2->print(percent);
|
|
u8g2->sendBuffer();
|
|
}
|
|
#endif
|
|
counter++;
|
|
}
|