本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于 ESP8266 的智能家居开源解决方案

发布时间:2021-11-11
分享到:

基于 ESP8266 的智能家居开源解决方案

发布时间:2021-11-11
分享到:

物联网连接
 IoT Connect 是一个建立在 esp8266 之上的开源物联网平台,它允许用户以最有效的方式远程连接和控制他们的家用电器。

该项目主要分为3个主要部分,即硬件、固件和Web UI。

硬件:
硬件建立在ESP8266和74HC595N移位寄存器之上,仅使用3个GPIO即可控制8个设备。因此,我们留下了额外的 GPIO,可用于其他目的,例如连接传感器。该设备还包括诸如 DHT11 之类的传感器,它使我们能够测量房间当前的室温和湿度,以及一个 LDR(光敏电阻器),它帮助我们测量房间亮度。

借助这些传感器,我们可以使用 IFTTT 或 Adafruit IO 等 3rd 方服务使设备自动化。该硬件包括板载 5v 电源,因此用户无需安装额外的电源适配器来为设备供电。我们必须提供的唯一输入是 110v-220v 交流电源。

该设备还包括 2 个轻触开关,一个用于重置 ESP,另一个连接到 GPIO,可以对其进行编程以获取用户输入或重置设备。

固件:
IoT Connect 固件使用 Arduino 框架构建,可以独立运行或与 IoT Connect Web 应用程序同步运行。它的设计方式还可以将其闪存到任何其他可用的物联网智能开关,例如 Sonoff 设备或 Tuya 设备。

刷固件:

要刷新固件,您可以先从这里下载。这将为您提供 2 个文件:

  • firmware.bin(包含功能的主文件)
  • spiffs.bin(UI 文件,包括 HTML、JS 和 CSS 文件)

只需在 FTDI 编程器的帮助下,通过暴露的编程引脚将固件.bin 文件刷入 ESP8266。您可以使用固件存储库中包含的 Tasmotizer 将 firmware.bin 刷入 esp8266。闪烁完成后,我们就可以打开设备了。

该固件为我们提供了以下多种功能:

打开设备后刷新固件后,ESP 将托管自己的接入点,名为“IoT Connect”,该接入点可用于执行其初始设置。

您可以将笔记本电脑或 android/ios 手机连接到此 AP。连接 Wi-Fi 后,会弹出一个网页(或从网络浏览器浏览 192.168.4.1),显示如下设置屏幕。

在这里,您可以通过 OTA 更新 firmware.bin,也可以通过上传第二个文件(即 spiffs.bin)继续下一步。一旦 SPIFFS 闪烁,设备将重新启动并托管其网页。

这是您必须提供设备配置的页面。第一个设置是 MQTT 代理。如果您想连接到 IoT Connect Web UI,请保持所选选项不变,或者如果您想连接到任何其他 MQTT 服务器,例如 Adafruit.io 或 HiveHQ 等,则选择第二个选项,即自定义。您可以在此处提供 MQTT 服务器的 MQTT 详细信息。

如果您想让设备与任何云服务隔离,您也可以选择 N/A。

在第二个下拉列表中,选择您刷入此固件的设备类型。如果使用本项目中提到的相同设备,则选择“IoT Connect Board Rev 2”并单击保存。此设备将再次重新启动后,网页将刷新。

无线上网:

现在第二步是连接到家庭 Wi-Fi。转到 WiFi 选项卡并单击扫描,选择要连接的 AP,输入 WiFi 密码并单击更新 Wifi。

提示将要求您确保输入了正确的详细信息。单击“确定”,设备将重新启动。

如果您输入了错误的详细信息,ESP spiffs 将被删除,您必须再次上传 spiffs.bin 并重新开始。


验证:

保存 Wi-Fi 设置并成功重启设备后,网页将重定向到 ESP 的本地网址,并会出现身份验证提示。

默认用户名和密码是“admin/admin”。输入相同然后您将看到可以控制相应继电器的拨动开关列表。

