使用树莓派构建一个婴儿监视器

香港很湿热,即便是晚上,许多人为了更舒适,在家里也使用空调。当我的大儿子还是一个小婴儿的时候,他卧室的空调还是需要手动控制的,没有温度自动调节的功能。它的控制器只有开或者关,让空调整个晚上持续运行会导致房间过冷,并且也浪费能源和钱。

我决定使用一个基于树莓派的物联网解决方案去修复这个问题。后来我进一步为它添加了一个婴儿监视器插件。在这篇文章中,我将解释我是如何做的,它的代码在 我的 GitHub 页面上。

设计空调控制器

解决我的问题的第一个部分是使用了一个 Orvibo S20 可通过 WiFi 连接的智能插头和智能手机应用程序。虽然这样可以让我通过远程来控制空调,但是它还是手动处理的,而我希望尝试让它自动化。我在 Instructables 上找到了一个满足我的需求的项目:他使用树莓派从一个AM2302 传感器上测量附近的温度和湿度,并将它们记录到一个 MySQL 数据库中。

使用压接头将温度/湿度传感器连接到树莓派的相应 GPIO 针脚上。幸运的是,AM2302 传感器有一个用于读取的 开源软件,并且同时提供了 Python 示例。

与我的项目放在一起的用于 AM2302 传感器 接口的软件已经更新了,并且我使用的原始代码现在应该已经过时了,停止维护了。这个代码是由一个小的二进制组成,用于连接到传感器以及解释读取并返回正确值的 Python 脚本。

将传感器连接到树莓派,这些 Python 代码能够正确地返回温度和湿度读数。将 Python 连接到 MySQL 数据库很简单,并且也有大量的使用 python-mysql 绑定的代码示例。因为我需要持续地监视温度和湿度,所以我写软件来实现这些。

事实上,最终我用了两个解决方案,一是作为一个持续运行的进程,周期性(一般是间隔一分钟)地获取传感器数据,另一种是让 Python 脚本运行一次然后退出。我决定使用第二种方法,并使用 cron 去每分钟调用一次这个脚本。之所以选择这种方法的主要原因是,(通过循环实现的)持续的脚本偶尔会不返回读数,这将导致尝试读取传感器的进程出现堆积,最终可能会导致系统挂起而缺乏可用资源。

我也找到了可以用程序来控制我的智能插头的一个 Perl 脚本。它是解决这种问题所需的一部分,因此当某些温度/湿度达到触发条件,将触发这个 Perl 脚本。在做了一些测试之后,我决定去设计一个独立的 checking 脚本,从 MySQL 去拉取最新的数据,然后根据返回的值去设置智能开关为开或关。将插头控制逻辑与传感器读取脚本分开,意味着它们是各自独立运行的,就算是传感器读取脚本写的有问题也没事。

配置一个打开/关闭空调的温度值是很有意义的,因此,我将这些值转移到控制脚本读取的配置文件中。我也发现,虽然传感器的值一般都很准确,但是,偶尔也会出现返回不正确读数的情况。这个传感器脚本被修改为不向 MySQL 数据库中写入与前值差异非常大的值。同样也在配置文件中写入了连续读取的温度/湿度之间允许的最大差异值,如果读取的值处于这些限制值以外,这些值写不会提交到数据库中。

虽然,做这个自动调节器似乎花费了很多努力,但是,这意味着,记录到 MySQL 数据库的数据是有效的、可用于进一步去分析识别用户使用模式的有用数据。可以用多种图形方式去展示来自 MySQL 数据库中的数据,而我决定使用 Google Chart 在一个 Web 页面上显示数据。

添加一个婴儿监视摄像头

树莓派开放的性能意味着我可以不断地为它增加功能 —— 并且我有大量的未使用的可用 GPIO 针脚。我的下一个创意是去添加一个摄像头模块,将它放在孩子的卧室中,配置它去监视婴儿。

我需要一个能够在黑暗环境中工作的摄像头,而 Pi Noir 摄像头模块是非常适合这种条件的。Pi Noir 除了没有红外过滤之外,同样也是树莓派常用的摄像头模块。这意味着它在白天时的图像可能有点偏紫色,但是它可以在黑暗中借助红外灯来显示图像。

