只要有想象力,打印机都能做游戏

不知道为什么,文本冒险游戏最近频频被人提及。这不,现在又出来一个基于实时打印的文本冒险游戏 —— Quest Smith。

这位脑洞较大的创客名叫 Bekir Dağ ,他用微型打印机和树莓派做出了这个手持游戏设备。

关于文本冒险游戏的背景知识:

1975年左右,程序员兼业余洞穴探险者 威尔·克劳瑟(Will Crowther)编写了第一个文本冒险游戏 —— Adventure。最初名为 ADVENT,因为在他使用的操作系统中,文件名不能超过六个字符,后来被命名为《巨大的洞穴冒险》 —— Giant Cave adventure。

玩家需要阅读周围环境的描述并从一组选项中进行选择,或者输入下一步并希望游戏能够理解玩家提及的内容。

Bekir Dağ 的创新之处是他把一个文本冒险游戏做成实时打印剧情了。玩家用 Yes 和No 两个按钮来决定游戏的走向 。

Quest Smith是个啥?

在柏林的一家游戏博物馆里,Bekir Dağ 看到了一个手持式游戏设备,于是他决定用树莓派 Zero W自己做一个。

他设计了Quest Smith 的躯壳,用3d绘图软件输出了 STL 文件并在
Thingiverse 网站上免费分享。

下载地址:

https://www.thingiverse.com/thing:3471217

树莓派 Zero W 与热敏打印机、电池和各种按钮紧密贴合在一起。由安装在外壳上的太阳能电池板供电,所有组件都连接到 TP4056 板,该板允许电池为树莓派供电。

硬件材料:

1、Raspberry Pi Zero Wireless 一个

2、GOOJPRT 热敏打印机一个

3、五伏电压升压模块 一个

4、 TP4056 板 一个

5、 18650电池 一个

6、瞬时触碰式开关

7、 Micro usb 转大口接头

8、螺钉 3.5 x 20毫米 四个

9、 滑动开关 一个

10、太阳能电池板60 x 60毫米 5.5V

另外要准备热熔枪、电烙铁和3D打印机。

相关的代码:

https://github.com/IoToutpost/quest_smith

1、系统需要安装的组件

sudo apt-get install libpython3-dev libpython3-stdlib libqt5printsupport5 php7.0-mbstring python3-rpi.gpio python-rpi.gpio python-setuptools python-dev build-essential

2、安装composer

步骤在此: https://getcomposer.org/download/

3、安装两个python库

pip install setuptools
pip install locustio

4、拉取代码

mkdir quest_smith
cd quest_smith
git clone git@github.com:bekirdag/quest_smith.git .
composer install

5、 在重新启动时,通过在crontab上添加一行来运行 Quest Smith 脚本

crontab -e
@reboot sudo /usr/bin/screen -dmS story-game /usr/bin/python3 /home/pi/thermal/push3.py

6、 再次向 crontab 添加另一行代码,以便在每次重启时更新软件,这样你的故事就会是最新的。

@reboot sudo cd /home/pi/quest_smith && sudo git pull origin master

Quest Smith 目前仍在开发中。虽然用户现在可以构建并开始玩这个游戏,但作者呼吁社区用户提交他们自己的故事(有好的分支剧情就发过去)。

Bekir Dağ 说:“每个关卡都需要两个版本的故事,这使得可能性呈指数级增长。所以一个人完成整个故事线对我来说是非常困难的。比如为了让玩家达到9级,我们需要编写1023个故事部分。如果你能帮我,那就太好了! ”

如果想看这个设备是怎么玩的点这里:

http://v.qq.com/x/page/y0846fbymnz.html

相关阅读:

Python写文本冒险游戏的要点

https://mp.weixin.qq.com/s/jtxOqDlYLt3VjdsnLXfdAg

新手可以在研究这篇文章的同时学会面向对象编程。

来自:Raspberrypi.org

