切换到宽版
  • 8258阅读
  • 60回复

[外设]买iPhone8了吗?让Siri帮你开灯吧!(NanoPi NEO开发板应用实例) [复制链接]

上一主题 下一主题
离线nicot
 

发帖
147
M币
3365
专家
9
粉丝
5
— 本帖被 發騷友 设置为精华,作者+3000M币+5专家(2017-10-02) —
今天玩点有意思的,用siri控制你家里的灯。
原料:nanopi neo X1, ESP8266 X1,Iphone X1,内存卡 X1
工具:读卡器 X1,USB转串口 X1
提高:继电器控制的灯X1,USB网卡 X1
涉及到的技术:linux,HomeKit,HomeBridge,Mqtt,Esp8266,NodeMcu,Lua
下面开始:

先爆个照,nanopi neo微型电脑板:


NanoPi-NEO 主板布局:



首先,需要给nanopi neo装个系统,镜像下载地址:https://pan.baidu.com/s/1boQFxN5,我选择的是画横线的那个:



下载下来之后,需要用到Win32DiskImager这个软件来刻录镜像,网上有很多,大家自己下就行,内存卡最好选用8G以上的Class10的卡,刻录的过程也比较简单:


选好镜像和要刻录的内存卡盘符点击write就可以了,大概10分钟可以刻录完。刻录完之后,插入内存卡,插好网线接到路由器上,然后进入路由器看一下nanopi的IP,我的显示设备名称是FriendlyELEC,找到IP之后我们就要来一场紧张刺激的ssh连接了,使用软件的名字叫:SecureCRTPortable,这个网上也可以下载到,下载成功之后,依次点击:文件->快速链接,然后按照下图配置你的SSH连接:


主机名替换成你在路由器中看到的IP用户名是pi,过一会会提示你输入密码,密码也是pi,然后点击确定就成功连到nanopi neo了,大概是下面这个样子的:



接下来需要安装HomeBridge了,HomeBridge是什么呢?(就是家里的桥。。。。。),我扯淡的,这个玩意是干什么的呢?HomeKit可能有人听说过,是苹果2014年发布的智能家居平台,现在有一些智能设备可以连接到HomeKit上面,但是呢,万恶的苹果肯定是不会降低门槛,支持的设备很少,并且很贵,这时候呢,就有一个吊B的人,把HomeKit的协议给逆向了,,,,写了这么一个开源的项目HomeBridge,让大家可以自定义一些设备接入HomeKit,(当然HomeBridge肯定是需要放在一个你家里WIFI下的一个设备上面运行啦,我选的就是nanopi)HomeBridge的git地址:https://github.com/nfarina/homebridge ,感兴趣的朋友可以去star一下,支持一下开源。

好了BB完了,该说怎么安装了,,,,,,一般牛逼的人看到源代码,估计就原地爆炸,直接自己编译安装去了,我可不打算这么干,现在有npm这么牛逼的包管理工具干嘛不用?,所以,首先我们需要一个npm,npm怎么安装呢?我发现系统镜像自带的软件源种没有,这样就只能自己安装了,一种方法是自己编译安装(我自然不会选择这种方式。。。),第二种是使用别人编译好的二进制包,二进制包去官网下就可以,地址:https://nodejs.org/dist里面有好多版本,我选的是最新的,你们选也不要版本太低。点开后里面形如:node-v8.6.0-linux-armv7l.tar.gz这个的就是要的包,然后在ssh中执行:
  1. wget https://nodejs.org/dist/v8.6.0/node-v8.6.0-linux-armv7l.tar.gz


速度可能比较慢,下载完成后,将包解压:
  1. tar -zxvf node-v8.6.0-linux-armv7l.tar.gz


然后将解压后的文件夹改个名字,然后扔到/usr/local文件夹里面去:
  1. sudo mv node-v8.6.0-linux-armv7l /usr/local/node


