frxbg

BlynkPirDHT11

May 28th, 2019
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. #include <Blynk.h>
  2.  
  3. #define BLYNK_PRINT Serial
  4.  
  5. #include <SPI.h>
  6. #include <Ethernet.h>
  7. #include <BlynkSimpleEthernet.h>
  8. #include <DHT.h>
  9. //#include <SimpleTimer.h>
  10.  
  11. char auth[] = "Token: dd86e26...........";
  12. int sensorPin = 5; // Set up a PIR sensor pin
  13. int pirState = LOW;
  14. int val = 0;
  15. int relayPin = 2;
  16. bool relayState = false;
  17.  
  18. #define DHTPIN 3 // What digital pin we're connected to
  19.  
  20. #define DHTTYPE DHT11 // DHT 11
  21. //#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
  22. //#define DHTTYPE DHT21 // DHT 21, AM2301
  23.  
  24. DHT dht(DHTPIN, DHTTYPE);
  25. BlynkTimer timer;
  26.  
  27. void sendSensor()
  28. {
  29.   float h = dht.readHumidity();
  30.   float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
  31.  
  32.   if (isnan(h) || isnan(t)) {
  33.     Serial.println("Failed to read from DHT sensor!");
  34.     return;
  35.   }
  36.   else {
  37.     // You can send any value at any time.
  38.     // Please don't send more that 10 values per second.
  39.     Blynk.virtualWrite(V5, h);
  40.     Blynk.virtualWrite(V6, t);
  41.   }
  42. }
  43.  
  44. void setup()
  45. {
  46.   pinMode(sensorPin, INPUT);
  47.   pinMode(relayPin, OUTPUT);
  48.   Serial.begin(9600);
  49.   Blynk.begin(auth);
  50.  
  51.   dht.begin();
  52.   timer.setInterval(1000L, sendSensor);
  53.   timer.setInterval(50L, pirSensor);
  54.  
  55. }
  56.  
  57. void pirSensor() {
  58.  
  59.   if (digitalRead(sensorPin) == HIGH && !relayState) {
  60.     // If Motion detected and relay state is off
  61.  
  62.     relayState = true;
  63.     digitalWrite(relayPin, HIGH); // Turn Relay ON
  64.     Serial.println("Relay is ON");
  65.   }
  66.   else if (digitalRead(sensorPin) == LOW) {
  67.  
  68.     relayState = false;
  69.     digitalWrite(relayPin, LOW); // Turn Relay OFF
  70.     Serial.println("Relay is OFF");
  71.   }
  72. }
  73.  
  74.  
  75. void loop() {
  76.  
  77.   Blynk.run();
  78.   timer.run();
  79. }
Advertisement
Add Comment
Please, Sign In to add comment