机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。

项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html


本篇博文将使用DHT11做一款温湿度检测器,检测的温湿度数据将通过LCD1602显示。

项目连线效果如下所示:

实现代码如下所示:

#include <dht11.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x20,16,2);  //设置LCD的地址为0x20,可以设置2行,每行16个字符 dht11 DHT;
#define DHT11_PIN 4void setup(){lcd.init();                 // LCD初始化设置lcd.backlight();           // 打开LCD背光Serial.begin(9600);       // 设置串口波特率9600//串口输出”Type, status, Humidity(%), Temperature(C)”Serial.println("Type,\tstatus,\tHumidity(%),\tTemperature(C)");lcd.print("Humidity(%): ");    //LCD屏显示” Humidity(%):”lcd.setCursor(0, 1);            //光标移到第2行,第一个字符lcd.print("Temp(C): ");         //LCD屏显示”Temp(C):”
}void loop(){int chk;     //chk用于存储DHT11传感器的数据Serial.print("DHT11, \t");     //读取DHT11传感器的数据chk = DHT.read(DHT11_PIN);    switch (chk){    case DHTLIB_OK:  Serial.print("OK,\t"); break;case DHTLIB_ERROR_CHECKSUM: Serial.print("Checksum error,\t"); break;case DHTLIB_ERROR_TIMEOUT: Serial.print("Time out error,\t"); break;default: Serial.print("Unknown error,\t"); break;}//串口显示温湿度值Serial.print(DHT.humidity,1);Serial.print(",\t");Serial.println(DHT.temperature,1);//LCD显示温湿度值lcd.setCursor(12, 0);lcd.print(DHT.humidity,1);lcd.setCursor(8, 1);lcd.print(DHT.temperature,1);delay(1000);
}

首先把用到的库声明一下:

#include <dht11.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

本项目使用到dht11.h和LiquidCrystal_l2C的库,需要加载库,那么Wire.h的库为什么不需要加载呢?因为我们下载的Arduino IDE本身自带这个库。

有了现有的库,所以只需要在程序的一开始声明一下LCD:

LiquidCrystal_I2C lcd(0x20,16,2);  //设置LCD的地址为0x20,可以设置2行,每行16个字符 

其中:

  • 0X20:是LCD I2C地址,由屏后面的A0~A1决定,可参见产品手册;
  • 16:每行16个字符;
  • 2:共2行。

程序中LiquidCrystal_I2C.h设计函数说明如下表所示:

“switch”可以理解为是“开关”,多选择开关。与if语句相似之处在于switch…case也用于判断,又与if不同点在于它能判断多种情况。使用如下所示:

需要注意几点:

1、case后面是冒号,不是分号。
2、关键字break用于退出switch语句,通常每条case语句都以break结尾。如果没有break语句,switch语句将会一直执行接下来的语句(一直向下)直到遇见一个break,或者switch语句结尾。

最后,下载运行程序看看效果吧~

和12岁小同志搞创客开发:手撕代码,做一款温湿度检测器相关推荐

  1. 和12岁小同志搞创客开发:手撕代码,做一款遥控灯

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  2. 和12岁小同志搞创客开发:手撕代码,做一款数字骰子

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  3. 和12岁小同志搞创客开发:手撕代码,做一款密室自动门

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  4. 和12岁小同志搞创客开发:手撕代码,做一款亮度可调节灯

    目录 1.PWM呼吸灯 2.亮度可调节灯 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/ca ...

  5. 和12岁小同志搞创客开发:手撕代码,做一款声控灯

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  6. 和12岁小同志搞创客开发:手撕代码,做一款人体感应灯

    目录 1.传感器原理 2.代码实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/categ ...

  7. 和12岁小同志搞创客开发:如何驱动红外遥控器?

    目录 1.红外遥控器通信原理 2.NEC协议 3.实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_3810 ...

  8. 和12岁小同志搞创客开发:手撕代码,做一款火焰报警器

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  9. 和12岁小同志搞创客开发:手撕代码,做一款节拍电子鼓

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

最新文章

  1. Shell脚本大量示例
  2. Tomcat7源码分析学习系列之二-----tomcat的真正的启动脚本catalina.bat解析
  3. Ubuntu 12.10 安装官方JDK
  4. jdk12源代码文件_JDK 11:轻松取出单文件Java源代码程序
  5. k8s挂载目录_gitlab-runner在Kubernetes环境下挂载宿主机目录的方法
  6. RK3288_Android7.1调试uart串口屏
  7. Springboot的工作机制:3 SpringApplication:SpringBoot程序启动的一站式解决方案
  8. django下载文件异常 - ValueError: read of closed file
  9. 1一9数字行书写法_阿拉伯数字1至9连笔
  10. 2022年疑点事件:NMN到底是什么?nmn到底有没有用?
  11. 7-12 愿天下有情人都是失散多年的兄妹 (25分)
  12. 点燃创业引擎的天使投资
  13. 条条道路通罗马感受古罗马帝国的辉煌时代!
  14. 2019级软件工程应用与实践-人工智能快递柜(代码分析11)
  15. 网站出现安全证书过期的原因
  16. 显著性检测——GR模型
  17. 计算机组成原理-第一章(1)-概述
  18. 无觅科技推荐: TikTok直播专线怎么选?说说TikTok直播加速的4种方案
  19. 游记#2019ZJOI自闭记
  20. 信号明确简单 顶底指标公式 通达信 副图 源码

热门文章

  1. [C] [字节跳动] [编程题] 手串
  2. C++ #if、#elif、#else和#endif指令 的使用
  3. xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b‘b\x14#e\xbc\
  4. git add . 之后 想执行回滚操作(git add 到本地仓库的代码回滚到没有add 之前的操作)
  5. 查找无序数组中第K大的数
  6. 2022-2028年中国出版业投资分析及前景预测报告(全卷)
  7. C++ 笔记(01)— 环境设置(安装g++、g++ 编译 C++、 生成可执行文件流程、解释器与编译器区别)
  8. 502 Server dropped connection
  9. 1m网速是什么意思,1m带宽是什么意思
  10. C# split 几种使用方法