首页 > 编程语言 >[Raspberry Pi]如何利用docker執行motioneye,並利用Line Notify取得即時通知和照片?

[Raspberry Pi]如何利用docker執行motioneye,並利用Line Notify取得即時通知和照片?

时间:2024-08-30 22:58:03浏览次数:6  
标签:-% 執行 motioneye 設置 sh notify line Pi

<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" id="Z2BB5Z6J-1725028524712" src="https://player.bilibili.com/player.html?aid=113051374190951"></iframe>

[Motioneye]How to setup motion detection and send message/image for Line Notify

無意間,翻了一本關於樹莓派的書籍,除了樹莓派的簡介和應用外,也包含初階和高階的Linux運作邏輯,書籍結構相當完整,也因此需要花時間細細體會其內容。其在樹莓派的應用內容,提及一款開源影像監視軟體motioneye,motioneye具備運動偵測,即時拍攝照片和錄影,以及發送警報通知等功能,同時其可在瀏覽器上直接設定和管理攝像頭,相當方便。

利用docker將motioneye安裝在Ubuntu作業系統的樹莓派上,並搭配一個USB Camera,就是一個簡易型的家用監控設備。

安裝環境:

1.Ubuntu 22.04 LTS Desktop
2.已安裝opencv和docker

Docker拉取鏡像和啟動:

1.docker拉取motioneye,arm架構:armhf
docker pull ccrisan/motioneye:master-armhf
2.docker啟動motioneye
sudo docker run -d --name=motioneye --restart=always \
-p 8765:8765 \
--device=/dev/video0 \
-v /etc/localtime:/etc/localtime:ro \
-v $HOME/docker-service/motioneye:/etc/motioneye \
-v /var/lib/motioneye:/var/lib/motioneye \
ccrisan/motioneye:master-armhf

其中/var/lib/motioneye:/var/lib/motioneye的意義為將容器的/var/lib/motioneye映射到宿主機的/var/lib/motioneye,主要用意是讓影像和圖片可以儲存到該路徑,便於讓run a command可將影像和圖片上傳到line notify。

3.在瀏覽器開啟網頁,並輸入http://<宿主機IP地址>:8765 來訪問 MotionEye 的界面。
首次登錄時,使用預設的用戶名和密碼(admin/空白)登錄。

Motioneye設定:

1.設置Admin和Surveillance帳號密碼
2.vedio device 設置frame rate=30fps
3.Movies設置
  • Maximum Movie Length=0 seconds,定義影片長度為無限制
  • Preserve Movies: for one day, 定義影片保存一天後會自動刪除
4.Motion detection設置
  • Motion Gap=60 seconds,當影片偵測60秒無出現移動事件,即作為該移動事件的結束。
  • Captured Before=30 frame, 定義影片檔案由移動事件前的30 frame開始錄製,若設定frame rate =30fps, 則影片檔案由移動事件前的一秒鐘開始錄製。
  • Captured After=30 frame, 定義影片檔案錄製到移動事件結束後的30 frame,若設定frame rate =30fps, 則影片檔案錄製到移動事件結束後的一秒鐘。
5.Motion Notification設置
  • 當移動事件一被偵測到,立即run a command,command即是執行路徑中的.sh檔案,該.sh檔案即是利用line token上傳即時訊息給line notify,如圖一所示。
data/script/linenotifypush_msg.sh "motion detected %Y-%m-%d/%H-%M-%S”
  • 當移動事件結束後,立即run a end command,command即是執行路徑中的.sh檔案,該.sh檔案即是利用line token上傳即時訊息給line notify,如圖一所示。
data/script/linenotifypush_msg.sh "motion detected end %Y-%m-%d/%H-%M-%S”

其中,linenotifypush_msg.sh是利用curl post function來處理,如下:

#!/bin/bash 
curl -k -X POST -H 'Authorization: Bearer your line notify token' -F "message=$1" https://notify-api.line.me/api/notify

圖一、Motion Notification設置
圖一、Motion Notification設置
6.除了上傳message之外,同時上傳一開始移動事件的圖片
  • 在Still image設置中,將Capture Mode設置為Motion triggered(one picture),如圖二所示。
  • 在file stroage設置中,開啟run a command,並輸入下列command,其中%f為motioneye設定的路徑占位符,用以描述接續/var/lib/motioneye/Camera的不同日期時間的檔案,如圖三所示。。

data/script/linenotifypush_msg_img.sh "motion detected %Y-%m-%d/%H-%M-%S" %f

