Ingest mit STM32 und Zephyr

DS18B20-Werte von einem Nucleo-F767ZI mit Zephyr-C und eingebautem Ethernet senden. west, ST-LINK und das gleiche LAN-HTTPS-Relay wie beim Uno.

Nahaufnahme weißer Cat-5e-Ethernet-Kabel mit RJ45-Steckern
Das Fühler-JSON verlässt das LAN meist über Ethernet oder ein nahes Relay, nicht direkt übers öffentliche Internet. Foto: DiscDepotDundee.co.uk. CC BY-SA 4.0

ESP32 und Pico W decken WLAN ab. Wenn du einen anderen Chiphersteller und eine Toolchain willst, die weder Arduino noch Python ist, sendet ein ST Nucleo-F767ZI mit Zephyr dasselbe Ingest-JSON per POST über das Onboard-Ethernet. C, west, ST-LINK. Die Arduino-kompatible Stiftleiste ist nur eine Pinbelegung: Die Firmware ist kein Arduino-Sketch.

Natives HTTPS unter Zephyr heißt, eine CDN-CA fest ins Image einzubauen – und das bricht, sobald die Zertifikatskette am Edge wechselt. Dieses Beispiel nutzt dasselbe HTTP→HTTPS-Relay im LAN wie der Weg mit Uno + W5100, sodass Cloudflare die CAs wechseln kann, ohne dass du neu flashen musst.

Teile

Teile für einen STM32-Zephyr-Frostfühler
Teil Wozu Kaufen
Nucleo-F767ZI Cortex-M7, Ethernet-MAC + PHY an Bord, ST-LINK-Debugger. Kein WLAN-Modul. ST Nucleo-F767ZI
Wasserdichter DS18B20 Fühler für Rohr oder Kriechkeller. Daten an Arduino-Pin D4 (PF14). Adafruit DS18B20 · Amazon
4,7-kΩ-Widerstand Pull-up von der DS18B20-Datenleitung auf 3,3 V. Versorge den Fühler nicht über den 5-V-Arduino-Pin. 4,7k bei Amazon
Ethernet-Anschluss DHCP in deinem LAN. Ein Pi, NAS oder Laptop betreibt das TLS-Relay. Beliebiges Cat5e-Patchkabel zu deinem Switch.

Verdrahtung

  • DS18B20 VDD → Nucleo 3.3V
  • DS18B20 GND → GND
  • DS18B20-Daten → Arduino D4 (STM32 PF14), 4,7k nach 3,3 V
  • RJ45 → LAN. ST-LINK-USB zum Flashen und für die serielle Schnittstelle mit 115200.

Bauen und flashen

  1. Öffne Dashboard → Devices und lade Zephyr main.c herunter (Ingest-Pfad bereits eingetragen), oder kopiere die Defines aus dem Ingest-Hinweis.
  2. Auf einem Rechner im LAN:
    python3 sketches/relay/push_https_forward.py --listen 0.0.0.0:8080 \
      --upstream https://probeharbor.dev
  3. Setze INGEST_HOST auf diesen Rechner. Ersetze src/main.c durch die heruntergeladene Datei, wenn der Pfad fest eingebaut sein soll.
  4. Aus einem Zephyr-Workspace:
    west build -b nucleo_f767zi path/to/sketches/zephyr/ds18b20_ingest
    west flash
  5. Seriell mit 115200: dhcp ok, dann POST 200. Der Sensorschlüssel temp1 wird beim ersten POST importiert.

App im Repo: sketches/zephyr/ds18b20_ingest/ (prj.conf, D4-Overlay, CMake).

Andere STM32-Boards

Jedes Zephyr-Ziel mit Ethernet kann denselben C-Code ausführen, wenn du ein 1-Wire-Overlay für deinen GPIO ergänzt. Nucleo-F429ZI und Nucleo-H743ZI sind die üblichen Verwandten. Ein Blue Pill mit W5500 ist ebenfalls C, aber mit Cube HAL + ioLibrary, nicht mit dieser Zephyr-App: Nutze das LAN-Relay auf dieselbe Weise.

Warum nicht zuerst Nordic oder TI?

  • nRF52: Bluetooth oder Thread, kein natives HTTPS über WLAN.
  • nRF9160: LTE-M funktioniert, aber SIM-Karte und Mobilfunkvertrag sind ein schlechteres erstes Frost-Kit als ein Ethernet-Anschluss in der Garage.
  • TI SimpleLink / NXP RW612: leistungsfähige WLAN-SDKs in C, aber eine kleinere Bastler-Community als Nucleo + Zephyr.
  • CH32V307 wird jetzt offiziell unterstützt: WCHNET C + Onboard-Ethernet (QingKe RISC-V, dasselbe TLS-Relay im LAN).

Verwandte Themen

Amazon-Kauflinks können ein Partner-Tag (Associates) enthalten. Links zu Adafruit und anderen Händlern sind direkt (Adafruit hat kein Partnerprogramm). ProbeHarbor erhält für qualifizierte Amazon-Käufe womöglich eine Provision – ohne Mehrkosten für dich.

Häufige Fragen

Kann ein STM32 ohne Arduino oder Python an ProbeHarbor senden?
Ja. Das Beispiel für den Nucleo-F767ZI ist Zephyr-C: west build, Flashen per ST-LINK, Ethernet auf dem Board. DS18B20 an Arduino D4 (PF14). HTTP an das TLS-Relay im LAN, genau wie beim Uno-W5100-Weg. Anleitung: probeharbor.dev/about/stm32-zephyr-ingest.

Warum nicht direkt HTTPS vom Nucleo?
Das geht, mit Zephyr-mbedTLS und einer fest eingebauten CA. ProbeHarbor liegt hinter Cloudflare, daher kann sich diese CA ändern. Mit dem Relay im LAN bleibt der Mikrocontroller bei HTTP, und der Pi/NAS übernimmt TLS – dasselbe Muster wie beim Uno mit Ethernet.

Läuft auf dem Arduino-Header Arduino-Firmware?
Nein. D4 ist nur der Pin im Arduino-Layout des Nucleo (PF14). Die Firmware ist Zephyr-C, keine .ino.