วันอาทิตย์ที่ 28 กุมภาพันธ์ พ.ศ. 2559

NodeMCU with DHT11 and LCD

โปรเจคนี้เราจะใช้ NodeMcu และ DHT11 Module มาวัดสถาพอากาศเหมือนเดิม แต่จะให้แสดงผลออกจอ LCD แทนซีเรียลมอนิเตอร์

1.ต่อ NodeMcu, DHT11 Module, LCD ดังนี้

NodeMcu     DHT11
VCC--------------VCC
GND--------------GND
D6--------------DATA

NodeMCU     LCD
VCC-------------VCC
GND------------GND
D1---------------SCL
D2---------------SDA



2.ก๊อปโค๊ดข้างล่างไปวางและทำการอัพโหลด

3.หากไม่มีอะไรผิดพลาดจะได้ผลตามนี้ หากไม่ออกลองทบทวนขั้นตอนที่ผ่านมาให้ดีๆ

3 ความคิดเห็น:

  1. #include
    #include
    #include "DHT.h"
    #define BLYNK_PRINT Serial
    #include
    #include
    #define DHTPIN D7 // what digital pin we're connected to
    #define DHTTYPE DHT22 // DHT 11

    char auth[] = "c242f24f93874adfa30e39fed91b5b70";
    char ssid[] = "John";
    char pass[] = "JOHN19195";
    DHT dht(DHTPIN, DHTTYPE);

    LiquidCrystal_I2C lcd(0x3F, 20, 4);
    int inPin = D8;
    int outPin = D0;
    int RY1 = D3;
    int RY2 = D4;
    int state = HIGH;
    int reading;
    int previous = LOW;
    float h, t;
    WidgetLED led1(V1);
    WidgetLED led2(V2);
    BLYNK_WRITE (V3){
    state = param.asInt();
    digitalWrite(inPin,state);
    }
    void setup()
    {
    Serial.begin(9600);
    Blynk.begin(auth, ssid, pass);
    dht.begin();
    lcd.begin();
    lcd.backlight();
    pinMode(inPin, INPUT);
    pinMode(outPin, OUTPUT);
    pinMode(RY1, OUTPUT);
    pinMode(RY2, OUTPUT);
    }

    void loop() {
    Blynk.run();
    reading = digitalRead(inPin);
    delay(500);
    if (reading == HIGH && previous == LOW) {
    if (state == HIGH)
    state = LOW;
    else
    state = HIGH;
    }
    digitalWrite(outPin, state);
    previous = reading;
    fog();
    h = dht.readHumidity();
    t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

    if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
    }

    fan();
    lcd.setCursor(1,1);
    lcd.print("Temp");
    //lcd.setCursor(1,1);
    lcd.print(t);
    lcd.print((char)223);
    lcd.print("C ");

    lcd.setCursor(1,0);
    lcd.print("Humidity");
    lcd.print(h);
    lcd.print("%H");

    Blynk.virtualWrite(V5, h);
    Blynk.virtualWrite(V6, t);

    }
    void fog()
    {
    if(state == HIGH){
    digitalWrite(RY1,LOW);
    digitalWrite(outPin,HIGH);
    led1.on();
    delay(2000);
    digitalWrite(RY1,HIGH);
    digitalWrite(outPin,LOW);
    led1.off();
    delay(3000);
    }else{
    digitalWrite(RY1,HIGH);
    digitalWrite(outPin,LOW);
    led1.off();
    }
    }
    void fan()
    {
    if( t >= 30)
    {
    digitalWrite(RY2,LOW);
    led2.on();
    }else{
    digitalWrite(RY2,HIGH);
    led2.off();
    }
    }


    ตอบลบ
  2. ความคิดเห็นนี้ถูกผู้เขียนลบ

    ตอบลบ
    คำตอบ
    1. ความคิดเห็นนี้ถูกผู้เขียนลบ

      ลบ