ESP8266基础开发(一)---读DHT11温湿度传感器

2023-11-17

注:对于ESP8266开源技术感兴趣的可以加群,我们一起探索交流学习,群号:579932824。群名:ESP8266开源技术交流群。

这篇文章的目的是展示如何将DHT11传感器连接到ESP8266并编写一个简单的程序来测量温度和湿度。我们假设使用Arduino IDE对ESP8266进行编程。


硬件

在这种情况下,我们假设使用DHT11板,如图1所示。就个人而言,当我开始一个新的概念验证项目时,我喜欢准备上一些可用的模块。在证明了这个概念后,如果需要,我就开始进行硬件优化。

DHT11

图1 - DHT11板。

DHT11可以测量温度和湿度,是简单环境监测项目的理想选择。它的温度分辨率为1ºC,相对湿度为1%。它的温度范围在0ºC到50ºC之间,湿度的测量范围取决于温度(您可以查看数据表中的详细信息)。

与ESP8266的连接非常简单,如图2所示。在这种情况下,我们假设使用GPIO2(这是使用ESP-01板时可用的少数几种)。不过,您可以将其连接到其他GPIO引脚。如果使用NodeMCU板,请考虑到电路板中的引脚顺序与ESP8266引脚不匹配,这可能导致错误结果(您可以在此处检查引脚映射)。

ESP8266 DHT11连接

图2 - DHT11和ESP8266之间的连接图。

另外,考虑到不同的DHT11板可能具有不同的信号引脚名称,例如“数据”或简称为“S”。


安装库

如前所述,我们假设使用Arduino IDE对ESP8266进行编程。如果您尚未将其配置为支持ESP8266板,请查看前面的博文。如所料,Arduino有一些库可以简化我们与DHT11交互的任务。一个非常简单易用且与ESP8266配合使用的是Simple DHT传感器库。可以通过Arduino IDE Library Manager轻松安装该库,如图3所示。

DHT11 ESP8266 library.png

图3 - 通过库管理器安装简单的DHT传感器库。


代码

要导入新安装的库,请在代码顶部添加以下include:

1

#include <SimpleDHT.h>

同时使用GPIO引脚的编号声明一个全局变量,以便于更改。在这种情况下,我们将使用GPIO2:

1

int DHTpin = 2;

要允许将数据发送到计算机,请在设置功能中启动串行连接:

1

Serial.begin(115200);

在你的主循环中声明两个字节变量,一个用于温度,另一个用于湿度:

1

2

byte temperature;

byte humidity;

我们使用字节变量,因为DHT11在温度和湿度方面只有8位分辨率。

最后,同样在主循环函数中,读取值并通过串口发送它们:

1

2

3

4

6

7

8

9

10

11

12

if (simple_dht11_read(DHTpin, &temperature, &humidity, NULL)) {

 

   Serial.print("Failed.");

 

}else {

 

   Serial.print("temperature: "); Serial.print(temperature); Serial.println("ºC");

   Serial.print("Humidity: "); Serial.print(humidity); Serial.println("%");

 

}

 

delay(2000);

在尝试使用或将数据发送到其他实体之前,请务必检查读取功能是否返回错误。此外,如前所述,请仔细检查接线,尤其是在使用nodeMCU时。例如,在这种情况下,我使用精确的NodeMCU板测试代码,并且电路板的引脚编号4(“D4”)是与ESP8266的GPIO2相对应的编号。

另外,不要忘记在读数之间加一些延迟。

如果您打开Arduino IDE的串行监视器,您应该会看到类似于图4的内容。

ESP8266 DHT11 readings.png

图4 - DHT读数。

重要的是,DHT11仅在连接到它的微控制器请求时执行测量。因此,传感器保持低功率模式,直到接收到启动信号,以测量温度和湿度。完成测量后,它将返回低功耗模式,直到收到新的启动信号[2]。


最后

可以看出,将DHT11连接到ESP8266非常简单。虽然本教程仅解释了如何使用串行连接将数据发送到计算机,但使用ESP8266功能可以很容易地调整用于将测量结果发送到远程服务器的代码。您可以在此处查看 使用ESP8266和DHT11将数据发送到云的温度记录器示例。

