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

news2025/1/11 14:07:12

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);
      else
        digitalWrite(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);
      else
        digitalWrite(10,LOW);
      delay(500);  
    }  
    
  • 编译并上传程序测试效果

    GIF.gif

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

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

相关文章

EPS地形图绘制技巧--快捷键

如何导入外业点数据&#xff1f; &#xff08;1&#xff09;打开EPS软件&#xff0c;新建一个工程。如下&#xff1a; &#xff08;2&#xff09;在【文件】-【输入输出】-【调入坐标文件数据】中&#xff0c;调入测量点数据&#xff0c;如下&#xff1a; &#xff08;3&#…

asp.net_sql2008公司人事管理系统

登录模块 流程图&#xff1a; ◆ 职工输入用户名、密码并选择登录身份&#xff0c;根据选择的身份做不同的操作 ◎ 若选择的是“职工”&#xff0c;系统将查询数据库中的用户表Users的记录&#xff0c;用户名密码核对正确后加载职工主界面&#xff1b; ◎ 若选择的是“管理员…

Find My扩展坞|苹果Find My技术与扩展坞结合,智能防丢,全球定位

扩展坞又称端口复制器&#xff0c;是专为笔记本电脑设计的一种外置设备。通过复制甚至扩展笔记型计算机的端口&#xff0c;可使笔记本电脑与多个配件或外置设备&#xff08;如电源适配器、网线、鼠标、外置键盘、打印机及外置显示器&#xff09;方便的一站式连接。随着全球经济…

Perplexity发布两款LLM模型:pplx-7b-online和pplx-70b-online 可利用实时互联网数据查询

Perplexity AI&#xff0c;一家创新的人工智能初创公司&#xff0c;近日推出了一项能够改变信息检索系统的解决方案。该公司推出了两款新的大语言模型&#xff08;LLMs&#xff09;&#xff0c;分别是pplx-7b-online和pplx-70b-online&#xff0c;标志着首次通过API公开访问在线…

C# OpenVINO 模型信息查看工具

目录 效果 支持模型 项目 代码 下载 C# OpenVINO 模型信息查看工具 效果 支持模型 ONNX format (*.onnx) PDPD (*.pdmodel) TF (*.pb) TFLite (*.tflite) 项目 代码 using Sdcb.OpenVINO; using System; using System.Collections.Generic; using System.Text; using…

docker部署typecho博客

文章目录 1.安装git2.安装compose3.拉取仓库4.创建目录5.配置文件修改6.启动容器7.修改MYSQL数据库8.安装成功9.参考GitHub文档 1.安装git 安装git yum -y install git2.安装compose &#xff08;docker安装参考&#xff1a;docker基本知识&#xff09; 确保已经安装了 Doc…

数组中第k个最大元素(优先队列)

class Solution { public:int findKthLargest(vector<int>& s, int k) {priority_queue<int> pq;for(int i 0; i < s.size(); i){pq.push(s[i]);}for(int i 1; i < k; i){pq.pop();}return pq.top();} }; priority_queue<int> pq为优先队列 s.s…

傅里叶变换及其在机器学习中的应用

​​​​​​​一、介绍 傅立叶变换是一种数学技术&#xff0c;在各个科学和工程领域发挥着关键作用&#xff0c;其应用范围从信号处理到量子力学。近年来&#xff0c;它在机器学习领域发现了新的意义。本文探讨了傅里叶变换的基础知识及其在机器学习应用中日益增长的重要性。 …

万界星空科技注塑mes

塑料制品产业虽然有一定的规模和基础&#xff0c;但存在自主创新能力低、“散小乱”、品牌效应不明显、行业创新能力与庞大的产业不匹配或支撑不足等问题&#xff0c;塑料加工行业还处在质量型产业的初期&#xff0c;抗风险能力低。注塑行业6大痛点&#xff1a; 1.生产效率低 注…

堆排序(C语言)

