ESP32 and Pico W cover Wi‑Fi. If you want a different silicon vendor and a toolchain that is neither
Arduino nor Python, an ST Nucleo-F767ZI running Zephyr POSTs the same
ingest JSON over onboard Ethernet. C, west, ST-LINK. The Arduino-compatible header is only
a pinout: the firmware is not an Arduino sketch.
Native HTTPS on Zephyr means baking a CDN CA into the image, which breaks when the edge certificate chain rotates. This sample uses the same LAN HTTP→HTTPS relay as the Uno + W5100 path, so Cloudflare can change CAs without a reflash.
Parts
| Part | Why | Buy |
|---|---|---|
| Nucleo-F767ZI | Cortex-M7, onboard Ethernet MAC + PHY, ST-LINK debugger. No Wi‑Fi module. | ST Nucleo-F767ZI · Amazon search |
| Waterproof DS18B20 | Pipe / crawlspace probe. Data on Arduino D4 (PF14). | Adafruit DS18B20 · Amazon |
| 4.7kΩ resistor | Pull-up from DS18B20 data to 3.3V. Do not power the probe from the 5V Arduino pin. | Amazon 4.7k |
| Ethernet drop | DHCP on your LAN. A Pi, NAS, or laptop runs the TLS relay. | Any Cat5e patch cable to your switch. |
Wiring
- DS18B20 VDD → Nucleo 3.3V
- DS18B20 GND → GND
- DS18B20 data → Arduino D4 (STM32 PF14), 4.7k to 3.3V
- RJ45 → LAN. ST-LINK USB for flash and 115200 serial.
Build and flash
- Open Dashboard → Devices and download Zephyr main.c (ingest path filled in), or copy the defines from the ingest callout.
-
On a LAN host:
python3 sketches/relay/push_https_forward.py --listen 0.0.0.0:8080 \ --upstream https://thermaltrace.dev - Set
INGEST_HOSTto that machine. Drop the downloaded file oversrc/main.cif you want the path baked in. -
From a Zephyr workspace:
west build -b nucleo_f767zi path/to/sketches/zephyr/ds18b20_ingest west flash - Serial 115200:
dhcp ok, thenPOST 200. Sensor keytemp1imports on first POST.
Repo app:
sketches/zephyr/ds18b20_ingest/
(prj.conf, D4 overlay, CMake).
Other STM32 boards
Any Zephyr Ethernet target can run the same C if you add a 1-Wire overlay for your GPIO. Nucleo-F429ZI and Nucleo-H743ZI are the usual cousins. A Blue Pill plus W5500 is C as well, but that is Cube HAL + ioLibrary, not this Zephyr app: use the LAN relay the same way.
Why not Nordic / TI first?
- nRF52: Bluetooth or Thread, not native Wi‑Fi HTTPS.
- nRF9160: LTE-M works, but a SIM and carrier plan is a worse first freeze kit than a garage Ethernet drop.
- TI SimpleLink / NXP RW612: capable Wi‑Fi C SDKs, smaller hobbyist footprint than Nucleo + Zephyr.
- CH32V307 is first-class now: WCHNET C + onboard Ethernet (QingKe RISC-V, same LAN TLS relay).
Related
- Adding devices
- Raspberry Pi Pico W ingest
- CH32V RISC-V ingest
- ESP32 freeze kit parts list
- Python HTTPS relay
- All sketches ↗
Amazon buy links may include an Associates tag. Adafruit and other vendor links are direct (Adafruit does not run an affiliate program). ThermalTrace may earn a commission from qualifying Amazon purchases at no extra cost to you.
FAQ
Can an STM32 post to ThermalTrace without Arduino or Python?
Yes. The Nucleo-F767ZI sample is Zephyr C: west build, ST-LINK flash, onboard Ethernet. DS18B20 on Arduino D4 (PF14). HTTP to the LAN TLS relay, same as the Uno W5100 path. Guide: thermaltrace.dev/about/stm32-zephyr-ingest.
Why not HTTPS straight from the Nucleo?
You can, with Zephyr mbedTLS and a baked-in CA. ThermalTrace sits behind Cloudflare, so that CA can change. The LAN relay keeps the MCU on HTTP and lets the Pi/NAS handle TLS, which is the same pattern as Uno Ethernet.
Is the Arduino header running Arduino firmware?
No. D4 is only the Nucleo’s Arduino-layout pin (PF14). The firmware is Zephyr C, not an .ino.