我将在这里留下 所用库的github页面的链接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP8266基础开发(一)---读DHT11温湿度传感器 的相关文章

  • wifi类物联产品配网之web

    文章目录 wifi类物联产品配网之web web配网介绍 web配网实现 wifi类物联产品配网之web 上接wifi类物联产品配网前言 web配网介绍 web主要连接设备建立的wifi 热点后 以网页的形式 让用户输入wifi ssid和
  • esp8266b站粉丝显示器

    本文教程是转载 本文教程是转载 本文教程是转载 仅仅当做笔记使用 如有侵权会立即删除 原来视频网址 https www bilibili com video av55551802 t 194 以及他的github 使用ESP 01S模块和1
  • 【esp8266】史上最详细的Arduino uno R3接入机智云教程

    原文地址 http club gizwits com thread 6728 1 1 html 本文使用arduino UNO板卡和esp8266无线WIFI模块实现了通过手机APP远程监测单片机系统采集的数据和控制一个LED的亮灭 读者将
  • 使用ESP8266和Blynk应用程序的远程房间恒温器

    该项目可通过您的手机通过家庭WiFi或移动网络的任何地方控制您的家庭供暖单元 基本上 它可以用远程控制器代替普通的可编程房间恒温器 作为遥控器 它使用安装了Blynk App并配置为可以满足所有需求的智能手机 智能手机和供暖系统之间的通信由
  • esp8266-01s介绍与使用

    esp826601s 是个比较常用的wifi模块 体积小 功能强大 说是可以用于工业 下面介绍esp826601s 可用引脚 以及可用功能 esp 01 ESP 01S 在ESP 01的基础上 优化了PCB天线 进行了一小步的升级 带来了一
  • ESP8266 hspi的调试

    这一两个礼拜基本上都在爬这个坑 功夫不负有心人 终于搞定了 其实非常简单 以为这个东西有多么的复杂 其实不是这样的 被一些网上博主给误导了 8266端我用的是 ESP8266 NONOS SDK 3 0 examples periphera
  • 【传感器课程设计——DHT11温湿度数据上传阿里云】课程设计论文大纲

    1 摘要 摘要可以分为中文和英文两部分 2 概述 2 1 课程设计背景 2 2 国内外研究现状 2 3 报告组织形式 3 系统设计 3 1 设计目标 3 2 设计方案 3 3 设计方案分析 3 4 程序结构 4 硬件设计 4 1 ESP82
  • esp8266学习笔记(5)——连接wifi、AP、UDP通信

    终于开始接触网络了 基础不行 这个摸索了有点久 还好网上资料多 有些细节还是没有怎么吃透 哈哈 开始联网了 ESP8266有三种模式 station模式 0x01 soft AP模式 0x02 soft AP station模式 0x03
  • WiFi-ESP8266入门开发(十三)-使用SPI

    注 对于ESP8266开源技术感兴趣的可以加群 我们一起探索交流学习 群号 579932824 群名 ESP8266开源技术交流群 介绍 串行外设接口 SPI 是摩托罗拉公司最初启动的总线接口连接协议 SPI接口使用四根线进行通信 因此也被
  • arduino IDE搭建ESP8266开发环境和简单使用

    arduino IDE搭建ESP8266开发环境和简单使用 文章目录 arduino IDE搭建ESP8266开发环境和简单使用 安装 下载IDE 在Arduino IDE上安装esp8266库 下载安装esp8266库 使用 选择开发板
  • ESP8266引脚参考详解

    ESP8266引脚参考详解 ESP8266 ESP12 E芯片自带17个GPIO管脚 并不是所有的gpio在所有的ESP8266开发板中都是公开的 有些gpio不推荐使用 有些gpio有非常具体的功能 通过本指南 您将学习如何正确使用ESP
  • 从零开始的ESP8266探索(11)-定时任务调度器Ticker使用演示

    文章目录 目的 使用演示 基本使用1 基本使用2 动态设置和参数传递 停止和重启任务 注意事项 总结 目的 Arduino for esp8266属于无操作系统环境 对于开发多任务的复杂应用还是比较麻烦的 所以这里就提供了一个近似于操作系统
  • 【ESP8266 快速入门】示例5:Arduino环境实现OTA无线升级固件功能WebServer网页服务器方式

    主题 使用 ESP8266 Arduino环境实现OTA无线升级固件功能 由LED闪烁程序通过OTA升级为PWM呼吸灯程序 目录 主题 0 引言 1 环境准备 2 OTA步骤 2 1 OTA的基础程序 LED闪烁 2 2 OTA的升级程序
  • ESP8266基础开发(一)---读DHT11温湿度传感器

    注 对于ESP8266开源技术感兴趣的可以加群 我们一起探索交流学习 群号 579932824 群名 ESP8266开源技术交流群 这篇文章的目的是展示如何将DHT11传感器连接到ESP8266并编写一个简单的程序来测量温度和湿度 我们假设
  • NodeMcu arduino ESP8266WIFI 模块 例程 WIFIClienBasic(TCP服务器发送信息)

    NodeMcu arduino ESP8266WIFI 模块 WIFIClienBasic TCP服务器发送信息 流程 配置连接网络 发送TCP请求 获取接受数据打印 This sketch sends a string to a TCP
  • 基于ESP8266的CMSIS-DAP调试器

    前言 前段时间用8266制作了一个STM32的下载器 可以进行远程下载固件 不过我们用STM32的时候 经常需要进行各种调试 这时候一个调试器就很重要了 于是我想到也许可以做一个无线调试器 本来我打算自己写一个的 不过在github发现居然
  • 使用 MQTT 代理对 ESP8266 Wemos D1 Mini 进行 SSL 证书验证

    我有一个树莓派 3 其操作系统为 raspbianstretch 我已经按照本教程在树莓派上安装并完全配置了 MQTT 代理 https www digitalocean com community tutorials how to ins
  • Android 连接一加 (Android 6.0.1) 上的 ESP8266

    Android 6 0 上的 Retrofit 在连接到 Access Point 后进行 Http 调用时出现问题 重现步骤 连接到 Esp8266 接入点 进行 http 调用http 192 168 4 1 http 192 168
  • Sntp.sync() 忽略服务器

    我一直在尝试与 ntp 服务器同步时间 但是 nodemcu 似乎忽略了服务器参数 sync lua sntp sync fr pool ntp org function tm rtctime epoch2cal rtctime get p
  • 使用 SPIFFS 加载文件时出现问题 (ERR_CONTENT_LENGTH_MISMATCH)

    好吧 这两天我一直在研究这个问题 但我仍然觉得我一无所获 我最近开始使用SPIFFS 文件系统 for Arduino开发于呼扎 ESP8266像FSBrowser ino例如 虽然它在分离代码方面非常出色 但随着我的代码不断增长 它在稳定

