36836| 24
|
[项目] 零基础小白用Arduino和1602屏做的的电子温湿度计 |
本帖最后由 gkdesign 于 2017-1-15 22:49 编辑 :) 本人为一中年电子小白,所学专业与电子完全不沾边。小时候唯一鼓捣电子元器件的就是大一(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 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed