html

当我第一次开始构建我的智能家居时,我做了大多数人会做的事情:我购买了一堆现成的智能设备,安装了它们的应用程序,并将它们连接到我的网络。有些设备我已经使用了好几年,但随着时间的推移,我意识到我并不真正“掌控”这些设备。从灯光到智能插头,甚至是语音助手,我努力用自己的替代品来替换它们……或者至少,重新掌控它们。

你看,在封闭的生态系统、云依赖和甚至订阅付费墙之间,我“拥有”的硬件的局限性变得令人厌烦。我选择跳过大多数现成的选项,除非它们能以某种方式离线,这样我的智能家居才能真正属于我。我不想再联系那些远在天边的服务器,甚至不想依赖互联网。

ESP32和Zigbee是让我明白的关键

ESP32和Zigbee是让我明白的关键

这是一个缓慢的下降

这是一个缓慢的下降

我第一次以‘拥有’智能家居为目标购买的第一个设备是一个Zigbee协调器,以及一对温度和湿度传感器。这些小工具简单易用,电池寿命长达数年,使用起来非常可靠。它们将数据报告回连接了Zigbee2MQTT的Zigbee协调器的机器上,且没有任何数据离开我的网络。虽然这很基础,但不久我就添置了门传感器、空气质量监测器,甚至还有一个指尖机器人。

不久之后,我发现了ESP32。这是一款仅需几美元的Wi-Fi和蓝牙强大的设备,我给同事Ayush Pande发了消息,想提前了解开始使用它们需要什么,以及它们是如何工作的。问题是,ESP32已经是许多智能家居设备的基础,因此已经有了一个成熟的应用案例,这意味着你可以控制固件,而不是由制造商来控制。

刚开始时,我尝试了很多不同的设置,我用ESP32和DHT11复刻了我的Zigbee温湿度传感器,之后我还构建了其他设备。这些设备包括运动传感器、小型LCD屏幕、振动传感器等等。这些小项目非常有趣,令人上瘾,让我意识到以低成本构建基本硬件是多么简单,完全掌控,而且甚至不需要外网连接。

在我的研究中,我发现许多智能灯具内部都有一个ESP8266甚至ESP32。我有一些Tuya智能灯,虽然我可以使用像tuya-convert这样的工具来重新刷机它们并彻底切断它们的云连接,但我也可以使用本地Home Assistant集成(如Tuya Local)通过我的网络给它们发送命令。在我成功实现这一点后,我简单地封锁了它们的互联网连接,基本上达到了同样的效果,但不需要为了重新刷机而拆开它们。

在这一切过程中,我意识到消费类智能设备跟我自己做的设备比起来,差得多。它们可能看起来不如我做的那么漂亮或干净,但它们能正常工作,如果我想让它们看起来像市面上那些智能家居产品一样好,我可以随时买外壳,甚至为它们3D打印一个自己的外壳。

考虑到智能家居产品的软件通常是多么糟糕,使用 Home Assistant 控制一切真是太好了。我已经不再打开 Smart Life 应用了,其他厂商的应用(如 Govee)也很少使用。我为什么还要这样做呢?一切都在本地运行,界面设计得很不错,我可以随心所欲地升级、调整,甚至完全改造一个设备。

我构建的设备比我以前使用的任何设备都要好

我构建的设备比我以前使用的任何设备都要好

专为我的需求而建

专为我的需求而建

一旦我对 ESPHome 和 ESP32 的开发感到熟悉,可能性简直是无穷无尽的。我为自己做的设备感到非常自豪,它们满足了我个人的需求,而不是那些从商店里买来的通用设备。即使是我的语音助手,我也可以构建我自己的命令,而这些命令在 Amazon Echo 或 Google Nest 设备上是无法找到的。我构建的一些设备包括:

  • XIAO 7.5英寸电子纸面板
    • 从我的位置获取天气信息
    • 显示我的客厅温度
    • 显示我今天的任务和电话。
  • ReSpeaker Lite
    • 为我的卧室提供的语音助手,使用我本地的LLM和Home Assistant。
    • 接入一个旧的CD钱包音响
  • ReSpeaker XVF3800
    • 为我的办公室提供的语音助手
  • Waveshare 64x32矩阵显示器
    • 显示警报
    • 现在播放音乐
    • 天气
  • Elecrow CrowPanel Advance HMI ESP32 7.0
    • Google Nest Hub替代品,具有语音命令的视觉反馈
    • 显示Home Assistant中的照片
  • WT32-SC01 Plus安装在我的NAS上
    • 显示温度和电力消耗,并在容器出现问题时提醒我。

这些只是我做的一些有趣项目,实际上它们在我的智能家居中非常有用。我做了很多不同的传感器和其他小玩意儿,但这些是我最有用的添加。它们每天在我家中使用,使我更容易保持组织、提高生产力,并掌握我的工作。同时确保我的数据完全掌握在我自己手中。

所有这些的美妙之处在于,我不需要依赖公司的服务器,也不用担心应用更新会破坏集成。我可以随时修改和扩展自己的设备。如果我想改变一个按钮的功能,我只需在ESPHome中编辑一个YAML文件并上传新的固件。如果我想重新利用它也是如此。我只需要……就可以了。规划一下,写写代码,然后部署。

当然,这并不是完美无缺的。这些项目可能需要时间来设置,而你不可避免地会花费数小时来排查电线问题、调试 YAML 配置,或者搞清楚为什么你的 ESP32 连接不上 Wi-Fi。但对我来说,这正是乐趣所在。我学到了更多关于电子、网络的知识,并且能够使用不同于我平时习惯的编程语言,这一切都是因为我自己动手做智能家居硬件。

老实说,自从我做了这个转变,我有一个很重要的体会。很难再用那些你意识到自己无法控制的硬件,尤其是当你所构建的一切工作得如此出色时。这需要时间才能做到。