随机推荐

  • 码农的自我修养 - ARM编译器的区分

    在嵌入式软件开发的编码中 有时使用的一些指令是和编译器相关的 这时就要判断当前使用的编译器类型 不同的编译器 会定义不同的宏来进行识别 比如在ARM开发工具包中 cortex M系列开发中 CMSIS Cortex Mx Core Peri
  • SSH工作原理&Ubuntu20.04安装并配置SSH&设置SSH免密登录

    目录 一 SSH的介绍 服务器端 客户端 1 SSH 远程连接工具 连接原理 2 SSH的安全机制 3 两种级别的验证方法 登录方法 二 ssh的安装与启动 1 安装 2 启动服务器的SSH服务 三 SSH客户端 1 前置知识 2 口令登录
  • 最新版SpringBoot整合Mybatis,实现增删改查(CRUD)

    SpringBoot整合Mybatis实现增删改查 文章目录 SpringBoot整合Mybatis实现增删改查 前言 第一 创建MySQL数据库 第二 创建SpringBoot项目 引入需要的依赖包 第三 创建程序目录和配置核心appli
  • matlab实现留一交叉验证,留出法和交叉验证

    写论文的时候涉及到了这两种方法 这里进行总结 评估方法 主要分三种 留出法 分一次 互斥集 交叉验证法 分多次 对k折形成多次互斥集 自助法 有放回抽样 留出法 代码如下 function X train y train X test y
  • 小皮面板(phpstudy)上部署 thinkphp项目并成功访问

    每次搞 thinkphp 都忘记怎么步骤 或者是容易访问出错 尤其是重装系统以后 要安装 Apache MySQL PHP等 现在介绍一个集成工具 小皮面板 安装 小皮面板 1 选版本 根据自己电脑具体位数来选择对应的版本 比如 Windo
  • Echarts tooltip.trigger设为‘axis’ 如何自定义 Tooltip的显示

    题记 当echarts折线图中trigger设置为axis时 只想让tooltip自定义显示某一条线上的点的动态信息 Vue3 TS Vue Echarts 1 问题说明 1 现状 如下图所示折线图 当tooltip的trigger属性值设
  • Nvidia GPU 最新计算能力表(CUDA Compute Capability)

    对于深度学习 官方指出在GPU算力高于5 0时 可以用来跑神经网络 Jetson Products GPU Compute Capability Jetson AGX Xavier 7 2 Jetson Nano 5 3 Jetson TX
  • python实现FTP文件上传

    1 需求 通过python web server端上传大文件到FTP服务端 上传文件夹 下载文件等 1 代码 usr bin python coding UTF 8 from ftplib import FTP import os impo
  • EL表达式详解

    原文地址 http www cnblogs com Fskjb archive 2009 07 05 1517192 html EL 全名为Expression Language EL 语法很简单 它最大的特点就是使用上很方便 接下来介绍E
  • 【机器学习】SVR支持向量机回归

    回归和分类从某种意义上讲 本质上是一回事 SVM分类 就是找到一个平面 让两个分类集合的支持向量或者所有的数据 LSSVM 离分类平面最远 SVR回归 就是找到一个回归平面 让一个集合的所有数据到该平面的距离最近 我们来推导一下SVR 根据
  • VSCode提高代码开发效率插件:(一)差异对比插件

    写代码经常会用到代码对比的功能 以前常用独立的软件Merge Vscode中也有类似功能的插件 之前开发单片机一直用的Keil 但是用Keil编译去掉BroseInformation速度提上来了但是没法函数跳转了 Vscode可以解决这个问
  • 如何在VS 2017运行别人的C语言代码

    如何在VS 2017运行别人的C语言代码 我们在使用VS 2017的时候 只有C 项目没有C项目 如何运行从网上下载的别人的C语言项目代码呢 经过查找资料后 经过如下具体步骤 便能在VS 2017里运行C程序了 目录 如何在VS 2017运
  • ubuntu1804安装python3.8+odoo14

    如题 博主废了不少劲 折腾了一个上午终于搞定了 本次采用环境是ubuntu1804系统的docker容器 并且容器内部已更换阿里源 编辑阿里源 vi etc apt sources list 然后粘贴下面内容 再保存 deb http mi
  • 打印图像模糊问题解决方法

    思路 核心 图像转换 1 修改图像dpi值 2 使用高质量的双三次插值法 3 指定高质量 C Code 如下
  • 期货交易的主要特征(期货交易特征五大特征)

    期货交易的特点有哪些 一 合约标准化 期货交易是通过买卖期货合约进行的 而期货合约是标准化的 期货合约标准化指的是除价格外 期货合约的所有条款都是预先由期货交易所规定好的 具有标准化的特点 二 交易集中化 期货交易必须在期货交易所内进行 期
  • NGINX代理导致 获取不到请求头中的token信息

    原因 NGINX对header有所限制 下划线 不支持 解决方式1 请求头参数不用带下划线参数 解决方式2 在nginx里的nginx conf配置文件中的http部分中添加如下配置 underscores in headers on 默认
  • 生信人的20个R语言习题

    生信人的20个R语言习题 题目原文 http www bio info trainee com 3409 html 参考答案 https www jianshu com p dd4e285665e1 https www jianshu co
  • 多变量处理的LASSO方法

    1 lasso方法 其中 因变量是Y 自变量是X 数据中的变量众多 但如何选择X 就使用了lasso lasso能够对变量进行筛选和对模型的复杂程度进行降低 这里的变量筛选是指不把所有的变量都放入模型中进行拟合 而是有选择的把变量放入模型从
  • Longest Common Substring

    给出两个字符串 找到最长公共子串 并返回其长度 注意事项 子串的字符应该连续的出现在原字符串中 这与子序列有所不同 Lintcode上的一道题目 非常经典 需要找到最长的连续公共子串的长度 因为有两个序列且前后顺序不可以打乱 所以为双序列问
  • ESP8266基础开发(一)---读DHT11温湿度传感器

    注 对于ESP8266开源技术感兴趣的可以加群 我们一起探索交流学习 群号 579932824 群名 ESP8266开源技术交流群 这篇文章的目的是展示如何将DHT11传感器连接到ESP8266并编写一个简单的程序来测量温度和湿度 我们假设