You are on page 1of 2

#define BLYNK_PRINT Serial // Comment this out to disable prints and save space

//#include <SimpleTimer.h>
#include "DHTesp.h"
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.


// Go to the Project Settings (nut icon).
char auth[] = "<your auth token>";

// Your WiFi credentials.


// Set password to "" for open networks.

char ssid[] = "<your wifi ssid>";


char pass[] = "<your password>";

// The digital pin we are connected to


#define DHTPIN 4

// Uncomment whatever type you are using


//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21 // DHT 21, AM2301

DHTesp dht;
BlynkTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.

void setup()
{
Serial.begin(9600); // See the connection status in Serial Monitor
Blynk.begin(auth, ssid, pass);

// setup DHT sensor to DHTPIN


dht.setup(DHTPIN, DHTesp::DHT22);

// Setup a function to be called every second


timer.setInterval(1000L, sendSensor);
}

void sendSensor()
{
delay(dht.getMinimumSamplingPeriod());

float h = dht.getHumidity();
float t = dht.getTemperature(); // or dht.readTemperature(true) for Fahrenheit

if (isnan(h) || isnan(t)) {

Serial.println("Failed to read from DHT sensor!");


return;
}

// You can send any value at any time.


// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);

// send e-mail if humidity level is above a given threshold


if (h > 80)
{
Serial.println("Humidity is high");
Blynk.email("<your e-mail address", "Subject: High Humidity", "Humidity is too
high.");
}
}

void loop()
{
Blynk.run(); // Initiates Blynk
timer.run(); // Initiates SimpleTimer
}

You might also like