首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用树莓派DIY便携式警报器(2)

用树莓派DIY便携式警报器(2)

步骤 1:搭建树莓派
  • 尽管从头开始搭建树莓派超出了这个项目的范围,但是别担心,一些帮助还是会有的。你可以在网上找到一些教程,但是我建议你读一下Matt Richardson和Shawn Wallace合著的 。这本书不仅仅在PiLarm这个项目上会对你有所帮助,更会帮助你去发掘树莓派的各种功能,这样你才可能会把树莓派的功能结合到自己全新的、有趣的创造上面。
  • 通过那些有关树莓派的指导,将你的树莓派连接到互联网。这样就可以从网上下载在接下来的几步中所需要的库文件和代码,树莓派也就能通过推特和电子邮件来发送检测到的入侵者的图片了。
步骤2:安装GPIO这个库文件允许你控制树莓派的GPIO来使用PIR和键盘作为输入,旋转灯作为输出。在终端中使用下面三条命令来安装:
安装GPIO库
1
2
3
sudo apt-get update
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio



步骤3:安装fswebcam
  • 如果你在使用第三方摄像头,比如Playstation Eye,那么fswebcam可以让你用它拍摄静态图片。如果你使用的是树莓派自带的摄像头,请参考树莓派官方的安装说明,不需要安装fswebcaam。可以用下面的命令来安装fswebcam:
安装fswebcam
1
sudo apt-get install fswebcam



  • 你可以用这个命令手动拍摄照片:fswebcam -r 640×480 -d /dev/video0 testpictire.jpg。然后使用 “ls” 命令查看拍摄的照片是否出现在当前工作目录中。
步骤4:安装mgp123
  • mgp123是脚本”alarmd.py”用来播放”System armed(系统警报)”、”Motion detected.Please enter passcode(检测到物体移动,请输入密码)”等声音文件的命令行音频播放器。安装命令如下:
安装mpg123
1
sudo apt-get install mpg123



  • 现在开始添加我创建的实现PiLarm功能的代码。它位于:
  • 为了把代码放到没有头部没有显示器,只能通过互联网使用SSH进入)的树莓派中,你可以使用git。树莓派并不自带git,但是你可以通过命令安装:
安装git
1
sudo apt-get install git-core



  • 然后使用”clone”命令将代码下载到你的树莓派:
下载PiLarm代码
1
git clone https://github.com/BabyWrassler/PiLarm.git



  • 现在,你有了一个叫作PiLarm的目录,它包含PiLarm项目的python文件和音频文件。在/etc/rc.local文件中含有”exit 0″的行之前添加下面两行设置alarmd.py和keypadd.py为开机启动。
设置开机启动脚本
1
2
python /home/pi/Alarm/keypadd.py &
python /home/pi/Alarm/alarmd.py &



  • 请自己熟悉代码,将代码和以上的流程图比较,弄清楚代码中的语句是怎样运行的。
  • keypadd.py文件的第96行包含了用于给系统警报和解除警报的密码(1912)。第97 行的是关机密码(5764),是用来正常关闭树莓派使它可以拔下电源。
  • 如果你使用的是树莓派的摄像头组件,请返回去参考树莓派的官方指导查看你需要用哪些命令来替换alarmd.py中与fswebcam相关的命令。
步骤6:设置Twitter
  • 在 页面中新建一个”App”来获得Twitter的API接口密钥。
  • 在”Access Level”中,选择访问权限的等级设置为”Read and Write”。这样之后你会获得”Consumer Key”, “Consumer Secret”, “Access Token”, “Access Secret”的值,而这些都是需要在创建TweetPony API对象的函数中插入的(插入位置在alarmd.py文件的第10行,默认内容为 “api = tweetpony.API(consumer_key = “abcd”, consumer_secret = “efgh”, access_token = “ijkl”, access_token_secret = “mnop”)。
返回列表