亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

树莓派上的 HA 中的运动传感器、警报、视频录制

在树莓派上连接家庭助理中的运动传感器、警报和视频录制。

我想告诉你我在 Raspberry pi 上使用 Home Assistant(以下简称 HA)的一点经验。此外,我将讨论连接视频注册功能、运动传感器以及相应的家庭安全功能,以及在触发“安全”的情况下通过电子邮件接收照片。

当然,其中一个原因是希望从您的评论中了解我在实施此场景时“做错了什么”。

配置上述功能有三种方式:“没有问题”、“简短”和“独立”。在第一种情况下,您可以从网站 https://ViaMyBox.com/downloadpage

下载开发的图像

对于您的 Raspberry pi,您可以看到所有内容在已配置的表单中的外观。在第二种情况下,您可以从站点或从 github 项目下载 zip,安装它,然后通过实用程序 (sudo via-setup.sh) 安装 HA docker 映像,以查看一切是如何设置的。最后,第三种方法是“以自己的方式设置一切”:从站点或 githab 项目或本教程中获取有用的东西。您将在文章末尾找到所有这些内容的链接。

假设您已经有一个正在运行的家庭助理 (HA)。在本文中,我们将只考虑创建 yaml 配置和描述导致特定操作的规则和条件的顺序的方面。在我们的例子中,动作是连接“安全”模式和脚本的触发,脚本在运动传感器激活后 5 秒内开始拍照。结果,家庭助理通过邮件发送拍摄的照片。我不是 yaml 或为 Home Assistant 创建配置的专家,但是按照工作示例,我得到了一个我想分享的工作配置。

我们会接触到的所有文件,为了方便大家考虑,我会在文末列出。在这个例子中,我不会涉及视频录制脚本在 bash 或 python 中的工作方式。我们将只谈论家庭助理。但是,如果您有任何问题,欢迎您!

最后,我让一切看起来像这样(红色突出显示了我们将在文章中考虑的内容):

当然,我使用 Raspberry pi 作为平台。我的配置文件路径是 /usr/share/hassio/homeassistant/ 。您的配置文件的路径可能与我的路径不同。那时,我有 Home Assistant 0.101.3。我们会对这个目录下的配置文件感兴趣:configuration.yaml 和automation.yaml。

每次更改这些文件后,重要的是要记住,您需要在我们更改后检查配置是否存在可能的错误。这是在 Home Assistant 仪表板 -> 配置 -> 服务器控制 -> 检查配置中完成的。然后,如果检查成功,我们会在同一个地方执行重新加载自动化和重新加载脚本。而且,如果有疑问,服务器管理会在同一选项卡中完全重新启动配置更新。

HC-SR501 运动传感器连接到 Raspberry pi GPIO 总线。有必要将三根接触线正确连接到 GPIO,我们将能够使用我们的传感器。传感器具有三个触点:电源gcc(+)、零接地(-)、控制触点(数据)。在阅读了 GPIO 的描述后,我将它们连接到我的树莓上,如下所示。我将 HC-SR501 连接到 GPIO 连接器:pir#2 – 5.5 vvcc; pin#26 (13 row) – 数据触点和 pin#6-GND ( – ) 传感器。

作为照片来源,我将 USB 相机或 csi 相机与 mjpg-streamer 结合使用。我们不会在这篇文章中描述如何在树莓派上安装和配置 mjpg-streamer。网上有很多快速安装的例子。但是,我想说我使用了这个项目的数据 https://github.com/cncjs/cncjs/wiki/Setup-Guide:-Raspberry-Pi-%7C-MJPEG-Streamer-Install-&-Setup-&-FFMpeg-Recording 此处也详细介绍了此模块的安装。或者使用任何方便您获取照片和视频的方法。毕竟,由您决定将哪个 bash 脚本附加到 HA。

现在让我们在 configuration.yml 中描述我们的传感器,比方说,通过命令行:

须藤纳米/usr/share/hassio/homeassistant/configuration.yaml

虽然使用notepad++和winscp会更方便..

HC-SR501的设置顺序如下:

binary_sensor:- platform:rpi_gpio #name:HC-SR501 端口:7:Sensor HC-SR501 invert_logic:false 

应该注意的是,这里的一个重点是描述传感器控制(数据)触点连接的行中的设置:pin#7

端口:

7:传感器HC-SR501

Home Assistant 具有用于启用家庭安全功能的内置工具。让我们在 configuration.yaml 中描述它,使用描述:https://www.home-assistant.io/integrations/manual/

 alarm_control_panel:-平台:手册名称:家庭报警pending_time:60延迟时间40触发:pending_time:0代码:1234 

