HomeAssistant家庭自动化-应用-结合ESP8266接入DHT22温湿传感器实现获取温湿度数据
HomeAssistant家庭自动化-应用-结合ESP8266接入DHT22温湿传感器实现获取温湿度数据
说明:
- 介绍如何获取DHT22温湿度数据
- 环境: esphome + homeassistant
- DHT11和DHT22的使用方法类似
准备:
- 显示屏
- 树莓派4B
- DHT22温湿度传感器
- ESP8266串口wifi模块(nodemcu v3)
连线
- esp8266 插脚图
- 插脚对应表
esp8266 | dht22 |
---|---|
D1 | DATA |
3V3 | VCC |
GND | GND |
- 连线图
- esp8266模块通过usb线连接到树莓派4B
启动和访问esphome
- 假设树莓派的IP为192.168.0.xxx
- 安装esphome参考文章
- 树莓派上启动esphome, 假设配置文件放在用户根目录下
cd ~
esphome config/ dashboard
- PC的浏览器打开网址访问http://192.168.0.xxx:6052/
- 效果图如:
添加设备
- 点击右下角的 "+ NEW DEVICE", 填写配置文件名称为: esp8266-t94
- 效果图
- 选择为esp8266板, 下一步
- 效果图
修改配置
- 在 ~/config/目录,生成一个名为esp8266-t94.yaml文件
- 可以直接编辑这个文件或在页面上点EDIT,进入编辑
- 效果图:
- 文件内容如下:
esphome:
name: esp8266-t94 #制定配置文件名称
esp8266:
board: esp01_1m #指定芯片类型
# Enable logging
logger:
# Enable Home Assistant API #与HA整合
api:
encryption:
key: "RxXAgCVB1/wnoTchfDZpC66MhV2V8hDJf9FWgI45TtE="
ota: #自动升级
password: "28ebd5e9fde077c53a2d12fc09089acc"
wifi: #wifi
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp8266-T94 Fallback Hotspot"
password: "rbh0zG2bFw5W"
captive_portal:
- 我们需要连接WIFI, 增加web控制, 整合到Home assistant, 自动升级, 获取温湿度数据
- 修改配置为:
esphome:
name: "esp8266-t94"
esp8266:
board: nodemcuv2
# Enable logging
logger:
# Enable Home Assistant API
api:
password: ""
ota:
password: ""
wifi:
ssid: "xxxxx" #wifi和密码
password: "xxxxx"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp8266-t94 Fallback Hotspot"
password: "VQyWziLnZOXD"
manual_ip: #设置固定IP
static_ip: 192.168.0.94
gateway: 192.168.0.1
subnet: 255.255.255.0
captive_portal:
web_server: ## web控制,添加了这2行,就可以在网页端打开设备ip;
port: 80
sensor: #设置dht11传感器
- platform: dht
pin: D1
temperature:
name: "Temperature"
humidity:
name: "Humidity"
update_interval: 60s # 数据每60s监测一次
model: "DHT22"
- 修改好之后,点击页面上的save,进行保存配置信息
刷固件
- 保存之后,点页面上install,显示可选择的刷固件方式
- 支持四种刷机方式
- 第一种,已经成功刷机后,通过wifi自动升级方式刷机
- 第二种,设备连接到树莓派,通过直连方式刷机
- 第三种,通过esphome的web方式刷机
- 第四种,通过下载固件,实际刷机
- 目前最有效的方式第一种和第三种。
- 效果如图:
- 选择第三种刷机方法,第一次刷固件必须要连线,esp8266通过usb线连到树莓派4B
- 第二次之后可以选择wifi方式,远程升级
- 效果图:
- 选择对应的端口,即可进行刷机操作,等一回之后,提示刷机成功
- 刷机日志如下:
NFO Reading configuration config/esp8266-t94.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing esp8266-t94 (board: nodemcuv2; framework: arduino; platform: platformio/espressif8266 @ 3.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- ESPAsyncTCP-esphome @ 1.2.3
|-- ESPAsyncWebServer-esphome @ 2.1.0
| |-- ESPAsyncTCP-esphome @ 1.2.3
| |-- Hash @ 1.0
| |-- ESP8266WiFi @ 1.0
|-- DNSServer @ 1.1.1
|-- ESP8266WiFi @ 1.0
|-- ESP8266mDNS @ 1.2
|-- ArduinoJson @ 6.18.5
Compiling .pioenvs/esp8266-t94/src/main.cpp.o
Linking .pioenvs/esp8266-t94/firmware.elf
RAM: [==== ] 40.4% (used 33092 bytes from 81920 bytes)
Flash: [==== ] 40.5% (used 422589 bytes from 1044464 bytes)
Building .pioenvs/esp8266-t94/firmware.bin
esp8266_copy_factory_bin([".pioenvs/esp8266-t94/firmware.bin"], [".pioenvs/esp8266-t94/firmware.elf"])
========================= [SUCCESS] Took 19.06 seconds =========================
INFO Successfully compiled program.
esptool.py v3.3.1
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: c4:5b:be:73:c8:32
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x00000000 to 0x00068fff...
Compressed 426736 bytes to 297977...
Wrote 426736 bytes (297977 compressed) at 0x00000000 in 6.9 seconds (effective 492.8 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
INFO Successfully uploaded program.
INFO Starting log output from /dev/ttyUSB0 with baud rate 115200
- 刷机自动连接上wifi之后,显示如下
整合到home assistant
- 安装home assistant参考文章
- 树莓派上启动home assistant
cd ~/hass-new
source bin/activate
hass
- PC的浏览器访问地址http://192.168.0.44:8123/
- 进入界面之后,会自动提示发现设备
- 点击对应的配置,再点提交即可
- 成功之后,可以选择区域
- 显示为1个设备2个实体,一个设备为对应一个esp8266板子,实体分别为一个湿度一个温度
- 点击设备就可以看到相关温湿度
- 添加到仪表盘
- 查看仪表盘
参考:
- https://esphome.io/components/sensor/dht.html
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号