Ingesta con CH32V RISC-V

Envía lecturas DS18B20 desde un WCH CH32V307 con WCHNET en C y Ethernet integrado. MounRiver Studio y el mismo relay HTTPS en la LAN que el Uno.

Primer plano de cables Ethernet Cat-5e blancos con conectores RJ45
El JSON de las sondas suele salir de la LAN por Ethernet o por un relay cercano, no directamente a internet. Foto: DiscDepotDundee.co.uk. CC BY-SA 4.0

ESP32, Pico W y STM32 cubren Arm y Xtensa. Si quieres una sonda QingKe RISC-V que no sea Arduino, ni Python, ni Zephyr, una CH32V307V-EVT-R1 con WCHNET C envía por POST el mismo JSON de ingesta a través de su Ethernet 10M integrado. MounRiver Studio, WCH-Link. Sin módulo Wi‑Fi.

WCHNET es TCP sobre IPv4 sin un cliente TLS mantenido. Este ejemplo usa el mismo relay HTTP→HTTPS en la LAN que Uno + W5100 y STM32 Zephyr, así Cloudflare puede cambiar de CA sin que tengas que volver a grabar la placa.

Componentes

Componentes para una sonda antiheladas CH32V RISC-V
Componente Para qué Comprar
CH32V307V-EVT-R1 QingKe RISC-V, PHY 10M + RJ45 integrados, WCH-Link. Aquí no se usa la MAC Gigabit. WCH CH32V307
DS18B20 resistente al agua Sonda para tuberías o espacio sanitario. Datos en PB12. Adafruit DS18B20 · Amazon
Resistencia de 4.7kΩ Pull-up de la línea de datos del DS18B20 a 3.3V. No alimentes la sonda con 5V. Amazon 4.7k
Toma Ethernet DHCP en tu LAN. Una Raspberry Pi, un NAS o un portátil ejecuta el relay TLS. Cualquier cable de red Cat5e hasta tu switch.

Cableado

  • DS18B20 VDD → EVT 3.3V
  • DS18B20 GND → GND
  • Datos del DS18B20 → PB12, 4.7k a 3.3V
  • RJ45 → LAN. USB del WCH-Link para grabar y para el puerto serie a 115200.

Compilar y grabar

  1. Abre Dashboard → Devices y descarga CH32V main.c (con la ruta de ingesta ya incluida), o copia los defines del recuadro de ingesta.
  2. En un equipo de la LAN:
    python3 sketches/relay/push_https_forward.py --listen 0.0.0.0:8080 \
      --upstream https://probeharbor.dev
  3. Pon en INGEST_HOST la IP de ese equipo (IPv4 con puntos). Sustituye User/main.c por el archivo descargado.
  4. Instala MounRiver Studio. Abre el proyecto oficial EVT ETH/DHCP, conserva NetLib / eth_driver, sustituye solo User/main.c, compila y graba.
  5. Serie a 115200: dhcp ok y después POST 200. La clave de sensor temp1 se importa con el primer POST.

Listo para usar en el repositorio: sketches/wch/ch32v307_ds18b20_ingest/ (1-Wire por bit-bang en PB12 + cliente HTTP de WCHNET).

Otras placas CH32V

Cualquier CH32V307 con el PHY Ethernet de la EVT puede ejecutar este código C. Los CH32V203 / CH32V003 no tienen MAC Ethernet. Existen cores comunitarios Arduino-CH32, pero no son este ejemplo. Un CH32V307 con W5500 es posible, aunque entonces vuelves a ioLibrary por SPI en lugar de la MAC integrada.

¿Por qué no nRF o TI a continuación?

  • nRF52: Bluetooth o Thread, no HTTPS nativo por Wi‑Fi.
  • nRF7002 DK: el Wi‑Fi 6 de Nordic funciona en nRF Connect SDK, pero fijar las CA de TLS en Zephyr sigue siendo una trampa de mantenimiento.
  • TI SimpleLink / NXP RW612: SDK de Wi‑Fi en C muy capaces, pero con menos presencia entre aficionados que EVT + WCHNET.

Relacionado

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 CH32V puede enviar datos a ProbeHarbor sin Arduino ni Python?
Sí. El ejemplo para CH32V307V-EVT está en C con WCHNET en MounRiver Studio: un User/main.c que sustituye al del proyecto oficial ETH/DHCP, flasheo con WCH-Link, Ethernet 10M integrado. DS18B20 en PB12. HTTP hacia el relé TLS de la red local, igual que Uno W5100 y STM32 Zephyr. Guía: probeharbor.dev/about/ch32v-riscv-ingest.

¿Por qué no HTTPS directamente desde el CH32V?
WCHNET es TCP/UDP sobre IPv4 sin un cliente TLS mantenido. La ingesta de ProbeHarbor es HTTPS. El relé local mantiene el microcontrolador en HTTP y deja que una Pi/un NAS gestione TLS, el mismo patrón que Uno Ethernet y STM32 Zephyr.

¿Es Arduino-CH32 o Arduino con PlatformIO?
No. Algunos cores de la comunidad adaptan el CH32V al Arduino IDE. Este ejemplo es C del fabricante (QingKe RISC-V, WCHNET), no un .ino.