当前位置: 首页 > 科技观察

使用RaspberryPi搭建婴儿监视器_0

时间:2023-03-20 10:37:31 科技观察

香港非常炎热潮湿,即使在晚上,许多人在家里使用空调以获得更舒适的环境。大儿子小时候,卧室里的空调还是要手动控制,没有自动调温功能。它的控件只能打开或关闭,让空调整夜运行会使房间过冷并浪费能源和金钱。我决定使用基于RaspberryPi的物联网解决方案来解决这个问题。后来我更进一步,为它添加了一个婴儿监视器插件。在这篇文章中,我将解释我是如何做到的,它的代码在我的GitHub页面上。设计交流控制器来解决我的问题的第一部分是使用OrviboS20可连接WiFi的智能插头和智能手机应用程序。虽然这可以让我远程控制空调,但它仍然是一个我想尝试自动化的手动过程。我在Instructables上找到了一个符合我需求的项目:他使用RaspberryPi通过AM2302传感器测量附近的温度和湿度,并将它们记录到MySQL数据库中。使用压接接头将温度/湿度传感器连接到RaspberryPi上相应的GPIO引脚。幸运的是,AM2302传感器有一个读取它的开源软件,并且还提供了一个Python示例。和我的项目放在一起的AM2302传感器接口的软件已经更新了,我使用的原始代码现在应该已经过时了,不再维护了。此代码包含一个连接到传感器的小型二进制文件和一个解释读数并返回正确值的Python脚本。用于构建温度/湿度监视器的RaspberryPi、传感器和Python代码。将传感器连接到RaspberryPi后,这些Python代码可以正确返回温度和湿度读数。将Python连接到MySQL数据库很容易,并且有大量使用python-mysql绑定的代码示例。由于我需要持续监控温度和湿度,因此我编写了软件来执行此操作。事实上,我最终使用了两种解决方案,一种作为持续运行的进程,定期(通常以一分钟为间隔)获取传感器数据,另一种让Python脚本运行一次然后退出。我决定采用第二种方法并使用cron每分钟调用一次脚本。选择这种方法的主要原因是持久性脚本(通过循环实现)偶尔不会返回读数,这将导致尝试读取传感器的进程堆积,最终可能导致系统挂起,原因是缺乏可用资源。我还找到了一个Perl脚本,我可以通过编程来控制我的智能插头。它是解决这类问题的一部分,所以当达到一定的温度/湿度触发条件时,就会触发这个Perl脚本。做了一些测试后,我决定设计一个独立的检查脚本,从MySQL中拉取最新的数据,然后根据返回值设置智能开关的开启或关闭。将插头控制逻辑与传感器读取脚本分开意味着它们独立运行,即使传感器读取脚本编写错误。配置打开/关闭空调的温度值是有意义的,所以我将这些值传输到控制脚本读取的配置文件中。我还发现,虽然传感器的值通常是准确的,但偶尔会返回不正确的读数。这个传感器脚本被修改为不向MySQL数据库写入与以前的值有显着差异的值。配置文件中还写入了连续读取的温度/湿度值之间的最大允许差异。如果读取的值在这些限制值之外,这些值的写入将不会被提交到数据库。虽然看起来做这个auto-tuner花费了很大的功夫,但这意味着记录到MySQL数据库中的数据是有效的,对于进一步分析以确定用户使用模式很有用。有很多方法可以图形化显示MySQL数据库中的数据,我决定使用GoogleChart在网页上显示数据。在过去六个小时内测量的温度和湿度添加婴儿监控摄像头RaspberryPi的开放功能意味着我可以继续向其添加功能——而且我有大量未使用的GPIO引脚可用。我的下一个想法是添加一个摄像头模块,把它放在孩子的卧室里,并配置它来监控婴儿。我需要一台可以在黑暗环境中工作的相机,而PiNoir相机模块非常适合。PiNoir也是树莓派常用的摄像头模组,只是没有红外滤光片。这意味着它的图像在白天可能会有点紫色,但它可以借助红外线在黑暗中显示图像。现在我需要一个红外光源。由于RaspberryPi非常受欢迎且进入门槛低,因此它拥有大量的外围设备和附加组件。还有各种适合它的红外源,我注意到其中之一是BrightPi。它可以由RaspberryPi供电,非常适合为RaspberryPi的相机模块提供红外线和普通光。它唯一的缺点是它太考验我的焊接技能了。我的焊接技术还不错,但可能比其他人需要更长的时间。我设法连接了机箱上的所有IRLED,并将它们连接到RaspberryPi上的GPIO引脚。这意味着可以对RaspberryPi进行编程以控制IRLED是否打开以及它的亮度。通过网络流公开捕获的视频也很有意义,因此我可以从网页上查看温度和湿度读数的图表。经过进一步研究,我选择了一款使用M-JPEG捕获器的流媒体软件。通过网页公开JPG源,我可以连接到智能手机上的相机查看器程序并查看相机输出。完成PerfectTouchNoRaspberryPi项目无需为它选择合适的外壳即可完成,并且它有多个部分。经过大量搜索和比较,有一个明显的赢家:SmartPi的乐高式外壳。乐高兼容性允许我安装温度/湿度传感器和摄像头。这是最终结果图:在此之后,我对我的项目进行了一些更改和更新:我将其从RaspberryPi2ModelB升级到RaspberryPi3,这意味着我可以使用USBWiFi模块。我用TP-LinkHS110智能插头替换了我的OrviboS20。我还将RaspberryPi插入智能插头,这样我就可以远程重启/重置它。我将MySQL数据库从RaspberryPi上移开,它现在在NAS设备上的容器中运行。我添加了一个非常灵活的三角形夹子,这样我就可以调整到完美的角度。作为升级到RaspberryPi3的好处之一,我重新编译了USBWiFi模块以禁用板载LED。因此,我为我的第二个孩子设计了另一个显示器。我给老三买了个夜视仪,因为没时间瞎折腾。想了解更多?所有代码都在我的GitHub页面上。想分享您的RaspberryPi项目吗?将您的故事和想法发送给我们。