1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| #include "heltec.h"
#define BAND 868E6 //you can set band here directly,e.g. 868E6,915E6
#define btn_PRG 0
#define LED 25
int sendintervall = 5000; //Interval between sends
int IdLora = 0;
int ButtonState= 0;
int PreviousButtonState = 0;
unsigned long previousMillis = 0;
int count = 0000;
void LoraDisplay(long currentmillis ) {
Heltec.display -> clear();
Heltec.display -> drawString(0,0,"LoRa " + String(IdLora,DEC));
Heltec.display -> drawString(100,0,String(currentmillis,DEC));
Heltec.display -> drawString(0,12,"Button: ");
Heltec.display -> drawString(97,12,"|");
if (ButtonState == LOW) {
Heltec.display -> drawString(74,12,"True");
} else {
Heltec.display -> drawString(102,12,"False");
}
Heltec.display -> drawString (0,24,"Counter : " + String(count,DEC)+ " " + String(count,HEX) );
Heltec.display -> display();
}
void SendData(int Emetteur,int Destinataire, String Data){
LoRa.beginPacket();
LoRa.print(String(Emetteur,DEC) + ":" + String(Destinataire,DEC) + ":" + Data);
LoRa.endPacket();
count += 1 ;
}
void setup() {
// put your setup code here, to run once:
pinMode(btn_PRG, INPUT);
pinMode(LED, OUTPUT);
//Serial.begin(9600);
Heltec.begin(true /*DisplayEnable Enable*/, true /*Heltec.LoRa Disable*/, true /*Serial Enable*/, true /*PABOOST Enable*/, BAND /*long BAND*/);
delay(1000);
Heltec.display -> clear();
Heltec.display->setFont(ArialMT_Plain_10);
Heltec.display -> drawString(40,1,"Hello World!");
Heltec.display -> drawString(1,10,"Sender " + String(IdLora,DEC));
Heltec.display -> display();
delay(1500);
}
void loop() {
// put your main code here, to run repeatedly:
unsigned long currentMillis = millis();
ButtonState = digitalRead(btn_PRG);
if (PreviousButtonState != ButtonState ) {
PreviousButtonState = ButtonState;
if (ButtonState == 0) {
//SendData(IdLora , 1 , "Button TRUE");
} else {
//SendData(IdLora , 1 , "Button False");
}
}
if (currentMillis - previousMillis >= sendintervall) {
// save the last time you blinked the LED
previousMillis = currentMillis;
if (ButtonState == 0) {
SendData(IdLora , 1 , "Button TRUE");
} else {
SendData(IdLora , 1 , "Button False");
}
}
digitalWrite (LED,!ButtonState);
LoraDisplay(currentMillis - previousMillis);
} |
Partager