0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

喂鸟器监控系统的制作

454398 来源:工程师吴畏 2019-08-22 11:44 次阅读

第1步:喂鸟器监控系统概述

喂鸟器监控系统的制作

这是一个监控系统,用于计算,计时,记录和拍摄喂鸟器的鸟类。我的Bird Feeder Monitor的早期版本使用了Arduino Yun,并将数据存储在我的Google Drive上的电子表格中。该版本使用多个Raspberry Pi,MQTT通信以及数据和照片的本地存储。

Bird Feeder配备了Raspberry Pi Zero W和电容式触摸传感器(CAP1188)。栖息地上的任何鸟类都会激活触摸传感器,触摸传感器启动计时器以确定每个事件持续的时间长度。触摸一旦激活,Bird Feeder Monitor就会发布“ monitor/feeder/picture ”MQTT消息。此消息通知Raspberry Pi相机拍摄照片。如果MQTT服务器发布“ monitor/feeder/getcount ”消息,则Bird Feeder Monitor将响应“ monitor/feeder/count ”MQTT消息,服务器将发送该消息存储。

MQTT服务器执行多项任务。它从Bird Feeder Monitor请求和存储数据,并控制监视器的操作。它在Dawn激活显示器并在黄昏时将其关闭。它还控制请求数据的时间间隔,并通过DarkSky监控当前的天气状况。监测天气状况有几个原因。首先,降水量可能会影响传感器。如果发生这种情况,传感器会在雨水下降的情况下定期重新校准。第二个原因是监视和记录与鸟类数据相关的天气条件。

Raspberry Pi相机是RPi + Raspberry Pi相机模块。用于此项目的相机软件无法使用USB网络摄像头。 RPi相机配备WIFI并运行MQTT客户端软件。它订阅“监视器/馈送器/图片”MQTT消息,并在每次收到此消息时拍摄照片。这些照片存储在RPi相机上,并进行远程管理。

第2步:在Bird Feeder Monitor上安装Raspbian

在Raspberry Pi Zero W上安装最新版本的Raspbian Lite。我建议按照Adafruit的Raspberry Pi Zero无头快速入门中的分步说明进行操作。

包括以下步骤在上面的说明中,但值得重申:

通过ssh连接到RPi并运行以下命令:

sudo apt-get update

sudo apt-get upgrade

上述命令需要一段时间才能完成,但运行这些命令可确保您获得最新信息使用最新的软件包。

接下来,运行以下命令配置RPi软件:

sudo raspi-config

更改密码,启用SPI和I2C,以及展开文件系统。完成后,退出 raspi-config 。

步骤3:连接RPi和CAP1188

Raspberry Pi W(RPi)和CAP1188使用I2C连线。还有其他电容式触摸传感器可用于一个,五个或八个传感器。我选择了八个,因为我的喂鸟器有六个侧面。

接线:

CAP1188 SDA == RPi Pin 3

CAP1188 SCK == RPi引脚5