如果您想从轻触开关切换继电器,您可以从下拉列表中选择继电器。

IoT Connect 固件还显示了通过 MQTT 来回流动的每个命令,以让用户了解云服务器上正在发生的信息。您可以单击“打开调试控制台”按钮来检查数据流。

这里的“ESP_SENSOR”和“ESP_ATTENDENCE”是推送对应JSON数据的主题。

您还可以从“安全”选项卡修改身份验证用户名和密码。

Alexa:

IoT Connect 固件内置有 Alexa 支持。只需转到 Alexa 选项卡,您就可以配置 3 个不同的中继,这些中继可以由连接到同一网络的 Alexa 设备发现和控制。

设备状态:

要获取设备状态,您可以查看“状态”选项卡,该选项卡将提供一些有用的信息,例如本地 URL、Wi-Fi SSID、MQTT 状态、Wi-Fi 强度以及来自传感器的温度 + 湿度 + 照度读数。 

IoT Connect 固件的最佳部分是 UI 通过 Web Sockets 连接到模块,因此您在 Web UI 上看到的信号强度和传感器读数等数据将异步更新,而无需刷新页面。这有助于减少 ESP 网络服务器的负载。

设备配置:

最后一个选项卡是设备选项卡,您可以在该选项卡中对设备执行重置、重启、更新或重新配置设置(例如 MQTT 服务器或更改设备类型)等基本操作。

此选项卡还允许您将 IoT Connect 固件连接到 IoT Connect Web UI。

只需单击重新配置设备按钮 -> 与 IoT Connect 配对

这会将您重定向到一个网页,您必须在其中提供 IoT Connect 帐户的凭据,然后单击添加设备。

在下一页上,为您的设备命名并选择要添加此设备的房间,然后单击添加设备。

(房间将在 IoT Connect Web App 的以下部分进行说明)

在下一页,您必须按下并松开设备上的轻触开关一次或两次才能完成同步过程。

物联网连接 Web 应用程序:
IoT Connect Web 应用程序的设计非常简单且信息丰富。您可以从此URL (https://iot-connect.in)访问 Web 应用程序。

首先,您需要创建一个帐户,然后登录。登录后,您必须转到控制面板并创建一个房间。

如上所述,可以向这些房间添加设备。添加设备后,您可以在设备名称旁边看到一个绿色地球符号,这表示该设备在线并已连接。

如果设备离线,当设备离线时,地球符号将变为红色,并显示时间。

单击设备选项卡时,将打开并最大化控制面板,您可以在其中看到与板上继电器相同数量的开关。您可以切换这些开关来切换板上的继电器。这里唯一的区别是这种连接是通过 MQTT 进行的,并且可以从世界任何地方控制中继。您可以从任何地方访问 IoT Connect 网站并控制继电器。

除此之外,该网页还将以图表和仪表的形式显示传感器读数。

这些读数可以通过单击记录下的开始按钮记录在此处。录音只能运行 1 小时。最大限度。此外,这些录音可以以 csv 的形式下载,也可以以图表的形式查看。

您可以通过单击 NC 并在弹出窗口中提供新名称来重命名继电器名称。激活 IoT Connect 智能家居技能后,Alexa 设备也会发现相同的名称。

这个 Web 应用程序最好的部分是多个用户可以共享一个设备,第一次添加设备的用户将成为设备的所有者。如果其他用户将添加相同的设备,则会向所有者发送请求以批准访问。可以从帐户部分的共享用户收回此访问权限。

IoT Connect 还支持推送通知,因此如果任何用户切换继电器,则通知将发送给共享该设备的每个用户。您可以从“帐户”部分禁用此通知。

您还可以在 Alexa Skill商店中找到IoT Connect Smart Home Skill。此Skill将允许您控制来自与 IoT Connect 板不在同一网络中的 Alexa 设备的继电器。

本方案所用到的一些代码

如果您对此项目有任何想法、意见或问题,请在下方留言。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论