Ingestion STM32 avec Zephyr

Envoyez des relevés DS18B20 depuis une Nucleo-F767ZI en C sous Zephyr avec l’Ethernet intégré. west, ST-LINK et le même relais HTTPS LAN que l’Uno.

Gros plan de câbles Ethernet Cat-5e blancs avec connecteurs RJ45
Le JSON des sondes quitte généralement le LAN par Ethernet ou via un relais proche, pas directement par Internet. Photo : DiscDepotDundee.co.uk. CC BY-SA 4.0

L’ESP32 et le Pico W couvrent le Wi‑Fi. Si vous voulez un autre fondeur et une chaîne d’outils qui ne soit ni Arduino ni Python, une ST Nucleo-F767ZI sous Zephyr envoie en POST le même JSON d’ingestion via son Ethernet intégré. C, west, ST-LINK. Le connecteur compatible Arduino n’est qu’un brochage : le firmware n’est pas un sketch Arduino.

Faire du HTTPS natif sous Zephyr implique d’embarquer une CA du CDN dans l’image, ce qui casse dès que la chaîne de certificats de l’edge change. Cet exemple utilise le même relais HTTP→HTTPS sur le LAN que la solution Uno + W5100 : Cloudflare peut ainsi changer de CA sans reflashage.

Pièces

Pièces pour une sonde antigel STM32 sous Zephyr
Pièce Pourquoi Acheter
Nucleo-F767ZI Cortex-M7, MAC + PHY Ethernet intégrés, débogueur ST-LINK. Pas de module Wi‑Fi. ST Nucleo-F767ZI
DS18B20 étanche Sonde pour tuyau ou vide sanitaire. Donnée sur la broche Arduino D4 (PF14). Adafruit DS18B20 · Amazon
Résistance de 4,7 kΩ Pull-up entre la donnée du DS18B20 et le 3,3 V. N’alimentez pas la sonde depuis la broche 5 V Arduino. 4,7k sur Amazon
Prise Ethernet DHCP sur votre LAN. Un Pi, un NAS ou un portable fait tourner le relais TLS. N’importe quel câble de brassage Cat5e jusqu’à votre switch.

Câblage

  • DS18B20 VDD → Nucleo 3.3V
  • DS18B20 GND → GND
  • Donnée du DS18B20 → Arduino D4 (STM32 PF14), 4,7k vers le 3,3 V
  • RJ45 → LAN. USB ST-LINK pour le flashage et le port série à 115200.

Compiler et flasher

  1. Ouvrez Dashboard → Devices et téléchargez Zephyr main.c (chemin d’ingestion prérempli), ou copiez les defines depuis l’encadré d’ingestion.
  2. Sur une machine du LAN :
    python3 sketches/relay/push_https_forward.py --listen 0.0.0.0:8080 \
      --upstream https://probeharbor.dev
  3. Renseignez INGEST_HOST avec cette machine. Remplacez src/main.c par le fichier téléchargé si vous voulez que le chemin soit intégré.
  4. Depuis un espace de travail Zephyr :
    west build -b nucleo_f767zi path/to/sketches/zephyr/ds18b20_ingest
    west flash
  5. Port série à 115200 : dhcp ok, puis POST 200. La clé de capteur temp1 s’importe au premier POST.

Application du dépôt : sketches/zephyr/ds18b20_ingest/ (prj.conf, overlay D4, CMake).

Autres cartes STM32

Toute cible Zephyr avec Ethernet peut exécuter le même C si vous ajoutez un overlay 1-Wire pour votre GPIO. Les Nucleo-F429ZI et Nucleo-H743ZI sont les cousines habituelles. Une Blue Pill avec W5500 se programme aussi en C, mais avec Cube HAL + ioLibrary, pas avec cette application Zephyr : utilisez le relais LAN de la même façon.

Pourquoi pas Nordic ou TI d’abord ?

  • nRF52 : Bluetooth ou Thread, pas de HTTPS natif en Wi‑Fi.
  • nRF9160 : le LTE-M fonctionne, mais une carte SIM et un forfait opérateur font un moins bon premier kit antigel qu’une prise Ethernet dans le garage.
  • TI SimpleLink / NXP RW612 : des SDK C Wi‑Fi performants, mais une communauté amateur plus réduite que Nucleo + Zephyr.
  • CH32V307 est désormais pris en charge officiellement : WCHNET C + Ethernet intégré (RISC-V QingKe, même relais TLS sur le LAN).

À lire aussi

Les liens d’achat Amazon peuvent contenir un identifiant Partenaires (Associates). Les liens Adafruit et des autres vendeurs sont directs (Adafruit n’a pas de programme d’affiliation). ProbeHarbor peut toucher une commission sur les achats Amazon éligibles, sans surcoût pour vous.

FAQ

Un STM32 peut-il envoyer des données à ProbeHarbor sans Arduino ni Python ?
Oui. L’exemple pour Nucleo-F767ZI est en C sous Zephyr : west build, flashage ST-LINK, Ethernet intégré. DS18B20 sur la broche Arduino D4 (PF14). HTTP vers le relais TLS du réseau local, comme pour la voie Uno W5100. Guide : probeharbor.dev/about/stm32-zephyr-ingest.

Pourquoi pas du HTTPS directement depuis la Nucleo ?
C’est possible, avec mbedTLS de Zephyr et une autorité de certification intégrée. Mais ProbeHarbor est derrière Cloudflare, donc cette AC peut changer. Le relais local garde le microcontrôleur en HTTP et laisse le Pi/NAS gérer TLS, sur le même principe que l’Uno Ethernet.

Le connecteur Arduino exécute-t-il un firmware Arduino ?
Non. D4 n’est que la broche au format Arduino de la Nucleo (PF14). Le firmware est en C sous Zephyr, pas un .ino.