2026-03-05 08:37:38 +01:00

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;
}
}