#define BLYNK_TEMPLATE_ID ""
#define BLYNK_DEVICE_NAME ""
#define BLYNK_AUTH_TOKEN ""
#define BLYNK_PRINT Serial
#include <SimpleTimer.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Blynk.h>
#include <SPI.h>
#include "DHT.h"
#define DHTPIN 14
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
char auth[] = "";
char ssid[] = "";
char pass[] = "";
char server[] = "oasiskit.com";
int port = 8080;
int analogPin = 2;
SimpleTimer timer;
float h,t,t2,val,val2;
void setup()
{
// Debug console
Serial.begin(9600);
/*Serial.println("กำลังเชื่อมต่อไปที่ Blynk Server");
WiFi.begin(ssid, pass); //เชื่อมต่อ WiFi
while (WiFi.status() != WL_CONNECTED){
delay(100);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected.");
Blynk.config(auth, server, port); //กำหนด Token key , ชื่อ Server และ port
Blynk.connect(); //เชื่อมต่อไปยัง Blynk
Blynk.begin(auth, ssid, pass, "sgp1.blynk.cloud", 8080); */
dht.begin();
delay(2000);
pinMode(16, OUTPUT);//water
pinMode(17, OUTPUT);//fan
}
/*
BLYNK_CONNECTED() { // ฟังก์ชันนี้ทำงานเมื่อต่อ Blynk ได้
Serial.println("App Blynk ทำงาน!");
} */
int x_time = 0;
bool _x_time = false;
void countCharger(){
if(_x_time == true){ // ถ้ามีการกดปุ่มปั๊ม 1 ครั้ง
x_time++; // นับไปครั้งละ 1 วิ แต่ยังจะไม่เข้า loop 5 วิ เพราะยังนับไม่ถึง
if (x_time > 600) { //นับไปจนกว่า x_time มากกว่า 5
digitalWrite(16, LOW);
digitalWrite(17, LOW);
_x_time = false;
}
}
}
void buttonauto() {
if (val < 20){
x_time = 0;
_x_time = true;
digitalWrite(16, HIGH);
} else if (val >= 80){
_x_time = false;
digitalWrite(16, LOW);
}
if (t > 25){
x_time = 0;
_x_time = true;
digitalWrite(17, HIGH);
} else {
_x_time = false;
digitalWrite(17, LOW);
}
}
//auto
BLYNK_WRITE(V6){
Serial.println(param.asInt());
if (param.asInt()){
timer.setInterval(3600000L, buttonauto);
}
}
//fan
BLYNK_WRITE(V3){
Serial.println(param.asInt());
if (param.asInt()){
digitalWrite(17, HIGH);
} else {
digitalWrite(17, LOW);
}
}
//water
BLYNK_WRITE(V4){
Serial.println(param.asInt());
if (param.asInt()){
digitalWrite(16, HIGH);
} else {
digitalWrite(16, LOW);
}
}
void loop()
{
//Blynk.run();
delay(5000);
int chk = dht.read(DHTPIN);
h = dht.readHumidity();
t = dht.readTemperature();
delay(10);
val = analogRead(analogPin);
val2 = val * 0.09765625;
delay(2000);
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
delay(2000);
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F(" C "));
Serial.print("\n");
Serial.print("soil_moisture = ");
Serial.println(val);
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V1, h);
Blynk.virtualWrite(V2, val);
}
ขึ้น Failed to read from DHT sensor!
ถ้าเสียบแค่โมดูลวัดอุณภูมิตัวเดียวกลับอ่านค่าได้ตอนนี้ผมทำโปรเจค smartfarm ใช้ตัววัดความชื้นในดินด้วยพอมาต่อรวมกันกลับอ่านค่าไม่ได้ขึ้น error