如何从 Arduino 向 Homekit 发送传感器数据(Homebridge)

我的上一篇文章中,我介绍了如何配置 Homebridge, 从而通过 HomeKit 来控制 Belkin WeMo 开关。这个做法非常棒,但是它只是我的智能家居故事的一部分。我先前的自制应用程序,包括了用 Arduion Yun 从我的公寓获取温度和湿度传感器。幸运的是,我们可以将这些传感器添加到 HomeKit 中,因为添加了 WeMo 开关。

步骤1:材料准备

ArduinoYún 在今年(2016)早些时候已经停产了,所以如果你还没有自己的硬件,我就不推荐它了。只要是可以提供 JSON 的微控制器都可以。

如果你使用 Arduino,我把我的一个 Arduino 程序(Example.ino)放在这里作为例子。

如果你是初学者,还没有买东西,请记住:在 Adafruit 上可以获取更多的零件和精彩教程。

在那些更强大的设备上,它们允许您分配一个主机名,如 livingroom.local。但是如果您通过 IP 地址访问它,则应该在路由器上分配静态 IP,以便其地址在将来不会更改。 您需要您的设备输出一小段JSON,如下所示:

{
  "temperature": 21.61,
  "humidity": 48.85
}

无效的输出将导致 Homebridge 崩溃,所以使用浏览器来确保它,发送的是一个有效的结果。

步骤2:结合 Homebridge

经常多次测试后,就可以在运行 Homebridge 的计算机上安装该插件(homebridge-http-temperature-humidity):

sudo npm install -g homebridge-httptemperaturehumidity

现在打开 ~/.homebridge/config.json,并在附件部分添加上每个设备:

"accessories": [
    {
        "accessory": "HttpTemphum",
        "name": "Arduino Yún (Living Room)",
        "url": "http://livingroom.local/arduino/temp",
        "http_method": "GET",
        "humidity": true
    },
    {
        "accessory": "HttpTemphum",
        "name": "Arduino Yún (Bedroom)",
        "url": "http://bedroom.local/arduino/temp",
        "http_method": "GET",
        "humidity": true
    }
]

重启你的 Homebridge,你将在你的 HomeKit 上看到温度数据。

步骤3:结论

不幸的是,有一些警告。iOS 上的 Home(家庭)应用程序的作用是有限的。没有历史记录,您无法创建自动化或基于温度读数获取警报。而且 Homebridge 插件并不完美。 更新值可能需要几秒钟,偶尔会超时。但是,我希望 HomeKit 和 Homebridge 能够随着时间的推移不断变好。如,请问Siri,“卧室的温度是多少?”(what’s the temperature in bedroom?),并得到回应是很整洁的。

原文链接:https://blog.mbcharbonneau.com/2016/11/23/send-data-from-your-arduino-to-homekit/

尚未评分
您的评分将帮助我们做出更好的玩法

观光\评论区

Copyright © 2017 玩点什么. All Rights Reserved.