认识DHT11温湿度传感器并制作温度报警器

GIF.gif

  • Arduino UNO

    图片.png

  • Arduino IDE开发环境

    图片.png

  • Arduino DHT11温湿度传感器

    图片.png

一、认识Arduino的DHT11温度湿度传感器

DHT传感器由电容式湿度传感器和热敏电阻两部分组成。除此之外,模块内部还有一些模拟信号到数字信号的转换,将温度湿度以数字信号的方式输出。

DHT11湿度温度传感器特性如下:

  • 成本较低,更适合DIY
  • 供电3.3-5V
  • 2.5ma最大电流
  • 20-80%读数精度在5%之内
  • 0-50°C温度读数精度为±2°C
  • 频率不超过1赫兹,现场每一次集中
  • 模块尺寸较小,15.5mm x 12mm x 5.5mm

DHT11模块有三个引脚加一个LED

  • VCC :连接供电电源的主板
  • DAT :将数字信号输出
  • GND :连接供电电源的规格
  • 电源指示:模块正常供电时会亮

二、编写程序获取温湿度传感器的数值

  • 连接Arudino UNO与DHT11温度湿度传感器

    Arduino UNODHT11湿度温度传感器
    GNDGND
    5VVCC
    D8DAT

    图片.png

  • 编写程序获取DHT11温湿度传感器的数字信号

    • 下载DHT11的库文件

    • 解压文件并添加至arudino安装路径下的库

      图片.png

    • 导入DHT11库文件

      #include <dht11.h>  dht11 DHT11;  
      

    • 定义指标

       #define PIN_DHT11 8 float temp,humi;
      
    • setup()初始化。

      这里大家可能会有疑问,但是为什么要获取DHT11模块的数字信号,不用初始化设定该引脚为输入模式呢?

      本质上是需要的,但是已经在库文件中定义了设置,所以这里不一定重复设置

      void setup() {Serial.begin(9600);  temp=0;humi=0;
      }
    • Loop()写入主体函数

      void loop() {DHT11.read(PIN_DHT11);  humi = (float)DHT11.humidity;temp = (float)DHT11.temperature;Serial.println(humi, 2);  Serial.println(temp, 2);  
      }
  • 连接Arduino UNO至电脑

  • 编译并上传程序至Arduino UNO

  • 测试效果

    • 接上USB运行Arduino程序的时候,可以看到DHT11模块的LED是亮着的,说明模块正常供电

    • 向模块哈气,以增加温度可以与湿度测试看数据的变化输出

      GIF.gif

三、制作温度报警器

  • 基于步骤二,连接LED与Arduino UNO

    引领Arduino UNO
    短脚GND
    长脚D10

    图片.png

  • 步骤基础二的程序整合上LED程序

    分析需求,这里我们仅使用DHT11提供的温度

    • 当温度大于23的时候,点亮LED
    • 当温度小于23的时候,马上LED

    定义指标

    #define PIN_DHT11 8 
    float temp,humi;
    

    setup() 初始化

    void setup() {Serial.begin(9600);  pinMode(10,OUTPUT);temp=0;humi=0;
    }
    

    Loop()函数主体

    void loop() {DHT11.read(PIN_DHT11);  Serial.print("湿度 (%): ");  humi = (float)DHT11.humidity;Serial.println(humi, 2);  Serial.print("温度 (oC): ");  temp = (float)DHT11.temperature;Serial.println(temp, 2);  if(temp > 23)digitalWrite(10,HIGH);elsedigitalWrite(10,LOW);delay(500); 
    }
    

    整合全部程序:

    #include <dht11.h>  dht11 DHT11;  
    #define PIN_DHT11 8 
    float temp,humi;
    void setup()  
    {  Serial.begin(9600);  pinMode(10,OUTPUT);temp=0;humi=0;
    }  void loop()  
    {  DHT11.read(PIN_DHT11);  Serial.print("湿度(%): ");  humi = (float)DHT11.humidity;Serial.println(humi, 2);  Serial.print("温度(oC): ");  temp = (float)DHT11.temperature;Serial.println(temp, 2);  if(temp > 23)digitalWrite(10,HIGH);elsedigitalWrite(10,LOW);delay(500);  
    }  
    
  • 编译并上传程序测试效果

    GIF.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/195247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS4.0系列——03、声明式UI、链式编程、事件方法、以及自定义组件简单案例

