Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*****************************/
- /* ESP8266 con sensor */
- /* DHT 22 conectado */
- /* a servicios web */
- /* de Cayenne */
- /* Programado por Juan Blanc */
- /* @juanstdio */
- /* */
- /* Febrero 2018 */
- /*****************************/
- /* REQUISITOS
- * Instalar Librería de Cayenne
- * https://github.com/myDevicesIoT/Cayenne-MQTT-ESP
- *
- * Instalar liberías de Adafruit sobre el DHT
- * https://github.com/adafruit/DHT-sensor-library
- *
- * OPCIONAL: Si da errores que no encuentra la librería SENSOR de Adafruit, instalarla
- * https://github.com/adafruit/Adafruit_Sensor
- */
- /* incluir librerías de Cayenee */
- #define CAYENNE_PRINT Serial
- #include <CayenneMQTTESP8266.h>
- /* incluír librerías para manejar sensor de temperatura */
- #include "DHT.h"
- #include <Adafruit_Sensor.h>
- char ssid[] = "IoT_6toA"; //Colocar el nombre de tu Wifi
- char clave[] = "16F84A_esp"; //Colocar la clave de tu wifi
- /* COMPLETAR ESTO REGISTRANDOSE EN LA WEB DE CAYENNE*/
- /* Añadis un nuevo dispositivo ESP8266, ahí te va a dar unos datos el usuario (user), una clave (password)
- * y una ID de cliente (ClientID).
- */
- char usuario[] = "string de usuario";
- char password[] = "Clave";
- char clientID[] = "ID de cliente";
- /* Calculo de la tensión de la batería, basado en el voltaje máximo dado por el divisor resistivo con la batería al 100% */
- /* CAMBIARLO, NO USAR ESTE OFFSET NI EL VMAX */
- float offset = 5.37 , vmax = 2.80; // La batería al máximo me da 8.17 V
- /* Sensor de temperatura y humedad */
- #define tipoDHT DHT22 // DHT 22 (AM2302)
- #define pintDHT D4
- float h,t ; // Humedad, Temperatura
- void leeTempHum(), checkDatos();
- bool hay_data = 1;
- /* Creamos un objeto para llamar a la librería */
- DHT dht(pintDHT, tipoDHT);
- void setup() {
- /* Inicializar comuniación serial */
- // Serial.begin(9600); //Desactivado
- // Inicialización de la conectividad al Sitio Cayenne
- Cayenne.begin(usuario, password, clientID, ssid, clave);
- /* Inicialización del sensor de temperatura */
- dht.begin();
- }
- void loop() {
- /* Acá no se hace nada, pero se puede añadir */
- Cayenne.loop();
- }
- CAYENNE_OUT_DEFAULT()
- {
- /* aca se calcula las horas que lleva encendido */
- Cayenne.virtualWrite(0, (millis()/3600000)); //Cuantos milisegundos hay en una hora...
- /* Aca se calcula el voltaje y el porcentaje de batería restante */
- int sensorValue = analogRead(A0);
- float voltage = sensorValue * (3.2 / 1023.0) + offset;
- Cayenne.virtualWrite(1,voltage);
- /* No es muy acertado, peero */
- int porcentaje = (((voltage - offset)*100)/vmax);
- Cayenne.virtualWrite(2,porcentaje);
- /* Aca se lee temperatura y humedad */
- leeTempHum();
- if(hay_data != 0 )
- {
- Cayenne.virtualWrite(3,t);
- Cayenne.virtualWrite(4,h);
- float hic = dht.computeHeatIndex(t, h, false); // Calculo de la Sensación térmica
- Cayenne.virtualWrite(5,hic);
- }
- }
- void leeTempHum()
- {
- t = dht.readTemperature();
- h = dht.readHumidity();
- }
- /* En esta funcion loca lo que se verifica es que haya datos nuevos (de paso, si el dht está conectado) */
- void checkData () {
- if (isnan(h) || isnan(t)) {
- hay_data = 0 ;
- return;
- }
- else {
- hay_data = 1 ;
- return;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement