使用ANAVI温度计在ESP8266上测试温湿度传感器

原文链接:Getting Started with Temperature & Humidity Sensors on ESP8266 using ANAVI Thermometer 由Jean-Luc Aufranc撰写。

ANAVI 温度计是2019年1月正式在 CrowdSupply 上推出的。它是一块ESP8266 WiFi板、内置有DHT22温湿度传感器,且可支持外部DS18B20防水温度传感器,以及其他三个I2C传感器。

在 ANAVI 温度计入门套件推出后的一个月,他们也给我寄了一套。于是,我就进行了一下详细评测。我主要从从拆箱、组装指南开始,接着尝试通过 MQTT 使其与 Home Assistant 进行交互。

ANAVI 温度计入门套件拆箱

ANAVI 温度计入门套件
ANAVI 温度计入门套件

该套件包括 ANAVI 温度计板、一个塑料支架、一个 USB 转 TTL 调试板、一个 I2C OLED 显示器、一些螺母和螺栓,还有一些 KiCad 和 ANAVI 贴纸。另外,Leon ANAVI 还添加了一个交通灯板和一些 LED,当然这个交通灯和LED并原本是不属于套件部分的。

ANAVI 温度计
ANAVI 温度计

ANAVI 温度计板包括一个 ESP8266 模块、AM2302(有线版DHT 22)温湿度传感器、一个 DS18B20 防水温度传感器接线端子、四个 I2C 接头(一个用于显示器)、一个用于编程的 3 针 UART 接头、一个用于电源的micro USB 端口和一个复位按钮。

ANAVI温度计开发板
ANAVI温度计开发板

就像下图一样,开发板的背面并没有什么重要的东西。

ANAVI温度计开发板的背面
ANAVI温度计开发板的背面

ANAVI温度计入门套件组件

ANAVI 温度计支架损坏图片
ANAVI 温度计支架损坏图片

打开这个套件之后,你要做的第一件事就是把支架上的保护罩揭下来,因为留着它会影响OLED显示屏的显示,阅读起来比较困难。

使用强力胶修复的ANAVI 温度计支架
使用强力胶修复的ANAVI 温度计支架

然而,支架邮寄过来后就损坏了,但没有什么是强力胶修复不了的。就像上图一样,我用强力胶修复好了这个支架。

使用双面胶固定ANAVI 温度计显示屏
使用双面胶固定ANAVI 温度计显示屏

我可以用提供的螺母和螺栓将主板固定在机箱的底座上,但螺栓对于OLED显示屏来说有点太大了,所以我选择了用双面胶带固定,将显示器粘在了支架顶部。

ANAVI 温度计套件传感器
ANAVI 温度计套件传感器

我还从ANAVI Light pHat 入门套件取出了一个 BH1750 的光传感器来演示如何在支架上添加更多的传感器。因为,支架上有足够的空间容纳两个额外的 I2C 传感器,所以这个操作是可行的。

ANAVI 温度计套件电缆
ANAVI 温度计套件电缆

ANAVI温度计的初始设置

大家都能在Github 中找到有关开发板和套件的文档。因此,我同样也会按照会遵循Github上的文档进行操作,在不够详细的地方我会进行一下扩展。

我们需要将电路板连接到 5V 的 USB 电源(推荐 1A 或更大)上,显然我笔记本电脑的一个 USB 端口就足以为开发板供电了。

ANAVI 温度计连接
ANAVI 温度计连接

从上图我们可以看到OLED 显示屏显示的是“正在连接…”,这意味着我们要配置开发板从而将其连接到我们的本地 WiFi 网络上。该开发板将会在你的手机或计算机的WiFi列表中显示为“ANAVI Thermometer Controller”。

ANAVI温度计控制器的Web界面
ANAVI温度计控制器的Web界面

接下来我们会被要求登录接入点,这样做会将我们带到“Sonoff-Tasmota”之类的 Web 界面来配置 WiFi,并获取到一些系统信息(可以参考上面截图的右侧)。现在我们点击“Configure WiFi ”试试看。

ANAVI温度计WiFi MQTT配置
ANAVI温度计WiFi MQTT配置

在这一步,它会自动扫描 2.4GHz ap接入点,就可以选择一个并输入密码,还可以根据需要配置 MQTT。此处并不是真的需要machine ID,因此可以不用管它。另外,用户界面实际与ANAVI Light Controller也相同,还可以从 Web 界面进行控制,所以我想这应该就是它存在的主要原因。

单击“Save按钮,这时候你的开发板应该就能够连接到 WiFi 路由器了,几秒钟后,你会看到 OLED 显示屏上显示出了数据。

ANAVI 温度计空气/湿度/水的显示
ANAVI 温度计空气/湿度/水的显示

理论上来说,我的显示屏应该显示来自 DHT22 传感器的空气温度和湿度数据,但由于未连接 DS18B20 温度探头,因此水温显示的是 0.0°C。

我还将串行板连接到了我的计算机上,以使用配置为 115200 8N1 /dev/ttyUSB0 的 minicom 来检查输出:


光传感器似乎也被检测到,但我只是用手指覆盖它以确保它没有输出垃圾数据:


如果你想要做的只是一个带有小显示器来显示温度和湿度的系统,那么到这里你就算大功告成了。
到这里为止,所有测试看起来都不错,因为在黑暗中该值确实应该为 0 lux。

使用Home Assistant监控ESP8266温湿度传感器

不过,如果你还想远程访问传感器数据,并根据温度和湿度值采取行动的话,就要做更进一步的操作。接下来,我们会告诉大家如何安装和配置 Home Assistant 并在仪表板中显示温度和湿度数据。

重要更新:现在其实有更简单的操作方法了,可以使用 Home Assistant 配置 ESP8266 ANAVI 硬件。你们可以阅读ANAVI 气体探测器入门套件和Home Assistant入门了解详细信息。当然,之前我给大家介绍的方法也完全适用,你们可以看下面。】

我比较推荐使用树莓派3来安装 Home Assistant,但我没有任何备用板,所以我决定在自己的 Ubuntu 18.04 笔记本电脑中通过 Docker安装 Home Assistant。在安装 docker.io 和 home-assistant 平台之前,我首先创建了一个名为 homeassistant 的工作目录:


安装home-assistant可能需要花点时间等一下,大概几分钟。完成后,编辑 homeassistant/configuration.yaml 中的配置文件,从而修改 ANAVI 温度和湿度传感器的传感器部分:


并配置 MQTT 代理:


安装 mosquitto MQTT 代理:


理论上,我们应该能够使用以下命令重新启动 home-assistant,以便显示出我们的新配置文件:


但是因为我存在各种与 apparmor 相关的权限问题,所以我只是重新启动了我的计算机,并通过访问http://localhost:8123 连接到 Home Assistant 仪表板。

Home Assistant设置
Home Assistant设置

第一次访问的时候,我们会被要求创建一个帐户,然后就会跳转到仪表板页面,在那里我们可以看到配置文件中设置的温度和湿度值。

Home Assistant仪表盘
Home Assistant仪表盘

然而,数据页面应该是没有更新的。因为这个时候 ANAVI 温度计 MQTT 服务器未设置为你自己的 MQTT 代理 IP 地址。接着我试图进入开发板的 Web 界面,但显然的却是它仅在AP模式下启用,这意味着我必须通过按下重置按钮超过 10 秒来对开发板进行出厂重置。然后又重新启动配置,但这次设置的是我笔记本电脑的IP地址。

ANAVI温度计的MQTT服务器
ANAVI温度计的MQTT服务器

到目前为止,一切都很好。但是如果我们查看串行控制台,就会发现一个小问题:


显示的是“无法打开配置文件进行写入”,当然这也许不是什么问题。我们等等看吧。不过,温度和湿度目前都保持在 0.0°C 和 0%,我想这可能是捕获MQTT数据的问题。因为尽管我可以用Wireshark捕获MQTT数据,但这只适用于光传感器。

ANAVI温度计灯MQTT显示
ANAVI温度计灯MQTT显示

不过我发现了一个让温度和湿度重新工作的技巧,简直太简单了。断开并重新连接电源就行,但你可能会注意到我们小“配置”发错误消息正在返回给我们:


其实,我挺希望该产品有一些GPIO 引脚暴露在开发板上的,这样大家就可以在本地打开或关闭开关了。本文我评测的 ANAVI 温度计入门套件可以在 Crowdsupply 上预购,价格 39 美元而且包邮。
它现在使用默认的 MQTT 服务器:iot.eclipse.org。因此,我将 ANAVI 温度计与 Home Assistant 集成的尝试失败了,我现在实在没有时间进行详细的调查。而有关该特定部分的文档在 ANAVI 温度计的 Github 页面上又比较有限。所以,暂时就只能先这样了。

分享这篇文章
订阅评论
提醒
0 评论
内联反馈
查看所有评论