标签存档: ESP32 - 第2页

超简单 DIY – AirCube 空气检测站

源由

一直以来对家里的环境状态比较在意,在很多年以前,就使用万用板 + ESP8266 + 传感器组装了很多台空气检测节点放在家里,用于监控 PM 2.5 浓度、二氧化碳浓度、温度、湿度等环境状态。

配合 ESPEasy 固件 + Domoticz,可以很方便的采集环境状态的数值,从而配置 Domoticz 的脚本来完成一些自动化动作,例如打开新风、打开空气净化器等。

进一步,也可以通过 Domoticz 将采集到的数据保存到 InfluxDB 中,使用 Grafana 图形化的展示这些环境状态的变化趋势。

在知道嘉立创的 PCB 免费打样活动之后,就产生了将这些空气检测节点进行升级的想法。

目标

这次升级,主要是为了改进以前使用洞泂板,ESP8266 等老旧部件碰到的一些问题,主要有以下几点:

  • 更美观,原先使用万用板 + 亚克力面板太多飞线,不是很好看,整体空间利用也不充分,并且现在也有 3D 打印机,可以做一个更好看的外壳。
  • 更标准,原先每个节点的传感器选型都不太一致,从而导致每块万用板的飞线都不一致,组装存在出错可能,这次通过使用统一的 PCB,将所有传感器模块位置固定,每个节点的传感器都保持一致。
  • 更强大,原先使用的 ESP8266 模组,GPIO 数量较少,在传感器数量多的情况下,GPIO 就不够用了,这次更换为更先进的 ESP32,拥有更多 GPIO,性能也更为强大。并且因为 GPIO 数量更多,还可以额外增加一个屏幕,这样即使不借助 Domoticz 的情况下,也可以独立使用,查看当前环境数据。
  • 更灵活,原先使用的 ESPEasy 固件,所有的传感器是通过在它的网页配置界面来完成的,并且它的配置保存格式为自定义的二进制格式,很难阅读以及提前配置,这次更换为更灵活的


阅读全文 »

记一次硬件 Debug:ESP32 连接 Wi-Fi 报 Auth Expired 错误

起因

前段时间准备把家里的空气质量检测节点更新一下,从原来的万用板升级为 PCB,并且将主控 MCU 从 ESP8266 升级为 ESP32,这样可以单个节点支持更多传感器,同时把固件从 ESPEasy 换成 ESPHome。

经过

在完成 PCB 打样测试后,就上淘宝采购了一批 ESP32 开发板,其中一批是 USB Type-C 接口的 NodeMCU-32S,最开始测试的时候只买了一块,使用下来并没有什么问题,但是在一次接错 VCC 和 GND 导致温度模式损坏之后,再次使用这块 ESP32 开发板时,发现它无法连接到之前已经配置好的 Wi-Fi 上。

这时还以为是由于之前温度模块损坏关联导致的,因此重新购买了几块同样型号的 ESP32 开发板,但是在完成固件烧录,完成固件配置之后,第二次运行时,同样发现了无法连接 Wi-Fi 的错误,日志中显示连接失败的原因为 Auth Expired:

[23:50:02][I][wifi:248]: WiFi Connecting to 'HOUSE_IOT'...
[23:50:03][W][wifi_esp32:495]: Event: Disconnected ssid='HOUSE_IOT' bssid=xx:xx:xx:xx:xx:xx reason='Auth Expired'
[23:50:03][W][wifi:536]: Error 


阅读全文 »

使用 ESPHome + INA219 模块构建一个简易功率计

最近在使用 ESP32 做一些小东西,其中一个设备是使用电池供电,因此对使用电池时的续航比较关心,但是手头并没有合适的电子负载仪,在翻模块库存的时候,刚好发现有一个 INA219 模块,就直接拿它现做一个功率计了。

再配上一个 12864 OLED 屏幕,这样就可以实时去观测单片机设备的实时功率以及功耗了:

EasyPower Demo

ESPHome

ESPHome 是一个配置化生成 ESP32/ESP8266 智能家居固件的系统,一般都会用它来作为智能家居节点中的系统来使用,配合很便宜的 ESP32/ESP8266 模块,使用起来很是方便。

在查阅它所支持的模块时,发现 INA219 也在其中,并且 ESPHome 本身对 12864 OLED 也有良好的支持,因此最终就直接选择了 ESPHome 来作为功率计的基础系统,这样可以省去编写很多基础代码,例如任务设计、屏幕绘制、I2C 总线读写等,只需要关注功率计核心的功能即可。

最近也使用 ESPHome 比较好,发现它还是有很多优点的,基本可以作为一个 Arduino 项目的基础应用框架来使用:

  • 配置化生成代码,无需管理复杂的库依赖
  • 丰富的模组库支持,对于开发单片机应用来说,常见的输入输出模块都内置支持
  • 完整的运行框架,开发者只需要关注业务本身,其他相关内容都内置了,例如 MQTT、OTA 等功能
  • 灵活的 Lambda 支持,它的 Lambda 就是 C++ 的 Lambda,因此对于有能力的开发者来说,可以直接写代码

总的来说,对于一般 DIY 项目来说,ESPHome 足够强大、足够灵活来处理大部分需求了。

INA219



阅读全文 »