制作自己的家庭自动化传感器并不困难或昂贵。您需要一个传感器和一个微控制器板,将传感器数据无线传输到您的家庭自动化控制器。在本文中,我们将温度、湿度和气压传感器以及 LCD 屏幕连接到 ESP8266 WiFi 模块。我们在其上安装 ESP Easy 固件,并将我们的传感器与开源 Domoticz 家庭自动化系统集成,以便您可以在家庭自动化控制器的仪表板中读取测量数据。您自己的家庭自动化系统,只需 17 个步骤!
01 ESP8266
家庭自动化传感器的核心由一个控制器板组成,它读取传感器数据并将其转发到您的家庭自动化控制器。 DIY 爱好者的热门选择是基于 ESP8266 WiFi 模块的开发板,该模块由中国公司乐鑫系统生产。控制器以 80 或 160 MHz 的时钟频率运行,具有 64 KB 指令存储器和 96 KB 数据存储器、512 KB 至 4 兆字节的内存、802.11 b/g/n Wi-Fi 和 16 个 gpio 引脚,用于与外面的世界。 AI-Thinker 控制器板特别受欢迎,尤其是带有 6 个可用引脚的极简 ESP-01 和带有 20 个可用引脚的 ESP-12E。
02 ESP 简易
仅靠硬件您无处可去:在 ESP 模块上运行的固件决定了控制器板的功能。最初,NodeMCU 固件是 ESP8266 的流行选择,但现在也支持 Arduino 固件。后者的有趣之处在于,您可以使用 Arduino IDE 为 ESP 模块开发程序。 ESP Easy 固件的开发人员让我们更轻松:ESP Easy 将您的 ESP 模块变成一个多传感器设备,您可以通过 Web 界面轻松配置。
03 固件下载
在撰写本文时,ESP Easy 的开发人员正在检修他们的固件。因此我们不选择稳定版本,而是选择完全重写的 2.0 版本的开发版本。下载 zip 文件(在我们的例子中是 ESPEasy_v2.0.0-dev11.zip,实践证明它非常稳定)并解压。除了源代码,您还会看到各种 bin 文件。那是固件的二进制版本。名称清楚地表明您需要哪一个:正常仅包含稳定插件,测试还测试测试插件,开发还有仍在开发中的插件。 1024 适用于具有 1 MB 闪存的 ESP 模块,4096 适用于具有 4 MB 闪存的 ESP-12E 等 ESP 模块。
04 闪存固件
我们用 ESP-12E 来说明这篇文章,它有一个微型 USB 连接器和一个内置的 USB 到串行转换器,用于与您的 PC 进行串行通信。首先,从 Silicon Labs 网站下载 CP2102 驱动程序。然后通过 USB 将 ESP 模块连接到您的 PC。如果您使用不同型号的 ESP 模块,您仍然需要一个 USB-to-TTL 转换器,将其连接到模块的 gpio 引脚。有关更多信息,请参阅 ESP Easy wiki。使用包含固件的 zip 文件中的工具 FlashESP8266.exe 完成固件的刷新。选择串行端口(例如 COM0)和具有所需固件的 bin 文件。
05 Wifi配置
当刚刷入的ESP模块启动时(刷完后按板子上的RST键),它作为一个无线接入点使用ssid ESP_Easy_0。通过您的智能手机或其他 WiFi 设备连接到它并输入密码 配置文件 在。之后,打开您的 Web 浏览器,这会将您重定向到 ESP 模块的强制门户。选择您希望ESP模块连接到哪个ssid并输入相应的密码。按 连接 建立连接。
06 密码
如果 ESP 模块已成功连接到您的 WiFi,您将看到 IP 地址。现在将您的智能手机重新连接到您的普通 WiFi,然后访问您的网络浏览器(现在可以在您的 PC 上使用,现在更大的屏幕更方便)ESP 模块的 IP 地址用于其余配置。在选项卡中 配置 在这里特别重要的是,为您的模块指定一个唯一的名称并选择管理员密码,这样本地网络上的每个人都无法更改配置。按底部 提交.
07 添加Domoticz控制器
在选项卡中 控制器 默认情况下,Domoticz 协议已经添加了一个控制器。点击它旁边 编辑.作为协议,你让 多莫蒂奇 HTTP 站立。输入 Domoticz 控制器的 IP 地址和端口(默认为 8080)。如果您使用用户名和密码保护了 Domoticz 网络界面,请在此处输入。最后打勾 启用 并点击 提交.当您之后按关闭时,您将在控制器列表中看到您的 Domoticz 控制器。
08 状态指示灯
在选项卡中 硬件 定义您使用 gpio 引脚的目的。固件 2.0 版中新增的一个有用功能可以在下面找到 Wi-Fi 状态 LED.如果您在此处输入 LED 所连接的引脚编号,ESP Easy 会在该 LED 上显示 WiFi 状态。这也可以通过 ESP 模块的内置 LED 实现。选择那个 GPIO-2 (D4) 并打勾 倒置LED 因为那个 LED 是低电平有效的。点击底部 提交.如果 ESP Easy 未连接到 Wi-Fi,LED 现在将在明亮和柔和之间快速闪烁。
09 传感器和显示器
现在拿一块面包板,将 ESP 模块(未连接到电源!)和 BMP180 传感器板放在上面。后者是带有温度和气压传感器的印刷电路板。现在将 BMP180 上的 VIN 连接到 ESP 模块上的 3V3,GND 到 GND,SCL 到 D1,SDA 到 D2。现在拿AM2302(DHT22)温湿度传感器,红线接VIN,黑线接GND,黄线接D5。最后,将 OLED 屏幕与 SDD1306 控制器连接:VCC 到 VIN,GND 到 GND,SCL 到 D1,SDA 到 D2。然后重新连接ESP模块电源。
Domoticz 中的 10 个虚拟传感器
在 Domoticz 网络界面中创建一个虚拟传感器。为此,请打开菜单 设置/硬件, 从类型列表中选择新硬件 假的, 为设备命名并确保 积极的 被检查。点击 添加.然后点击虚拟设备 创建虚拟传感器.为传感器命名并选择类型 温度+嗡嗡声.点击 好的 创建传感器。然后将传感器定位在 设置/设备 并在列中写下数字 身份证号.这是传感器的 ID。然后用同样的方法添加一个type的sensor 温度+气压.
11 配置 DHT 传感器
现在打开 ESP Easy Web 界面。在选项卡中单击 设备 在第一行 编辑.选择在 设备 在...前面 环境 - DHT11/12/22.命名传感器并检查 启用 在。选择为 GPIO 引脚 GPIO-14 (D5) 并作为传感器类型 DHT 22.在 IDX 的 Domoticz 中输入传感器的 ID,并确保 发送到控制器 被检查。然后点击 提交.然后点击 关闭,然后您将在设备列表中看到传感器,包括当前的温度和湿度。您还将在 Domoticz 中看到数据。
12 配置 BMP 传感器
BMP180 传感器通过 I2C 接口与 ESP 模块通信。所以首先看看标签 硬件 从 ESP Easy 验证 I2C 接口是否配置正确: GPIO-4 (D2) 在 SDA 和 GPIO-5 (D1) 在 SCL。这些也是您在面包板上建立的连接。然后转到选项卡 设备 然后点击第二行 编辑.选择作为设备 环境 - BMP085/180.给传感器一个名字,检查 启用 并以米为单位输入您所在位置的高度(以补偿气压)。在Domoticz中输入正确的虚拟传感器ID,点击 提交.
13 创建自己的规则
在编辑关闭期间,ESP Easy 中还有一个错误,导致固件无法正确地将气压从 BMP 传感器发送到 Domoticz。幸运的是,ESP Easy 足够灵活,可以解决这个问题。为此,首先检查您的 BMP 传感器 发送到控制器 关闭并单击 提交.然后打开标签 工具, 点击 先进的, 芬奇 规则 并点击 提交.现在将出现一个新选项卡 规则.打开这个。您现在可以轻松地在文本字段中添加您自己的规则。
14 定时器
在文本字段中,添加下面的脚本。将 IP 地址、端口号和 ID 替换为适合您情况的值。该脚本每分钟将传感器数据发送到 Domoticz。之后重启ESP模块 工具 / 重启.
在系统上#Boot do
定时器集,1,60
内在
按规则#Timer=1 做
SendToHTTP,192.168.1.101,8080,/json.htm?type=command¶m=udevice&idx=230&nvalue=0&svalue=[BMP#Temperature];[BMP#Pressure];BAR_FOR;ALTITUDE
定时器集,1,60
内在
15 配置OLED屏
然后我们只需要配置OLED屏幕,这样我们也可以看到上面的传感器数据。首先在选项卡中单击 工具 在 I2C 扫描 并查看oled屏幕使用的I2C地址,默认为0x3c。然后在选项卡中创建第三个设备 设备 并选择作为类型 显示器 - OLED SSD1306.选择一个名字,打勾 启用 并检查是否输入了正确的 I2C 地址。还要选择正确的旋转(正常或倒置)和屏幕尺寸。
16 显示传感器数据
在 OLED 屏幕的其余配置中,您选择屏幕上显示的内容。您有 8 行 16 个字符需要填写。在第 1 行填写 T: [BMP#温度]^C 在,在第 2 行 H:[AM2302#湿度]% 并在第 3 行 P: [BMP#压力] hPa.我们使用 BMP180 的温度是因为它比 DHT22 更准确。点击 提交.一分钟后(默认延迟),您将在屏幕上看到传感器数据。
17 其他传感器和执行器
我们在本次研讨会中连接的传感器和屏幕当然不是唯一支持的设备。在这里您会找到所有插件的列表。在这里您还可以看到哪些插件包含在普通固件中,以及您需要测试或开发固件。插件的 wiki 页面告诉您如何连接设备以及如何在 ESP Easy 中配置插件。
电池供电的物联网传感器
ESP Easy 可用于将 ESP 模块转变为 IoT 设备。但是您不想一直使用 USB 电源适配器将其挂在墙上。幸运的是,ESP 模块也可以由电池供电。您必须执行一些技巧来限制功耗。在 ESP Easy wiki 上阅读此页面。从广义上讲,这意味着您的 ESP 模块应尽可能长时间处于睡眠模式。例如,您每小时仅测量一次传感器值,然后才打开 WiFi。还要选择正确的 ESP 模块。例如,Wemos D1 mini 是一款经济型的机型,只要稍加努力,就可以使用三节 AA 电池继续工作一年。