Sensor temperatura con LM35 con esp8266 y monitoreo remoto en www.iottweet.com

Sensor temperatura con LM35 con esp8266 y monitoreo remoto en www.iottweet.com

 

 

Para realizar una práctica con el sensor de temperatura LM35 conectado al ESP8266 y monitorear los datos de temperatura de manera remota a través de la plataforma IoTtweet (www.iottweet.com), sigue estos pasos. La idea es leer la temperatura utilizando el sensor LM35, enviar los datos al servidor de IoTtweet, y luego visualizar la temperatura en tiempo real desde cualquier dispositivo conectado a Internet.

Materiales:

  • ESP8266 (NodeMCU o similar)
  • Sensor de temperatura LM35
  • Resistencias (opcional para el divisor de tensión si es necesario)
  • Protoboard y cables de conexión

Configuración del sensor LM35:

El LM35 es un sensor de temperatura analógico que entrega una señal de salida proporcional a la temperatura en °C. La salida es de 10 mV por grado Celsius. Para conectar el LM35 al ESP8266:

  1. Conecta el pin de alimentación del LM35 a 3.3V del ESP8266.
  2. Conecta el pin de tierra del LM35 a GND.
  3. Conecta el pin de salida del LM35 al pin A0 del ESP8266 (pin ADC).

Preparación de la cuenta en IoTtweet:

  1. Crear una cuenta en IoTtweet.
  2. Crear un nuevo Widget en el Dashboard para visualizar la temperatura.
  3. Obtén tu KEY API de IoTtweet, que usarás para enviar los datos desde el ESP8266.

Código para ESP8266:

El siguiente código se encarga de leer los datos del sensor LM35 y enviar los datos de temperatura a IoTtweet utilizando su API.


#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

// Configuración WiFi
const char* ssid = «Tu_SSID»; // Nombre de tu red WiFi
const char* password = «Tu_PASSWORD»; // Contraseña de tu red WiFi

// Configuración IoTtweet
String apiKey = «TU_API_KEY»; // API Key de IoTtweet obtenida en el dashboard

// Definir el pin donde conectamos el LM35
#define LM35_PIN A0

// URL del servidor de IoTtweet para enviar los datos
const char* server = «http://iottweet.com/»;

void setup() {
Serial.begin(115200);

// Conectar a la red WiFi
WiFi.begin(ssid, password);
Serial.print(«Conectando a «);
Serial.println(ssid);

while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(«.»);
}

Serial.println();
Serial.println(«Conectado a la red WiFi»);
Serial.println(«IP Address: «);
Serial.println(WiFi.localIP());
}

void loop() {
// Leer el valor del sensor LM35
int lm35Value = analogRead(LM35_PIN);

// Convertir el valor de voltaje a temperatura en grados Celsius
float voltage = (lm35Value / 1024.0) * 3.3; // Convertir el valor ADC a voltios (3.3V)
float temperature = voltage * 100.0; // El LM35 entrega 10 mV/°C

Serial.print(«Temperatura: «);
Serial.print(temperature);
Serial.println(» °C»);

// Enviar los datos a IoTtweet
if(WiFi.status() == WL_CONNECTED) {
HTTPClient http;

// Construir la URL para enviar los datos
String url = server;
url += «iottweet/apiv2/send.php?userid=YOUR_USER_ID&key=» + apiKey;
url += «&1=» + String(temperature); // Asigna el valor de la temperatura al Widget 1

http.begin(url); // Comenzar la conexión HTTP
int httpCode = http.GET(); // Enviar la solicitud GET

// Verificar la respuesta del servidor
if(httpCode > 0) {
String payload = http.getString();
Serial.println(«Datos enviados con éxito»);
Serial.println(payload);
} else {
Serial.println(«Error en la conexión»);
}

http.end(); // Finalizar la conexión HTTP
}

delay(5000); // Esperar 5 segundos antes de enviar los datos nuevamente
}

Explicación del código:

  1. Conexión WiFi: El ESP8266 se conecta a la red WiFi usando el nombre de la red (ssid) y la contraseña (password) que configures en el código.
  2. Lectura del LM35: El ESP8266 lee el valor analógico del sensor de temperatura LM35 conectado al pin A0. Luego, convierte el valor ADC en voltaje y de allí en grados Celsius.
  3. Envío de datos a IoTtweet: Se utiliza el método HTTP GET para enviar los datos de temperatura a la plataforma IoTtweet. La URL incluye el User ID y la API Key que obtuviste al registrarte en IoTtweet. El valor de la temperatura se asigna al primer widget (&1=).
  4. Visualización remota: Los datos de temperatura se envían cada 5 segundos a IoTtweet, y podrás ver la temperatura en tiempo real en tu dashboard.

Pasos para monitorear la temperatura en IoTtweet:

  1. Accede a tu cuenta en IoTtweet.
  2. Ve a tu Dashboard y configura un widget para visualizar el valor de la temperatura que envía el ESP8266.
  3. Asegúrate de asociar el Widget 1 con el valor de la temperatura, ya que el ESP8266 está enviando los datos al primer canal (&1=).

Notas:

  • Asegúrate de haber ingresado correctamente tu User ID y API Key en el código.
  • Si la lectura de temperatura no es precisa, puedes ajustar la fórmula dependiendo de la resolución de tu ADC y el voltaje de referencia.
  • Puedes personalizar la frecuencia de actualización modificando el delay(5000) en el loop().

Esta práctica te permitirá monitorear la temperatura de manera remota a través de una interfaz amigable, accesible desde cualquier lugar con conexión a Internet.

 

 

Otro código

 

 

const int sensor = A0;  // ESP8266 Analog Pin ADC0 = A0

#include <ESP8266WiFi.h>
#include <IoTtweet.h>
#include "ArduinoJson.h"

const char *userid = "id";            //IoTtweet account user ID (6 digits, included zero pre-fix)
const char *key = "key";     //IoTtweet registered device key in "MY IOT Garage"
const char *ssid = "WiFi";                    //Your-WiFi-router-SSID
const char *password = "";            //Your-WiFi-password

int tempd;
float data0, data1, data2, data3;                        //Your sending data variable.
String private_tweet = "Hello World";                    //Your private tweet meassage to dashboard
String public_tweet = "I am Internet of Things";         //Your public tweet message to dashboard

IoTtweet myiot;  //naming your devices

void setup() {

Serial.begin(115200);

//Get IoTtweet Library version
String libvers = myiot.getVersion();
Serial.println("IoTtweet Library vesion : " + String(libvers));

//Connect WiFi
Serial.println("nConnect wifi...");
bool conn = myiot.begin(ssid,password);

if(!conn)
{
Serial.println("WiFi connection failed.");
}else
{
Serial.println("WiFi connected !");
}

}

void loop() {

//Example data generating
tempd=analogRead(sensor);
data0=(5.0*tempd*100.0)/1023.0;  // temperatura

data1 = random(30,70);
data2 = random(40,60);
data3 = random(50,55);

//Send data from your iot to Dashboard
String response = myiot.WriteDashboard(userid,key,data0,data1,data2,data3,private_tweet,public_tweet);
Serial.println(response);   //Show response JSON from www.iottweet.com

//Waiting storage data on IoTtweet cloud 15 sec.
delay(15000);
}

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *