在树莓派上搭建 Homebridge,实现 HomeKit 控制智能家居

一、什么是Homebridge Homebridge is a lightweight NodeJS server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of “smart home” devices. HomeKit是苹果的智能家居平台,是iOS系统层面支持的平台,拥有其它平台无法比拟用户体验。可惜大部分米家设备及其它平台的设备都不支持HomeKit,但是可以通过Homebridge作为桥接,实现HomeKit控制其它平台的设备。 二、如何在树莓派上搭建Homebridge https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian 三、安装插件 在这个网址https://www.npmjs.com/search?q=keywords%3Ahomebridge-plugin上可以通过关键字搜索插件, 常用插件: 1.Aqara套装:homebridge-mi-aqara 2.米家空调伴侣:homebridge-mi-acpartner 3.米家yeelight台灯:homebridge_yeelight 4.小米风扇:homebridge-mi-fan 5.米家智能摄像机:homebridge-mi-camera 6.米家智能排插:homebridge-mi-outlet 7.米家空气净化器:homebridge-mi-airpurifier 8.飞利浦灯泡:homebridge-mi-philips-light 9.智能插座:homebridge-mi-outlet ... 四、配置设备 在Homebridge上,插件利用设备的IP地址及设备的token即可以实现控制某个设备,IP地址我们可以登录路由器查看已连接的设备获取,获取token有以下几种方法: 1、使用安卓手机下载旧版本的米家app,导出里面的数据库找到设备token 2、使用miio discover命令获取(米家新的设备基本都隐藏了token,这种方法基本失效) 3、利用Charles抓包 Homebridge具体配置如下: { "bridge": { "name": "Homebridge D535", "username": "0E:E2:26:BC:D5:35", "port": 51762, "pin": "720-92-067" }, "accessories": [], "platforms": [ { "name": "Config", "port": 8581, "platform": "config" }, { "deviceCfgs": [ { "type": "MiPhilipsSmartBulb", "ip": "192....

October 11, 2020 · Darren Ou

树莓派简介

一、树莓派是什么 树莓派是一款基于ARM的微型电脑主板,系统基于Linux,以MicroSD卡为磁盘,树莓派主板有4个USB接口,一个以太网接口,一个3.5mm音频口,一个HDMI视频接口,40-pin的GPIO连接端口 https://www.raspberrypi.org/products/ 二、树莓派可以干什么 可以当做一个微型服务器,作为FTP文件服务器、网站服务器、代码托管等 游戏机(刷入游戏模拟器系统,可玩大部分复古游戏)https://www.jianshu.com/p/feffa629084a 遥控车(手机通过socket连接控制小车,且小车装有红外线传感器,可以自动避障), 可以结合其他传感器搭建智能家居 三、DHT11温湿度传感器 传感器文档 价格便宜,体积小,功耗低,缺点是精度不高 有四个针脚:正极、负极、串行数据总线、空脚 DHT11温湿度传感器数据读取原理 代码: __author__ = 'DuShu' import time import RPi.GPIO as GPIO def getIntVal(binayList): idx = 0 binaryStr = '' while idx < len(binayList): binaryStr += str(binayList[idx]) idx += 1 return int(binaryStr ,2) def getHumidity(): GPIO_DATA = 18 GPIO_HIGH = GPIO.HIGH GPIO_LOW = GPIO.LOW GPIO.setmode(GPIO.BCM) #一秒后开始工作 time.sleep(1) #设置GPIO接口为输出数据模式 GPIO.setup(GPIO_DATA,GPIO.OUT) #输出一个低电平信号 GPIO.output(GPIO_DATA, GPIO.LOW) time.sleep(0.02) #0.018 #0.02秒后输出一个高电平信号,启动模块测量 GPIO.output(GPIO_DATA, GPIO.HIGH) #设置GPIO接口为读取读取数据模式 GPIO.setup(GPIO_DATA,GPIO.IN) #等待,获取到高电平信号 while GPIO....

March 20, 2020 · Darren Ou

在树莓派上部署 ATC 网络模拟工具(Augmented Traffic Control)

