更新日志:
2023年3月25日
- 增加WEB OTA功能
-
增加Web串口功能
2023年3月24日
- 上传代码
- 修改注释
-
改用web方式OTA
时效性以github版本为准
实现功能
使用DHT22+ESP8266+2个OLED显示屏,接入到Blynk实现在手机端和设备通过一个屏幕端试试显示温湿度的同时,加入NTP自动校时使第二个屏幕显示时间和日期.这里使用的外壳是3D打印当然,你也可以自己做一个外壳,模型的链接下面回放出,有需要的可以去淘宝找店家打印一个.由于我的外壳没有空间加按钮开关了,所以也就没有整合WIFImanager的功能,需要的可以看看我上一编制作气象仪的文章.
具体功能:
- 显示温湿度
- NTP自动校准时间
- 手机端实时显示温湿度数据
- 手机端实时显示网络信息
- 手机端使用按钮控制屏幕的开启/关闭
- 手机端设置屏幕的定时开启/关闭
- OTA更新固件
材料准备
- ESP8266 – X 1(D1mini/NodeMCU也行)
- DHT22温湿度传感器 – X 1(也可以是DHT11,可选已加电阻的,不带电阻的需要自己加一个10K的电阻)
- 0.96’OLED屏幕 – X 2(SSD1306主控)
- 3D打印机 – X 1(可选,外壳模型点这里下载)
传感器用到的程序库
在IDE内都可以搜到
需要注意的编译环境(亲测高版本会出错,未解决)
ArduinoIDE编译通过的主要库版本:
- ESP8266板库:2.4.2
- Blynk版本:0.6.1
- IDE版本:1.8.10
- ArduinoJson:5.13.3
PlatformIO编译通过的主要库版本:
- Blynk:0.6.1
- ArduinoJson:5.13.4
- ESP8266板库:2.0.4、2.1.1、2.2.0
接线
- 如果你的DHT22是没有自带电阻的就必须加个10kΩ电阻,电阻一端接到单片机的3.3,另一端接到DHT的OUT,不然读数及有可能不正常
- DHT22/OLED都可以接到5V,具体按你到手的为准,市面上多数支持3.3-5V
设备 | 引脚 | ||||||
---|---|---|---|---|---|---|---|
ESP8266 | 3.3 | GND | D2 | D3 | D4 | D5 | D6 |
DHT22 | Vcc | GND | OUT | ||||
OLED1 | Vcc | GND | SDA | SCL | |||
OLED2 | Vcc | GND | SDA | SCL | |||
10K电阻 | s1 | s2 |
代码
代码时效性以github端为准
更新日志:
2023年3月24日
- 上传代码
- 修改注释
-
改用web方式OTA
主程序
已过时
images.h头文件
手机端效果图
正文完