esp32-ch390-udp-sensor-gateway.ino
Transmisión de datos de sensores analógicos a un servidor remoto vía UDP usando la interfaz Ethernet CH390.
Este código asume que la capa de red (lwIP) ya está activa en la interfaz CH390. El ESP32 lee un sensor en GPIO 34 y envía el valor vía UDP a la IP 192.168.1.100. Asegúrese de que el firewall del servidor objetivo permita el puerto 5000.
esp32-ch390-udp-sensor-gateway.ino
#include "WiFi.h" // Nécessaire pour la structure IP même si pas de WiFi
#include "lwip/sockets.h"
#include "driver/gpio.h"
// Supposons que l'interface Ethernet est déjà initialisée et active
// (voir exemple précédent pour l'init CH390)
#define SENSOR_PIN GPIO_NUM_34
#define TARGET_IP "192.168.1.100"
#define TARGET_PORT 5000
void setup() {
Serial.begin(115200);
// Attente que l'IP soit attribuée (logique simplifiée)
delay(5000);
}
void loop() {
// Lecture simulée d'un capteur (ex: température)
float sensor_val = analogRead(SENSOR_PIN) * 0.1;
char payload[64];
sprintf(payload, "TEMP:%.2f", sensor_val);
int sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (sock >= 0) {
struct sockaddr_in dest_addr;
dest_addr.sin_addr.s_addr = inet_addr(TARGET_IP);
dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(TARGET_PORT);
sendto(sock, payload, strlen(payload), 0, (struct sockaddr*)&dest_addr, sizeof(dest_addr));
close(sock);
Serial.println("Data sent via CH390 Ethernet");
}
delay(1000);
}