El ESP32 y la Pico W cubren el Wi‑Fi. Si quieres otro fabricante de chips y una cadena de herramientas que no sea ni Arduino ni Python, una ST Nucleo-F767ZI con Zephyr envía por POST el mismo JSON de ingesta a través de su Ethernet integrado. C, west, ST-LINK. El conector compatible con Arduino es solo un patillaje: el firmware no es un sketch de Arduino.
Usar HTTPS nativo en Zephyr implica incrustar en la imagen una CA de la CDN, y eso falla cuando rota la cadena de certificados del edge. Este ejemplo usa el mismo relé HTTP→HTTPS en la LAN que la opción Uno + W5100, así Cloudflare puede cambiar de CA sin que tengas que volver a flashear.
Piezas
| Pieza | Por qué | Comprar |
|---|---|---|
| Nucleo-F767ZI | Cortex-M7, MAC + PHY Ethernet integrados, depurador ST-LINK. Sin módulo Wi‑Fi. | ST Nucleo-F767ZI |
| DS18B20 impermeable | Sonda para tuberías o sótano ventilado. Datos en el pin Arduino D4 (PF14). | Adafruit DS18B20 · Amazon |
| Resistencia de 4,7 kΩ | Pull-up desde los datos del DS18B20 a 3,3 V. No alimentes la sonda desde el pin de 5 V de Arduino. | 4,7k en Amazon |
| Toma Ethernet | DHCP en tu LAN. Una Pi, un NAS o un portátil ejecuta el relé TLS. | Cualquier latiguillo Cat5e hasta tu switch. |
Cableado
- DS18B20 VDD → Nucleo 3.3V
- DS18B20 GND → GND
- Datos del DS18B20 → Arduino D4 (STM32 PF14), 4,7k a 3,3 V
- RJ45 → LAN. USB del ST-LINK para flashear y para el puerto serie a 115200.
Compilar y flashear
- Abre Dashboard → Devices y descarga Zephyr main.c (con la ruta de ingesta ya rellenada), o copia los defines del aviso de ingesta.
- En un equipo de la LAN:
python3 sketches/relay/push_https_forward.py --listen 0.0.0.0:8080 \ --upstream https://probeharbor.dev - Define
INGEST_HOSTcon esa máquina. Sustituyesrc/main.cpor el archivo descargado si quieres llevar la ruta incrustada. - Desde un espacio de trabajo de Zephyr:
west build -b nucleo_f767zi path/to/sketches/zephyr/ds18b20_ingest west flash - Puerto serie a 115200:
dhcp oky luegoPOST 200. La clave de sensortemp1se importa con el primer POST.
Aplicación en el repositorio: sketches/zephyr/ds18b20_ingest/ (prj.conf, overlay para D4, CMake).
Otras placas STM32
Cualquier placa Zephyr con Ethernet puede ejecutar el mismo C si añades un overlay 1-Wire para tu GPIO. Las Nucleo-F429ZI y Nucleo-H743ZI son las primas habituales. Una Blue Pill con W5500 también es C, pero eso es Cube HAL + ioLibrary, no esta aplicación de Zephyr: usa el relé de la LAN de la misma manera.
¿Por qué no empezar por Nordic o TI?
- nRF52: Bluetooth o Thread, no HTTPS nativo por Wi‑Fi.
- nRF9160: LTE-M funciona, pero una SIM y un plan con operador son peor primer kit de congelación que una toma Ethernet en el garaje.
- TI SimpleLink / NXP RW612: SDK en C con Wi‑Fi muy capaces, pero con menos comunidad aficionada que Nucleo + Zephyr.
- CH32V307 ya tiene soporte oficial: WCHNET C + Ethernet integrado (RISC-V QingKe, el mismo relé TLS en la LAN).
Relacionado
- Añadir dispositivos
- Ingesta con Raspberry Pi Pico W
- Ingesta con CH32V RISC-V
- Lista de piezas del kit ESP32 de congelación
- Relé HTTPS en Python
- Todos los sketches ↗
Los enlaces de compra de Amazon pueden incluir una etiqueta de afiliado (Associates). Los enlaces de Adafruit y otros vendedores son directos (Adafruit no tiene programa de afiliados). ProbeHarbor puede recibir una comisión por compras válidas en Amazon sin coste adicional para ti.
Preguntas frecuentes
¿Un STM32 puede enviar datos a ProbeHarbor sin Arduino ni Python?
Sí. El ejemplo para Nucleo-F767ZI está en C con Zephyr: west build, flasheo con ST-LINK, Ethernet integrado. DS18B20 en el D4 de Arduino (PF14). HTTP hacia el relé TLS de la red local, igual que la vía Uno W5100. Guía: probeharbor.dev/about/stm32-zephyr-ingest.
¿Por qué no HTTPS directamente desde la Nucleo?
Se puede, con mbedTLS de Zephyr y una CA integrada. ProbeHarbor está detrás de Cloudflare, así que esa CA puede cambiar. El relé local mantiene el microcontrolador en HTTP y deja que la Pi/el NAS gestione TLS, el mismo patrón que el Uno con Ethernet.
¿El conector Arduino ejecuta firmware de Arduino?
No. D4 es solo el pin con disposición Arduino de la Nucleo (PF14). El firmware es C con Zephyr, no un .ino.