零基础小白用Arduino和1602屏做的的电子温湿度计
2017-01-145.6万
AI 快速预览详细
本文介绍了零基础新手如何使用Arduino UNO、DHT-11温湿度感应器和1602显示屏制作电子温湿度计。作者通过查找教程并自行组合代码,成功解决了1602屏幕不显示数据的问题。最终实现了在1602屏幕和串口监视器上同时显示温湿度数据的效果。整个过程包括硬件连接、代码编写和数据校验。
|
:) 本人为一中年电子小白,所学专业与电子完全不沾边。小时候唯一鼓捣电子元器件的就是大一(96年)开始给人攒PC机赚钱,到大三发现通过所学专业炒更更赚钱时果断扔了螺丝刀。这次接触Arduino是因为上小学三年级的儿子学校教机器人,为了辅导儿子而买了点板子和零件。拆开包装的一瞬间找到了21年前攒机的感觉,遂。。。自己试着玩儿起来。 平常工作忙,在论坛上一直潜水。这周末正好没应酬没加班,就开始了自己的探索之旅。 所用部件: 1、Arduino UNO 一个 2、DHT-11温湿度感应器一个 3、1602显示屏一个 4、面包版一个 5.杜邦线一大把 5、202 2K电位器一个 工作流程: 1、先上网翻帖子,找到别人详细的教程。最终选中了DFRobot上的一篇。根据上面的连线图把自己的零件照猫画虎的连接了起来。 2、把论坛帖子上的代码copy过来,直接校验、上传。 3、发现失败了!!!串口监视器能显示湿度、温度,但是在1602屏幕上啥都没有! 3、再次翻帖子,多找了几个教程,最后根据自己无限的自学能力总结了一下各帖子代码,自行组合了一套新代码(在这里手动佩服自己)。最终搞定!1602屏幕和串口监视器上都能显示数据了! 以下是部件被组装起来的样子 加一张手画的示意图:) ![]() 先来个数据显示^o^ ![]() 1、Arduino UNO ![]() 2、插在面包板上的1602显示屏 3、DHT-11温湿度感应器 ![]() 4、杜邦线连接 ![]() ![]() ![]() 这里说一下,很多帖子上的电位器连线都是三根,可是我用三线连接永远是不能显示文字的,当我拔掉左边杜邦线时就正常了。小白求问:这是为啥啊??? 5、放到冰桶里虐待 ![]() 6、放到烧水壶里继续虐待 ![]() 7、数据校验 ![]() 8、收集数据并用Excel做表格 ![]() ![]() 9、最后来张全家福 ![]() 以下是自己组合了三个教程的代码: #include <LiquidCrystal.h> //LiquidCrystal lcd(12,11,5,4,3,2); //定义脚位 LiquidCrystal lcd(10,9,7,6,5,8); //定义显示屏接脚位 #include <dht11.h> #include <Wire.h> dht11 DHT; #define DHT11_PIN 4 void setup() { lcd.begin(16,2); //设置LCD显示的数目。16 X 2:16格2行。 Serial.begin(9600);// 设置串口波特率9600 //串口输出”Type, status, Humidity(%), Temperature(C)” Serial.println("Type,\tHumidity(%),\tTemperature(C)"); } void loop() { int chk;//chk用于存储DHT11传感器的数据 Serial.print("DHT11 \t"); //读取DHT11传感器的数据 chk = DHT.read(DHT11_PIN); switch(chk) { caseDHTLIB_OK: Serial.print("OK,\t"); break; caseDHTLIB_ERROR_CHECKSUM: Serial.print("Checksum error,\t"); break; caseDHTLIB_ERROR_TIMEOUT: Serial.print("Time out error,\t"); break; Serial.print("Unknown error,\t"); break; } //串口显示温湿度值 Serial.print(DHT.humidity,1); Serial.print("\t"); Serial.println(DHT.temperature,1); // lcd.setCursor(0,1); //将闪烁的光标设置到column 0, line 1 (注释:从0开始数起,line 0是显示第一行,line 1是第二行。) // lcd.print(millis()/1000); //开机后屏幕现实以秒几时的时间 lcd.setCursor(0,0); lcd.print("Humidity(%)");//在lcd第一行显示"Humidity(%)" lcd.print(DHT.humidity,1); lcd.setCursor(0,1); lcd.print("Temperature(C)");//在lcd第二行显示"Temperature(C)" lcd.print(DHT.temperature,1); delay(1000); } 好了!帖子写完! 查熊孩子期末考试成绩去了! 2017.01.14 |

















推荐你给他用 Linkboy这个软件
不需要底层编程
软件就可以搭建模块,然后简单逻辑设计,仿真
就可以做出漂亮的简单的项目了
温湿度采样用的什么?
想要用echarts库搞个网页版的图表
作为小白都是用现成的i2c lcd,这个占用接口太多啦
PS:你的闹钟和我家的一样:lolhttps://mc.dfrobot.com.cn/thread-28682-1-1.html
网页名字
学习学习
还是粘贴后处理的?