Code
Code
#include <SoftwareSerial.h>
#include <DHT.h>
int dhtpin = 2;
int fanPin = 9;
int moistureValue;
#define MQ5_ANALOG_PIN A0
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(pump,OUTPUT);
pinMode(fanPin,OUTPUT);
void loop() {
int h = dht.readHumidity();
Serial.print("humi:");
Serial.println(h);
Serial.print("temp:");
Serial.println(temp);
if (temp <=30){
Serial.println(fanSpeed);
analogWrite(fanPin, fanSpeed);
else{
analogWrite(fanPin,255);
Serial.print("sensorValue: ");
Serial.println(gas_sensorValue);
moistureValue = analogRead(mosPin);
Serial.println(moistureValue);
if (moistureValue>limit) {
analogWrite(pump, 255);
Serial.print("motor: ");
Serial.println(1);
else if(moistureValue<limit){
analogWrite(pump,0);
Serial.print("motor: ");
Serial.println(0);
delay(1000);
----------------------------------------------------------------------------------------------------------------------
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <SinricPro.h>
#include <SinricProSwitch.h>
#include <SoftwareSerial.h>
#include <DHT.h>
#define RELAYPIN_1 D5
#define RELAYPIN_2 D6
#define RELAYPIN_3 D7
#define RELAYPIN_4 D8
#define PIR_PIN D0
#define gaspin V4
#define temp V5
#define humi V6
#define motorpin V7
#define moistureValue V8
#define pir V9
BlynkTimer timer;
int pirsensor = 0;
struct RelayInfo {
String deviceId;
String name;
int pin;
};
std::vector<RelayInfo> relays = {
};
enum WiFiState {
WIFI_CONNECTING,
WIFI_CONNECTED,
WIFI_FAILED
};
if (deviceId == relay.deviceId) {
digitalWrite(relay.pin, !state);
return true;
return false;
void setupRelayPins() {
pinMode(relay.pin, OUTPUT);
void setupWiFi() {
WiFi.begin("A12","Kavan@113");
void setupSinricPro() {
mySwitch.onPowerState(onPowerState);
}
SinricPro.begin("df44d0f2-b2a9-411f-b61f-5f5b9bf0b30d","f098896b-818e-4424-a7e6-dec684d53c33-0846d3fa-ca0b-
4a6e-8109-c980725ad145");
BLYNK_WRITE(V0) {
digitalWrite(RELAYPIN_1, value);
BLYNK_WRITE(V1) {
digitalWrite(RELAYPIN_2, value);
BLYNK_WRITE(V2) {
digitalWrite(RELAYPIN_3, value);
BLYNK_WRITE(V3) {
digitalWrite(RELAYPIN_4, value);
void setup() {
pinMode(RELAYPIN_1, OUTPUT);
pinMode(RELAYPIN_2, OUTPUT);
pinMode(RELAYPIN_3, OUTPUT);
pinMode(RELAYPIN_4, OUTPUT);
digitalWrite(RELAYPIN_1,HIGH);
digitalWrite(RELAYPIN_2,HIGH);
digitalWrite(RELAYPIN_3,HIGH);
digitalWrite(RELAYPIN_4,HIGH);
pinMode(D0, INPUT);
Serial.begin(9600);
setupWiFi();
setupSinricPro();
Blynk.begin("C7Kmda2XoKi6R9xXpioXihfQF1CEXY1p","A12","Kavan@113");
timer.setInterval(1000L, Pirsensor);
void Pirsensor() {
pirsensor = digitalRead(PIR_PIN);
if (pirsensor == HIGH) {
Blynk.virtualWrite(pir, HIGH);
Blynk.logEvent("motion_detected");
Blynk.virtualWrite(pir, LOW);
void loop() {
switch (wifiState) {
case WIFI_CONNECTING:
if (WiFi.status() == WL_CONNECTED) {
wifiState = WIFI_CONNECTED;
Serial.println("WiFi Connected");
wifiState = WIFI_FAILED;
break;
case WIFI_CONNECTED:
if (command.startsWith("sensorValue: ")) {
Blynk.virtualWrite(gaspin, HIGH);
Blynk.logEvent("gas_detected");
Blynk.virtualWrite(gaspin, LOW);
if(command.startsWith("motor: ")){
if(motor == 1){
Blynk.virtualWrite(motorpin, HIGH);
Blynk.virtualWrite(motorpin, LOW);
Blynk.virtualWrite(V8,sense);
if(command.startsWith("temp:")){
int t = command.substring(5).toInt();
Blynk.virtualWrite(temp,t);
if(command.startsWith("humi:")){
int h = command.substring(5).toInt();
Blynk.virtualWrite(humi,h);
}
SinricPro.handle();
Blynk.run();
timer.run();
break;
case WIFI_FAILED:
break;