基於Arduino的溫度、溼度採集系統

準備材料

  • Arduino UNO R3 開發板;
  • LCD1602模塊;
  • DTH11模塊;
  • 杜邦線若干;

硬件線路鏈接

LCD1602線路連接

VSS VDD V0 RS RW E D0 D1 D2 D3 D4 D5 D6 D7 A K
GND 5V 10 7 GND 6 NA NA NA NA 5 4 3 2 5V GND

DTH11 線路連接

Vcc DATA GND
5V 8 GND

程序編寫

#include <LiquidCrystal.h>
#include <DHT.h>

#define DHTPIN 8            
#define DHTTYPE DHT11

const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);      // 申明一個lcd對象

DHT dht(DHTPIN, DHTTYPE);                       // 申明一個dht對象

const int lcd_v0 = 10;                          // 用10腳輸出PWM信號,控制LCD對比度

void setup()
{
    lcd.begin(16,2);                            // 初始化LCD

    pinMode(lcd_v0,OUTPUT);                     // LCD 對比度控制管腳配置
    analogWrite(lcd_v0,100);
    
    lcd.setCursor(0,0);                         // LCD初始內容顯示
    lcd.print("tempe:");
    lcd.setCursor(0,1);
    lcd.print("Humi :");
    delay(500);

    dht.begin();                                // DTH11 初始化
}    

void loop()
{
    int i = 0;

    delay(500);

    float humidity = dht.readHumidity();        // 讀取DTH11 溼度信息
    float temperature = dht.readTemperature();  // 讀取DTH11 溫度信息

    lcd.setCursor(7,0);                         // 將溫度信息顯示在第一行
    lcd.print(temperature);
    //lcd.setCursor(17,0);
    lcd.print((char)223);
    lcd.print("C");

    lcd.setCursor(7,1);                         // 將溼度信息顯示在第二行
    lcd.print(humidity);
    lcd.print((char)37);
    lcd.print("RH");

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章