本教程将分步指导您如何制作一个智能伞架。
这是我最喜欢的Raspberry Pi 项目之一。它采用了Dexter Industries生产的配有GrovePi扩展板的Respberry Pi模型,以及超声传感器、蜂鸣器和LED模组。对于该项目,我们将使用自定义的Raspbian磁盘镜像,并在最新的“Jessie”版本上运行。
本教程的目的是演示一个可运行的项目原型,并且向您讲解对设计进行测试与修改时所需的步骤,以优化并实现一个适合您的解决方案。
项目所需部件清单
硬件
- • 计算机:Lenovo T420 Windows 10
- • SD卡:Sandisk DHCD 8GB
- • 微处理器:Raspberry Pi Model B Revision 2.0 (512MB)
- • 扩展板:GrovePi+ v3.0
- • 蜂鸣器:Grove Buzzer v1.2
- • 传感器:Grove Ultrasonic Sensor v2.0
- • LED: Grove Red LED v1.4
- • WiFi 适配器: Edimax EW-7811Un 150Mbps Wireless 802.11 b/g/n nano USB 适配器
- • 显示器:通用VGA端口显示器(配有VGA数据线)
- • VGA适配器:用于PC的通用HDMI输入转VGA适配器转换器
- • 电源:通用供电USB2 4端口集线
- • 数据线:USB Type-A / Micro-B;以及USB Type-A / Type-B
- • 键盘:通用USB键盘
- • 鼠标:通用USB鼠标
- • WiFi 路由器: 通用WiFi 路由器
- • 伞架
软件
- SD Formatter v4
- Dexter Industries Modified “jessie”
- Win32 Disk Imager 0.9
- Python 2.7.9
工具
- • 双面胶
从构思到实践
从概念的产生到实践部署,一个项目的开发包含许多个步骤。
第一步:概念
我似乎总是早上拖得太晚出门以至于没有时间查看天气,导致每次都很快冲出去,却没有意识到是否需要带一把雨伞。所以我一直想要做的Raspberry Pi 项目之一就是制作一个智能伞架,这个伞架可以为我查看天气并且提醒我是否会下雨。
第二步:设计
使用Weather StationAPI开发者密钥,一个python脚本就会获得我所在城市的气象站并反馈关于下雨可能性大小的查询结果。如果下雨的可能性超过我所设置的阈值,我出门前需要拿一把雨伞,那么在伞架上的LED灯会闪烁,以在我经过时传递音频信号。
第三步:原型
该设计原型使用有Dexter Industries 生产的GrovePi扩展板来对RaspberryPi GPIO引脚进行管理控制。我喜欢使用这种扩展板,因为它具有即插即用的设计,同时,Dexter Industries的改良版Raspbian磁盘映像具有大量的故障排除工具,这些工具在测试阶段会派上用场。
设置磁盘映像(PC)
下载2016.04.25_Dexter_Industries_jessie.zip Disk Image并将它解压到您的硬盘上。
格式化8GB SD卡。我使用SD Formatter v4。
将下载的磁盘映像写入SD卡。我使用Win32 Disk Imager。
A. 组装Rapberry Pi 和 GrovePi GPIO 扩展板
1) 将GrovePi与Raspberry Pi Model B上的28个GPIO引脚对齐贴合。它们的引脚很匹配,只需要稍微用点力就能装上。
图1:RapberryPi 和GrovePi GPIO 扩展板 (分开)
图2: RapberryPi 和GrovePi GPIO 扩展板(结合)
B. RaspberryPi 的启动和更新
1) Raspberry Pi系统可直接进入Dexter Industries GUI界面。
2) 点击“WiFi Setup”图标来连接到您的本地路由器和网络。
3) 点击“DI Software Update”图标启动。
4) 在下拉菜单中选择GrovePi,然后按照以下顺序来进行更新:
i) Hardware Firmware
ii) Raspbian
iii) Dexter Software
5) 系统将在完成后要求重新启动
C. 注册Weather Underground以获取开发者API密钥
1) 打开浏览器并访问 Weather Underground’s website
2) 作为新用户进行注册
3) 点击针对开发者的Weather API 选项
4) 生成一个API密钥(见视频)
D. 设置Python程序
1) 打开 File /home/pi/Desktop/GrovePi/Software/Python/test_script
2) 进入 [Edit] >[Select All] 并点击 [Delete]
3) 进入 [File] >[Save As] /home/pi/Desktop/Documents/umbrella_stand.py
4) 复制该代码 code 到空文件窗口
5) 转至第40行,输入 YOUR_ZIP_CODE
6) 转至第44行,输入 YOUR_API_KEY
7) 按照#说明来进行进一步的自定义设置,或者查看代码走查视频(见视频)
8) [File] [Save]
9) 观看视频以获取代码走查的步骤
E. 连接Grove传感器
1) 将超声测距仪与GrovePI扩展板上的D4连接头连接
2) 将Grove LED与GrovePI扩展板上的D7连接头连接
3) 将Grove蜂鸣器与GrovePI扩展板上的D8连接头连接
4) 点击 [Run] [Run Module] 运行 umbrella_stand.py
5) 如果在您所在的区域没有下雨,您可以将umbrella_stand.py编辑为其他下雨区域的代码脚本(见视频)
F. 设置RaspberryPi为无头模式并自动运行中继程序
1) 进入 [Menu] >[Other] >[LXTerminal]
2) 在 [pi@dex:~ $] 提示符下点击ENTER:
sudo crontab -e.
3) 如果文件不存在,就创建一个,并且添加以下内容(这是您已经保存了您的Python程序的地方)
@reboot sudo python /home/pi/Documents/DevicePlus/umbrella_stand.py
4) 当RaspberryPi启动时,程序被加载。
5) 在您最喜欢的灯上进行测试。
图3: RapberryPi 和 GrovePi GPIO 扩展板(结合)
第四步:测试
我已经将该项目连接到前厅的伞架,并进行了实际测试。
结论
这个项目是很有趣的Raspberry Pi 项目之一。它的连通性和反馈性已经达到了我在一个非智能设备上想要实现的水平。在这个快节奏的世界里,我们无法捕捉所有的信息,但是如果有这个智能伞架,起码一定会让我们远离被雨淋湿的困扰。
希望您喜欢本教程,欢迎将您在实施该项目的过程中所作的修改发送给我。