前言 在上一篇内容&#xff1a;大小堆的实现&#xff08;C语言&#xff09;&#xff0c;我们实现了关于创建大小堆的各函数与实现。但是如果突然要使用一个堆排序但是此时并没有一个现成的堆&#xff0c;这就需要花费时间去新建实现堆的插入删除这些操作从而实现一个堆&#xf…

如何有效进行主数据治理

在企业信息化建设不断推进、逐渐进行数字化转型的今天&#xff0c;几乎所有的企业都卷入到数据及其处理&#xff08;数据收集、存储、检索、传输、分析和表示&#xff09;的浪潮中&#xff0c;数据已成为重要生产要素和无形资产&#xff0c;针对主数据的全生命周期管理迫在眉睫…

老司机带你一课学透,核心分布式事务框架之Alibaba Seata框架经验总结

在现代分布式系统中&#xff0c;保证数据的一致性和可靠性是一项重要的挑战。Alibaba Seata是一款开源的分布式事务解决方案&#xff0c;它提供了强大的支持&#xff0c;帮助开发者处理分布式事务。本文将向您介绍Alibaba Seata框架&#xff0c;并分享一些使用该框架的经验总结…

Java零基础——SpringSecurity篇

1.认证授权的基础概念 1.1 什么是认证&#xff08;登录&#xff09; 进入移动互联网时代&#xff0c;大家每天都在刷手机&#xff0c;常用的软件有微信、支付宝、头条等&#xff0c;下边拿微信来举例子说明认证相关的基本概念&#xff0c;在初次使用微信前需要注册成为微信用户…

31名!美创科技再次入选《中国网络安全企业100强》

12月1日&#xff0c;安全牛联合中国计算机学会抗恶劣环境计算机专业委员会、信息产业信息安全测评中心正式发布第十一版《中国网络安全企业100强》&#xff08;以下简称“100强”&#xff09;。 美创科技再次入选“中国网络安全企业100强”&#xff0c;位列31名&#xff08;数据…

07、基于LunarLander登陆器的强化学习案例(含PYTHON工程)

07、基于LunarLander登陆器的强化学习&#xff08;含PYTHON工程&#xff09; 开始学习机器学习啦&#xff0c;已经把吴恩达的课全部刷完了&#xff0c;现在开始熟悉一下复现代码。全部工程可从最上方链接下载。 基于TENSORFLOW2.10 0、实践背景 gym的LunarLander是一个用于…

无需服务器,无需魔法,拥有一个微信机器人就是这么简单

前情提要 还没看过的朋友可以看一下上一篇文章《拥有一个微信机器人总共需要几步&#xff1f;》在这篇文章里&#xff0c;我们提到&#xff0c;创建微信机器人需要一个大前提--你得有一台服务器。现在&#xff0c;不再需要了&#xff01;没错&#xff0c;上一篇提到的Serverles…

Python爬虫:使用Scrapy框架进行高效爬取

Python爬虫可使用的架构有很多&#xff0c;对于我而言&#xff0c;经常使用Scrapy异步处理框架Twisted&#xff0c;其实意思很明确&#xff0c;Scrapy可以实现多并发处理任务&#xff0c;同一时间将可以处理多个请求并且大大提高工作效率。 Scrapy是一个强大且高效的Python爬虫…

文章阅读——Scaffolding protein functional sites using deep learning

1.最终幻想: 无中生有的蛋白质从头设计 零.导读 近几年&#xff0c;蛋白质结构预测领域连续取得重大突破。首先是【AlphaFold】&#xff0c;在可以充分利用共进化信息结合深度神经网络生成空间约束条件并降低相空间的搜索&#xff0c;极大地帮助了蛋白质的结构建模&#xff0…

扁平按钮样式

上图 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>扁平按钮</title><style>body {margin: 0;padding: 0;height: 100vh;display: flex;justify-content: center;ali…

改造python3中的http.server为简单的文件上传下载服务

改造 修改python3中的http.server.SimpleHTTPRequestHandler&#xff0c;实现简单的文件上传下载服务 simple_http_file_server.py&#xff1a; # !/usr/bin/env python3import datetime import email import html import http.server import io import mimetypes import os …