智慧车库折腾记 篇一:#原创新人#用Raspberry Pi 树莓派和Siri遥控车库门
前言
笔者先后在某211高校、某985高校的电气、计算机专业读书,期间还在某号称500强前6(号称前6还行 )的企业工作过两年,深得三家装表接电、深夜码码、成天折腾的真传。
最近在百忙之中(导师放羊 )追赶一下人工智能时代的浪潮,折腾一下家里的车库,利用树莓派(吃灰派)和不到5块钱的无线模块,在不改变电路的情况下,遥控开关车库门;再把树莓派伪装成一个苹果Homekit设备,利用iOS自带的家庭APP,实现Siri语音轻松开门,开车回家再也不用掏遥控器啦!
笔者的家里还围绕树莓派实现了:手机网页监控车库拍照、夜晚遥控开车库灯。准备实现识别车牌号开车库门(一颗赛艇!! )。想象一下您驾驶着您的全新法拉利以每秒八十公里的速度驶下车库坡道,您家的车库门就为尊贵的您迅速打开,如果天黑还会为您点亮车库的灯,并有女装大佬问候一声“日安!大领主!”您入库刹车关门一气呵成,有没有比尔盖茨家的感觉!
醒醒,醒醒,同学,下课了!今天的文章只介绍iOS家庭APP遥控车库门,另外的几篇请看我后续原创文章。
那么问题来了,这样尊贵的车库,哪里才能买得到呢?其实很简单,只需要一个连上Wifi的树莓派,不到5块钱的无线模块,3根短短的导线!
购买材料
树莓派
树莓派买不带电源的裸机就可以。普通安卓手机的数据线(micro-USB)就可以做电源线,如果你家有USB接口的插排,可以直接插上作为电源;用1A以上的手机充电器也可以做树莓派的电源。笔者亲测700mA的手机充电器能带动只接了遥控模块的树莓派,当然为了稳定性还是选择最大工作电流为1A以上的充电器比较好。怎么样确定充电器能提供多大的电流呢? 在手机充电器上都会写着5V/1A或者类似5.2V/500mA的字样,后面那个1A、500mA就是能提供的最大电流,一般2015年以前的手机充电器都在700mA以下,最近几年的快充充电器达到了1A以上,iPhone和iPad的充电器都是足额的电流,但是他们太贵了,舍不得用呀!所以笔者就买了个20块钱的带USB接口的接线板供电,号称2.4A,绝对够用了。如果不想折腾,也可以在卖树莓派的店老板那里买电源。 (此处店老板笑开了花)
ASK/OOK 315M或433M 无线发射、接收模块各一枚
根据您家车库门边上那个小盒子的遥控频率(315MHz或433MHz频率)来选择无线模块。哪个盒子? 啊原来车库门这还有个盒子!对就是那个手掌大的盒子,它就是一个无线接收器+继电器的组合体,用来接收遥控钥匙的信号和控制车库门电机的运转。是不是从来没注意过它还有一根不到20cm长的细细的尾巴?这是无线接收器的天线,一般来讲他的长度是四分之一波长,大概17~23cm之间,当然这些你都不用管,这些是买车库时候给配好了的。你需要做的唯一工作就是确定小盒子的接收频率!笔者在淘宝找到了和家里小盒子同款的,一看商品介绍就知道是什么频率了,是不是很机智! 一句话,您需要买和您车库小盒子频率相同的无线发射模块、接收模块各一枚。笔者家里是D开头的遥控器,配了个433MHz的模块,接收+发射+邮费一共5块钱。
杜邦线 母对母 最少3根
接下来你需要把无线模块和树莓派上像针一样的东西互相连起来,目的是让树莓派给无线模块供上电,控制无线模块发信号。怎么把针连起来呢?没搞过电子设计的值友,最简单的办法是用废旧的电线拆出来一些铜丝,直接缠绕到针上面。当然这样子太费劲了,而且缠的太粗了还容易短路,那么你可以选择杜邦线!1块钱就能买一大把!可以跟无线模块一起买,基本卖电子元件的店都有卖,我本科时候2块钱买的还没用完,你甚至可以用它做音箱线,当然这不是今天的主题。杜邦线要母对母的,最少3根就够了,什么,你问我公母怎么分?就是插和被插的啦,毕竟咱们不是午夜档张大妈, 不能说太细!
搭建环境
距离控制车库门,我们还有一个鸿沟,那就是编程,哎呀这怎么能搞得定吗?!安装树莓派的过程如果你能搞得定,那控制车库门就是小意思了!
安装树莓派的过程,在大妈上已经有很多良心值友给了详细的开箱图文教程,在此就不赘述,你只需要做到进入树莓派的桌面,连接Wifi,打开命令行,然后就可以继续看这一篇文章,继续我们的智慧车库大业。
此处是良心的分割线,先去装树莓派系统吧!
乌鸦学话
装好树莓派系统后,就可以开始让树莓派乌鸦学话,学学遥控器的发射信号,把自己伪装成遥控器。
“听一听”
要想让树莓派模仿你手里的车库遥控器发射开门信号,首先要知道这个信号是什么内容,这这这看不见摸不着的怎么能知道啊?这时候就到无线接收模块大显身手了,我们要让树莓派和无线接收模块“听一听”遥控器的葫芦里卖的什么药。
以下涉及到一点点电子设计入门知识,按说明食用即可:
首先把5块钱买到的接收模块两侧的针对应的接到树莓派的VCC针和GND针上,哪个是VCC哪个是GND呢?绿色的电路板上面会有印刷的英文字母白字,对应的针就是了。它们代表的是高电位和地电位(或者说0电位),VCC接5V的VCC,GND接GND,这步是为了给模块供电;其次把接收模块中间两个针中任意一个接到树莓派BCM模式下的18号针上,这步是为了“听”遥控器发了什么样的信号,这样才好乌鸦学语呀。“听一听”的硬件就连接完毕了。详情可参考这位老哥的文章,当然不看也没关系。
接着我们还用这位老哥的代码,笔者作为一个码农届的调包侠,找到这个老哥的代码最靠谱了。
在树莓派的命令行里执行:
sudo apt-get install python-pip
sudo pip install bitstring
git clone https://github.com/loblab/rfask.git
一路安装,如果没有出现error字样就说明安装成功。
cd rfask-master
cp ask_config_sample.py ask_config.py
安装完毕后,我们就来使劲按遥控器看看会出现什么啦:
python ask_rx.py -d 1 &
这时屏幕会显示正在监听遥控信号,狂按你的遥控器开门按钮 ,每按一下,屏幕应该会显示一行看起来像乱码一样的英文加数字,这就是你遥控器葫芦里卖的药,已经被你成功“听”到啦。记下来这串数字+英文乱码。
用文本编辑器(比如记事本或者Vim)打开ask_config.py文件,照葫芦画瓢的把这串码组合成与hello world相同的格式。比如:
'dakaichekumen': ['PWM', 5.0, 1.0, 8.0, 0.75, 1.0, '0x0011223344'],
不要忘记加结尾的逗号哦。
如果你每次按遥控器收到的这串数字+英文乱码不完全一样,那也没有关系,找一个出现次数最多的,记它就好啦。
“说一说”
到这里已经完成了遥控信号“听一听”的部分,接下来要实现树莓派开车库门,只需要乌鸦学话“说一说”,把学到的码发出去就行了,这时候把无线接收模块拔下来,插上无线发射模块,发射模块的VCC和GND插在原位,但模块的中间那根针,接在树莓派的BCM模式14号针脚上。
在树莓派的命令行中执行,只需要一行代码:
python /home/pi/rfask-master/ask_tx.py dakaichekumen
惊不惊喜,意不意外?车库门打开了吧?
关不上了吧?
赶紧照着前面的步骤,狂按遥控器的关门按钮,重新”听一听“,”说一说“关门信号吧!
Homekit与Siri语音控制
对接Homekit的过程,这位值友已经给了良心图文介绍。
笔者只简要的按顺序给出命令,至于具体细节,就去看那位值友的系列文章吧!下面是一个简化版的,没有浏览器界面。
首先更新nodejs:
sudo apt-get remove nodered
sudo apt-get remove nodejs nodejs-legacy
curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
上面每一个字符都不要丢掉哦, 尤其结尾的横杠。
sudo apt-get install -y nodejs
接着安装Homebridge:
sudo apt-get install libavahi-compat-libdnssd-dev
sudo npm install -g --unsafe-perm homebridge
Homebridge装好后,我们突然想到之前开关灯是在命令行里执行Python语句来开关的,那么怎么让Homebridige执行Python语句呢?
解决办法很简单,让Homebridge执行一个脚本,脚本就像命令行一样,然后让脚本执行一条Python语句就好啦。说的这么乱,是什么玩意?一句话,安装下面这个插件!
sudo npm install -g file-exists
sudo npm install -g homebridge-script2
接着再让插件来执行下面两个脚本,首先创建一个脚本的保存目录:
mkdir ~/.homebridge/sh/
在这个sh目录里放两个文件, 一个叫做on.sh,另一个叫做off.sh
on.sh的内容:
#!/bin/sh
python3 /home/pi/rfask-master/ask_tx.py dakaichekumen
off.sh的内容:
#!/bin/sh
python3 /home/pi/rfask-master/ask_tx.py guanbichekumen
最后一步,在Homebridge的config.json文件中,按如下方式增加一个配件:
"accessories": [
{
"accessory": "Script2",
"name": "车库门",
"on": "sh ~/.homebridge/sh/on.sh 1",
"off": "sh ~/.homebridge/sh/off.sh 1",
"state": "sh ~/.homebridge/sh/state.sh 1",
"fileState": "~/.homebridge/script.flag",
"on_value" : "true",
}
]
完工,这样配置后,在手机上的家庭APP中搜到这个开关,点击开门,会执行on.sh脚本,脚本的内容是执行一个Python文件,Python文件的内容是发送一个和遥控器一模一样的开门信号,车库门的接收器以为是遥控器发送的,就会把车库门打开。点击关门是同理的。
说好了简要给出命令的,还是写了这么多,总之Homebridge这部分可以有很多种方式来实现,可以按照那位值友的系列教程来做,也可以按笔者这个简单粗暴的教程来做。
完结撒花!
现在对着手机喊一下:
嘿Siri,把车库门打开!
嘿Siri,把车库门关上!
Siri你听不见吗你?
如果Siri听不见,就靠近点再说一次。笔者的一枚室友有一天问Siri知道什么叫Make Love吗?Siri不明白,室友又问了好几次,后来另一个室友幽幽的说,人家那叫Have Sex。
顺便说一句iPhone 6s以后的型号已经不用插电源就可以叫出嘿Siri了,大大增加了方便程度。
后记
后面笔者有机会还会讲讲开头视频里那个蓝牙遥控灯的改装方法,今天的食谱就到此为止啦,希望值友们都能打造出属于自己的智慧车库。
pizigao
校验提示文案
守财奴6121
校验提示文案
遗忘的留言
校验提示文案
Fanta5y
校验提示文案
鹫鹫的故事
校验提示文案
交易为生
校验提示文案
A1exi
校验提示文案
逝去岁月
校验提示文案
曾经善良
校验提示文案
飞机飞来飞去
校验提示文案
老蔫
校验提示文案
幕后工作者
校验提示文案
wbz2016
校验提示文案
dejavumou
校验提示文案
peter_mao
校验提示文案
3006kane
校验提示文案
白龙么么
校验提示文案
来而不往
校验提示文案
屡试不第沈佳宜
校验提示文案
丽159
校验提示文案
玩PDD的QDD
校验提示文案
玩PDD的QDD
校验提示文案
平行的默默鱼
校验提示文案
噜噜噜3
校验提示文案
lixinloving
zhaobudao config.json
校验提示文案
值友1367398369
校验提示文案
lixinloving
pi@mossbian:~ $ cd rfask-master
bash: cd: rfask-master: 没有那个文件或目录
之前没有接触过数莓派和编程,就是看了这篇文章才想弄一下,用的3B+
校验提示文案
jamkane
校验提示文案
交易为生
校验提示文案
守财奴6121
校验提示文案
amenghyl
校验提示文案
值友2248507126
校验提示文案
难以启齿的柔弱i
校验提示文案
笑嘻嘻小哈哈
校验提示文案
曾经善良
校验提示文案
在线临风
校验提示文案
超逸绝尘
校验提示文案
逝去岁月
校验提示文案
宇152
校验提示文案
芝131
校验提示文案