编译:王文文

让相机根据GPS定位自动拍照

你是否厌倦了那种每到一个地方就要停下来摆pose的自拍?

但是在参观名胜古迹或知名景点的时候,还是希望能留下一些自己的照片做留念?

来看看一个名叫 Estefannie 的妹子发明了什么 —— 根据 GPS 定位来判断是否要拍照的GoPro相机。

具体是什么意思呢?有些妹子喜欢抓拍和自然拍摄,但要么走着走着错过关键景点,要么拍来拍去抓不到什么重点。让路人拍?人家也不一定愿意帮忙。

如果能有一个发现自己进入知名景点(指定地点)就自动拍照的装置,那就太省心了。旅途中的美好一个都不落下。

Estefannie 用Raspberry Pi 3、GPS模块、充电宝和带杆子的 GoPro,创建了PAGCPPT,可以在系统里预置伦敦各个景点的GPS坐标,到地方就自动触发拍摄。无需人工干预。

依靠尼龙搭扣和热胶,她把这个装置固定在背包上,然后又做了一些编程和设置,让她在城里晃悠的时候可以拍点照片。

白金汉宫到了,来一张

具体材料:

1、Raspberry Pi 3 Model B

2、GPS 模块 U-blox NEO-6M with 3m Active Antenna (STM32 51 )

3、PNY 7800 充电宝

4、 GoPro HERO 系列摄像头

5、GOPRO 3-way 三向摄像机手柄相机支架

硬件配置:

把 GPS 模块连接到树莓派上,树莓派通过 WiFi 向 GoPro 发送信号。

GPS:不用焊接,把GPS模块插到Raspberry Pi 的 USB 口上即可。

WiFi:打开 GoPro 的 WiFi ,让树莓派和它连接起来。WiFi SSD 由 GoPro App 配置。

树莓派:用那个充电宝供电。

都准备好了!你可以把 GoPro 手臂加到任何你想要的地方,比如旅行背包。

软件配置:

Estefannie 整理了一张她想去的伦敦景点(对应坐标)清单。然后用Python3写了一个脚本来计算她当前坐标和预置景点坐标之间的距离。

程序中比较关键的是 GoPro API库,基于这个库稍微做些开发,GoPro相机就可以在GPS预置地标(如塔桥、哈利波特魔法站台)半径10米以内的任何地方自动拍照。

你可以在树莓派上执行如下命令来安装它:

pip install goprocam

GPS的启动命令比较简单:

gpsd /dev/ttyACM0 -F /var/run/gpsd.sock

最后一步执行代码:

python3 /home/pi/LondonGPS.py 

代码地址:

https://github.com/IoToutpost/GoPro/

只要她打开电源(充电宝),她的树莓派就会在启动时运行脚本,并检查她的坐标。在预置景点内就自动拍照,从而满足 Estefannie 在游览名胜古迹时无需求人,也无需刻意摆造型就能拍到合适的照片。

当然,是妹子终究会有停下来认真拍照的时刻……比如这张。

项目作者 Estefannie 在纽约公立图书馆

相关视频链接:

http://v.qq.com/x/page/p0845yexsaw.html

素材:Raspberrypi.org
编译:王文文

有了这个,树莓派可以做成 VR/AR 摄影机

作者:长空无名

谈到 VR/AR 摄影机什么的,人们大多会觉得高大上。不但售价不菲,而且厂商一般不会让开发者在里面运行自己的代码。

那我要是不想破解商用闭源设备,又想定制开发自己的 VR/AR 摄影机怎么办?

来看一个叫做 StereoPi 的设备。

它是一款基于树莓派的开源立体摄影机。可以捕捉、保存、直播和处理实时的立体视频和图像。在机器人、VR/AR、计算机视觉、无人机、全景视频等领域提供了可能性。

核心配件是 StereoPi板卡、树莓派计算模块、还有两个摄像头,有效组合后是一个很棒的立体拍摄、360º监控、虚拟现实平台构建工具。