其中,linenotifypush_msg_img.sh如下:

#!/bin/bash 
curl -k -X POST -H 'Authorization: Bearer your line notify token' -F "message=$1" -F "imageFile=@$2" https://notify-api.line.me/api/notify

圖二、Still Image設置
圖二、Still Image設置

圖三、File Storage設置
圖三、File Storage設置

标签:-%,執行,motioneye,設置,sh,notify,line,Pi
From: https://blog.csdn.net/weixin_42008031/article/details/141728932

相关文章

  • [js] 页面可见性API 监测用户切屏
    PageVisibilityAPI在做考试系统或者网课系统的时候,通常需要监测用户是否隐藏了当前标签页在看其它页面。PageVisibilityAPI提供了一个事件和两个状态来监测页面可见性,可以用它来判断用户是否切屏。visibilitychange这个事件会在页面可见性变化时触发。(隐藏时、打开时)//......
  • 探索Python中的拼音魔法:pypinyin库的奇妙之旅
    文章目录探索Python中的拼音魔法:pypinyin库的奇妙之旅背景:为何选择pypinyin?库简介:pypinyin是什么?安装指南:如何将pypinyin纳入你的项目?功能探索:pypinyin的五大核心函数实战演练:pypinyin在不同场景下的应用常见问题:使用pypinyin时的三个常见bug及解决方案总结:pypinyin-你......
  • [js] 页面可见性API 监测用户切屏
    PageVisibilityAPI在做考试系统或者网课系统的时候,通常需要监测用户是否隐藏了当前标签页在看其它页面。PageVisibilityAPI提供了一个事件和两个状态来监测页面可见性,可以用它来判断用户是否切屏。visibilitychange这个事件会在页面可见性变化时触发。(隐藏时、打开时)//......
  • [js] 页面可见性API 监测用户切屏
    PageVisibilityAPI在做考试系统或者网课系统的时候,通常需要监测用户是否隐藏了当前标签页在看其它页面。PageVisibilityAPI提供了一个事件和两个状态来监测页面可见性,可以用它来判断用户是否切屏。visibilitychange这个事件会在页面可见性变化时触发。(隐藏时、打开时)//......
  • [js] 页面可见性API 监测用户切屏
    PageVisibilityAPI在做考试系统或者网课系统的时候,通常需要监测用户是否隐藏了当前标签页在看其它页面。PageVisibilityAPI提供了一个事件和两个状态来监测页面可见性,可以用它来判断用户是否切屏。visibilitychange这个事件会在页面可见性变化时触发。(隐藏时、打开时)//......
  • [js] 页面可见性API 监测用户切屏
    PageVisibilityAPI在做考试系统或者网课系统的时候,通常需要监测用户是否隐藏了当前标签页在看其它页面。PageVisibilityAPI提供了一个事件和两个状态来监测页面可见性,可以用它来判断用户是否切屏。visibilitychange这个事件会在页面可见性变化时触发。(隐藏时、打开时)//......
  • pip install gdal 在Windows系统上安装gdal
     django.core.exceptions.ImproperlyConfigured:CouldnotfindtheGDALlibrary(tried"gdal302","gdal301","gdal300","gdal204","gdal203","gdal202","gdal201","gdal20").Is......
  • VMware虚拟机安装的Ubuntu,桥接方式静态ip,内网可以访问,ping外网不可用
    1.环境说明系统:Ubuntu24.04环境:VMware下桥接静态IP设置2.问题:pingwww.baidu.com报错[~]pingwww.baidu.comping:www.baidu.com:Temporaryfailureinnameresolution3.解决办法(1)利用route-n命令查询网......
  • 欧洲各国家天气预报接口对接,可预报15日天气api
    接口说明地图上有的城市都可以返回天气数据,支持20余种语言。包含基本天气信息、湿度、能见度、气压、降雨概率、日出日落、月初月落、空气质量指数、主要污染物等,可按地名、IP、经纬度坐标查询。对接准备请先注册账号获取appid和appsecret,可以免费测试,测试后需要购......
  • Sierpinski分形电路生成工具 [程序附后]
        此工具用于生成Sierpinski分形电路,应用领域可参考分形电路的纪录片或CNKI论文。运行环境在AltiumDesigner中,可用于AltiumDesigner全系列的版本中。    程序界面如下图所示,可以支持迭代次数的更改。 程序下载链接:Sierpinski分形电路生成工具V2.0.......