CAP1188 VIN == RPi引脚1(+ 3.3VDC

CAP1188 GND == RPi引脚9(GND)

CAP1188 C1-C8 ==通过1x8母Dupont连接器连接每个导线上的导线

CAP1188 3Vo == CAP1188 AD - 将I2C地址硬连线至0x28

RPi Pin 2 == + 5VDC

RPi引脚14 == GND

RPi的电源是从外部提供的,通过从我的车库地下运行电线,然后向上通过用作管道的管道喂鸟器架。一根2针防风雨连接器连接在电线末端,用于连接RPi Bird Feeder Monitor。电线的另一端连接到车库中的熔断5-VDC电源。这个项目应该与电池配合使用,但我不想在日常工作中更换电池的麻烦。

我构建了一根16英寸长的电缆,将装有RPi的防水箱连接到含有防水箱的防水箱中。 CAP1188。电容式传感器需要尽可能靠近栖息地。

RPi Zero和CAP1188可以打包在一个防风雨箱中,但我更喜欢将它们单独打包。

步骤4:配置喂鸟器监视器

登录 Raspberry Pi Zero W 并执行以下步骤。

安装pip:

sudo apt-get install python3-pip

安装Adafruit CircuitPython

sudo pip3 install --upgrade setuptools

检查I2C和SPI设备:

ls /dev/i2c* /dev/spi*

你应该看到以下回复:

/dev/i2c-1 /dev/spidev0.0 /dev/spidev0.1

接下来安装GPIO和Adafruit blinka软件包:

pip3 install RPI.GPIO

pip3 install adafruit-blinka

安装Adafruit的CAP1188模块:

pip3 install adafruit-circuitpython-cap1188

安装I2C工具:

sudo apt-get install python-smbus

sudo apt-get install i2c-tools

使用上述工具检查I2C地址:

i2cdetect -y 1

如果连接了CAP1188,将看到与上图中相同的响应,表明传感器处于I2C地址0x28(或0x29,具体取决于您选择的I2C地址)。

安装mosquitto,mosquitto-clients和paho-mqtt :

sudo apt-get install mosquitto mosquitto-clients python-mosquitto

sudo pip3 install paho-mqtt

我建议在Raspberry Pi上使用Adafruit的配置MQTT来配置和设置此RPi上的MQTT。

安装Bird Feeder Monitor软件:

cd ~

sudo apt-get install git

git clone “https://github.com/sbkirby/RPi_bird_feeder_monitor.git”

创建日志目录:

cd ~

mkdir logs

将CAP1188传感器连接到RPi并执行以下操作以在MQTT服务器之后测试系统正在运作:

cd RPi_bird_feeder_monitor

sudo nano config.json

替换“OIP_HOST”,“MQTT_USER”,“MQTT_PW”和“MQTT_PORT”的值以匹配您的本地设置。退出并保存更改。

在启动时运行

仍然在 /home/pi/RPi_bird_feeder_monitor 目录中。

nano launcher.sh

在 launcher.sh

#!/bin/sh

# launcher.sh

# navigate to home directory, then to this directory, then execute python script, then back home

cd /

cd home/pi/RPi_bird_feeder_monitor

sudo python3 feeder_mqtt_client.py

cd /

中包含以下文字退出并保存 launcher.sh

我们需要使脚本成为可执行文件。

chmod 755 launcher.sh

测试脚本。

sh launcher.sh

接下来,我们需要编辑crontab(linux任务管理器)以在启动时启动脚本。注意:我们之前已经创建了 /logs 目录。

sudo crontab -e

这将带来如上所示的crontab窗口。导航到文件末尾并输入以下行。

@reboot sh /home/pi/RPi_bird_feeder_monitor/launcher.sh 》/home/pi/logs/cronlog 2》&1

退出并保存文件,然后重新启动RPi。 RPi重新启动后,脚本应启动 feeder_mqtt_client.py 脚本。可以在位于 /logs 文件夹中的日志文件中检查脚本的状态。

步骤5:3D打印部件

这些STL文件用于我为此项目创建的3D打印部分,以及所有这些零件是可选的。防风雨箱可以在当地制造或购买。

CedarWorks喂鸟器的“安装楔”也是可选的。这部分是安装CAP1188传感器外壳所必需的。

步骤6:喂鸟器监视器组件

之后如前所述,安装Raspbian,配置和测试RPi和CAP1188传感器,现在是时候将这些设备安装在防风雨的情况下了。

我使用了我打印的两个防风雨箱来安装RPi和CAP1188传感器。首先,我在每个箱子的一端钻了一个1/2“的孔。用SD卡在侧面对面的RPi箱上钻孔。在每个孔中安装带有可调节锁紧螺母的尼龙电缆压盖接头。运行四个如上图所示,将2针汽车防水电气母头连接器安装并焊接到RPi上。将红线焊接到RPi的+ 5VDC引脚2,将黑线焊接到GND或引脚14 。请参阅RPi上使用的其他连接的接线图。

将四根导线的另一端穿过CAP1188外壳上的压盖接头,并按照接线图中的说明连接导线。所有8个CAP1188电容式触摸传感器都焊接到8针母头Dupont连接器上。该连接器嵌入壳体侧面,以便在应用顶部时进行防水密封。注意:两种情况下的顶部都可能需要修改以允许压盖接头连接器上的螺母。

之前关闭,我将硅胶填缝应用于每个表壳的边缘,并在压盖接头的导线周围密封表壳。我还在Dupont连接器的背面添加硅胶以将其与元件密封。

步骤7:连接喂鸟器

进料器上的每个支架都覆盖着1/4“宽的自粘铜箔胶带。在胶带和鲈鱼上钻了一个小孔,将一根电线焊接到铝箔带上并在馈线下面布线。每根电线连接到一根公头6针Dupont连接器。

注意:如上图所示的喂鸟器,我建议间隙每个箔条的末端为1 1/4“ - 1 1/2”。我发现较大的鸟类,如gra哥和鸽子,如果它们被放在一起,它们能够同时接触两个箔条

先前提到的“安装楔子”被打印并粘在送料器的底部,以提供安装包含CAP1188的防水箱的水平区域。魔术贴胶带应用于盒子以及木块以提供附着方式。这可以在上面完成的组件的照片中看到。维可牢尼龙搭扣带用于缠绕管道和RPi盒以将它们固定在进料器下方。

喂鸟器重新装满传感器和RPi连接到进料器,当它仍在管道上时支架。幸运的是,我身高6英尺2英寸并且不费力气地到达容器。

步骤8:MQTT服务器

如果你已经涉足IOT世界,你可能已经在你的网络上启动并运行了一个MQTT服务器。如果你没有,我推荐使用一个Raspberry Pi 3表示MQTT服务器,以及在Andreas Spiess网站上发现的指令和IMG图像文件“Node-Red,InfuxDB和Grafana安装”.Andreas还有一个关于这个主题的信息视频#255 Node-Red,InfluxDB和Grafana Tutorial on Raspberry Pi。

一旦Node-Red Server运行,您可以通过复制 〜/RPi_bird_feeder_monitor/json/Bird_Feeder_Monitor_Flow.json ,并使用导入》剪贴板将剪贴板粘贴到新流程中。

此流程将需要以下节点:

node-red-node-darksky - 需要使用DarkSky API帐户这个节点。

node-red-contrib-bigtimer - Scargill Tech的Big Timer

node-red-contrib-Influxdb - InfluxDB数据库

天气数据您的位置是通过DarkSky提供的。我目前正在监测和记录“CanyIntensity”,“温度”,“湿度”,“windSpeed”,“windBearing”,“windGust”和“cloudCover”。 “precipIntensity”很重要,因为它用于确定传感器是否需要因雨水而重新校准。

Big Timer节点是计时器的瑞士军刀。它用于每天在黎明和黄昏开始和停止数据记录。

InfluxDB是一个轻量级,易于使用的时间序列数据库。每次插入数据时,数据库都会自动添加时间戳。与SQLite不同,不需要定义字段。将数据插入数据库时会自动添加它们。

节点 - 红色配置

上面提到的JSON文件将加载一个Flow,需要进行一些调整以满足您的要求。

连接“MQTT Publish”和“监视/馈送/#”到您的MQTT服务器。

在“Dawn&Dusk Timer(config)”Big Timer节点中将纬度和经度设置为您的位置。

配置“monitor/feeder/astronomy(config)”节点。可以为每个栖息处启用/禁用摄像机。例如,我的两个栖息地位于背面,相机已禁用这些栖息地。

将“计数器计时器(config)”节点设置为所需的时间间隔。默认值= 5分钟

在“DarkSky(config)”节点中将纬度和经度设置为您的位置。其次,在darksky-credentials节点中输入DarkSky API密钥。

在“monitor/feeder/recalibrate(config)”功能节点中设置降水强度。默认值= 0.001英寸/小时

编辑“MQTT接收器调试节点(config)的主题过滤器”功能节点,以过滤您不想看到的MQTT消息。

可选:如果您希望将数据存储在Google云端硬盘上的电子表格中,则需要使用表单字段ID编辑“构建Google文档有效负载(配置)”功能节点。

可选:将您的唯一表单网址添加到“Google Docs GET(config)”HTTP请求节点的URL字段中。

Node-Red UI桌面

Bird_Feeder_Monitor_Flow包括用于通过手机访问MQTT服务器的用户界面(UI)。可以关闭或打开显示器,手动重新校准传感器或拍照。还显示了传感器“触摸”的总数,这将使您大致了解前往馈线的鸟类数量。

步骤9:Grafana

“Grafana是一个开源的度量标准分析和可视化套件。它最常用于可视化基础架构和应用程序分析的时间序列数据,但许多用于其他领域包括工业传感器,家庭自动化,天气和过程控制。“ refn:Grafana Docs。

此软件包含在Andreas Spiess用于创建MQTT服务器的映像文件中。在MQTT服务器上配置InfluxDB数据库后,可以将Grafana配置为使用此数据库,如上图所示。接下来,可以从 〜/RPi_bird_feeder_monitor/json/ Bird_Feeder_Monitor_Grafana.json中找到的JSON文件加载此项目使用的仪表板 的。可以在Andreas Spiess的网站“Node-Red,InfuxDB和Grafana安装”中找到配置Grafana的提示。

步骤10:InfluxDB

如前所述,Adreas Spiess有一个很棒的指南和视频,可以引导您通过InfluxDB的配置。以下是我配置数据库的步骤。

首先,我通过SSH登录我的MQTT服务器并创建了一个USER:

root@MQTTPi:~#

root@MQTTPi:~# influx

Connected to “http://localhost:8086” version 1.7.6

InfluxDB shell version: 1.7.6

Enter an InfluxQL query

》 CREATE USER “pi” WITH PASSWORD ‘raspberry’ WITH ALL PRIVILEGES

》 SHOW USERS

user admin

---- -----

pi true

接下来,我创建了数据库:

CREATE DATABASE BIRD_FEEDER_MONITOR

》 SHOW DATABASES

name: databases

name

----

_internal

BIRD_FEEDER_MONITOR

在上面创建数据库之后,可以在Node-Red中配置InfluxDB节点。如上图所示,我将测量“馈线”命名为。数据初始化后,可以在InfluxDB中看到这一点:

》 USE BIRD_FEEDER_MONITORUsing database BIRD_FEEDER_MONITOR

》 SHOW MEASUREMENTS

name: measurements

name

----

feeders

InfluxDB的众多功能之一是不需要FIELDS配置。输入数据时会自动添加和配置FIELDS。以下是此数据库的FIELDS和FIELDTYPE:

》 SHOW FIELD KEYS

name: feeders

fieldKey fieldType

-------- ---------

cloudcover float

count_1 float

count_2 float

count_3 float

count_4 float

count_5 float

count_6 float

humidity float

name string

precip_Int float

temp float

time_1 float

time_2 float

time_3 float

time_4 float

time_5 float

time_6 float

winddir float

windgust float

windspeed float

数据库中的一些条目如下所示:

》 SELECT * FROM feeders LIMIT 10

name: feeders

time cloudcover count_1 count_2 count_3 count_4 count_5 count_6 humidity name precip_Int temp time_1 time_2 time_3 time_4 time_5 time_6 winddir windgust windspeed

---- ---------- ------- ------- ------- ------- ------- ------- -------- ---- ---------- ---- ------ ------ ------ ------ ------ ------ ------- -------- ---------

1550270591000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0

1550271814000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0

1550272230000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0

1550272530000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0

1550272830000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0

1550273130000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0

1550273430000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0

1550273730000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0

1550274030000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0

1550274330000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0

步骤11:Raspberry Pi Camera

我建议使用我的Instructable,远程CNC停止并监视,以组装Raspberry Pi相机。执行除6和8之外的所有步骤以创建相机。请注意我正在使用较旧的Raspberry Pi用于我的相机,但它在我的商店橱窗中运行良好。

升级Rasbian:

sudo apt-get update

sudo apt-get upgrade

安装PIP:

sudo apt-get install python3-pip

安装paho-mqtt:

sudo pip3 install paho-mqtt

安装git和Bird Monitoring软件:

cd ~

sudo apt-get install git

git clone “https://github.com/sbkirby/RPi_bird_feeder_monitor.git”

如果你愿意的话要从相机拍摄的图像制作视频,请安装ffmpeg:

git clone “https://git.ffmpeg.org/ffmpeg.git” ffmpeg

cd ffmpeg

。/configure

make

sudo make install

配置Bird Feeder Monitoring软件的权限:

cd RPi_bird_feeder_monitor

sudo chmod 764 make_movie.sh

sudo chmod 764 take_photo.sh

sudo chown www-data:www-data make_movie.sh

sudo chown www-data:www-data take_photo.sh

我个人不建议在RPi Camera上使用make_movie.sh。它需要许多资源才能在RPi上运行。我建议将图像传输到PC并在那里运行ffmpeg。

在启动时运行

登录RPi并切换到/RPi_bird_feeder_monitor 目录。/p》 cd RPi_bird_feeder_monitor

nano launcher.sh

在launcher.sh中包含以下文本

#!/bin/sh

# launcher.sh

# navigate to home directory, then to this directory, then execute python script, then back home

cd /

cd home/pi/RPi_bird_feeder_monitor

sudo python3 camera_mqtt_client.py

cd /

退出并保存launcher.sh

我们需要制作脚本和可执行文件。

chmod 755 launcher.sh

测试脚本。

sh launcher.sh

创建日志目录:

cd ~

mkdir logs

接下来,我们需要编辑crontab(linux任务管理器)以在启动时启动脚本。

sudo crontab -e

这将带来如上所示的crontab窗口。导航到文件末尾并输入以下行。

@reboot sh /home/pi/RPi_bird_feeder_monitor/launcher.sh 》/home/pi/logs/cronlog 2》&1

退出并保存文件,然后重新启动RPi。 RPi重新启动后,脚本应启动 camera_mqtt_client.py 脚本。可以在位于/logs 文件夹中的日志文件中检查脚本的状态。

步骤12:享受

我们喜欢观鸟,但我们无法将喂食器放在最佳享受位置。我们大多数人可以看到它的唯一地方是早餐桌,并不是每个人都可以从那里看到喂食器。因此,通过Bird Feeder Monitor,我们可以在方便的时候欣赏鸟类。

我们发现监视器的一件事是鸟类落在一个栖息地的频率,然后跳到下一个栖息地,直到它们有环绕整个支线。因此,鸟类数量与访问我们的饲养者的单个鸟类的数量有关。只有一个或两个狭窄栖息地的饲养者可能最适合“计数”鸟类。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 监控系统
    +关注

    关注

    21

    文章

    3612

    浏览量

    169253
收藏 人收藏

    评论

    相关推荐

    电气火灾监控系统解决方案,电气火灾主机&电气火灾组合式探测#电气火灾

    探测监控系统
    安科瑞王金晶
    发布于 :2024年03月29日 18:07:24

    浅谈煤矿井下电力监控系统的应用

    ,才能实现信息在设备之间的传输和信息的运算分析,此外,还需要打印机保证信息的转换和收集。而井下站点需要通讯服务、供电设备和光端设备,几种设备组成信息的收集和传输网络,并由供电设备提供地下监控系统需要
    发表于 02-01 12:54

    车载监控系统的主要组成及应用

    车载监控系统是一种安装在汽车或其他交通工具上的监控系统,用于实时监控车辆内外的情况。车载监控
    的头像 发表于 01-30 14:14 292次阅读
    车载<b class='flag-5'>监控</b><b class='flag-5'>系统</b>的主要组成及应用

    浅谈配电房环境监控系统主机研究与设计

    解决隐患并形成记录,无需人工定期巡检,运维效率高[3]。 目前许多环境监控系统采用工控机或者触摸屏作为上位机。其RS485通信口通过485隔离与带有通信功能的开关量输入输出模块通信,采集开关量输入
    发表于 01-09 16:27

    LabVIEW开发地铁运行安全监控系统

    基于LabVIEW的地铁运行安全监控系统,旨在保证地铁在极端天气条件下的安全运行。系统集成了多种传感监控设备,实时收集和分析数据,以预防
    发表于 12-16 21:06

    电气火灾监控系统在地铁车站的应用方案

    :电气火灾监控系统;探测设置;报警值 1.地铁低压配电系统轨道交通低压负荷主要集中在车站内,车站降压变电所将中压电源降为低压AC380V后,供车站内动力、照明设备使用,低压配电
    发表于 10-17 11:28

    基于ARM的视频监控系统设计方案

    本文搭建了视频监控系统的实验原型系统,对视频监控系统的视频采集、以太网通讯、客户端实时显示、运动检测进行了测试。测试结果表明该原型
    发表于 09-25 06:50

    基于ZigBee的分布式井盖监控系统

    随着我国现代经济发展水平的不断提高,城市井盖数目逐渐增加。由于较多井盖被盗,致使路面形成陷阱,危害到过往车辆和行人安全。本文提出了一种基于 ZigBee无线网络的智能安全监控系统,解决分布式布控困难
    发表于 09-18 08:46

    千视NDI EFP箱载节目制作系统

    箱载节目制作系统千视轻量化NDIEFP箱载节目制作系统,采用全NDIIP架构,满足广电专业级质量要求的同时,兼具便携、灵活、稳定、高性价比等众多优势特性。它仅由一个8
    的头像 发表于 09-04 16:39 357次阅读
    千视NDI EFP箱载节目<b class='flag-5'>制作</b><b class='flag-5'>系统</b>

    机房智能配电监控系统(动环监控系统

    通信电源及机房环境监控系统(简称动环监控系统)是对分布在各机房的电源柜、UPS、空调、蓄电池等多种动力设备及门磁、红外、窗破、水浸、温湿度、烟感等机房环境的各种参数进行遥测、遥信、遥调
    的头像 发表于 08-01 14:52 511次阅读

    动环监控系统应用方案

    动环监控系统,针对机房或类似于机房环境的动环综合环境监控系统,应用于银行、证券、电力、保险、政府、教育、医疗、广电、电力、铁路、通信运营、工矿等行业的机房、基站上。 所谓的一体化机房指
    的头像 发表于 07-07 17:22 432次阅读

    如何制作ESP32 CAM板监控机器人汽车

    电子发烧友网站提供《如何制作ESP32 CAM板监控机器人汽车.zip》资料免费下载
    发表于 06-29 10:24 5次下载
    如何<b class='flag-5'>制作</b>ESP32 CAM板<b class='flag-5'>监控</b>机器人汽车

    动环监控系统监控参数

    机房环境会有各种问题和隐患,虽说发生的频率不高,但对整个企业、机构的影响是无法预测的,因此一套优秀的动环监控系统,对机房管理的作用是极大的,应有全面的监控设备和仪器,辅助运维人员科学管理。 动环
    的头像 发表于 06-12 16:32 722次阅读

    安科瑞剩余电流式电气火灾监控系统

    监控系统
    安科瑞王金晶
    发布于 :2023年05月29日 14:57:31

    机房动环监控系统监控内容

    为了避免机房发生事故、设备损坏、通信阻塞事故,和偷盗风险等事故的发生,通常需要配备动环监控系统解决方案,对进行实时监控与管理,辅助运维人员工作。 动环监控
    的头像 发表于 05-08 16:39 606次阅读