超薄版和标准版 StereoPi 板卡

该板卡可附带 树莓派计算模块 的任何版本,包括最新发布的CM3+,你可以把它当普通树莓派一样开发,通过 Python 模块 picamera 对其进行控制。

这款配件的众筹价是69美元(不带树莓模块,没有以太网RJ45接口、GPIO报头和双USB Type-A 的超薄版)。

链接:https://www.crowdsupply.com/virt2real/stereopi

这里再给大家看一眼新款的树莓派计算模块长什么样:

Raspberry Pi CM3+


StereoPi 两个摄像头间距是人眼之间的平均距离,大约在65毫米,如果你要自己制作外壳的时候需要注意此项。

两个摄像头中心的推荐间距

如果你是普通用户,建议使用 StereoPi 的标准版。因为超薄版主要是给那些打算将 StereoPi 集成到(不需要自带接口的)另一个设备中的高级用户设计的。具体来说,超薄版没有USB Type-A接口、RJ45以太网接口或GPIO头。当然,这些PCB板上的接线点仍然可用,以备你想焊接它们或安装自己的接口。

还有一个可选配件是Waveshare“G”广角摄像头(160°),它的体验很好,当然价格会有点贵,StereoPi 的豪华版套件里有提供。

Waveshare “G” wide-angle (160°)

你可以用 StereoPi 在 Youtube 上做3D视频的直播,也可以将它和 Oculus Go 连线感受不一样的视觉体验,开发新款的游戏。亦或是结合 OpenCV 做一些AI上的应用;创建一个空间感知机器人……对于相关领域的开发者来说,这诱惑难以抗拒。

目前该项目由俄罗斯一个名为 virt2real 的极客团队在推动,众筹时间将在2019年3月10日结束,但现在所筹到的金额早已超出目标所需要的35000美元。

PS: 之前有不少新人问IoT前哨站“树莓派计算模块”是干吗用的,相信看过这篇文章后,会有点概念了吧?

相关视频演示:

http://v.qq.com/x/page/d0839zc5l85.html

本文为“IoT前哨站”原创,转载请注明原文作者和出处。

树莓派官方推出 Raspberry Pi 线下体验店

春节期间, Raspberry Pi 基金会在英国推出了一个线下体验店。标志着树莓派这项原本小众的电子教育产品,开始近距离面向大众。

Raspberry Pi 创始人 Eben Upton 表示,这家实体店会让大家认识到学习STEM技能的重要性。他避免将其描述为商店,而是将其描述为“陈列室”。

Raspberry Pi体验店并不打算做传统零售,更像是一个创客空间。

该店出售树莓派以及各种配件、杂志、书籍。顾客还可以在货架上找到树莓派周边商品,如马克杯和服装。但重点还是放在为顾客提供学习电子设备和编程的机会。

即使它没有收支平衡,该仍然有价值,Raspberry Pi 基金会将其作为与新客户互动的实验室,允许它为更广泛的人群定制其产品。

很多人好奇为什么 Raspberry Pi 基金会决定在人口不到125,000的剑桥开设体验店,答案也很明显,剑桥不但因其世界领先的大学而闻名,而且它还是一个富裕的中产阶级城市,英国科技产业的核心,也是 ARM Holdings、微软(英国)等公司的所在地。

这家体验店的具体位置在剑桥市中心的大拱廊一楼。在英国的朋友如果有兴趣可以去看一看。营业时间是周一到周日,推荐造访时间是上午11点到下午17点之间。

相关视频链接:http://v.qq.com/x/page/c08371z7nna.html

情人节让伴侣会心一笑的“爱情鸟”

作者:Alex Bate

情人节快到了,各位男同胞准备给女朋友或妻子一个什么礼物呢?

如果你不想采购现成的商品,不如为你心爱的人制作一个可爱的语音装置吧。

“爱情鸟”例子视频:https://v.qq.com/x/page/q0830fgrsbi.html

“Blah blah blah 说声‘我爱你’。我的手机已经能做到了,为什么还要搞这些?”有人可能会这么问。

答案也很简单。虽然你可以使用手机,但是“爱情鸟”语音装置的重点在于其本身表达的意义。移动电话是你日常工作生活的所在,里面有你的银行信息,商务沟通等等。

但使用 “爱情鸟” ,你向她传递的信息将会更专注更有诚意。

该项目的发起人 Olivier Ros  表示,即使那些不怎么懂技术的人,该装置也很容易使用:

“用爱情鸟通话只需一个按钮。对于儿童,不喜欢智能手机的老年人,异地恋,或者只是希望通过简单方式进行私密交流的夫妇来说,这很酷。”

打造爱情鸟(一个或两个都行)

每个“爱情鸟”设备需要一个Raspberry Pi,虽然Olivier的版本用的是Pi Zero W,但Raspberry Pi 2或3也可以。

你还需要一个麦克风和扬声器。 而且,幸运的是,Raspiaudio提供了一个同时包含两者的HAT!

你也可以从其他树莓派配件制造商那里找到类似的电路板,或者使用标准的USB麦克风和扬声器,这些在电子卖场和网上商城都可以买到。

怎么让“小鸟”啁啾提示呢?

为了让盒子上的“爱情鸟”跳舞,你还需要一个伺服电机。或者你可以尝试闪烁的发光二极管或播放声音作为通知。我们总是希望看到人们如何将自己的天份加到开源项目中。

相关代码 (欢迎参与维护这个项目):

https://github.com/kheperV3/LoveBirds/

Telegram

别忘了你还需要注册Telegram,以便通过互联网安全地发送语音信息。同样,还有其他可用的服务,具体你就看情况改代码吧。

译者注:如果在中国不方便使用Telegram的话,可以使用网易云信或声网的服务来实现类似功能。

来源:raspberrypi.org

编译:王文文,前51CTO安全频道主编,阿里巴巴资深安全工程师,现供职UCloud技术市场,IoT前哨站创始人。

用一行命令把树莓派变成视频后视镜

大家在冬季骑行的时候少不了要穿一堆厚衣服,戴上帽子围巾什么把自己裹得紧紧的。

比如像这样

这样暖和是暖和了,但安全问题来了 —— 不方便回头看背后是否有车或行人靠近,万一有车在加速,你又正好在转弯,那可就惨了。

能不能给自行车装一个视频后视镜?这样不用回头也能知道后方发生的一切。

一个叫 Alex Eames 的外国人就是这么做的。 他戏称冬天的自己戴着“忍者”模式的巴拉克拉瓦帽和自行车头盔让他看起来像个“山雀”。

某天他出门的时候,有辆车差点和他撞上。幸好他们都及时刹住了车,但离得已经很近了。

原本他买了一面小镜子,但效果不太理想。于是想到了摄像头和显示屏的组合,这样不但可以实时看到车况,而且还能当记录仪用。

他先是在亚马逊上看了一些产品,但要么不合适,要么价格太贵(200英镑以上)。而他的需求主要就是能实时了解车前后的状况(主要是后面)。而且他对GPS之类的功能并无需求,最多也就是希望能拍到野生兔子路过这种有趣的镜头。

那基于树莓派的项目如何呢?

在重新发明轮子之前,看看别人已经做了什么是个好主意。

