npm包homebridge-mqtt-motionsensor使用教程

阅读时长 8 分钟读完

前言

在家庭自动化的实践中,很多智能家居设备并不支持直接与HomeKit进行交互,因此需要一些桥接技术来实现它们之间的互动。其中homebridge是一种特别流行的方案,它可以使得不支持HomeKit的设备接入HomeKit,从而通过Siri语音控制,并在Apple Home应用程序中进行操作。

Homebridge是基于Node.js开发的,它的核心是一系列插件,其中最常用的就是homebridge-mqtt-motionsensor插件,用于作为桥接MQTT协议的MotionSensor设备接入HomeKit。这篇文章将详细介绍如何使用homebridge-mqtt-motionsensor插件。

准备工作

在开始使用homebridge-mqtt-motionsensor插件之前,需要准备以下工作:

  • 安装Node.js
  • 安装homebridge和homebridge-mqtt插件
  • 安装一个MQTT Broker

这里的MQTT Broker推荐使用Eclipse Mosquitto,它是一个轻量级的MQTT消息代理。可以在官网上下载相应的版本。

安装Mosquitto之后,需要创建一个用于homebridge-mqtt-motionsensor的MQTT用户,可以使用以下命令:

安装homebridge-mqtt-motionsensor插件

安装homebridge-mqtt-motionsensor插件很简单,只需要在终端中输入以下命令:

安装完成之后,我们需要在Homebridge的配置文件config.json中添加以下设置:

-- -------------------- ---- -------
-
  -------------- -
    -
      ------------ --------------------
      ------- --- ------ --------
      ------ -------------------------------------
      ----------- ------------------
      ----------- ------------------
      -------- --------------------------
      -------------- -
        --------- ----
      -
    -
  -
-
  • accessory:指定使用的插件
  • name:指定设备名称
  • url:指定MQTT Broker的地址
  • username:MQTT用户名称
  • password:MQTT用户密码
  • topic:MQTT主题
  • mqttOptions:选项,这里指定MQTT消息的保留标记

使用示例

下面是一个基于ESP8266的ESP-01S模块,作为MotionSensor设备接入HomeKit的示例。

步骤一:准备ESP-01S模块

首先需要将ESP-01S模块GPIO2引脚上的接线杜邦线连接到一个人体感应模块的OUT引脚上,将ESP-01S模块和人体感应模块的VCC和GND引脚连接即可,如下图所示。

步骤二:编写Arduino代码

打开Arduino IDE,编写以下代码:

-- -------------------- ---- -------
-------- ---------------
-------- ----------------

----- ----- ---- - ------------
----- ----- -------- - ----------------
----- ----- ----------- - -----------------

----- ----- ------------- - ----------------
----- ----- ------------- - ----------------

----- ----- ---------- - ---------------------

---------- ----------
------------ ------------------

----- --- --------- - -- -- ----- -- ------- ------
---- -------------- - ------

---- ------- -
  ---------------------
  ------------------ -------
  ---------------- ----------

  ----- -------------- -- ------------- -
    -----------
    ------------------
  -

  -------------------
  -------------------- -------------
  ------------------ -------- ---
  -------------------------------
  
  ----------------------------- ------
  -----------------------------

  ----- --------------------- -
    -------------------------- -- ---- ------ ------

    -- ----------------------- -------------- -------------- --------------- -
      -------------------- ------ -------------
    - ---- -
      -------------------------- ------- ------ ----- -- - -----------
      ------------
    -
  -

  ------------- -- --- ------- ----- -- -----
-

---- -------------- ------ ----- -------- -------- --- ------- -
  -- ----------- -- ---- - -- ----
    -------------- - -----
    ---------------------- ------------
    -------------
  - ---- - -- -----
    -------------- - ------
    ---------------------- -----------
    -------------
  -
-

---- ------ -
  -- ----------------------- -- ---- -- ---------------- -
    -------------- - -----
    ---------------------- ------------
    -------------
  - ---- -- ----------------------- -- --- -- --------------- -
    -------------- - ------
    ---------------------- -----------
    -------------
  -

  -- --------------------- -
    ------------
  -
  --------------
-

---- ------------- ----- -------- -
  -------------------------- -------- ------
-
---- ----------- -
  ----- --------------------- -
    ---------------------------- -- ---- ------------
    -- ----------------------- -------------- -------------- --------------- -
      -------------------- ------ -------------
    - ---- -
      -------------------------- ------- ------ ----- -- - -----------
      ------------
    -
  -
-

代码中需要修改以下几个参数:

  • ssid和password:WiFi的SSID和密码
  • mqtt_server:MQTT Broker的地址
  • mqtt_username和mqtt_password:MQTT用户账号和密码
  • mqtt_topic:MQTT主题

步骤三:编译和上传代码

将ESP-01S模块连接到电脑上,并将其烧录为NodeMCU 1.0(ESP-12E Module),通过串口连接,选择正确的端口和速率,然后编译并上传代码。上传完成后,可以在串口工具中查看结果,如下所示:

步骤四:HomeKit设置

使用homebridge-mqtt-motionsensor插件之前,需要先使用一个iOS设备打开Home应用程序。然后添加一个新的MotionSensor设备。按照界面上的指示操作,iOS设备将会提示输入PIN码并将MotionSensor添加到HomeKit中。

总结

本文介绍了使用homebridge-mqtt-motionsensor插件将基于MQTT协议的MotionSensor设备接入HomeKit的方法,以及如何使用ESP-01S模块和人体感应模块制作一个MotionSensor设备。希望对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600557cb81e8991b448d4d59

纠错
反馈