2017年4月29日 星期六

筆記 Arduino DHT11溫濕度計

Arduino DHT11溫濕度計


簡易溫濕度計製作

材料


  1. Arduino *1 (Uno)
  2. 麵包板 *1
  3. 麵包板跳線 數根
  4. DHT11 *1
  5. OLED面板 *1 (SSD1306)

電路圖



接線圖



CODE


// DHT sensor library - Version: Latest 
#include <DHT.h>
#include <DHT_U.h>

// U8g2_Arduino - Version: Latest 
#include <U8g2lib.h>
#include <U8x8lib.h>

#define DHTPIN 8 //定義DHT腳位
#define DHTTYPE DHT11 //定義DHT型號

//OLED面板
U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, SCL, SDA, U8X8_PIN_NONE);//(rotation, clock, data [, reset])
//DHT11溫濕度計
DHT dht(DHTPIN, DHTTYPE);
 
float h = 0; //宣告一個浮點數 用於儲存濕度 
float t = 0; //宣告一個浮點數 用於儲存溫度

void setup() {
  u8g2.begin();
}

void loop() {
  h = dht.readHumidity(); //取得濕度
  t = dht.readTemperature(); //取得溫度
  
  u8g2.firstPage();
  do {
    draw();
  } while( u8g2.nextPage() ); 
  delay(1000);
}

void draw(){
  u8g2.setFont(u8g2_font_unifont_t_greek);//設定字型
  u8g2.setCursor(0,16);//設定位置(0,16)
  u8g2.print("DHT11 Sensor");//印出文字
  
  u8g2.setCursor(0,32);//設定位置
  u8g2.print("Humidity: ");//印出文字
  u8g2.print(h,0);//印出濕度
  u8g2.print("%");//印出單位
  
  u8g2.setCursor(0,48);//設定位置
  u8g2.print("Temperature: ");//印出文字
  u8g2.print(t,0);//印出溫度
  u8g2.print("C");//印出單位
}


影片



沒有留言:

張貼留言