在(http://pidashcam.blogspot.com)上有一个很好的“双摄像头行车记录仪”实现,该项目使用了一个树莓派II代,Pi摄像头和USB摄像头。

看起来很棒,但 Alex Eames 不想在这个阶段使用GPS,只需要一个屏幕来实时查看他身后的情况,另外还想使用一些自己买过的零件。

两年前他在ebay上花20英镑买了一个Keidei HDMI 3.5英寸屏幕,可以通过HDMI连接树莓派。而且有电阻触控。

3.5英寸KeDei屏幕背面
3.5英寸可触控Kedei屏幕正面(带HDMI接口)

“如果要追求效果,我可以升级显示屏以便拥有更高的分辨率。然后用一个全新的Pi 3A+,配上Pi摄像头在前面。再弄一个Pi Zero W带摄像头在后面。” Alex Eames 说道。

测试中

前面的树莓派将作为无线接入点和后面的Pi Zero W连起来。

这两个树莓派都将被设置为开机后自动运行。后方的Pi Zero W将其视频传输到端口8090。然后前面的Pi将抓取视频流并显示它,此处可以使用vlc。这样他就能在屏幕上看到身后的东西了。

装好树莓派后视镜的自行车

好了,最关键的一招是怎么实现的呢?一句命令就可以搞定,那就是:

raspivid -o – -t 0 | tee test_video.h264 |
cvlc -v stream:///dev/stdin –sout ‘#standard{access=http,mux=ts,dest=:8090}’ :demux=h264

如果你有冬季骑行的习惯,不妨也给自己也做个树莓后视镜吧。有相关技术问题欢迎在“IoT前哨站”公众号上给我私信。

相关素材来自:Raspi.tv

编译:王文文,前51CTO安全频道主编,阿里巴巴资深安全工程师,现供职UCloud技术市场,IoT前哨站创始人。

树莓派北美团队 vs 树莓派驱动的“密室逃脱”

作者:Christina Foust

编译:IoT前哨站

几天前,树莓派北美团队在旧金山体验了一个非常特别的,由树莓派驱动的密室逃脱店。

这就是由Palace Games运营的一个充满灯光、传感器和大量惊喜体验的“爱迪生密室”。

以下是关于我们如何进入、探索并最终逃离这个房间的经过。

在今年的世界创客大会(World Maker Faire)上,我们的社交媒体明星亚历克斯•贝特(Alex Bate)遇到了乔丹•邦克(Jordan Bunker),他是制作Palace Games的艺术家之一。

经过电子邮件的连番轰炸后,树莓派北美团队订好日期,“直面交锋”爱迪生密室!

密室逃脱

“密室逃脱”是一种物理世界的冒险游戏,玩家通过线索、逻辑和策略来解决一系列的谜题和谜语,从而完成游戏的目标。许多密室逃脱设计师使用实体互动装置来控制玩家体验中涉及的众多传感器和触发器。

树莓派北美团队 vs 爱迪生密室

进入爱迪生密室后,我和我的团队很快意识到自己身处一个像巨型计算机一样的复杂系统中!所以即使这是我们第一次玩密室逃脱,也不是一个劣势。

(小编语:难道你们很擅长巨型计算机?)

我们的目标是完成各种任务。包括解决许多谜题,在任何事情中寻找隐藏的线索,完成电路,移动地板,并进行一些试验。

然而,真正的考验是我们之间的沟通和合作 —— 我们在这方面做得非常出色!

我们做了分工,以便有效地找出不同的谜题和线索,大家不停的在房间里大喊:“试试这样做”,“也许它是这个意思”,“如果它应该那样做呢?”

当我们完成最后一个挑战并最终逃脱时,我们欣喜若狂!每个人都戴上了爱迪生思维帽。

内部机制

逃离密室后,我们有机会去幕后一探究竟。

我们发现了一个由多个树莓派组成的本地网络,这些Pi由一个中心服务器(也是树莓派)协调。而Python写的Banyan框架(The Python Banyan framework)是树莓派及其附属组件之间的连接关键。

该框架帮助Pi和中心服务器之间的内网通信。树莓派被用来读取各种类型的传感器,控制灯光、开门或播放音乐。上面还跑着一个用来让工作人员设置和跟踪游戏的控制面板。

“树莓派让我们进步,它是我们密室的核心和灵魂。” ——伊丽莎白·桑德,密室设计师兼产品经理说道。

我们强烈推荐你去Palace Games(https://palace-games.com/)玩一个密室。这是一种很好的团建方式,可以让你了解和你一起工作的人。最后感谢Palace Games团队对我们的接待,希望不久以后能再回去探索他们的密室!

双因素认证就够了?让我们用树莓派做个三因素的

双因素认证就够了?让我们用树莓派做个三因素的。

虽然双因素认证一直在我们在线访问电子邮件和网上银行时提供更多的安全性,但在物理世界,现在已经有三因素认证可以保护我们的贵重物品。

扫描指纹进行身份验证

不明白什么意思? 以下是来自Switched On Network的视频,演示了如何使用Raspberry Pi构建三因素门锁,包括RFID密钥环,6位密码和发送到手机的一次性密码。

(视频地址:https://v.qq.com/x/page/t07975pca69.html

Alex Bate的三因素门锁制作关键

要构建Switched On Network的三因素门锁,你需要采购Raspberry Pi 3,USB RFID读取器和遥控器,触摸屏,电子门锁和继电器开关。如果这些都有了,你最好再找个电源和胶枪。

胶水枪

为屏幕安装适当的驱动程序(如果点不亮屏幕)后,你就可以安装Switched On Network在GitHub repo公布的Python脚本。

地址:https://github.com/paulfp/Three-Factor-Security-Door

在竖屏模式下连接到Pi的三因素认证

然后是物理构造:你需要把门锁、引线和其他东西连接到Pi上,所有这些都要连接到门和门框上。

三因素认证门锁组件

最终成品是一个你提供密码、RFID标签(或卡片)和手机短信才能打开的高级门锁。 虽然我们不建议你用这种技术从外侧保护你的房屋,但它却是办公室或密室的完美配置。

《德克斯特实验室》经典台词

正如美国经典动画角色,德克斯特说的那样:“每个人都要有个私密之地。”

用树莓派和TV HAT做个电视机

不知道是不是用树莓派看电视的人非常多,树莓派官方干脆在近日推出一款电视帽(TV HAT),让树莓派粉丝直接拥有做电视机的能力。

该电视帽的全称是”Raspberry Pi DVB TV HAT”,价格是20英镑。相信将给喜欢看电视的树莓派开发者带来极大的满足。

电视帽可以让任何版本的树莓派(带有40针GPIO)实时解码数字电视信号,并将其传输到远程设备。比如另一台Pi、电脑,甚至智能手机。

电视帽内置的Sony CXD2880调谐器支持DVB-T2和DVB-T标准(英国Freeview),你可以通过它观看所有喜欢的频道。

在这里,我们向你展示如何设置它,甚至通过它把树莓派变成全合一的电视/PVR。

装配工作

将随附的银色射频电缆适配器的细端插入电视帽侧面的金色接头。取出40针的接头,将其插入电视帽底部的孔(不是插入顶部的黑色母头)!

然后把电视帽扣在Pi上,将RF适配器装在microSD卡插槽端。 为了确保安全,你要将螺丝和螺帽拧紧。

安装Tvheadend

首先你需要一个靠谱的数字电视(比如英国的Freeview)接收装置才能让调谐器工作。然后把电视信号线插入电视帽上的射频适配器。

在microSD卡上装好树莓派系统,启动后会看见一个绿色的LED点亮电视帽。

我们需要安装一个名为Tvheadend的后端电视服务来流化视频。

打开终端窗口并输入:

sudo apt-get update
sudo apt-get install tvheadend

配置Tvheadend

安装Tvheadend需要几分钟,所以你可能想去泡杯茶。

最后会出现一个配置屏幕,提示你输入Tvheadend管理员用户名。为了简单起见,在这里输入kodi,然后也输入kodi作为密码,你以后可以随时更改它。现在可以从另一个设备登录了。

远程登录

现在,Tvheadend正在运行,你可以从另一台计算机访问它(可以是第二个树莓派)。

在Web浏览器中,输入http://raspberrypi.local:9981/extjs.html。

如果不行就用Pi的IP地址,后面跟着:9981/extjs.html。

使用kodi这个用户名和密码登录后。将出现一个配置向导,允许你选择电视网络类型和信号源。

配置电视网络

在配置向导的“网络设置”中,应该显示“Tuner: Sony CDX2880 #0 DVB-T #0”。

对于网络类型,选择“DVB-T网络”。

对于预定义的muxes,选择你本地信号源。

例如,我们的是uk-Rowridge。单击Save & Next,它将开始扫描mux和服务(通道)。

当它达到100%后,在所有三个框中打勾(映射所有服务、创建提供者标记、创建网络标记),一个电视频道列表(EPG)将出现。

看电视

现在你可以在浏览器中通过电视帽观看直播。在EPG中,点击任何节目左边的电视图标,都可以在窗口中显示,可以全屏。也有计划任务和记录等选项 —— 使用“帮助”获得更多细节。

除了使用Web浏览器,你还能使用各种客户端,比如Kodi、omxplayer、VLC和智能手机应用程序 —— 你可以在Tvheadend网站上找到完整的列表。

友情提示:不是所有国家都支持这款电视帽,采购时请注意自己所在地区支持该标准和协议。

来自:https://www.raspberrypi.org/magpi/raspberry-pi-tv-hat-kodi/

编译:IoT前哨站

为避免重新洗衣服而做的降雨报警机

没有什么比刚晾干的衣服更舒服了,除非一场突如其来的阵雨把一切都毁了。

从一名家庭成员那里听到:“下雨了!”,然后紧接着是楼梯上雷鸣般的脚步声。

这样的话太惨了。

想要拯救你最好的周日时光,免于再一次去洗衣房的痛苦吗?

看看这个小东西。

当雨点开始时,这个简单的设备就会在你的手机检测到雨点时发出警报。不需要焊接,只需要几根电缆。借助低功耗电路板和WiFi,我们能做出一个基于Raspberry Pi Zero W的完美项目。

测雨器需要的组件:

2个雨水传感器板和一个控制器
面包板
充电宝
密封小食品容器
跳线
树莓派 Zero w

核心代码:

from gpiozero import DigitalInputDevice
from time import sleep
import http.client, urllib.parse

# Some setup first:
APP_TOKEN = ‘YOUR_PUSHOVER_APP_TOKEN’ # The app token – required for Pushover
USER_TOKEN = ‘YOUR_PUSHOVER_USER_TOKEN’ # Ths user token – required for Pushover

# Set up our digital input and assume it’s not currently raining
rainSensor = DigitalInputDevice(17)
dryLastCheck = True

# Send the pushover alert
def pushover(message):
print(message)
conn = http.client.HTTPSConnection(“api.pushover.net:443”)
conn.request(“POST”, “/1/messages.json”,
urllib.parse.urlencode({
“token”: APP_TOKEN, # Insert app token here
“user”: USER_TOKEN, # Insert user token here
“title”: “Rain Detector”,
“message”: message,
}), { “Content-type”: “application/x-www-form-urlencoded” })
conn.getresponse()

# Loop forever
while True:

# Get the current reading
dryNow = rainSensor.value
print(“Sensor says: ” + str(dryNow))

if dryLastCheck and not dryNow:

pushover(“It’s Raining!”)

elif not dryLastCheck and dryNow:

pushover(“Yay, no more rain!”)

# Remember what the reading was for next check
dryLastCheck = dryNow

# Wait a bit
sleep(5)

在做其他事情之前,在SD卡上安装一个Raspbian Stretch Lite(我们不需要桌面),然后插入到Pi中。确保已启用SSH访问。执行sudo apt更新和升级的常规程序,然后重启,检查SSH连接,然后关机。

将传感器安装到盖子上:

你可以使用任意数量的传感器,但是两个就可以了。用保温层或管道胶带将两块板固定在盖子上。

注:3d打印外壳图片(STL文件可从这里得到)。

需要连接两对跳线;每个传感器板一个,极性无关紧要。电缆的另一端必须穿入容器内,所以在适当的地方尽可能地挖一个小洞,这样电线才能通过,从而减少水进入的机会。

将传感器连接到控制器

为了让树莓派明白发生了什么,一个小的控制板(与传感器一起提供)是必需的。这就把被水短路的小电流转换成数字信号。利用面包板,将传感器上的两对导线并联起来(这样两个传感器都可以构成电路),然后将控制器的接收引脚(带有两个连接器的一侧)插入到面包板上,使每个引脚与传感器上的一根导线相连。

连接控制器

为了完成我们的电路,仔细看看控制板上的四个引脚。它们将被标记为A0、D0、GND和VCC。

使用一些跳线,将控制器与Pi连接如下:

VCC到GPIO pin 2 (5v),

GND到GPIO上的任何GND(例如pin 6),

D0到GPIO 17 (pin 11)。

D0和A0是传感器读取输出的两种不同方式。D0是一个直接的数字开关,阈值由板子上的可变电阻控制。A0是一个模拟输出(当转换为数字时),范围在0到1024之间,取决于雨的强度。

装配雨探测器

把充电宝接上树莓派,然后放进容器。理想情况下,东西不应该移动,所以要用胶带或大头针把所有东西都固定好。

你现在应该可以把所有东西都密封在容器里了,连接传感器板的电线不会被挤压或变形。一旦你高兴,打开它并连接电源,然后再次关闭它并检查你的连接。确保充电宝能给树莓派至少几个小时的电力。

检测软件

在这个特性的末尾添加脚本,并将其保存为rainbot.py(或从GitHub下载)到一个方便的位置,比如~/pi/rainbot。一旦就位,通过运行python3 ~/pi/rainbot/rainbo.py来执行一个初始测试。你应该每五秒钟就会看到一个读数:

如果是干的,是“真”;如果是湿的,是“假”。按CTRL+C停止脚本。

Pushover:在你的手机上获取降雨警报

为了获得提醒,我们将使用Pushover,这是一个向智能手机推送消息的服务(有七天的免费试用)。

注册pushover.net后,你将看到一个“用户密钥”,把这个复印一份。按照说明创建一个“应用程序令牌”。

编辑脚本,把现有的API键值替换成你自己的(在提示的地方),然后在你的手机安装了“pushover”程序。

再次运行脚本。把其中一块感应板稍微弄湿。控制器上应该亮一盏灯。如果一切正常,几秒钟后你的手机就会显示一个警报。

自动运行雨探测器

让我们设置脚本在启动时运行。 作为超级用户创建以下文件:

sudo nano /lib/systemd/system/rainbot.service
填入:

[Unit]
Description=Rainbot
After=multi-user.target

[Service]
Type=idle
ExecStart=/usr/bin/python3 /home/pi/rainbot/rainbot.py

[Install]
WantedBy=multi-user.target

按CTRL+X保存并退出nano。

然后输入以下命令:

sudo chmod 644 /lib/systemd/system/rainbot.service
sudo systemctl enable rainbot.service
sudo systemctl daemon-reload
重新启动树莓派。脚本将在重新启动时运行(尽管您不会看到任何输出)。再用水测试一下。

为你的雨天探测器做改进

Pushover很方便,而且可以很容易地替换为任何你喜欢的函数。检查的频率可以改变(目前是每五秒一次)。或者把模拟电路改成数字电路,然后用A0输出来测量雨下得有多大。

如果你开始记录这些数据,这对气象站项目来说也是一个很好的起步。你还可以增加一个使用后安全关闭树莓派的按钮。