arduino和OLED、DHT11做一个温湿度显示计

这段时间迷上了arduino,做的东西很有趣很好玩,而且入门很简单,特别学过编程语言的学起来更简单,不需要太多的硬件知识,后续将更新更多arduino实例文章,比如指纹锁,门禁卡,机器人,智能平衡车,有兴趣的可以关注智联电子DIY.

这次的实例是一个通过arduino,oled,和温湿度传感器做一个温湿度显示器

模块清单

1.arduino UNO开发板

arduino和OLED、DHT11做一个温湿度显示计

2.0.96寸 12864 l2C oled显示屏

arduino和OLED、DHT11做一个温湿度显示计

3.DHT11温湿度传感器

arduino和OLED、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更多有趣好玩的电子制作教程等着你


分享到:


相關文章: