Monitor temperatura y humedad con control Local y Remoto a traves de Blynk IOT

#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL8GVQ-W-f"
#define BLYNK_DEVICE_NAME "MONITOR H&T"
#include <BlynkSimpleEsp8266.h>
#include "DHT.h"
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define DHTPIN D3     // Digital pin connected to the DHT sensor

char ssid[] = "blynkiot";
char pass[] = "XXXXXXXX";
char auth[] = "DszWmGyPQW1B88JwLWAWrcm9A5DjS1_0";
double mytimer,tref,restmytimer;

int v0;
float bat,tempo;
BLYNK_WRITE(V0){v0=param.asInt();} 
BlynkTimer timer1,timer2;
int x=0;

DHT dht(DHTPIN, DHT22);
Adafruit_SSD1306 oled(128,64, &Wire,-1);

void SV1(){

float  temperatura =  dht.readTemperature();        // reading sensor from analog pin
  Blynk.virtualWrite(V1,temperatura );  // sending sensor value to Blynk app
}

void SV2()// enviar datos del hardware a la app
{
float  humedad =  dht.readHumidity();         // reading sensor from analog pin
  Blynk.virtualWrite(V2,humedad );  // sending sensor value to Blynk app
}

void SV3()// enviar datos del hardware a la app
{
 
      
  Blynk.virtualWrite(V3,bat );  
}

void SV4(){
  
   
  Blynk.virtualWrite(V4,mytimer/60 );  //tempo/60 seria tiempo transcurrido en minutos
}
void setup() {

 
  oled.begin(SSD1306_SWITCHCAPVCC,0x3C);//inicialización de pantalla en direccion 0x3c
    oled.clearDisplay();
  //oled.setRotation(2);
 oled.setTextColor(WHITE); 
 oled.setTextSize(2);oled.setCursor(1,28); oled.print("wifi net?");
  
  oled.display();

  Serial.begin(9600);
    dht.begin();
  Blynk.begin(auth, ssid, pass);
  timer1.setInterval(1000L, SV1);
   timer1.setInterval(1000L, SV2); 
   timer1.setInterval(1000L, SV4); 
timer2.setInterval(3000L, SV3);
}

void loop() {
  bat=map(analogRead(A0),634,1024,0,100);//EL VALOR 634 HA SIDO MEDIDO EN EL MOMENTO EN QUE LA BATERIA NO DABA LA TENSION SUFICIENTE COMO PARA ALIMENTAR EL MODULO
   if (bat<100){
  mytimer=(millis()-tref)/1000;}
  if (bat==100){tref=millis(),mytimer=0;}
     
   Blynk.run();
   timer1.run();
   timer2.run();
    if (v0){oled.clearDisplay(); oled.setTextSize(1);oled.setCursor(25,1);oled.print(F("REMOTO"));
      oled.display();}
    else{
      delay(1000);
    oled.clearDisplay();
    float h = dht.readHumidity();
    float t = dht.readTemperature();
    
  oled.setTextSize(1);oled.setCursor(25,1);oled.print(F("Humedad"));
oled.setTextSize(2); oled.setCursor(25,15); oled.print(h);oled.setCursor(90,15);oled.print(F("%"));
 oled.setTextSize(1); oled.setCursor(25,35);oled.print(F("Temperatura"));
 oled.setTextSize(2); oled.setCursor(25,49);oled.print(t);oled.setTextSize(1);oled.setCursor(90,55);oled.print(F("grados"));
  oled.display();
    } 
 
}

Deja una respuesta

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

Translate »