Quiet Bee · Tutoriel complet

Ruche connectée IoT : guide complet (ESP32, SIM7080, SHT85, HX711, OLED, SIM 1NCE)

Dans ce guide, on assemble un module IoT pour ruche : ESP32 (DFR0654) + modem LTE‑M/NB‑IoT SIM7080 (Waveshare SIM7070G compatible) + SHT85 (T°/H°) + HX711 (pesée) + OLED SSD1306 + SIM 1NCE. On couvre le câblage, l’alimentation, le firmware et l’envoi des données.

Matériel nécessaire

ESP32 (DFR0654)

Microcontrôleur Wi‑Fi/BLE, UART pour modem, I²C pour capteurs, faible conso (Deep Sleep).

Modem SIM7080 (SIM7070G Waveshare OK)

LTE‑M / NB‑IoT + GNSS (selon module), interface UART 115200 8N1, modes PSM/eDRX.

SHT85 (T°/H°)

Capteur I²C très précis. Adresse par défaut 0x44.

HX711 + cellule de charge

Amplificateur ADC 24 bits pour peson. Entrées DT/SCK côté MCU.

Écran OLED (SSD1306)

Affichage local (128×64). Bus I²C partagé avec SHT85.

Carte SIM 1NCE + shield SIM

Forfait IoT. Le shield facilite le format SIM et les signaux carte.

Alimentation

Li‑Ion 18650 + régulateur 3.3 V et recharge solaire (optionnelle) ou step‑down.

Liens produits (affiliés)

Ces liens ont déjà l’ID affilié fourni ; ils sont insérés tels quels :

Note : Les liens courts amzn.to pointent vers Amazon et intègrent votre affiliation existante.

Schéma & câblage (aperçu)

Bus I²C

  • ESP32 GPIO 22 → SCL, GPIO 21 → SDA
  • SHT85 : SCL/ SDA, VCC 3.3 V, GND
  • OLED SSD1306 : SCL/ SDA, VCC 3.3 V, GND

HX711

  • DT → ESP32 GPIO 26
  • SCK → ESP32 GPIO 25
  • VCC 3.3 V (ou 5 V selon module), GND

Modem SIM7080

  • UART : ESP32 TX (GPIO 17) → SIM7080 RX, ESP32 RX (GPIO 16) → SIM7080 TX
  • PWRKEY (GPIO 4) via transistor/NPN ou directement si supporté
  • Alimentation dédiée 3.8–4.2 V (peak courant > 500 mA), GND commun
Astuce : Séparez l’alim du modem (burst courant) du 3.3 V logique. Ajoutez un bulk 470–1000 µF près du modem.

Firmware ESP32 (structure)

Le firmware suit une boucle mesurant T/H/Poids, affichant localement, puis envoyant périodiquement (MQTT ou HTTP) en LTE‑M/NB‑IoT, avant de passer en Deep Sleep.

// Pseudo-structure (Arduino)
setup():
  initSerial(115200)
  initI2C(SDA=21,SCL=22)
  sht85.begin(0x44)
  oled.begin(0x3C)
  hx711.begin(DT=26,SCK=25); hx711.set_scale(K); hx711.tare()
  sim7080.begin(UART2, RX=16, TX=17); powerOnSIM7080(PWRKEY=4)
  attachAPN("iot.1nce.net") // exemple
  syncTimeViaNTPorCell()

loop():
  t = sht85.readTemperature()
  h = sht85.readHumidity()
  w = hx711.get_units(10)
  oled.show(t,h,w)
  if (cellAttach() && netReady()):
      sendJSON("https://iot.quiet-bee.fr/ingest", {t,h,w})  // ou MQTT
  deepSleep(minutes=5)
Libs utiles : Adafruit_SHT31, Adafruit_SSD1306, HX711. Pour le modem : échanges AT via HardwareSerial + helpers.

Connexion cellulaire (SIM 1NCE / SIM7080)

// Séquence AT minimale (diagnostic)
AT
ATE0
AT+CPIN?
AT+CSQ            // qualité radio
AT+CGATT?         // attach
AT+CGDCONT=1,"IP","iot.1nce.net"
AT+CFUN=1
AT+CGACT=1,1
// HTTP GET ping simple
AT+SHSTATE?       // stack HTTP(S) (selon firmware)
// MQTT (selon firmware) ou sockets TCP pour POST/PUT
// Power save
AT+CPSMS=1,,,,"00000110","00011111"  // ex. PSM (valeurs à ajuster)
Important : prévoyez un régulateur/booster capable d'encaisser les pics du modem (condensateurs proches, pistes courtes, GND étoile).

Mesures T/H & Poids

Calibration HX711

// Étapes
tare()                // à vide
placer masse étalon
set_scale(calculated) // diviseur trouvé
get_units(10)         // moyenne

Lecture SHT85

// Exemple Arduino (Adafruit_SHT31)
float t = sht.readTemperature();
float h = sht.readHumidity();
if (!isnan(t) && !isnan(h)) { /* ok */ }
Conseil : Isolez le SHT85 du flux d'air direct et de la chaleur du soleil. Utilisez un abri ventilé.

Affichage OLED

// OLED SSD1306 (I²C)
display.clearDisplay();
display.setTextSize(1); display.setTextColor(SSD1306_WHITE);
display.setCursor(0,0);
display.printf("T: %.1f°C\nH: %.1f%%\nP: %.2f kg", t, h, w);
display.display();

Partagez le bus I²C avec le SHT85 ; vérifiez les adresses (SHT85 0x44, OLED 0x3C par défaut).

Énergie, boîtier & déploiement

Débogage terrain : log série, LED état modem, compteur de cycles, sauvegarde locale (SPIFFS) en cas d'absence réseau.