树莓派传统门锁控制(二)——FAQ和要点
想了半天其实没必要像之前那样一步一步来哈哈,正好博主在实现的过程中有过很多问题,所以这一篇就直接开始咱们的问题环节吧~
感觉这个方式好像还挺有用的?网友们(如果有的话)也可以把你们的问题留言...
Github
https://github.com/jokerwho/pi-newdoor
FAQ
一、软件相关
- Q1:要显示web网页我应该安装哪个Python库?这个大概怎么用?
A:如果你是用NOOBS方法安装的Raspbian,只需pip3 install flask
,如果不是,需要先安装python-pip:https://pypi.python.org/pypi/pip#downloads 然后在终端Python setup.py install
。关于使用,可以自行研究一下,flask有官方中文文档的。没有特别需求可以就用我这个:html文件放在templates文件夹,所有需要被调用的css、js、图片等都必须放在与templates同级的static文件夹下,具体可参考我的源码。
- Q2:如何驱动舵机,完成下转和复位两个动作?
A:如果没有接触过GPIO的pwm控制,建议看这一篇文章:点我跳转 可以让你很快上手pwm控制以及舵机角度的定义。
- Q3:你的代码里面关于控制舵机?
A:emmm...可能有点乱,但是总体分为三个逻辑方式控制舵机:第一种是在代码内部——比如微信就一个.py文件,监听到消息的同时就控制舵机角度;第二种是在代码外部——触发事件后,通过os.system运行外部的单独舵机控制程序(源码里的servo.py就是这样一个外部程序),这个程序也包含下拉和复位;第三种其实本来是没有必要的,但不知道是不是特异性问题的原因,前两种总是在舵机下拉开门后就会让树莓派重启,然后就一直保持开门状态...为了解决,想到的第三种就是设置down.py和up.py两个分别让舵机下拉和复位的程序,然后触发事件后,同样通过os.system先运行down.py延时1秒后再运行up.py程序。
- Q4:在运行过程中我的舵机拉下去就回不来了是怎么回事?
A:具体看Q3的第三种(好吧水了一个问题...但其实这个问题很严重的QWQ)
- Q5:我的学校(宿舍)每天准时断电,怎么办?
A:没事...因为我也是...这里就说一下怎么设置定时关机(防止突然断电),以及怎么开机启动微信和网页两个程序。首先sudo crontab -e
根据它的格式设定断电时间(最好提前几分钟),以及关机命令:shutdown now
。接着,为了让微信和网页两个程序能够在开机时以窗口模式运行,我们需要先分别创建两个.sh的shell脚本,脚本内容便是sudo python3 wx_open.py
这种,然后通过desktop桌面启动的方式运行这个两个脚本,具体实现方式参考:【教程】树莓派程序开机自启动方法总结 的 制作脚本和方法三,以及【树莓派】开机自启动脚本方法之一(.Desktop文件)中关于桌面启动的完整代码。
二、硬件相关
- Q1:通过什么方式开门?
A:这要看基本物理力学常识了...如果你的门锁和我的相同,建议就采用我的“绳子下拉”的方式,博主之前还傻乎乎试过舵机放在把手右侧,然后金属片放在把手上面,通过驱动金属片压下把手这种谜之蠢操作...如果是“照相机门锁”(你们懂我意思吧?)那就方便得不能再方便了,因为要用的力不大,而且是直线抽出,具体的实现方式就动动咱们的聪明脑袋想想吧~
- Q2:舵机和树莓派怎么粘?绳子如何固定在门上?
A:其实这才是整个项目让博主费最大心思的地方...为此买了AB胶、双面胶、502、免钉胶、透明胶等等胶水...最后得出了一个最好的方案:舵机面积大的一面粘在门上(所以成品GIF那里有问题,可以明显看到翘起来了...后来再改进的),然后用502(或者哥俩好什么的,反正就是类似的强力胶水)先将舵机那一面粘在门上,按住差不多一分钟,然后在舵机的边缘地方也滴上胶水,大概五分钟后,要用透明胶很精细地“贴紧”舵机的机身粘在墙上,树莓派则是用木盒子粘的...总体如下图:
- Q3:绳子断了...
A:不多BB,买2mm或者3mm的尼龙绳吧!反正我是剪了一根USB线来着(小声...)
- Q4:那个墨水屏怎么搞?
A:如果你买了一块微雪墨水屏的话,一定要提前看它官网的技术文档,特别是和我使用不一样的型号或分辨率的情况下...当然,关于技术文档里面有不懂的也可以留言~(其实我可能会专门出一篇文章...)然后呢,关于python爬天气,源码里面写得应该还算清楚,更改为自己城市的代码就好了...还有问题也都可以在下面问~
- Q5:为啥不用Arduino降低成本?
A:实不相瞒,正在准备弄(2019.5.5)~哈哈,初步想法是通过esp8266以及树莓派做中枢来和arduino通信...可能会出文章吧~