sensor DHT11 utilizando un módulo SIM800L (GPRS) desde un ESP32 a una API en PHP
Para enviar datos de un sensor DHT11 utilizando un módulo SIM800L (GPRS) desde un ESP32 a una API en PHP, necesitarás realizar varias tareas:
1. Configurar el ESP32 para leer los datos del sensor DHT11.
2. Configurar el ESP32 para comunicarse con el módulo SIM800L a través de UART (Serial).
3. Configurar el módulo SIM800L para conectarse a la red GPRS.
4. Enviar los datos del sensor DHT11 al servidor PHP utilizando HTTP a través del módulo SIM800L.
A continuación, te doy un ejemplo básico de cómo podrías hacer esto. Ten en cuenta que necesitarás adaptarlo según tu entorno y necesidades específicas.
#include
#include
#include
#define DHTPIN 2 // Pin del sensor DHT11
#define DHTTYPE DHT11 // Tipo de sensor DHT
DHT dht(DHTPIN, DHTTYPE);
SoftwareSerial gprsSerial(23, 22); // RX, TX
void setup() {
Serial.begin(9600);
gprsSerial.begin(9600);
dht.begin();
}
void loop() {
delay(2000); // Espera para que el sensor se estabilice
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println(«Error al leer el sensor DHT11.»);
return;
}
// Construir la URL con los parámetros para enviar al servidor PHP
String url = «http://tu_servidor.com/api.php?temp=» + String(temperature) + «&hum=» + String(humidity);
// Conexión GPRS
gprsSerial.println(«AT+SAPBR=3,1,\»Contype\»,\»GPRS\»»);
delay(1000);
gprsSerial.println(«AT+SAPBR=3,1,\»APN\»,\»tuserviciogprs.com\»»); // APN de tu operador GPRS
delay(1000);
gprsSerial.println(«AT+SAPBR=1,1»);
delay(2000);
// Conexión HTTP
gprsSerial.println(«AT+HTTPINIT»);
delay(2000);
gprsSerial.println(«AT+HTTPPARA=\»URL\»,\»» + url + «\»»);
delay(1000);
gprsSerial.println(«AT+HTTPACTION=0»);
delay(5000); // Esperar respuesta del servidor
gprsSerial.println(«AT+HTTPTERM»);
Serial.println(«Datos enviados al servidor.»);
// Desconexión GPRS
gprsSerial.println(«AT+SAPBR=0,1»);
delay(1000);
}
Recuerda que este es solo un ejemplo básico y que puedes necesitar modificarlo según las especificaciones exactas de tu hardware, entorno y servidor PHP. Además, ten en cuenta que es crucial manejar correctamente los errores y la reconexión en caso de que la conexión falle.
