写点什么

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

  • 2021 年 12 月 08 日
  • 本文字数:1311 字

    阅读完需:约 4 分钟

机缘巧合在网上认识一位 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 4
void 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 语句结尾。

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

发布于: 1 小时前阅读数: 5
用户头像

【研究方向】物联网、嵌入式、AI、Python 2018.02.09 加入

【公众号】美男子玩编程,关注获取海量资源~

评论

发布
暂无评论
和12岁小同志搞创客开发:手撕代码,做一款温湿度检测器