#define BLYNK_PRINT Serial
#include
#include
#include "DHT.h"
DHT dht;
const int soilMoistureSensorPin = A0;
const int waterPumpPin = D1;
char auth[] = "eiDUKem_nMjRkRGi08wDeCh4rtLr6W6x";
char ssid[] = "mchiangmai-2.4G";
char pass[] = "mmm2524mmm";
float humidity;
float temperature;
int soilMoistureValue;
bool Check = false;
BLYNK_WRITE(V0) // function to handle virtual pin writes
{
soilMoistureValue = param.asInt(); // store the received soil moisture value
}
BLYNK_WRITE(V2) {
int pinValue = param.asInt();
Serial.print("V2 Slider value is:");
Serial.println(pinValue);
if (pinValue == 1) {
digitalWrite(waterPumpPin, LOW);
Check = true;
Blynk.virtualWrite(V3, 1);
}
delay(100);
if (pinValue == 0) {
digitalWrite(waterPumpPin, HIGH);
Check = false;
Blynk.virtualWrite(V3, 0);
}
}
BLYNK_WRITE(V5) {
Serial.print("Got a value: ");
Serial.println(param.asInt());
if (param.asInt() == 0) {
digitalWrite(waterPumpPin, HIGH);
}
if (param.asInt() == 1) {
digitalWrite(waterPumpPin, LOW);
}
}
void setup() {
// Debug console
Serial.begin(9600);
dht.setup(2); // data pin 2
Blynk.begin(auth, ssid, pass, "elec.cmtc.ac.th", 8080);
pinMode(soilMoistureSensorPin, INPUT);
pinMode(waterPumpPin, OUTPUT);
}
void loop() {
dht_loop();
soilMoistureValue = analogRead(soilMoistureSensorPin);
Blynk.virtualWrite(V0, soilMoistureValue);
Blynk.virtualWrite(V7, temperature);
Blynk.virtualWrite(V8, humidity);
Blynk.run();
delay(1000);
}
void dht_loop() {
delay(dht.getMinimumSamplingPeriod());
humidity = dht.getHumidity(); // ดึงค่าความชื้น
temperature = dht.getTemperature(); // ดึงค่าอุณหภูมิ
Serial.print(dht.getStatusString());
Serial.print("\t");
Serial.print(humidity, 1);
Serial.print("\t\t");
Serial.print(temperature, 1);
Serial.print("\t\t");
Serial.println(dht.toFahrenheit(temperature), 1);
delay(1000);
}