一、前言 作为移动开发者的我们,为了良好的用户体验,经常需要模拟手机应用在比较差的网络环境下的表现,模拟网络环境的方式有很多,比如使用Charles,或者在手机的开发者模式下模拟网络环境等等,但是这些都有一定的门槛。 使用Charles,首先你得连接WiFi,然后设置代理,接着开启网络模拟模式,最后测试完了如果忘了关闭代理,可能手机就上不了网了。而且都连上你电脑的代理的话就一次只能模拟一种网络环境。 使用手机的开发者模式,首先你的手机能进入开发者模式。 如果你需要随便抓一位不懂技术同事帮你测试,这些方式都不太友好,有没有一种方式可以连上WiFi就可以使用的测试方式呢?有!接下来就介绍Facebook出品的一款网络模拟工具ATC。 二、简介 Augmented Traffic Control (ATC) is a tool to simulate network conditions. It allows controlling the connection that a device has to the internet. Developers can use ATC to test their application across varying network conditions, easily emulating high speed, mobile, and even severely impaired networks. ATC全名叫Augmented Traffic Control,是Facebook出品的一款网络模拟工具,移动开发者可以通过这款工具模拟不同条件下的网络环境,可以通过网页自由地模拟网络带宽(bandwidth)、延迟(latency)、丢包率(packet loss)、错包率(corrupted packets)和乱序率(packets ordering)。 而且!!!更牛逼的是:不同的设备连接到同一WiFi还可以模拟不同的网络环境互不影响。 github地址 三、准备 1、树莓派3(已内置有无线网卡) 2、已刷入最新RASPBIAN系统的SD卡 四、安装 安装主要有两步: 1、让树莓派有发射AP热点的能力; 2、安装ATC。 1、让树莓派有发射AP热点的能力 1.安装hostapd虚拟热点程序和dnsmasq配置DHCP、DNS服务程序: sudo apt-get install dnsmasq hostapd...

April 11, 2017 · Darren Ou

利用树莓派 + RetroPie 做一个怀旧游戏机

一、前言 偶尔会好怀念小时候跟朋友一起玩小霸王的日子,那时候很少家里有游戏机的人,一台游戏机有好几个朋友在等着玩,那时候能玩的东西不多,但日子过得简单而开心。虽说现在万能的淘宝还可以买到小霸王游戏机,但是远远不如自己做一个出来的成就感来的强。下面就一步一步把小时候的游戏机做出来。 二、准备 1、树莓派+SD卡 2、显示器、游戏手柄、键盘等外设 三、下载RetroPie镜像 RetroPie是一个开源的游戏模拟器,可以让你的树莓派或者PC变成一个复古游戏机,它集成了任天堂红白机、GameBoy、SNES等著名游戏系统,具有很高的可玩性。 你可以在Raspbian直接安装RetroPie,但是会耗费很长的时间,所以我在这里选择直接下载RetroPie镜像。 下载地址:https://retropie.org.uk/download/ 四、往SD卡写入RetroPie镜像 PC上可以使用 Win32DiskImager 工具写入镜像; Mac系统下可以用 ApplePi-Baker 工具; 具体写入方法及下载地址网上都很容易找到,在这里就不再赘述。 把已经写入RetroPie镜像的SD卡插入树莓派并连接电源。 五、配置 1.设置输入设备 我们的游戏手柄有时候并没有那么多个键位,我们在设置的时候怎么跳过一个键位的设置呢?这里有个小技巧:长按“下”键即可跳过。 设置游戏手柄键位 2.连接WiFi 设置好键位后,我们就可以进入主界面,上面有“13 GAMES AVAILABLE”字样,这并不是意味着里面就有13个游戏可以马上玩的,应该理解为内置了13个游戏模拟器,这时候我们怎么样才能开始玩呢? 初始主界面 按“A”键,进入设置界面,点击WIFI,连接你电脑同一个的局域网。 连接局域网 3.传输roms 打开PC,点击“计算机”上面的地址栏,输入“\retropie\roms”,即可进入游戏roms文件夹,把下载好的游戏rom拉到对应的模拟器文件夹,如.nes后缀的游戏rom拉进对应的nes文件夹。 模拟器文件夹 4.重启模拟器 重启模拟器 重启模拟器后就可以看到主界面多了一个选项,选择游戏就可以开始你的怀旧之旅了! 多了一个选项 超级马里奥 六、其他配置 有人会发现自己的SD卡的内存明明很大,但是没有塞多少个游戏内存就满了,可以进行下面的配置“扩展”内存: 进入RetroPie的设置界面,进入RASPI-CONFIG RASPI-CONFIG 选择第一项Expand Filesystem,重启树莓派即可扩展内存了。 另外,你还可以在这里进行修改登录密码、国际化选项、设置超频等操作。 树莓派设置界面 七、祝你玩得开心😊

March 12, 2017 · Darren Ou