อยากรู้วิธีการเขียนโค้ด ตั้งค่าอุณหภูมิ และความชื้น DHT 21 ด้วยการตั้งค่าสไลด์บาร์ หรือกล่องใส่ค่าตัวเลข ในแอป blynk ว่าจะเขียนโค้ดใน node mcu อย่างไร แนนะนำหน่อยครับ


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
#define BLYNK_PRINT Serial
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);   //Module IIC/I2C Interface บางรุ่นอาจจะใช้ 0x3f

char auth[] = "tXGtWDlQTueUDETYN2SaEVM5kLStEKns";
char ssid[] = "HOME";
char pass[] = "111222333";
BlynkTimer timer;
      
#define DHTPIN   D0  // DHT11 Sensor   
#define DHTTYPE DHT11           // DHT11 if useDHT11
#define Fin D3
#define Fog D4
#define Pump D5
int SensorPin = A0; //ประกาศตัวแปร ให้ analogPin แทนขา analog ขาที่5
int SensorValue = 0;


DHT dht(DHTPIN, DHTTYPE);

WidgetLED FINLED(V0);
WidgetLED FOGLED(V1);
WidgetLED PUMPLED(V5);
int setTemp;
int setHumid;
int setSensor;

BLYNK_WRITE(V22) //temperature slider in app on pin V22
{
setTemp = param.asInt();
}
BLYNK_WRITE(V23) //temperature slider in app on pin V23
{
setHumid = param.asInt();
}
BLYNK_WRITE(V24) //temperature slider in app on pin V23
{
setSensor = param.asInt();
}

void setup()
{
  
  Serial.begin(9600);
  dht.begin();
  lcd.begin();
  
  pinMode(Fin,OUTPUT);
  pinMode(Fog,OUTPUT);
  pinMode(Pump,OUTPUT);

 // timer.setInterval(1000L, sendUptime);
 // timer.setInterval(2500, Sensor);
  Blynk.begin(auth, ssid, pass);
}
void loop()
{
  Blynk.run(); 
  timer.run(); 
  
  float h = dht.readHumidity();
  float t = dht.readTemperature();

SensorValue = analogRead(SensorPin);
SensorValue = map(SensorValue, 0, 1023, 0,100);  
Serial.print("Moisture of Soil: ");
Serial.println(SensorValue);

  lcd.setCursor(0, 1);
  lcd.print("Temperature:     ");
  lcd.setCursor(12, 1);
  lcd.print(t);
  lcd.setCursor(19, 1);
  lcd.print("%");
  lcd.setCursor(0, 2);
  lcd.print("Humidity   :     ");
  lcd.setCursor(12, 2);
  lcd.print(h);
  lcd.setCursor(19, 2);
  lcd.print("C");
  lcd.setCursor(0, 3);
  lcd.print("Sensor     :     ");
  lcd.setCursor(12, 3);
  lcd.print(SensorValue);
  lcd.setCursor(19, 3);
  lcd.print("%");
  delay(2000);

  //Temp //humid
}

void sendUptime()
{  
// *****ชุดคำสั่งการทำงานของอุณหภูมิ***** *//Blynk.virtualWrite(V5, millis() / 1000);
//sensors_event_t event;
//dht.temperature().getEvent(&event);
if (!isnan(event.temperature)) {
Blynk.virtualWrite(V1, event.temperature); 
if (event.temperature >=  setTemp ) {
  digitalWrite(Fin,HIGH);
  FINLED.on();
  
 }
 else{ 
  digitalWrite(Fin,LOW);
  FINLED.off();
  //BLUELED.on();
 } 
 }
// dht.humidity().getEvent(&event);
if (!isnan(event.relative_humidity)) {
Blynk.virtualWrite(V2, event.relative_humidity);
if (event.humidity >=  setHumid ) {
  digitalWrite(Fog,HIGH);
  FOGLED.on();
  
 }
 else {
  
  digitalWrite(Fog,LOW);
  FOGLED.off();
 } 
 }
/* if (!isnan(event.relative_sensorvalue)) {
Blynk.virtualWrite(V8, event.relative_sensor);
if (event.sensor >=  setSensor ) {
  digitalWrite(Pump,HIGH);
  PUMPLED.on();
  
 }
 else {
  digitalWrite(Pump,LOW);
  PUMPLED.off();
  
 }
}*/

void Sensor()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    delay(2000);
    return;
    
  }
  Serial.print("SensorValue is: "); 
  Serial.println(SensorValue);
  
  Serial.print("Humidity is: "); 
  Serial.println(h, 1);
  Serial.print("Temperature is: "); 
  Serial.println(t, 1);
   
  Blynk.virtualWrite(V8, SensorValue);
  Blynk.virtualWrite(V2, h);
  Blynk.virtualWrite(V3, t);
}

มันแจ้งว่า ‘event’ was not declared in this scope

แถบสีแดง ขึ้นพาดอยู่ที่คำสั่งไหนครับ เวลา Run Code กอปปี้ตรงแถบแดง มาให้ดูหน่อยครับ

มีความรู้เรื่อง การเขียน Code ขนาดไหนครับ
เข้าใจคำสั่งการสั่งออก รับเข้า ข้อมูล ของ Blynk ขนาดไหนครับ

พอมีความรู้ครับแต่ไม่ถึงกับเก่ง รบกวนด้วยครับ

ใช้โค้ต กับ libary คนละตัวกันครับ ศึกษาจากกระทู้นี้

ขอบคุณครับ

อีกข้อหนึ่ง ยังไม่ได้กำหนดตัวแปรเก็บค่า event ของ temp กับ humidity เลย
เช่น t = event.temperature; และ h = event.relative_humidity;

กำหนดลงในส่วนใด ขอคำสั่งเต็มด้วยครับ

พอดีมีความรู้น้อยครับ

คำตอบอยู่ใน Link ที่พี่ @Remy_Martin ให้เข้าไปศึกษาแล้วครับ ทำทีละจุด แก้ที่ละอย่าง ครับ

ขอบคุณครับ

กระทู้นี้มีเนื้อหาเรื่องการรับค่าจาก Text input ครับ