使用 ESP8266-NodeMCU 和 Tasmota 搭建简单的温度和湿度监视器
夏天又到了最闷热的时候,体感相当不舒服,因此想看看室内外的温度、湿度的情况。于是找到箱底的硬件,DIY一个温度湿度监视器。
硬件物料 🔗
所需的物料如下:
- ESP8266-NodeMCU
- DHT11传感器模块
- 杜邦线
- USB数据线(MicroUSB口)
其中,ESP8266 是一款由上海乐鑫信息科技开发的可以作为微控制器使用的成本极低且具有完整 TCP/IP 协议栈的Wi-Fi IoT控制芯片。最大的特点和优势就是价格十分便宜。ESP8266-NodeMCU 是一个基于ESP8266的开源硬件开发板。
在淘宝上,AI-Thinker(安信可)的 NodeMCU-12F(CP2102)价格目前为26元,而其他牌子的开发板价格会在11元到20元之间。
DHT11 模块的温度测量范围在0-50°C,测量误差在5%;湿度测量范围在 20-80%,测量误差在 ±2°C。DHT11 模块有两个版本:4针脚和3针脚版本。其中3阵脚的模块被挂载到了一个小PCB板上,它已经包含了 10K 欧姆的上拉电阻,因此为了简单起间,最好使用3引脚的模块。如果需要更大的测量范围和更高的测试准确性,那么可以使用 DHT22 模块。当然,DHT11 价格便宜,在淘宝上大概4元-5元;而 DHT22 的价格在 9元以上。
生产工具 🔗
一台可以访问 Github 电脑。
搭建步骤 🔗
硬件连接 🔗
使用杜邦线,将 DHT11 的 +
和 -
分别连接到 NodeMCU 开发板的 3v3
和 GND
引脚上;将输出引脚(OUT
)连接到 D7
引脚。
安装 Tasmota 🔗
监视器的固件采用的是 ESP 设备的开源的 Tasmota。利用 Tasmota,不需要在开发板上编写任何代码,就可以快速地使用开发板和传感器。Tasmota 的官方文档位于 Github,地址为 https://tasmota.github.io/docs/ 。在其导航标签里有一个 Web Installer
,即在线安装固件的入口。
首先,使用 USB 数据线,连接电脑的USB口和 NodeMCU 开发板的 MicroUSB 口。然后,根据提示即可安装。注意,在网上购买的 NodeMCU 所需的串口驱动可能是 CP2102 ,也可能是CH340G等。在我的电脑上,似乎使用 CH340G 串口的开发板是无法安装的。原因可能是系统没有成功安装相应的驱动。另外,其实在购买的开发板的时候,CP2102 驱动的板子应该价格会高一点点。
安装成功后,设置 Wifi 连接。此后就不需要串口通信了,使用普通电源给开发板供电即可。
配置 Tasmota 🔗
成功安装固件后,打开其Web页面,进入“设置”-“模块设置”,将模块类型设置为 Generic(18)
,重启后,即可看到此时模块设置里列出了 NodeMCU 的所有的GPIO引脚。
我将 DHT11 的输出口插入到了 D7
引脚,因此,设置 D7 GPIO13
的值为 DHT11
。
然后,保存并重启。重启后进入 Tasmota 的主页,即可看到 DHT11 采集到的温度和湿度数值。
结尾 🔗
Tasmota 省去了编码的工作,其安装过程也是很流畅,可以是说相当优秀的开源软件了。采集并展示传感器的数据只是它的基本用法,更为强大的是,还可以在 Tasmota 上配置 MQTT 服务器,将传感器数据发布到远程的 MQTT 服务器进行存储和处理。这样就可以构建物联网应用,可玩性大大增强。