#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <DHT.h>
// You should get Auth Token in the Blynk App.
char auth[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
#define W5100_CS 10
#define SDCARD_CS 4
#define DHTaPIN 9
#define DHTbPIN 3
#define DHTaTYPE DHT11 // DHT 11)
#define DHTbTYPE DHT22 // DHT 22 (AM2302), AM2321
DHT dhta(DHTaPIN, DHTaTYPE); // Initialize DHT sensor for normal 16mhz Arduino
DHT dhtb(DHTbPIN, DHTbTYPE); // Initialize DHT sensor for normal 16mhz Arduino
BlynkTimer timer;
const int btn6Pin = A2;
const int btn7Pin = A4;
WidgetLED led6(V10);
WidgetLED led7(V0);
// V6 LED Widget represents the physical button state
boolean btn6State = false;
void buttonLed6Widget()
{
// Read button
boolean isPressed = (digitalRead(btn6Pin) == HIGH);
// If state has changed...
if (isPressed != btn6State) {
if (isPressed) {
led6.on();
} else {
led6.off();
}
btn6State = isPressed;
}
}
// V7 LED Widget represents the physical button state
boolean btn7State = false;
void buttonLed7Widget()
{
// Read button
boolean isPressed = (digitalRead(btn7Pin) == HIGH);
// If state has changed...
if (isPressed != btn7State) {
if (isPressed) {
led7.on();
} else {
led7.off();
}
btn7State = isPressed;
}
}
float temp_internal; // Stores internal temperature value
float hum_internal;
float temp_external; // Stores external temperature value
float hum_external;
int fire = A4; //virtual pin for led
int fire2 = A3; //buzzer,pumb
int smokeA0 = A5; //analog input
int Relay4 = 4;
int Relay3 = 5;
int Relay2 = 6;
int Relay1 = 7;
void temp ()
{Blynk.virtualWrite(V11, hum_external);
Blynk.virtualWrite(V12, temp_external);
Blynk.virtualWrite(V5, hum_internal);
Blynk.virtualWrite(V6, temp_internal);}
/*
* PIR sensor
*/
int ledPin = A2; // choose the pin for the LED
int inputPin = A1; // choose the input pin (for PIR sensor)
int pirState = LOW; // we start, assuming no motion detected
int val = 0; // variable for reading the pin status
void setup()
{
pinMode(SDCARD_CS, OUTPUT);
digitalWrite(SDCARD_CS, HIGH); // Deselect the SD card
Blynk.begin(auth);
dhta.begin();
dhtb.begin();
pinMode(smokeA0, INPUT);
pinMode(fire, OUTPUT);
pinMode(fire2, OUTPUT);
digitalWrite(fire, LOW);
digitalWrite(fire2, LOW);
// Setup a function to be called every second
timer.setInterval(1000L, temp);
pinMode(btn6Pin, INPUT_PULLUP);
timer.setInterval(500L, buttonLed6Widget);
pinMode(btn7Pin, INPUT_PULLUP);
timer.setInterval(1000L, buttonLed7Widget);
pinMode(ledPin, OUTPUT); // declare LED as output pir
pinMode(inputPin, INPUT); // declare sensor as input pir
// Initialize Relays
pinMode(Relay4, OUTPUT);
pinMode(Relay3, OUTPUT);
pinMode(Relay2, OUTPUT);
pinMode(Relay1, OUTPUT);
digitalWrite(Relay4, LOW);
digitalWrite(Relay3, LOW);
digitalWrite(Relay2, LOW);
digitalWrite(Relay1, LOW);
}
void loop()
{
Blynk.run();
timer.run();
//SMOKE
int analogSensor = analogRead(smokeA0);
// Checks if it has reached the threshold value
if (analogSensor >= 500) {
digitalWrite(fire, HIGH);
digitalWrite(fire2, HIGH);
}
else {
digitalWrite(fire, LOW);
digitalWrite(fire2, LOW);
}
// 1. Read data from Internal Sensor and store it to variables temp_internal and hum_internal
hum_internal = dhta.readHumidity();
temp_internal = dhta.readTemperature();
// 2. Read data from DHT22 and store it to variables hum and temp
hum_external = dhtb.readHumidity();
temp_external = dhtb.readTemperature();
//pir code
{ val = digitalRead(inputPin); // read input value
if (val == HIGH) { // check if the input is HIGH
digitalWrite(ledPin, HIGH); // turn LED ON
if (pirState == LOW) {
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // turn LED OFF
if (pirState == HIGH){
pirState = LOW;}}}
}
Comments