温度计简单教程,简单到令人发指,dth11,1602
温度计简单教程,简单到令人发指,dth11,1602经过不懈的努力,花了N多的时间,终于把dth11温湿度传感器,arduino uno,1802显示,完成了,现在把其中辛苦纵然大家分享,我遇到的困难,大家也遇到,希望大家少走弯路。
前提:
如果看官真的是从零开始,建议买个DF的初级套装,然后再买个dth11温湿度传感器,一个带IIC总线的1602,后两个请自行某宝,因为DF的有点贵。然后做个温湿度计,算是对这一阶段学习的考试。
带IIC总线!!!
带IIC总线!!!
带IIC总线!!!
重要的事计三遍,我就是随随便便买了个1602,不带总线,然后接线烦了我三天,我们目的是学习,不是给自己找罪受。
此1602没带IIC总线,,接线一堆
DTH11
我用的是4号端口
温湿度传感器,记住,在arduino,你每一个零件,都要带arduino IDE编程器认识的库文件。也就是说,要有“dth11”,这一个库,然后你才能在程序中用到。提供库的下载地址,请自行下载,然后自己把这个库文件放在” C:\Program Files\Arduino\libraries”
库下载,请打开这个页面,下拉,有下载地址。
https://wiki.dfrobot.com.cn/_SKU_DFR0067_DHT11%E6%95%B0%E5%AD%97%E6%B8%A9%E6%B9%BF%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8V2
arduino uno
最普通的版本,我的是山寨版,十来元的
1602显示屏
推荐带iic总线的,然后请翻看这个教程,然后本教程后面就不需要看了。
https://mc.dfrobot.com.cn/thread-13576-1-1.html
项目九 实时温湿度检测器
带iic总线的,后面有一块小板,然后装线简单很多。
本教程说的是不带iic总线的。
1602屏的库IDE自带,不需要自己去找。
10K可调电阻
购买零件的时候记得带一个,IIC总线自带
杜邦线
杜邦线的头有的是针,有的是孔。我们使用了面包板,所以以双头针为主,大约6针孔。DF套件有。
面包板,
随意,我用DF套件里的。
Arduino IDE编程器
Arduino IDE编程器的版本很多,各个版本之间不完全兼容,我用的是1.0.6,不要贪心,如果运行不了,请下载1.0.6,与本教程作者保持一致。
avr-g++: error:
avr-g++: error: CreateProcess: No such file or directory
Arduino IDE编程器,我用的是1.0.6,不要贪心,如果运行不了,请下载1.0.6,与本教程作者保持一致。
"LiquidCrystal.h" 对应多个库
原来用的是1.6.12,各种问题,然后下载1.0.6,与本教程作者保持一致。
exit status 1
Arduino:1.6.12 (Windows XP), 开发板:"Arduino/Genuino Uno"
avr-g++: error: CreateProcess: No such file or directory
exit status 1
为开发板 Arduino/Genuino Uno 编译时出错。
请下载1.0.6,与本教程作者保持一致。
接线。
#include <LiquidCrystal.h>
此语句的意思是加载液晶显示屏的库
LiquidCrystal lcd(10,9,7,6,5,8);//定义显示屏接脚位
此语句的意思是液晶显示屏将使用10,9,7,6,5,8,这六个中断口,其中10号,9号,是控制线,也就是说传输“我要写”之类的握手信号。7,6,5,8,是数据传输口。所以,接线的时候,
LCD
1,GND
2,VCC,5V
3,电位器中
4,arduino 10
5,GND
6,arduino9
7,D0,空
8,D1,空
9,D2,空
10,D3,空
11,D4arduino7
12,D5arduino6
13,D6arduino5
14,D7arduino8
15,A,VCC,5V
16,K,GND
电位器可选10K—47K的可调电阻,两端请接正负。
Dth11,有三根线,正负,信号线用4号口。
*/++++++++++++++++++++++++++++++++++++++++
最后贴上我的程序,祝大家玩得愉快。
#include <LiquidCrystal.h>
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);
}
++++++++++++++++++
最后,祝大家玩得愉快。
我觉得也不简单呀,哈哈哈哈 支持一下
页:
[1]