现在我需要一个红外光源。由于树莓派非常流行,并且进入门槛很低,因此它有大量的外围配件和插件。也有适合它的各种红外光源,我注意到的其中一个是 Bright Pi。它可以从树莓派上供电,并且它很适合为树莓派的摄像头模块提供红外光和普通光。它唯一的缺点是太考验我的焊接技能了。

我的焊接技能还是不错的,但是可能花费的时间比其他人更长。我成功地连接了外壳上所有的红外 LEDs,并将它们连接到树莓派的 GPIO 针脚上。这意味着树莓派能够编程控制红外 LED 是否点亮,以及它的亮度。

通过一个 Web 流去公开捕获的视频也很有意义,因为这样我就可以从 Web 页面上查看温度和湿度的读数图表。进一步研究之后,我选择了一个使用 M-JPEG 捕获器的 流软件。通过 Web 页面公开 JPG 源,我可以在我的智能手机上去连接摄像头查看程序,去查看摄像头的输出。

做最后的修饰

没有哪个树莓派项目都已经完成了还没有为它选择一个合适的外壳,并且它有各种零件。在大量搜索和比较之后,有了一个显然的 赢家:SmartPi 的乐高积木式外壳。乐高的兼容性可以让我去安装温度/湿度传感器和摄像头。下面是最终的成果图:

在这以后,我对我的这个作品作了一些改变和更新:

  • 我将它从树莓派 2 Model B 升级到了树莓派 3,这意味着我可以使用 USB WiFi 模块。
  • 我用一个 TP-Link HS110 智能插头替换了 Orvibo S20。
  • 我也将树莓派插到了一个智能插头上,这样我就可以远程重启/重置它了。
  • 我从树莓派上将 MySQL 数据库移走了,它现在运行在一个 NAS 设备上的容器中。
  • 我增加了一个非常 灵活的三角夹,这样我就可以调整到最佳角度。
  • 我重新编译了 USB WiFi 模块,禁用了板载 LED 指示灯,这就是升级到树莓派 3 的其中一个好处。
  • 我因此为我的第二个孩子设计了另外一个监视器。
  • 因为没有时间去折腾,我为我的第三个孩子购买了夜用摄像头。

想学习更多的东西吗?所有的代码都在 我的 GitHub 页面上。

想分享你的树莓派项目吗?将你的故事和创意发送给我们。

via: https://opensource.com/article/18/3/build-baby-monitor-raspberry-pi
作者:Jonathan Ervine 译者:qhwdw 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出

用树莓派DIY自动“气象站”

自动气象站可以实时探测气温、湿度、气压、风速、风向、降雨量、紫外线辐射等气象信息,通过不同的传感器采集地面气象数据,数据采集完成后通过网络统一传输到气象服务器上,再经气象采集软件处理各项数据,最后通过专业气象软件传出。

网上搜索到之前大部分的设计都是基于DSP的方案,但是IoT时代,我们需要速成的设计,网上现成的传感器和树莓派教程能帮助我们迅速的设计出一个小型气象站。

正好我在网上看到 DIY hacking 上 Arvind Sanjeev 做了个类似项目。这个完整的天气系统,只用树莓派的基础硬件,摄像头,和一些我们使用的杂七杂八的模拟和数字传感器。

风速计和雨量计也都是自己做的。

产品特点:

  • 在RRD和CSV上记录信息,方便被导出/导入到其它格式
  • 使用天气地下API来得到历史高点和低点,月相和日出/日落等信息
  • 使用树莓派相机拍摄一分钟一次的图片(可以用它来制作延时录像)
  • 有显示当前天气状况和历史天气状况的数据网页(最后一小时,一天,七天,月,年)
  • 网站主题随不同时间而改变(四个选项:日出,日落,白天和夜间)。

所有的进行记录和显示信息的软件在GitHub上开源

这个项目是很好的学习经验,能帮助真正深入理解树莓派的能力,尤其是GPIO。

所需的材料