HarmonyOS4.0系列——03、声明式UI、链式编程、事件方法、以及自定义组件简单案例 声明式 UI ArkTS以声明方式组合和扩展组件来描述应用程序的UI&#xff0c;同时还提供了基本的属性、事件和子组件配置方法&#xff0c;帮助开发者实现应用交互逻辑。 如果组件的接口定义没有包…

Cesium 展示——新增需求和分析

文章目录 二三维视图的打点飞线&#xff0c;二三维实现联动需求分析 模型点击事件需求分析 二三维标绘图标&#xff0c;依比例和不依比例缩放需求分析二维标绘图标依比例缩放不依比例缩放 三维标绘图标依比例缩放不依比例缩放 经纬度和地名互查需求分析经纬度转地名地名转经纬度…

编织魔法——我与计算机的不解之缘

一、为什么当初选择计算机行业 小时候&#xff0c;我就对电脑充满了好奇。每次看到屏幕上闪烁的光标&#xff0c;我都觉得那是一种神秘的召唤。当我第一次听说“程序员”这个词&#xff0c;我就知道那是我梦寐以求的职业。因为&#xff0c;我梦想成为神奇的码农&#xff0c;我想…

基于HTML 实现的示波器-含完整源码

完整资料下载连接 基于HTML 实现的示波器-含jshtmlcss完整源码 改源码是在桌面 PC 上设计的&#xff0c;分辨率为 1920 x 1080 像素&#xff0c;但宽高像素比为 1.4 到 1.6 的任何分辨率都将产生良好的图像。它适用于以下浏览器的最新版本&#xff1a;Internet Explorer、Edge、…

Smart Git报警unable to unlink old

问题现象 文件改错了&#xff0c;想丢弃修改&#xff0c;结果Smart Git提示这个 解决思路 问一下chat GPT 他提供的234明显是错误答案&#xff0c;1和5都是删除文件&#xff0c;于是把这个文件删了&#xff0c;在丢弃删除操作看看&#xff0c;然后就还原文件了。

高效且实用的表单配置方式:低代码表单上传文件后即刻回显

在现代业务处理流程中&#xff0c;表单上传文件功能的实现已经变得日益重要。而对于用户在上传文件后能够即时看到文件名称的需求&#xff0c;更是对于表单设计的一个基本期望。为了满足这一期望&#xff0c;JVS低代码表单提供了一种高效且实用的配置方式&#xff0c;使得文件名…

以满足全球日益增长的能源需求

在&#xff0c;以满足全球日益增长的能源需求。我们以创新为动力&#xff0c;推出太阳能发电纸系列&#xff0c;将绿色能源与现代科技完美结合&#xff0c;开启了一个全新的绿色能源时代。 太阳能发电纸系列它以创新的设计和高效的功能&#xff0c;将太阳能发电技术推向了一个…

MySql 知识点汇总

目录 MySql 知识点汇总1、基础概念1、数据库三范式是什么?2、MySql的事务是什么?3、事务的 ACID 特性是什么?4、并发事务带来哪些问题?5、事务的四个隔离级别及其区别?6、Mysql中有哪几种锁?7、MySql 索引了解8、MySql默认引擎的区别2、MySQL优化方面1、索引知识点:1>…

【C++11(一)】右值引用以及列表初始化

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; C11 1. 前言2. 统一的列表初始化3. initializer…

SPM/SCM 流量跟踪体系

SPM SPM&#xff08;shopping page mark&#xff0c;导购页面标记&#xff09; 是淘宝社区电商业务&#xff08;xTao&#xff09;为外部合作伙伴&#xff08;外站&#xff09;提供的跟踪引导成交效果数据的解决方案 注&#xff1a;也有解释 SPM 为超级位置模型(Super Position…

