去年就说了,今年会做一些物联网的小东西,这里就先发一篇读者自己研究的文章,给大家起个头,其实现在物联网并不需要什么太高深的硬解知识或者技术了,只要大家感兴趣,都可以很方便的用一些手边很方便能买到的设备来玩转物联网~
先上图,不废话(图太大了,还是算了)
苹果自从发布了 HomeKit,可以方便的把家里的智能设备连接在一起,结合 Siri 可以说说话就让家里的设备运转起来。但是苹果没有认证的设备,我们还是没有办法使用的。好在有nfarina逆向了苹果的协议,做出了homebridge才使得众多智能设备接入 HomeKit 成为现实。
先说一下 Yeelight 的极客模式,这里极客模式和局域网控制是一个东西,我刚买的时候还是极客模式,几个月之后极客模式变成了局域网控制。我特地去问了客服,这两个是一个东西,客服截图上显示的还是极客模式,而我这里显示的却是局域网控制。如果你手上也是显示的是局域网控制,不要奇怪,当成一样的就好了,不影响使用。
我们先从灯的设置开始。先用手机下载一个 Yeelight 的 APP(应用商店里搜一下就有了),输入账号密码登录。登录之后需点击右上角的加号添加一台设备,选择你手上所使用的设备,我这里是台灯。下图是添加好的样子,添加过程中需要输入 WiFi 密码。
连接好之后,点击刚刚添加的台灯,进入控制页,选择右下角的三角形。
在弹出的页面中选择局域网控制(极客模式)
把局域网控制的开关给打开
Yeelight 台灯的设置就这些,没有了。
这里默认已经在树莓派上装好了系统,并且接上电源,连接了网络并且要和 Yeelight 灯在同一个局域网。没有的话参考树莓派入门。不用树莓派用其它的也是可以的,需要根据自己的系统进行相应的调整。
首先打开终端,通过ssh
连接上树莓派,我们的操作都是在命令行下进行。Windows 可以使用 Xshell、PuTTY 等工具。
ssh pi@192.168.1.x #这里换成你自己的IP,回车后输入密码
接下来安装 Node.js
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -sudo apt-get install -y nodejs
node -v # 查看一下是否安装成功,成功会输出类似 v9.x.x
为 npm(node 的包管理工具,安装好 Node.js 就有) 配置淘宝源,在终端中输入vi .npmrc
按下i
后输入下面内容
registry = https://registry.npm.taobao.org
输好后按下ESC(一般在 F1 旁边)
,输入:
,接着按下wq
回车。
不做这一步也是可以的,但是国内速度可能会稍慢。
装好了 Node.js 就可以安装 homebridge,homebridge 是一个把设备接入 HomeKit 的工具(类似桥梁的作用),没有它就不能使用没有经过苹果认证的设备。
sudo apt-get install libavahi-compat-libdnssd-dev
sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp
装好了 homebridge 还需要装上插件才能使用对应的智能设备,这里我使用的 Yeelight 台灯,所以还要安装 homebridge-yeelight 这个插件。
sudo npm install -g homebridge-yeelight
插件装好了之后,我们需要配置一下让 homebridge 识别我们。
cd ~/.homebridge # 没有的话手动创建,使用 mkdir ~/.homebridgevi config.json
打开文件之后按下i
键,复制下面的内容到里面。
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
"platforms": [
{
"platform" : "yeelight",
"name" : "yeelight"
}
]}
写好之后按下ESC
,输入:
后再输入wq
回车,该操作会保存文件并退出vi
回到终端。
解释一下上面 bridge 中的配置
在终端中输入下面命令,启动 homebridge
homebridge
会看到一个二维码和我们刚刚配置的 pin(图中红色方框中的),二维码暂时用不到,pin 会在接下来用到。到这里树莓派上的操作都完成了。
打开 iPad,进入家庭 APP,选择添加配件。
在弹出的窗口中扫描终端显示的 pin(就是刚刚运行 homebridge 的地方),这一步通常是不能正确识别的,别担心后面可以手动输入。
来到这里估计估计你已经没有识别出 pin,没关系,我们手动输入 pin。
输入正确的 pin 后,可以看到 Homebridge 显示在 iPad 上了,点击 Homebridge 添加。这里的 Homebridge 就是我们在配置文件里设置的bridge.name
。
点击后会提示未认证配件,选择仍然添加。不添加怎么玩?
接下来的是一些设置,我们默认不动,选择下一步。
可以看到 Yeelight 灯出现了。在下图红框框中,我把名字改为台灯,这样方便 Siri 识别。改好之后点击右上角完成。
回到家庭 APP 主页,台灯已经显示出来。到这里已经已经成功的把 Yeelight 台灯接入 HomeKit。
照着上面的配置好了,也能够使用了。但是每次使用都要我手动运行homebridge
太麻烦了,有没有开机自启动?有,接下来就来配置开机自启动。
which homebridge
如果输出不是/usr/bin/homebridge
,那么你需要把下面拷贝第 13 行的cmd="DEBUG=* /usr/bin/homebridge"
改为cmd="DEBUG=* 刚刚输出的东西"
。
sudo vi /etc/init.d/homebridge
按下键盘上i
,把下面的内容拷贝进去
#!/bin/sh### BEGIN INIT INFO# Provides: homebridge# Required-Start: $network $remote_fs $syslog# Required-Stop: $remote_fs $syslog# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: Start daemon at boot time# Description: Enable service provided by daemon.### END INIT INFOdir="/home/pi"cmd="DEBUG=* /usr/bin/homebridge"user="pi"name=`basename $0`
pid_file="/var/run/$name.pid"stdout_log="/var/log/$name.log"stderr_log="/var/log/$name.err"get_pid() {
cat "$pid_file"}is_running() {
[ -f "$pid_file" ] && ps -p `get_pid` > /dev/null 2>&1}case "$1" in
start) if is_running; then
echo "Already started"
else
echo "Starting $name"
cd "$dir"
if [ -z "$user" ]; then
sudo $cmd >> "$stdout_log" 2>> "$stderr_log" & else
sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" & fi
echo $! > "$pid_file"
if ! is_running; then
echo "Unable to start, see $stdout_log and $stderr_log"
exit 1
fi
fi
;;
stop) if is_running; then
echo -n "Stopping $name.."
kill `get_pid` for i in 1 2 3 4 5 6 7 8 9 10
# for i in `seq 10`
do
if ! is_running; then
break
fi
echo -n "."
sleep 1
done
echo
if is_running; then
echo "Not stopped; may still be shutting down or shutdown may have failed"
exit 1
else
echo "Stopped"
if [ -f "$pid_file" ]; then
rm "$pid_file"
fi
fi
else
echo "Not running"
fi
;;
restart) $0 stop if is_running; then
echo "Unable to stop, will not attempt to start"
exit 1
fi
$0 start
;;
status) if is_running; then
echo "Running"
else
echo "Stopped"
exit 1
fi
;;
*) echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;esacexit 0
按下ESC
,输入:
后按下wq
回车保存并退出编辑。
保存之后我们还要给执行的文件权限,不然开机之后还是没法自动启动的。
sudo chmod 755 /etc/init.d/homebridgesudo update-rc.d homebridge defaults
重启之后 homebridge 就会自己运行。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有