1、电子元件

  • 9个簧片开关(8个用于风向,1个用于雨计,1个可选用为风速来代替霍尔传感器
  • 1个霍尔传感器 (用于风速,称为风速计)
  • 温度传感器
  • 湿度传感器(许多湿度传感器集成了温度传感器),我用的DHT11
  • 压力传感器(许多也集成了温度传感器),我用的BMP180
  • 光敏电阻
  • GPS芯片或USB GPS
  • 4个强磁体(2个用于风速计,1个用于方向,1个用于雨量计)
  • 各类电阻器
  • MCP3008用来把模拟转换为数字输入

2、硬件

  • 树莓派,我使用的B +
  • 无线适配器
  • 树莓派摄像头
  • 5V电源适配器

3、材料

  • 2个推力轴承 (或滑板或滑旱冰的轴承也行)
  • 2个防水罩——我用的是超市的电器罩,找一个大小合适,有足够的空间且能保护设备的就可以。
  • 一些PVC管和盖子(各种尺寸)
  • PVC安装支架
  • 一些薄有机玻璃片(不用太花哨)
  • 塑料支架
  • 塑料螺钉
  • 2个塑料圣诞树装饰品——用于风速计。
  • 小木钉
  • 小胶合板

4、工具

  • 达美电磨
  • 胶枪
  • 烙铁
  • 万用表
  • 钻孔机

机箱

一个能装进树莓派、摄像头、GPS和光传感器的盒子。需要选防水的,因为它装进了所有关键元件,测量环境风吹雨打。

机箱包含:

  • 树莓派(螺母上)——需要Wi-Fi芯片。
  • 摄像头(螺母上)
  • GPS芯片通过USB连接(我用的FTDI电缆 )。GPS能提供纬度和经度,更重要的是,我可以从GPS获取精确的时间!
  • 2个以太网/CAT5个插口,连接到主外壳与其它传感器。两个容器之间这样链接很方便。我用了大致12跟线缆,两个CAT5提供16个可能的连接,所以有空间做扩展。

测温度、湿度、压力的机箱

这是我放置温度、湿度和压力传感器的板子,以及用于雨量计,风向和风速传感器挂钩。

这一切都非常简单。。

制作雨量器

我大多沿用这个教程进行实际测量仪。

我是用有机玻璃来做的。总的来说,有机玻璃效果不错,结合胶枪,橡胶密封材料,以及整体切割和钻孔就更棒了。

关键点:

  • 该传感器是一个简单的簧片开关和磁体,树莓派上充当按钮。我简单地计算随着时间的推移桶里的水位,后来转换为“雨/英寸。”
  • 让它大到足以容纳足够的水来翻转,但不用太大因为需要很多个。我的第一个制作失败了因为不够大,所以它会被填满,并开始在它倾斜之前开始排水。

风向

这很简单。

关键点:

  • 这是一种模拟传感器。
  • 拧在风向标的后面,您需要校准它,“这个方向就是指向北方。”
  • 我做了一个木试验台,有所以我可以在全量程内轻松切换电阻器。
  • 我使用的推力轴承工作得很好。

软件

该软件也是开源的,可以在同一个GitHub库拿到。

软件是用Python写的,记录来自传感器的数据。 我第三方的库,获得来自传感器和GPS信息。

看起来很不错吧?

 

本文来自:树莓派实验室

 

 

使用树莓派打造面部识别安全设备

清单

硬件部分

Raspberry Pi 2 Model B

PIR运动传感器(通用)

Microsoft LifeCam 3000 HD摄像头

伺服马达FS5103R

5V电源

电阻器 1k欧姆

软件应用程序及在线服务

Microsoft Windows 10 IoT Core

Microsoft Visual Studio 2015

Microsoft Project Oxford

Microsoft Azure

Microsoft Azure云存储服务

动手实践

关于项目:

该设备使用Microsoft Project Oxford面部识别方案,检测访问者是否为房子的所有者,通过验证之后会立马打开房门,否则系统将向房屋所有者绑定的移动设备推送一条警告信息,并询问是否给该访问者开门。

使用/集成的服务

Azure storage云存储服务

Microsoft Project Oxford: 面部识别API

使用ASP.Net SignalR将所有者的行为发送给树莓派

使用WNS向移动设备发送通知信息

组件

Raspberry Pi 2 Model B x1

RIP传感器 x1

微软LifeCam 3000 HD x1

伺服马达 FS5103R x1

电池组 x1

1kΩ电阻 x1

电路图以及线路图

14817893813869

14817893927566

Pin分配

14817894206623

 

移动侦测,捕捉图像以及访问者分析

首次运行该应用程序,默认会创建一个IsActive属性为真的PIRProximitySensor类实例。
该实例用于RIP传感器与应用程序之间的连接。如果IsActive属性设置为真,当传感器检测到一个动作发生时会触发MotionDetected事件,然后要求连接到传感器的GPIO pin number执行对应的操作。移动侦测的捕捉影片命令会将获取到的访问者面部图像,发送到Project Oxford服务器进行识别。如果确认为该房屋的所有者,伺服马达将打开房门;否则将获取到的访问者面部图像发送到绑定的移动设备。如果房屋所有者选择打开房门,命令将通过后端服务的SignalR推送给树莓派,然后打开房门。
当在识别访问者过程以及传感器进行必要操作期间,IsActive属性不能被设置为假。关闭房门之后该属性重新设置回真,激活识别系统。

芝麻开门

我们使用伺服马达控制房门。向马达发送2毫秒脉冲时,马达会旋转180°门就打开了;向马达发送1毫秒脉冲时,马达会旋转回0°,门再次关闭。 伺服马达的位置是由脉冲长度决定。转动系统预期至少每隔20毫秒收到一个脉冲,如果脉冲超过1毫秒,伺服马达将转到0°;如果为1.5毫秒脉冲,其转到90°位置;如果是2毫秒,将会转到180°位置。

14817894345998

Project Oxford: Face API

Face API是一个基于云计算的API,其提供了当前最先进的人脸检测识别的算法。Face API的主要功能可以分为两类:其一对人脸进行检测提取其特征提取,其二便是人脸识别 戳这里访问该项目主页。

如何部署以及工作

按照上面图表连接好电路之后,从HomeVisitsManager.VisitsController项目的方案平台选择ARM,之后从模拟器列表选择远程机器并输入你的树莓派IP和凭证,最后运行该方案;多个项目同时运行(所有者的windows phone应用,后端服务以及物联网设备)

引用:

伺服马达:http://razzpisampler.oreilly.com/ch05.html

人脸检测和识别:https://www.projectoxford.ai/doc/face/How-To/identifyperson

项目代码

https://github.com/IslamKHALIL/Home-Visits-Manager

参考来源:hackster,FB小编鸢尾编译,转载请注明来自FreeBuf(FreeBuf.COM)

 

 

 

 

 

 

 

 

 

 

 

 

用树莓派DIY一台专门拍Gif动图的相机

树莓派在喜欢DIY的朋友眼里,是非常酷的东西,许多人都会利用树莓派自己动手DIY出各种各样有趣的技术。而现在又有人利用树莓派制造出了一台福库Pix-E相机,而这款相机最有趣的地方就是可以直接拍摄出gif动态图。

现在无论是朋友圈、公众号还是微博,gif动态图已经成为展示内容或者文章配图的重要组成元素,尤其是一些幽默搞笑的内容,只有gif动态图才能展示精髓,并且要比视频方便了很多。不过想要从视频中截取gif并不容易,虽然我们都有各种各样的方法,但基本上没有一个称得上方便。

这款Pix-E由Nick Brewer打造,通过树莓派Zero打造,使用了额外的树莓派摄像头模块以及自定义的组件,包括了完整的快门和电池组。

23

而Pix-E通过直接运行包括PiCamera、GraphicsMagick和GifCam等软件,可以直接拍摄出gif格式的动态视频,比如下图就是Pix-E拍摄的效果。

23

Pix-E的外壳基本上通过3D打印的方式制造,并且还包括了一些纸壳包装,看起来颇有90年代的感觉。不过在整个DIY过程中还需要一些比如初级的焊接和动手能力,不过整体来说难度不是太大,感兴趣并且喜欢DIY的朋友可以访问网站直接查看具体过程

本文来自:树莓派实验室