这个设置意味着我们有 60 秒的时间离开家(在这个时间之后,闹钟会打开),还有 40 秒的时间在我们回家时关闭它(密码 1234)。出于某种原因,你离开的时间总是比来的长。)

我们现在将描述在我们的 configuration.yaml 中触发运动传感器时启用和禁用摄影的机制(有关开关的更多信息 - 命令行平台可以在这里找到 https://www.home-assistant.io/integrations/switch .command_line/):

 - 平台:命令行开关:start_stop_motion_rec_timelapse:friendly_name:'录制运动延时视频' command_on:'curl http://localhost/start_mjpgstrm.php &&curl http:// localhost//rec-motion-mjpg.php' command_off:'curl http://localhost/stop_mjpgstrm.php &&curl http://localhost/rec-motion-mjpg-stop.php' 

在这里,我们已将 command_on enable 和 command_off disable 命令链接到控制摄像机录制的脚本。在这种情况下,当您启用 command_on 时,将依次执行 2 个脚本。这将启动 mjpg-streamer 并开始在运动传感器上录制。对 bash 脚本的访问通过 Raspberry pi 上工作站点的 php 文件。为此,我设置了 nginx 和 Web 访问,当通过浏览器访问 http://<树莓派的 IP 地址>/start_mjpgstrm.php 时,应该执行我们的 php 脚本。

我们不考虑在本文中设置 Web 访问。显然,这并不安全,但由于我在 docker 上拥有 HA,我面临着我拥有一个孤立的 docker 环境的事实。通过 php 访问我的网站,我可以看到操作系统的“外部世界”。 docker 或 HA guru 可能有很多正确的解决方案。请写下来,知道会很有趣!

我将把这些脚本的清单留在文章下面,我们不再赘述。在本文中,我只想遵循 Home Assistant 中一系列动作的形成。

所有这些都放在 start_stop_motion_rec_timelapse 对象中,它将成为我们的视觉开关,当运动传感器被触发时,我们将使用它来管理照片的录制。

我们将能够在 Home Assistant->Overview 选项卡中通过切换右上角的 Configure UI 配置模式的激活来可视化我们创建的这些对象

在“Configuration -> Server Control”选项卡中的浏览器中预重启HA以获取我们的configuration.yaml。

接下来,选择浏览器窗口底部的黄色加号,单击实体卡并将我们创建的对象链接到地图。

对于我们的传感器,选择传感器卡。它看起来像这样:

如图所示,第二个实体字段包含上述开关:switch.start_stop_motion_rec_timelapse。

它允许我们打开和关闭我们的运动传感器记录,无论是否启用了“家庭安全”功能。而且,一般来说,在完成上述所有操作后,它应该已经可以工作了。

并且,相应地,我们添加了警报面板地图:

这里还有一个有趣的地方。我使用 Home Assistant 作为 docker 容器。在这方面,我们脚本的路径将不同于脚本文件的实际路径。毕竟,容器内的文件结构是虚拟化的,并通过 docker 安装的卷链接到实际文件结构。例如,这看起来像这样: 容器内的路径:/config/scripts/ 操作系统内的路径:/usr/share/hassio/homeassiatnt/scripts。所以看看你的容器的设置,这些卷是如何在 Binds 字段中配置的。如果你那里有 HA。

sudo docker inspect homeassistant|less 

当运动传感器被触发时,在警报被激活的那一刻:我希望除了我们开始拍摄快速照片(延时快照)之外,我还会收到邮件中的警告和图片。我将这些过程并行化。在第一种情况下,在传感器被触发后的几秒钟内发生照片记录(延时快照)。为此,我运行 mjpg-streamer curl http://localhost/start_mjpgstrm.php ,启动 php:сurl http://localhost/rec-motion-mjpg.php 。反过来,它运行 python 脚本 mov.py。所有描述的文件和包都可以在文章末尾的链接中找到。另一个脚本 takeSnapshotWebcam.sh 拍摄我在电子邮件中发送的照片。我在我们的 configuration.yml 中这样描述这些脚本:

shell_command:#启动为邮件列表生成快照的脚本 take_snapshot_webcam:'/config/scripts/takeSnapshotWebcam.sh'#starting our mjpg-streamer start_mgpg_streamer:' curl http://localhost/start_mjpgstrm.php'#stopping mjpg-streamer stop_mgpg_streamer:'curl http://localhost/stop_mjpgstrm.php'#启动生成快照5秒的脚本 start_motion_rec:'curl http://localhost/ rec-motion-mjpg.php'#stop it stop_motion_rec:'curl http://localhost/rec-motion-mjpg-stop.php' 

在描述我们邮寄对象的相同 configuration.yml 中:

notify:- name:ha_sendmail platform:smtp#if mail is on gmail server:smtp.gmail.com port:587 timeout:15#from who we send sender:[电子邮件保护] 加密:starttls 用户名:[电子邮件保护] 密码:passwd#我们发送给谁(您可以使用一个盒子并将其发送给自己,为什么不呢)收件人:-[电子邮件保护] sender_name:我的家庭助理 

很重要的一点!为了让我们的 HA 能够连接和发送电子邮件(发件人字段),我们必须允许我们的 HA 服务在 gmail 上使用这个邮箱。如何在此处执行此链接:https://myaccount.google.com/lesssecureapps

此外,我们描述了在automation.yaml 中启用 home_alarm 警报时的自动化机制本身:

#first action bundle(别名“如果启用安全则由传感器触发”-别名:'在武装离开时触发警报'#alias 在传感器处于“on”位置触发器: - 平台:state entity_id:binary_sensor.sensor_hc_sr501 到:'on'#前提是在无人在家的情况下启用安全模式“武装离开”条件: - 条件:state entity_id:alarm_control_panel.home_alarm state:armed_away#然后执行action action:#Running mjpg-streamer (if disabled) - service:shell_command.start_mgpg_streamer#运行一个从摄像头记录的脚本 - service:shell_command.start_motion_rec#改变我们的“家庭安全”的可视化》 HA面板上的卡片到“报警触发”位置-服务:alarm_control_panel.alarm_trigger entity_id:alarm_control_panel.home_alarm 

下一组条件和操作是在“安全”关闭时发送控制台消息并关闭我们的运动录制脚本。

- 别名:'解除警报时发送通知' 触发器:- 平台:状态 entity_id:alarm_control_panel.home_alarm 到:'解除武装' 动作:- 服务:shell_command.stop_mgpg_streamer - 服务:shell_command.stop_motion_rec - 服务:persistent_notification.create 数据:消息:警报在{{ states('sensor.date_time') }}" 解除 

最后,第三个链接-发送带有照片的电子邮件:

-别名:'警报触发时发送通知'触发器:-平台:状态entity_id:alarm_control_panel.home_alarm到:'触发'动作:-服务:persistent_notification.create data :消息:警报触发时的通知。检测到运动传感器 HC-SR501。 - delay:seconds:4#运行我们的脚本来创建单个脚本 - service:script.webcam_snapshot#并参考configuration.yaml中描述的对象:notify.ha_sendmail - service:notify.ha_sendmail data:title:'Intruder alert'消息:'{{now().strftime("%H:%M %Y-%m-%d")}}:警报触发时的通知。检测到运动传感器 HC-SR501。 data:images:#link 到 script.webcam_snapshot 已经制作的脚本 - /config/camera/snapshot.jpg 

请记住,在 yaml 文件中,行标记很重要,命令前的空格字符在形成代码块及其结构方面起着重要作用。通过 Home Assistant(以下简称 HA)配置 -> 服务器控制 -> 检查配置

似乎就是全部。你的树莓派变成了优雅的东西!..)

