seacowtech 发表于 2016-12-20 09:18:30

DHT11数据 显示到 LCD12864 上面

本人小白,正在自学LCD12864,然后试试将DHT11上的数据打印到LCD12864屏幕上面。因为初学,如有不足,欢迎指教。
先说一下环境:
Arduin IDE版本:1.6.13
Arduino Mega 2560 点击购买
DHT11模块 点击购买
LCD12864 点击购买

接线的话,DHT11模块我接在了数字27端口上。

下面是代码,我在我这里是成功运行的。

//******************************
//*Abstract: Read value of temperature and humidity of air
//*          and print data on LCD 12864 screen.
//*
//*Version:V1.0
//*Author:Ran Tao @ UOW
//*Date:December.20.2016
//******************************
//导入LCD12864驱动库和DHT11库
#include <U8glib.h>
#include <dht11.h>

//创建一个u8g(LCD12864)对象
U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // U8GLIB_PCD8544(sck/sclk, mosi/sdin, ce/sce, d0/dc, reset)
//创建一个DHT11对象
dht11 DHT11;

//设置DHT11 数字端口:D27
#define DHT11_PIN 27

//自定义一个函数来检测传感器是否正常
void checkData(int chk){
if(chk!=0){
    //当chk为:-2时,表示传感器连接异常
    //传感器连接正常时,chk应为:0
    u8g.setPrintPos(0,15);
    u8g.print("Error Code: ");
    u8g.setPrintPos(35,35);
    u8g.print(chk);
    u8g.drawStr(0, 55, "Read Data Error!");
}else{
    drawScreen();
}
}

//自定义一个函数用来打印屏幕
void drawScreen(){
drawTitle();
drawData();
u8g.setFont(u8g_font_unifont);
u8g.drawStr(0, 55, "Hello World!");
}

//自定义一个函数用来打印温度湿度标题
void drawTitle(){
//设置文本字体
u8g.setFont(u8g_font_unifont);
//指定位置打印字符串
//语法:
//    LCD对象名.drawStr(X轴位置, Y轴位置, "要打印的内容");
u8g.drawStr(0, 18, "TMP:");
u8g.drawStr(0, 36, "HMD:");
u8g.drawStr(68, 18, "C");
u8g.drawStr(68, 36, "%");
}

//自定义一个函数用来打印数据
void drawData(){
//设置文本字体
u8g.setFont(u8g_font_unifont);
//对下文内容设置起始位置
//语法:
//    LCD对象名.setPrintPos(X轴位置, Y轴位置)
u8g.setPrintPos(48,18);
//打印到LCD屏幕上
//语法:
//    LCD对象名.print(变量名,字符串)
//注意: 使用前需要使用setPrintPos()函数来设置位置
u8g.print(DHT11.temperature);
u8g.setPrintPos(48,36);
u8g.print(DHT11.humidity);
}

void setup(){
//屏幕内容旋转180°
u8g.setRot180();// rotate screen
}

void loop(){
//从传感器端口读取数据
int check = DHT11.read(DHT11_PIN);

// u8g loop
u8g.firstPage();
drawScreen();
do {
    checkData(check);
} while( u8g.nextPage() );
//每秒刷新一次
delay(1000);
}



后面还会更新详细的LCD12864使用说明,感觉官方给的文档太少,所以自己也找来了一些资料。后面分享给大家。

我已经把u8glib库文件上传到了百度网盘。
u8glib 库文件下载地址: https://pan.baidu.com/s/1pLcwDLp]百度网盘

maomaopcy 发表于 2018-3-16 20:07:56

请问你的两个库文件如何下载安装?

yanqi 发表于 2019-3-4 13:20:11

直接在arduino加载zip就行了

gada888 发表于 2019-3-9 21:50:12

挺棒的
页: [1]
查看完整版本: DHT11数据 显示到 LCD12864 上面