用 Raspberry Pi 构建婴儿监视器

这款 DIY 型号不仅仅是一个普通的视频监视器,它还能自动化控制儿童房间的室温。
401 位读者喜欢这篇文章。
baby chicks hatching from eggs

Internet Archive Book Images。由 Opensource.com 修改。CC BY-SA 4.0

香港即使在晚上也可能炎热潮湿,许多人使用空调使他们的家更宜居。当我的大儿子还是婴儿时,他卧室里的空调装置是手动控制的,没有恒温器功能。它要么开要么关,让它整夜连续运行会导致房间变得寒冷,并浪费能源和金钱。

我决定用一个基于 Raspberry Pi 的物联网解决方案来解决这个问题。后来,我更进一步,添加了一个婴儿监视器附加组件。在本文中,我将解释我是如何做到的,代码可以在我的 GitHub 页面上找到。

设置空调控制器

我使用 Orvibo S20 WiFi 连接的智能插座和智能手机应用程序解决了我的问题的第一个部分。虽然这允许我远程控制空调装置,但这仍然是一个手动过程,我想尝试自动化它。我在 Instructables 上找到了一个似乎符合我的要求的项目:它使用 Raspberry Pi 从 AM2302 传感器测量本地温度和湿度读数,并将它们记录到 MySQL 数据库中。

使用带压接外壳的压接端子触点,可以轻松地将温度/湿度传感器连接到 Raspberry Pi 上的正确 GPIO 引脚。幸运的是,AM2302 传感器具有用于读取数据的开源软件,并附有有用的 Python 示例。

自我将我的项目组合在一起以来,用于与 AM2302 传感器接口的软件已更新,我使用的原始代码现在被认为是遗留代码且未维护。该代码由一个连接到传感器的小型二进制对象和一些 Python 脚本组成,用于解释读数并返回正确的值。

Raspberry Pi, sensor, and Python code

opensource.com

将传感器连接到 Raspberry Pi 后,Python 代码可以正确返回温度和湿度读数。将 Python 连接到 MySQL 数据库非常简单,并且有很多使用 python-mysql 绑定的代码示例。因为我需要持续监控温度和湿度,所以我编写了软件来完成这项工作。

实际上,我最终得到了两种解决方案,一种是作为进程持续运行并定期轮询传感器(通常以一分钟为间隔),另一种是运行一次然后退出的 Python 脚本。我决定使用运行一次并退出的方法,并结合 cron 每分钟调用此脚本。主要原因是连续(循环)脚本偶尔不会返回读数,这可能会导致尝试读取传感器的进程累积,并最终导致系统因可用资源不足而挂起。

我还找到了一个方便的 Perl 脚本,可以以编程方式控制我的智能插座。这是拼图的重要组成部分,因为它意味着如果满足某些温度和/或湿度条件,我可以触发 Perl 脚本。经过一些测试,我决定创建一个单独的检查脚本,该脚本将从 MySQL 数据库中提取最新值,并根据返回的值打开或关闭智能插座。将运行插座控制脚本的逻辑与传感器读取脚本分离也意味着它可以独立运行,即使传感器读取脚本出现问题,它也会继续运行。

将空调打开/关闭的温度设置为可配置是有意义的,因此我将这些值移动到一个配置文件中,该文件由控制脚本读取。我还发现,虽然传感器通常是准确的,但偶尔会返回不正确的读数。传感器脚本被修改为不将与先前值显着不同的温度或湿度值写入 MySQL 数据库。同样,连续读数之间允许的温度或湿度变化范围在通用配置文件中设置,如果读数超出这些限制,则这些值将不会提交到数据库。

虽然这似乎需要花费大量精力来制作恒温器,但将数据记录到 MySQL 数据库意味着它可以用于进一步分析以识别使用模式。有很多图形选项可用于呈现来自 MySQL 数据库的数据,我决定使用 Google Chart 在网页上显示数据。

Temperature and humidity chart

opensource.com

添加婴儿监视器摄像头

Raspberry Pi 的开放性意味着我可以继续添加功能——而且我有很多可用的开放 GPIO 引脚。我的下一个想法是添加一个摄像头模块,将其设置为婴儿监视器,因为该设备已经在婴儿的卧室里了。

我需要一个在黑暗中工作的摄像头,Pi Noir 摄像头模块非常适合。Pi Noir 与 Raspberry Pi 的普通摄像头模块相同,只是它没有红外 (IR) 滤镜。这意味着白天图像可能略带紫色,但它会在黑暗中显示用红外光照明的图像。

现在我需要一个红外光源。由于 Raspberry Pi 的普及和低门槛,它有大量的外围设备和附加组件。在众多可用的红外光源中,引起我注意的是 Bright Pi。它从 Raspberry Pi 获取电力,并安装在摄像头 Pi 模块周围,以提供红外和普通光源。唯一的缺点是我需要重新捡起我生疏的焊接技能。

也许我花了比大多数人更长的时间,但我的焊接技能足以胜任,我成功地将所有红外 LED 连接到外壳,并将红外光源连接到 Raspberry Pi 的 GPIO 引脚。这也意味着 Raspberry Pi 可以通过编程方式控制红外 LED 何时点亮,以及它们的亮度。

通过 Web 流公开视频捕获也是有意义的,这样我就可以在带有温度和湿度读数图表的网页上观看它。经过进一步研究,我选择使用使用 M-JPEG 捕获的流媒体软件。通过网页公开 JPG 源还允许我将智能手机上的摄像头查看器应用程序连接到那里以查看摄像头输出。

进行最后的润色

没有为 Raspberry Pi 及其各种组件选择合适的机箱,Raspberry Pi 项目就不算完整。经过大量的搜索和比较,有一个明显的赢家:SmartPi 的乐高式机箱。乐高兼容性使我能够为温度/湿度传感器和摄像头构建支架。这是最终结果

Completed Raspberry Pi baby monitoring system

opensource.com

从那时起,我对我的设置进行了其他更改和更新

  • 我从 Raspberry Pi 2 Model B 升级到 Raspberry Pi 3,这意味着我可以不再使用 USB WiFi 模块。
  • 我用 TP-Link HS110 智能插座替换了 Orvibo S20。
  • 我还将 Raspberry Pi 插到智能插座中,这样我就可以进行远程重启/重置。
  • 我将 MySQL 数据库从 Raspberry Pi 迁移出来,现在它在 NAS 设备上的容器中运行。
  • 我添加了一个柔性三脚架,以便获得最佳摄像头角度。
  • 我重新编译了 USB WiFi 模块以禁用板载闪烁 LED,这是升级到 Raspberry Pi 3 的主要优势之一。
  • 从那以后,我为我的第二个孩子构建了另一个监视器。
  • 我为我的第三个孩子买了一个定制的夜视摄像头……因为缺少时间。

想了解更多?所有代码都可以在我的 GitHub 页面上找到。

您有 Raspberry Pi 项目要分享吗?请将您的故事创意发送给我们。

User profile image.
Jonathan Ervine,虽然最初来自英国,但现在是香港的一名 TAM(技术客户经理)。他为亚太地区金融、物流和技术行业的企业客户提供支持。最近,Jonathan 帮助他的客户部署私有云基础设施,并在受支持的平台上维护他们现有的平台部署。了解更多关于 Jonathan 的信息。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.