ant Design of vue 实现table每栏动态根据条件设置背景颜色(table栏每一栏颜色自定义)

效果图&#xff1a; 注意效果图中&#xff0c;table的表格每一栏颜色都要不一样 代码实现&#xff1a; 页面结构&#xff1a; <a-table :columns"columns" :loading"tableLoading" :data-source"tableData" rowKeyid size"middle&quo…

Spring 向页面传值以及接受页面传过来的参数的方式

一、从页面接收参数 Spring MVC接收请求提交的参数值的几种方法&#xff1a; 使用HttpServletRequest获取。 RequestMapping("/login.do") public String login(HttpServletRequest request){ String name request.getParameter("name") String pa…

5-20V升降压转12V2A自动升降压芯片:AH6971高效、稳定、安全

5-20V升降压转12V2A自动升降压芯片&#xff1a;高效、稳定、安全 随着科技的飞速发展&#xff0c;各种电子设备对电源的要求越来越高。一款高效、稳定、安全的电源芯片成为众多工程师亟待解决的问题。今天&#xff0c;我们就来为大家介绍一款5-20V升降压转12V2A的自动升降压芯…

最近在对接电商供应链,说说开放平台API接口

B2B电商开放平台的设计需要从以下几面去思考&#xff1a; 开放平台API接口的接入&#xff0c;主要是从功能需求的角度&#xff0c;设计满足业务需求的接口及对应的字段&#xff1b; 平台与商家之间信息的对接&#xff0c;对接的方法有哪些&#xff1f;对接过程中需要可能会遇到…

GPU深度学习性能的三驾马车:Tensor Core、内存带宽与内存层次结构

编者按&#xff1a;近年来&#xff0c;深度学习应用日益广泛&#xff0c;其需求也在快速增长。那么&#xff0c;我们该如何选择合适的 GPU 来获得最优的训练和推理性能呢&#xff1f; 今天&#xff0c;我们为大家带来的这篇文章&#xff0c;作者的核心观点是&#xff1a;Tensor…

NET Core迁移前工作

前段时间迁移.NET Core做了大量的试水和评估&#xff0c;今天整理一下分享给大家。大致有以下几个部分&#xff1a; 1. .NET Core的由来 2. 为什么要迁移.NET Core 3. .NET Core3.X主要特性 4. .NET Standard和.NET Core 5. .NET Core Roadmap&版本选择 接下来&#…

Linux4.8、环境变量续

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 前言 如果对环境变量没有基本的理解&#xff0c;那么建议先看完这篇文章&#xff1a;环境变量https://blog.csdn.net/m0_74824254/article/details/134661113?spm1001.2014.3001.5501 环境变量与本地变量区别 使用export设…

代码随想录算法训练营第五十三天

1143.最长公共子序列 稍微思考即可通过&#xff0c;但是dp状态转移方程并不明确&#xff0c;靠感觉写的。解答和我想的也差不多。 1035.不相交的线 就是最长公共子序列的抽象版本&#xff0c;解答方式一模一样&#xff0c;不过对于抽象问题&#xff0c;要能将其对应为做过的…

pyspark读取数据库性能优化

当数据量很大时&#xff0c;读取方式 dbtable写sql语句 dbtable和query配置不能同时存在&#xff0c;选一种即可。里面都可以直接写sql语句 jdbcDF spark.read.format("jdbc")\.option("driver",driver)\.option("url",url)\.option("d…

自动化测试的成本高效果差,那么自动化测试的意义在哪呢?

有人问&#xff1a;自动化测试的成本高效果差&#xff0c;那么自动化测试的意义在哪呢&#xff1f; 我觉得这个问题带有很强的误导性&#xff0c;是典型的逻辑陷阱之一。“自动化测试的成本高效果差”是真的吗&#xff1f;当然不是。而且我始终相信&#xff0c;回答问题的最…