我是如何从家庭自动化领域的零基础成长为专家的
一切是如何开始的
让我们来深入探讨一下技术细节。
结束语
一切是如何开始的
近几年来,物联网和智能家居技术发展迅猛。
对我来说,一切始于大约三年前,那时我第一次听说了Arduino。
一年多过去了,我越来越擅长用这个小小的微控制器搭建各种东西。我已经有了多条LED灯带、温度传感器、显示屏等等。
一步步地,我最终实现了用智能手机控制我的房间。
让我们来深入探讨一下技术细节。
该装置包含哪些部件?
- 运行我的 Node.js 服务的中央网关
- 2盏由微控制器控制的灯
- 1 条可单独寻址的 LED 灯条
- 一套扬声器
- 一切都由 PWA(渐进式 Web 应用)或 Google 助理控制。
这个中央网关是一台运行Ubuntu系统的Khadas VIM单板计算机。
我使用的微控制器是NodeMCU(你可能会问为什么不用Arduino?这些小家伙内置了Wi-Fi,而且价格相当便宜!)
建筑学
正如我之前提到的,有一个中央网关负责处理所有事情。
它运行着一个基本的 Node.js Express 服务器,并根据请求调用相应的微控制器。与微控制器的通信在本地网络中使用 HTTP 协议。
网关本身通过我的路由器对外开放,因此我可以从任何地方访问它。
灯具
我的房间里有两盏主灯(一盏在墙上,一盏在天花板上)。
每盏灯都由NodeMCU通过220V继电器控制。
灯带
灯带的控制非常简单,就是一个标准的接线方式,我不想赘述细节。
演讲者
我对这个作品相当满意。我用的音箱是Edifier R2730。
控制这款音箱只能使用自带的遥控器或音箱本身的按键。
我的解决方案是读取遥控器的红外代码,保存这些代码,然后用我的NodeMCU通过红外LED重复这些代码。
现在我的音箱上贴着一个NodeMCU(从外观上看不出来),它可以远程控制音箱。
PWA
中央网关由我用Vue.js和Vuetify构建的 PWA 控制。
该 PWA 部署在 Azure Web 应用的免费实例上。
所有发往网关的请求都会通过运行在同一个 Web 应用上的 Node.js 服务进行代理。
但我为什么要代理所有请求呢?这会给每个 HTTP 请求增加额外的开销和延迟。但这里有个问题!对于 PWA 来说,必须使用 HTTPS 提供服务,并且所有请求也必须使用HTTPS!而我的网关只是一个 IP 地址,因此我不得不通过提供免费 SSL 证书的 Azure Web 应用来代理所有请求。
Google 助理
我特意买了个 Google Home mini 就是为了把它连接到这个系统上。😄(不过它也能连接我的手机)
网关里有个类似人工智能的小型算法,用来处理从 Google Assistant 接收到的语音输入。
这些语音输入是通过IFTTT接收的。之后,它就直接调用微控制器了。
结束语
我断断续续地开发这个系统已经一年多了。它最初是一个 React Native 应用,但后来发现这并不是最佳方案。
我和女朋友每天都在用它,我希望以后能进一步扩展它的功能。 只需说一声“嘿 Google,我到家了”,灯光就会亮起,音响里播放着你最喜欢的电台,然后你就可以放松下来,继续写你喜欢的代码,这种感觉真的太棒了😊。或者,如果夜深了,你正在 Dev.to 上阅读最后一篇文章,准备睡觉的时候,甚至不用起床就能关灯关收音机😁。
还有很多细节/功能我没有提到。如果这篇文章反响不错,我可以写一个更详细的技术系列文章。
例如:
- NodeMCU 的 OTA 更新
- 通过我的网关播放 YouTube 音频
- 我的平板电脑设置(是的,我的平板电脑是壁挂式的😬)
- 处理从 Google Assistant 接收到的词语
- 内置闹钟
PS:写完这篇文章后,我查看了谷歌趋势中关于家庭自动化和物联网的讨论,发现它在过去几年里的受欢迎程度似乎有所下降😲。
文章来源:https://dev.to/martis347/how-i-got-from-zero-to-hero-in-home-automation-48jm






