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

不脱发的程序猿 不脱发的程序猿     2023-03-09     785

关键词:

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

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

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

...net/m0_38106923/category_11097422.html 本篇博文将使用DHT11做一款温湿度检测器,检测的温湿度数据将通过LCD1602显示。项目连线效果如下所示:实现代码如下所示:#include<dht11.h>#include<Wire.h>#include<LiquidCrystal_I2C.h>... 查看详情

和12岁小同志搞创客开发:手撕代码,做一款声控灯(代码片段)

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 之前两篇博文主要是数字量输入、输出类型传感器的驱动。和12岁小同志搞创客开发... 查看详情

和12岁小同志搞创客开发:手撕代码,做一款声控灯(代码片段)

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 之前两篇博文主要是数字量输入、输出类型传感器的驱动。和12岁小同志搞创客开发... 查看详情

和12岁小同志搞创客开发:手撕代码,做一款遥控灯(代码片段)

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文是创客开发:手撕代码篇的最后一节,项目在之前使用Mind+编程... 查看详情

和12岁小同志搞创客开发:手撕代码,做一款遥控灯(代码片段)

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文是创客开发:手撕代码篇的最后一节,项目在之前使用Mind+编程... 查看详情

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

...1、PWM呼吸灯2、亮度可调节灯机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文中的项目之前使用Mind+编程软件已经实现过... 查看详情

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

...1、PWM呼吸灯2、亮度可调节灯机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文中的项目之前使用Mind+编程软件已经实现过... 查看详情

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

...1、PWM呼吸灯2、亮度可调节灯机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文中的项目之前使用Mind+编程软件已经实现过... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 所谓密室自动门,就是这门不是轻易能打开的,存在着某些玄关需要你去破... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 所谓密室自动门,就是这门不是轻易能打开的,存在着某些玄关需要你去破... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 小时候都玩过飞行棋吧,是不是特别喜欢掷骰子,今天就要通过Arduino来做个... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 小时候都玩过飞行棋吧,是不是特别喜欢掷骰子,今天就要通过Arduino来做个... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 在厨房安装一个火焰报警器应该是非常管用的,如果不小心忘关煤气的话,... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 在厨房安装一个火焰报警器应该是非常管用的,如果不小心忘关煤气的话,... 查看详情

和12岁小同志搞创客开发:手撕代码,点亮led灯(代码片段)

...1、Arduino编程架构2、点亮LED灯机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文将在ArduinoIDE软件中手写第一个小Demo,点... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文做一个有趣的小项目,节拍电子鼓:在架子鼓上装上炫彩的LED灯... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文做一个有趣的小项目,节拍电子鼓:在架子鼓上装上炫彩的LED灯... 查看详情

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

...录1、传感器原理2、代码实践机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文我们要手写代码做一款人体感应灯。要求࿱... 查看详情