项目简介
本项目是一个基于ESP8266的智能家居环境监测系统,利用多种传感器采集环境数据,结合数字显示模块实时展示,通过MQTT协议与服务器通信,实现环境数据的远程监控和设备的远程控制,还支持固件的OTA更新。
项目的主要特性和功能
- 采集温度、湿度和CO2浓度数据,并通过TM1637数字显示模块实时显示。
- 支持通过MQTT协议向服务器发布环境数据,方便远程监控。
- 可接收并处理来自MQTT服务器的命令,如设置MQTT信息、获取设备信息等。
- 支持通过HTTP服务器接收固件更新,实现Over-The-Air(OTA)更新。
安装使用步骤
1. 工具链下载与配置
从https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-92-g8facf4c-5.2.0.tar.gz 下载xtensa linux64工具链,并解压到 ~/work/esp8266/xtensa-lx106-elf
。
2. 项目复制
cd ~/work/esp8266/
3. 环境变量设置
export PATH=$PATH:~/work/esp8266/xtensa-lx106-elf/bin
export IDF_PATH=~/work/esp8266/ESP8266_RTOS_SDK
4. 项目编译
cd ~/work/esp8266/esp8266_iot
make
5. 硬件连接
按照项目文档连接好ESP8266 NodeMCU、TM1637 4 - digits display、HDC1080传感器和CCS811传感器。
6. 配置WiFi和MQTT信息
通过NVS(非易失性存储)设置WiFi的SSID和密码,以及MQTT服务器的地址和主题。
7. 运行和测试
运行程序,通过串口或MQTT客户端查看传感器数据和显示信息。可使用以下MQTT命令进行测试:
- 设置MQTT broker ip(默认192.168.1.135):
mosquitto_pub -h 192.168.1.135 -t "sensors/cmd/840d8e8ff6da" -m "{\"cmd\": 5,\"ip\": \"192.168.1.112\"}"
- 设置MQTT client name:
mosquitto_pub -h 192.168.1.135 -t "sensors/cmd/840d8e8ff6da" -m "{\"cmd\": 4,\"name\": \"room1\"}"
- 获取设备信息:
mosquitto_pub -h 192.168.1.135 -t "sensors/cmd/room1" -m "{\"cmd\": 2}"
8. OTA更新
- 启动HTTP服务器:
cd ~/work/esp8266/esp8266_iot/build python -m SimpleHTTPServer 8070
- 发送MQTT OTA升级命令:
mosquitto_pub -h 192.168.1.135 -t "sensors/cmd/room1" -m "{\"cmd\": 1,\"server\": \"192.168.1.140\",\"port\": 8070,\"file\": \"esp8266_iot.bin\"}"
注意事项
- 代码中使用了ESP-IDF和FreeRTOS,确保安装并正确配置相关环境。
- 代码中包含了敏感信息(如WiFi密码和MQTT服务器地址),请确保安全存储和传输。
- 代码中包含OTA功能,请确保HTTP服务器正常运行并准备好固件更新文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】