最后设置环境变量,使用vi修改:/etc/profile 这个文件,在其中加入一行:export PATH=$PATH:/usr/local/node/bin:. 然后执行下面的语句使环境变量立即生效。
  1. source /etc/profile


然后就可以执行npm -v命令查看一下,安装是否正确了。确认安装正确后,需要安装一些依赖,安装HomeBrige的时候,会用到:gcc make node git python libavahi-compat-libdnssd-dev,因为我选择的这个镜像前面的基本都有了,所以只要安装libavahi-compat-libdnssd-dev就行了,所以执行:
  1. sudo apt-get update
  2. sudo apt-get install libavahi-compat-libdnssd-dev


安装好之后,就可以安装HomeBridge了,执行:
  1. npm install -g --unsafe-perm homebridge hap-nodejs node-gyp


安装个过程中不会有报错。安装完成之后就要启动一下试试了,不过启动之前还要配置点东西,首先,新建一个文件:config.json,我是在homebridge中建的,你也可以选择其他位置,然后编辑config.json,在其中写入配置:
  1. {
  2.   "bridge": {
  3.     "name": "HOME",
  4.     "username": "02:81:55:07:0E:9B",
  5.     "port": 30636,
  6.     "pin": "000-01-002"
  7.   }
  8. }


其中name就是你给你的homebridge起的名字,username是你设备的MAC地址,字母必须大写,port需要用合法的未被占用过的端口,pin是使用手机连接时需要输入的密码,写入后,保存,然后执行:
  1. homebridge -U homebridge/


后面的路径是制定你的配置文件路径。然后就可以看到开始启动了,启动之后大概是这个样子的:


然后打开你的iphone中的家庭那个软件,添加配件->没有代码或无法扫描->附近的配件,就能看到你刚才舍得名字的bridge了,然后点击它,输入你配置的pin,过一会就成功添加了。下面是我添加过的手机上面的截图,现在没有装插件,所以只能看到一个桥:


哎,没买到回家的票,今天还得苦逼坐班,,,,一会看机会就溜,回家接着写....

go on
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共15条打赏M币+132专家+4
huangyixiang 专家 +1 - 10-16
hongo 专家 +1 優秀文章,加砖家! 10-07
hongo M币 +9 優秀文章,加砖家! 10-07
q版虎斑猫 M币 +13 - 10-06
eros8269 M币 +13 謝謝分享 10-05
wmshizheng M币 +13 谢谢分享 10-04
xuyaz 专家 +1 玩个远程控制,成本贵了。玩成品的便宜多了 10-04
xuyaz M币 +9 玩个远程控制,成本贵了。玩成品的便宜多了 10-04
wska 专家 +1 謝謝分享 10-04
wska M币 +8 謝謝分享 10-04
12
关键词: NanoPiSiri开发板
离线showdoi

发帖
9
M币
-191
专家
0
粉丝
1
只看该作者 1楼 发表于: 09-30
来看下,希望不要太复杂。
在线南湘小隐

发帖
366
M币
201
专家
6
粉丝
42
只看该作者 2楼 发表于: 09-30
和树莓派差不多吧!看起来一点也不简单!未来肯定能一键配置!
离线xu_john

发帖
1113
M币
617
专家
2
粉丝
21
只看该作者 3楼 发表于: 09-30
这个只有苹果8才有吗?
离线nicot

发帖
147
M币
3365
专家
9
粉丝
5
只看该作者 4楼 发表于: 09-30
书接上回,HomeBridge已经安装完成了,这就相当于打通了一个你的自定义设备与HomeKit之间的桥梁,下面要开始上设备了。
上面也说了,HomeBridge就相当于是一个桥,那么桥就要有桥头,另一端确定了,是HomeKit,那么这一段就要用到不一样的东西了,为了方便大家在桥头搞事情,现在有了好多的HomeBridge插件,什么yeelight的插件,homeassistan插件,aqara插件,我们今天用的就是HomeBridge-mqtt这一款插件,这个插件就是将与HomeBridge的通信,转换成了mqtt协议,方便在NodeMcu上面使用。
安装这个插件还是比较简单的,直接npm大法好:
  1. npm install -g homebridge-mqtt


