這段時間迷上了arduino,做的東西很有趣很好玩,而且入門很簡單,特別學過編程語言的學起來更簡單,不需要太多的硬件知識,後續將更新更多arduino實例文章,比如指紋鎖,門禁卡,機器人,智能平衡車,有興趣的可以關注智聯電子DIY.
這次的實例是一個通過arduino,oled,和溫溼度傳感器做一個溫溼度顯示器
模塊清單
1.arduino UNO開發板
2.0.96寸 12864 l2C oled顯示屏
3.DHT11溫溼度傳感器
4.導線
5.麵包板
硬件電路
OLED接線方式:
VCC3.3V
GNDGND
SCLA5
SDAA4
DHT11接線方式:
GNDGND
DATA2(數字輸入/輸出)
VCC5V
軟件代碼
一.代碼使用庫共享(包括dht11與U8glib): 將文件解壓後導入到Arduino IDE安裝路徑中的library文件中即可
二.代碼編寫
1.打開arduino IDE
2.將以下代碼複製到編程界面
// 128x64 I2C OLED
#include
// DHT11數字傳感器庫
#include "U8glib.h"
// OLED庫
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // I2C
dht11 DHT11;
#define DHT11PIN 2
// Data鏈接數字針腳2
void draw(void) {
u8g.setFont(u8g_font_8x13); //使用8x13大小的字符
u8g.setPrintPos(0, 20); // 對應 x,y 軸值
u8g.print("HUMI(%) :");
u8g.setPrintPos(73, 20);
u8g.print((float)DHT11.humidity);
u8g.setPrintPos(0, 40);
u8g.print("TEMP(oC):");
u8g.setPrintPos(73, 40);
u8g.print((float)DHT11.temperature);
}
void setup()
{
Serial.begin(9600);//串口波特率
Serial.println("DHT11 TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT11LIB_VERSION);
Serial.println();
}
void loop()
{
Serial.println("\n");
int chk = DHT11.read(DHT11PIN);
Serial.print("Read sensor: ");
switch (chk)
{
case DHTLIB_OK:
Serial.println("OK");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.println("Checksum error");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.println("Time out error");
break;
default:
Serial.println("Unknown error");
break;
}
Serial.print("Humidity (%): ");
Serial.println((float)DHT11.humidity, 2);
Serial.print("Temperature (oC): ");
Serial.println((float)DHT11.temperature, 2);
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
delay(200);
}
3.燒寫代碼
關注智聯電子diy更多有趣好玩的電子製作教程等著你