查看: 6035|回复: 0

[大赛作品提交] 基于HomeBridge的HomeKit & Siri智能家电树莓派桥接器

[复制链接]
  • TA的每日心情
    郁闷
    2017-6-6 18:31
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-12-19 23:51:40 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 ky123 于 2018-1-31 14:13 编辑

    感谢E络盟官方提供的助赛基金。
    1 首先说下什么是桥接器

    飞利浦推出过一套很出名的HUE智能灯泡套装,价格巨高无比,如下图所示

    F9E08571645AD73B1E7CE82AC5585469.png


    三个灯泡+一个桥接器售价高达上千元
    这里面的桥接器的主要作用就是负责连接灯泡
    统一将灯泡进行连接,然后只有桥接器连接到路由器上
    可以减轻路由器负载(路由器从好几个连接点变成一个桥接器连接


    2 再说说什么是Homebridge


    这是前苹果员工通过逆向工程将HomeKit反编译出来的,可以将一些不支持HomeKit的产品接入HomeKit中
    HomeKit的智能家居产品都价格高昂,而HomeBridge可以运行在Linux路由器中
    从而可以将一些支持型号的家电接入HomeKit中,也可以写入树莓派中,接入HomeKit中
    (比如米家系列、博联等生态链的产品

    3 项目需要准备的设备


    1)树莓派
    2)树莓派配套的相关电源、SD卡等
    3)路由器,emmm,比如蒲公英路由器(滑稽
    4)小米台灯

    4 项目内容展示



    Siri语音调节灯的亮度


    IMG_1187.jpg

    5 项目实施


    首先烧录树莓派镜像
    这里不详细介绍了
    有一个细节
    有些树莓派的镜像默认情况下并不开启SSH
    然而又没屏幕和鼠标键盘,就没法登陆树莓派
    在烧写完镜像之后,打开SD卡(盘名应该是boot
    右键新建个文本文件就行,然后改名为SSH
    同时删掉.txt后缀,再插上网线就能正常SSH登录树莓派
    1. sudo apt-get update
    2. sudo apt-get upgrade
    复制代码
    首先更新一下软件
    1. sudo apt-get install nodejs
    2. sudo apt-get install build-essential
    3. sudo apt-get install libavahi-compat-libdnssd-dev
    复制代码
    然后安装一下nodejs和相关依赖包文件
    1. sudo npm install -g homebridge
    2. sudo npm install -g homebridge-aqara
    复制代码
    安装homebridge
    1. sudo npm install -g homebridge-yeelight
    复制代码
    安装yeelight,米家的灯都是基于yeelight的,所以这里要安装一下yeelight
    1. sudo vi /homebridge/config.json
    复制代码
    编辑一下配置文件
    1. {
    2.     "bridge":
    3.         {
    4.         "name": "RPIbridge",
    5.         "username": "CC:22:3D:E3:CE:30",
    6.         "port": 51826,
    7.         "pin": "031-45-154"
    8.           },
    9.    "platforms":
    10. [
    11.   {
    12.     "platform": "Aqara",
    13.     "sid": ["2e6f7c3c2b1a"],
    14.     "password": ["********"]
    15.   }
    16. ]
    17. }
    复制代码
    2e6f7c3c2b1a填路由器mac地址(不要写冒号
    ***********指的是路由器密码



    IMG_1175.PNG


    打开yeelight手机app的第三方控制
    不然
    树莓派无法控制小米台灯

    配置完成后运行一下试试

    输入命令行homebridge
    IMG_1188.png


    在putty中会显示二维码,扫一下就可以添加


    IMG_1184.jpg

    完成后如上图
    编辑一下名字,小米台灯即可


    IMG_1185.png

    在底部控制中心可以拉出来控制面板


    IMG_1183.jpg

    用Siri试一下能否正常运行

    322.jpg


    在putty中可以看到树莓派送达小米台灯的指令

    到此已经可以正常运行了

    下面配置一下开机自启动
    不然每次都要输入homebridge命令
    1. sudo vi /etc/init.d/homebridge
    复制代码
    设置开机自启动脚本
    1. #!/bin/sh
    2. ### BEGIN INIT INFO
    3. # Provides: homebridge
    4. # Required-Start:    $network $remote_fs $syslog
    5. # Required-Stop:     $remote_fs $syslog
    6. # Default-Start:     2 3 4 5
    7. # Default-Stop:      0 1 6
    8. # Short-Description: Start daemon at boot time
    9. # Description:       Enable service provided by daemon.
    10. ### END INIT INFO

    11. dir="/home/pi"
    12. cmd="DEBUG=* /usr/bin/homebridge"
    13. user="pi"

    14. name=`basename $0`
    15. pid_file="/var/run/$name.pid"
    16. stdout_log="/var/log/$name.log"
    17. stderr_log="/var/log/$name.err"

    18. get_pid() {
    19.     cat "$pid_file"
    20. }

    21. is_running() {
    22.     [ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
    23. }

    24. case "$1" in
    25.     start)
    26.     if is_running; then
    27.         echo "Already started"
    28.     else
    29.         echo "Starting $name"
    30.         cd "$dir"
    31.         if [ -z "$user" ]; then
    32.             sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
    33.         else
    34.             sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
    35.         fi
    36.         echo $! > "$pid_file"
    37.         if ! is_running; then
    38.             echo "Unable to start, see $stdout_log and $stderr_log"
    39.             exit 1
    40.         fi
    41.     fi
    42.     ;;
    43.     stop)
    44.     if is_running; then
    45.         echo -n "Stopping $name.."
    46.         kill `get_pid`
    47.         for i in {1..10}
    48.         do
    49.             if ! is_running; then
    50.                 break
    51.             fi

    52.             echo -n "."
    53.             sleep 1
    54.         done
    55.         echo

    56.         if is_running; then
    57.             echo "Not stopped; may still be shutting down or shutdown may have failed"
    58.             exit 1
    59.         else
    60.             echo "Stopped"
    61.             if [ -f "$pid_file" ]; then
    62.                 rm "$pid_file"
    63.             fi
    64.         fi
    65.     else
    66.         echo "Not running"
    67.     fi
    68.     ;;
    69.     restart)
    70.     $0 stop
    71.     if is_running; then
    72.         echo "Unable to stop, will not attempt to start"
    73.         exit 1
    74.     fi
    75.     $0 start
    76.     ;;
    77.     status)
    78.     if is_running; then
    79.         echo "Running"
    80.     else
    81.         echo "Stopped"
    82.         exit 1
    83.     fi
    84.     ;;
    85.     *)
    86.     echo "Usage: $0 {start|stop|restart|status}"
    87.     exit 1
    88.     ;;
    89. esac

    90. exit 0
    复制代码
    创建完成后要给开机自启动脚本足够的权限
    1. sudo chmod 755 /etc/init.d/homebridge
    2. sudo update-rc.d homebridge defaults
    复制代码
    至此,支持开机自启动的“基于HomeBridge的HomeKit & Siri智能家电树莓派桥接器“项目便完成了

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-3-28 16:59 , Processed in 0.127994 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.