安装完插件还是不能用的,还需要安装一个MQTT的消息代理软件:消息代理,在终端执行:
  1. sudo apt-get install mosquitto mosquitto-clients


然后配置一下mosquitto,vi编辑/etc/mosquitto/mosquitto.conf这个文件,在其中加入下面三行:
  1. listener 1883
  2. allow_anonymous false
  3. password_file /etc/mosquitto/auth


第一个是监听的端口,第二个是不允许匿名访问,第三个制定密码文件的位置,下面就要设置密码了:
  1. sudo mosquitto_passwd -c /etc/mosquitto/auth [你想用的用户名]


之后会让你打两次密码,没有回显,记住他。

最后一步到了,设置前面说过的HomeBridge的config.js文件,在其中加入homebridge-mqtt的相关配置:
  1. {
  2.   "bridge": {
  3.     "name": "myHOME",
  4.     "username": "02:81:55:07:0E:8E",
  5.     "port": 10086,
  6.     "pin": "000-01-002"
  7.   },
  8.   "platforms": [
  9.     {
  10.       "platform": "mqtt",
  11.       "name": "mqtt",
  12.       "url": "mqtt://127.0.0.1",
  13.       "topic_prefix": "homebridge",
  14.       "username": "HomeBridge",
  15.       "password": "12345678"
  16.     }
  17.   ]
  18. }


这个platforms是一个JSON数组,也就是说可以设置多个平台,我们现在设置的就是mqtt的,name那个字段你可以自定义名字,无所谓,url就是mqtt监听的本地地址,填mqtt://127.0.0.1就行了,topic_prefix是MQTT的主题前缀,这里设置为homebridge,当然你也可以修改,但是修改后,一会的程序你也得做相应修改。username就是刚才生成mosquitto密码时输入的用户名,password显而易见就是刚才输入的密码,填完这些,就可以保存推出了,然后使用上面的命令启动HomeBridge。启动后打印的内容如下:


其中,如何使用HomeBridge-mqtt插件在官网有详细介绍,这里就不再赘述,地址:https://www.npmjs.com/package/homebridge-mqtt
截至到这里,所有关于nanopi neo的操作就都完成了,下面就是关于如何开关灯了,也就是设备,下节再说,哈哈
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
在线sofasofa

发帖
293
M币
205
专家
0
粉丝
6
只看该作者 5楼 发表于: 09-30
太棒了
一直想弄,就是不知道用什么方案
离线nicot

发帖
147
M币
3365
专家
9
粉丝
5
只看该作者 6楼 发表于: 10-01
回 xu_john 的帖子
xu_john:这个只有苹果8才有吗? (2017-09-30 14:54) 回 xu_john 的帖子

不是的,支持HomeKit的都可以,6,7,8,ipad都可以
离线在路上795

发帖
1903
M币
1762
专家
0
粉丝
20
只看该作者 7楼 发表于: 10-01
这个牛啊,看得一头雾水

内容来自Android手机客户端

离线xu_john

发帖
1113
M币
617
专家
2
粉丝
21
只看该作者 8楼 发表于: 10-01
回 nicot 的帖子
nicot:不是的,支持HomeKit的都可以,6,7,8,ipad都可以 (2017-10-01 00:04) 回 nicot 的帖子

啊,原来这样啊。还没有玩过苹果呢。
离线bthlon

发帖
400
M币
3641
专家
1
粉丝
3
只看该作者 9楼 发表于: 10-02
直接微信+esp8266+串口继电器,成本15元

esp8266可以刷micropython,啥都可以干
本帖最近打赏记录:共1条打赏M币+15
yanchao130 M币 +15 謝謝分享 10-06
快速回复
限80 字节
温馨提示:欢迎交流讨论,请勿发布纯表情、纯引用等灌水帖子;以免被删除
 
上一个 下一个