这是 工作 HA 自动化,用您自己的双手配置!一定要把你的想法写给我!

而且,如果你读到最后,这里是承诺的链接:

图片和 zip:https://viamybox.com/downloadpage

Github 项目:https://github.com/viatc/viamybox

配置文件描述如下:configuration.yaml、automation.yaml、takeSnapshotWebcam.sh、rec-motion-mjpg.php、mov.py

hc-sr501,家庭警报,家庭助理,树莓派,видеорегистрация,датчик движения,подключение сигнализации, умный домный

未分类

来源:Raspberry Pi 上的 HA 中的运动传感器、警报、视频录制


制造工艺

  1. Raspberry Pi 温度记录器
  2. Python 和 Raspberry Pi 温度传感器
  3. Raspberry Pi 气象站
  4. Raspberry Pi 上的 1 线温度传感器 DS1820(直接 GPIO)
  5. 超声波传感器 (HC-SR04) + Raspberry Pi
  6. 用于 Raspberry Pi 的 DIY 红外运动传感器系统
  7. 在家中构建无线传感器网络
  8. 使用 Raspberry Pi 的运动传感器
  9. 带有 t cobbler plus 的 Raspberry pi 2 水报警器
  10. Raspberry Pi 土壤湿度传感器
  11. JAVA 中的树莓派数字霍尔传感器
  12. Raspberry Pi 温度和光传感器