Réceptionner des valeurs avec un CC1101 et un ESP32
Description :
Ce projet démontre la mise en œuvre d’une liaison radiofréquence basse consommation entre un microcontrôleur ESP32 et un module Texas Instruments CC1101.
- Objectif : Réception de données structurées sur la bande de fréquence 433 MHz.
Prérequis :
- 1 x Carte ESP32
- 1 × Module sans fil CC1101
- 1 x Breadboard
- Fils de connexion
Version IDE :
- Arduino IDE 2.3.5
Bibliothèque :
- cc1101.h (version: 1.2.2 par Mateusz Furga)
Vidéo de démonstration :
Schéma de câblage :


Code :
#include <Arduino.h>
#include <SPI.h>
#include <cc1101.h>
using namespace CC1101;
struct MyData {
uint8_t id;
float temp;
float hum;
} __attribute__((packed));
Radio radio(5);
void setup() {
Serial.begin(115200);
delay(1000);
SPI.begin(18, 19, 23, 5);
radio.begin();
radio.setModulation(MOD_2FSK);
radio.setFrequency(433.0); // Doit être 433.0
radio.setDataRate(50); // Doit être 50
radio.setPacketLengthMode(PKT_LEN_MODE_VARIABLE);
radio.setCrc(true);
Serial.println("Ecoute active sur 433.0 MHz...");
}
void loop() {
MyData data;
size_t bytesRead = 0;
// On écoute en boucle
if (radio.receive((uint8_t*)&data, sizeof(data), &bytesRead) == STATUS_OK) {
if (bytesRead == sizeof(MyData)) {
Serial.printf("RECU ! ID:%d Temp:%.1f Hum:%.1f RSSI:%d\n",
data.id, data.temp, data.hum, radio.getRSSI());
}
}
delay(1);
}
