lunes, 22 de noviembre de 2021

2. Internet de las Cosas: Enviando Twitter desde Arduino vía ThingSpeak

 1.- Daos de alta en https://thingspeak.com/

2.- Ahí dentro, podemos abrir un Canal para registrar los datos enviados. O hacer un link a una cuenta de Twitter para que escriba por nosotros un tweet cuando se le mande una URL. Para ambas cosas, hay que generar una URL con una clave (KEY) que nos darán en la página. 

Por ejemplo, para enviar el dato de la temperatura "69" a un canal (y luego verlo a través de una aplicación móvil), la cadena sería:

https://api.thingspeak.com/update?api_key=xxxxxxxxxx&field1=69

Por ejemplo, para enviar el tweet "Hola Mundo", la cadena sería:

https://api.thingspeak.com/apps/thingtweet/1/statuses/update?api_key=XXXXXXXXXXXXX&status=Hola Mundo


3.- El código básico del programa sería el siguiente:

#include <WiFiUdp.h>  //librerías necesarias para iniciar el wifi 

#include <ESP8266WiFi.h> //librerías necesarias para manejar el ESP8266

#include "DHT.h"  //Instalar dht sensor library de adafruit


const char* host = "api.thingspeak.com"; //declaramos el servidor al que nos conectaremos

const int httpPort = 443;


const char* ssid= "nombre_red"; //poner nombre y password de red

const char* password="pass_red";


String url; //variables donde irá la URL que enviará el arduino

String arg; 


WiFiClientSecure client; //declaramos el cliente


DHT dht(D5, DHT22); //iniciamos el dht


int humedad,temperatura;


void setup() 

{

  //iniciamos la wifi

  WiFi.begin(ssid, password);   

  while(WiFi.status()!=WL_CONNECTED) delay(200);

  client.setInsecure();

  //iniciamos el sensor

  dht.begin();             

}

 

void loop() 

{

    delay(3600000); //espera una hora


    humedad = dht.readHumidity();     //leemos humedad

    delay(2000);

    temperatura = dht.readTemperature(); //leemos temperatura

    

    //enviamos la URL con la KEY de ThingSpeak

    while (!client.connect(host, httpPort)) delay(200);

    url = "/apps/thingtweet/1/statuses/update?api_key=XXXXXXXXXXXXX&status="; //Sustituir XXXXX... por la Key de ThingSpeak

    arg = "Temperatura " + String(temperatura) + "%0AHumedad " +String(humedad);

    client.print(String("GET ") + url + arg + " HTTP/1.1\r\n" +

                "Host: " + host + "\r\n" +

               "Connection: close\r\n\r\n");

    client.stop();

}



No hay comentarios:

Publicar un comentario