博客
关于我
Arduino读取DHT11的温湿度显示在基于I2C的1602上
阅读量:389 次
发布时间:2019-03-05

本文共 1648 字,大约阅读时间需要 5 分钟。

战略级别的温湿度监测系统开发实录

又到了周末,B站的番剧还未更新。闲来无事,搞搞吃灰已久的Arduino。南方的冬天真冷啊,测测屋子里的温湿度怎么样!为了测量屋子里的温湿度,就用简单大方的Arduino,STM32继续吃灰去。

开发流程

开发流程,无外乎是硬件与软件啰嗦啰嗦。

一、硬件的搭建

  • Arduino 板子的选择

    本人吃土啃老大学生一枚,专业是最不赚钱的机械自动化,所以手上的板子只有国产Arduino UNO和ESPduino。我一开始想用ESPduino作为开发板,想着以后能把温湿度上传到云,便一开始用ESPduino结果做到一半发现DAC口只有一个,根本不能实现用LiquidCrystal_I2C库(这个库最低要两个DAC口),Arduino yun买不起,就只有用UNO了。

  • 其他配件

    杜邦线就不用说了,还有DHT11和接有PCF8572AT的LCD1602啦。为什么LCD1602要接PCF8572AT?因为省线,只要4根线,电源两根、I2C通讯两根。而且还有配套的库,方便实惠。

  • 接线

    LCD1602 I2C模块与Arduino Uno的接线方法如下:

    • GND与GND接地线
    • VCC与3.3V接电源
    • SDA与A4
    • SCL与A5
      DHT11模块与Arduino Uno的接线方法如下:
    • GND与GND接地线
    • VCC与3.3V接电源
    • DATA与PIN 2
  • 二、开始编程

  • 开发环境

    开发环境我选择最有逼格的VS
    [注:VS能开发Arduino???眼见为实]
    Visual Micro,查一查CSDN别人写的博客就OK啦,反正我是搞了很久才破解好的。想要高逼格就要下功夫。

  • 程序写入

    // Visual Micro 是在 vMicro > General > Tutorial Mode#define uint unsigned int#define ulong unsigned long#define DHT11PIN 2float humi, temp;#define LCD_ADDRESS 0x3F // 1602的I2C地址,通常为0x20或0x27LiquidCrystal_I2C lcd(LCD_ADDRESS, 16, 2);dht11 DHT11;void setup() {    // 1602初始化    lcd.init();    lcd.backlight();    delay(500);}void loop() {    // 读取DHT11    int chk = DHT11.read(DHT11PIN);    // 设置LCD光标    lcd.setCursor(0, 0);    // 打印湿度    lcd.print("Humi(%):");    lcd.print((float)DHT11.humidity, 2);    // 设置LCD光标    lcd.setCursor(0, 1);    // 打印温度    lcd.print("Temp(oC):");    lcd.print((float)DHT11.temperature, 2);    // 延时一段时间    delay(3000);}

    说明:PCF8572AT是有地址的,地址不对可能显示不出来,建议通过谷歌或百度查找相关程序和原理。这些库要自己装,否则会报错。DHT11和LCD1602 I2C库的下载地址均为GitHub。将下载的库放到Arduino的库文件夹D:\Arduino IDE\Arduino\libraries中。

    在Visual Micro下可以自动加载未下载的库,十分方便。

  • 实验效果

    室内15°C的温度71%的湿度,湿冷湿冷的,在大连的朋友说室内穿短袖,要不停的喝水否则口干舌燥的,羡慕唉。

    展望

    想以后能把数据传到网上,树莓派啊,Micro Python啊都用上,做一个智能家居系统。可是我啥也不会啊。。。

    转载地址:http://pnewz.baihongyu.com/

    你可能感兴趣的文章
    PHP文件锁
    查看>>
    php文本框输入制定文本,php – 当用户没有向文本框输入任何内容时...
    查看>>
    PHP时间戳和日期相互转换操作总结
    查看>>
    php时间戳知识点,php 时间戳函数总结与示例
    查看>>
    PHP查找数组中最大值与最小值
    查看>>
    php查最大值,在PHP数组中查找最大值
    查看>>
    php标签筛选,关于PHP CodeIgniter框架中通过<a>标签和url做多条件分类筛选
    查看>>
    php根据年月日计算年龄
    查看>>
    RabbitMQ - 单机部署(超详细)
    查看>>
    php检查注册,PHP检查注册的电子邮件地址是一个’school.edu’地址
    查看>>
    php模拟发送GET和POST请求
    查看>>
    php模板引擎smarty
    查看>>
    php正则表达式的特殊字符含义
    查看>>
    PHP水仙花问题解法之一
    查看>>
    php没有解析是怎么回事,linux下php文件没有被剖析怎么办?_后端开发
    查看>>
    php注册页面实现注册后跳转页面
    查看>>
    PHP消息队列的实现方式与详解,值得一看
    查看>>
    PHP混合Go协程并发
    查看>>
    php源码中如何添加滚动公告,给WordPress网站添加滚动公告的方法
    查看>>
    php漏洞tips
    查看>>