70 lines
1.5 KiB
C++
70 lines
1.5 KiB
C++
#include <SPI.h>
|
|
#include <RH_RF95.h>
|
|
#include <M5Stack.h>
|
|
|
|
//Déclaration des constantes
|
|
//Communication avec le module LoRa
|
|
#define RFM95_CS 5 //M5 LoRa
|
|
#define RFM95_DIO0 36 //M5 LoRa
|
|
RH_RF95 rf95(RFM95_CS, RFM95_DIO0);
|
|
|
|
//Constantes d'état
|
|
#define EMISSION 0
|
|
#define DELAI 1
|
|
|
|
uint8_t state; //État courant
|
|
uint8_t data[16]; //Buffer d'émission
|
|
|
|
|
|
void setup() {
|
|
M5.begin();
|
|
M5.Power.begin();
|
|
Serial.println("========Emetteur CAP1========");
|
|
M5.Lcd.println("========Emetteur CAP1========");
|
|
|
|
delay(1000);
|
|
|
|
if(!rf95.init()){
|
|
Serial.println("Echec de la mise en place");
|
|
M5.Lcd.println("Echec de la mise en place");
|
|
}
|
|
else{
|
|
Serial.println("Mise en place reussie !!!");
|
|
M5.Lcd.println("Mise en place reussie !!!");
|
|
//Configuration de la radio
|
|
rf95.setModemConfig(RH_RF95::Bw125Cr45Sf128);
|
|
rf95.setFrequency(867.8);
|
|
state=EMISSION;
|
|
}
|
|
|
|
}
|
|
|
|
void loop() {
|
|
switch(state){
|
|
case EMISSION: //Code source à l'état d'émission
|
|
Serial.println("EMISSION");
|
|
M5.Lcd.println("EMISSION");
|
|
data[0]=0xAA;
|
|
data[1]=0x55;
|
|
data[2]=0x25;
|
|
data[3]=0x24;
|
|
data[4]=0x98;
|
|
rf95.send(data,5); //Envoi des données
|
|
rf95.waitPacketSent();
|
|
|
|
state=DELAI;
|
|
break;
|
|
|
|
case DELAI:
|
|
Serial.println("DELAI");
|
|
M5.Lcd.println("DELAI");
|
|
delay(1000);
|
|
state=EMISSION;
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|