基于 ESP8266 制备室内温度和空气检测器
上回说到我用闲置的树莓派搭了个室内的温度和空气质量监测器,但是它的一个问题是树莓派太贵了,这样的方案不太容易批量复制。另外一种便宜的方案是用 ESP8266(大约十来块钱)来作为传感器和电脑之间的中介,它可以通过自带的 WiFi 和电脑连接。
实物图大概长这样。
传感器还是之前树莓派时候的 AM2320 和 SGP30。至于接线,我们把 AM2320 的 SCL
和 SDA
分别接入 GPIO14 (D5)
和 GPIO12 (D6)
;把 SGP30 的 SCL
和 SDA
接入标准的 I2C 引脚:GPIO5 (D2)
和 GPIO4 (D1)
. 大概按照 这里 对应的 ESP8266 12-E NodeMCU Kit 部分的引脚图接线就行。
完成接线后按照 这里 的说明,安装 arduino-cli 和对应的 ESP8266 相关包,设置好 WiFi 密码后编译并且写入固件即可。其中有一个可选的步骤是设置 SGP30 的 baseline,默认情况下可以不进行,这个传感器每次初始化后会自动处理,一般会需要一段时间后会到达稳定。如果想要初始化更快一些,按照 SGP30 说明书可以运行 12 小时后记录对应 baseline 作为初始的值。
传感器的数据获取通过访问 http://对应ESP8266的IP
来进行,下方是一个样例输出:
{
"uptime": 3318604,
"am2320": {
"status": "ok",
"temperature": 28.60,
"humidity": 65.10,
"last_time": 12154
},
"sgp30": {
"status": "ok",
"eCO2": 408,
"TVOC": 273,
"last_time": 158
},
"sgp30_baseline": {
"eCO2": 36622,
"TVOC": 41061,
"last_time": 12152
}
}
最后,只要按时把数据灌入 grafana 家用灵车传感器就完成了。
Update 2023-09-04: 突然发现有些十元一个的小 OLED 屏幕,再买了个面包板又生成了一个新型的环境监测器。嵌入式还挺好玩的。