如何使用粒子B系列SoM构建实时大象跟踪系统
扫描二维码
随时随地手机看文章
我们的物联网项圈可以实时跟踪大象,通过GPS、地理围栏和即时警报确保安全。
本项目演示了如何使用粒子B系列SoM构建实时大象跟踪系统。该系统可以对大象进行实时GPS跟踪,并实施地理围栏,如果大象离开了预定义的边界,就通知护林员。数据显示在与OpenStreetMap集成的web界面上,并存储在Firebase中进行分析。
动机
我们当地一名40岁的男子因一头野象袭击而不幸丧生,这一事件深深震撼了我们的社区。这一令人心碎的事件并不是孤立的;它反映了人象冲突日益严重的全球危机,威胁着人类的生命和这些雄伟动物的生存。这种冲突正变得越来越频繁,突出表明迫切需要创新的解决办法,以减轻这些冲突并促进共存。
在世界上许多地区,人象冲突已达到令人震惊的程度,往往造成毁灭性后果,如作物被毁、财产损失以及人和动物的生命损失。例如:
•在斯里兰卡,每年约有70人和300头大象死于冲突。
•在肯尼亚,大象经常误入村庄寻找食物,导致财产损失和死亡。
•在泰国,快速的城市化和栖息地的丧失加剧了人象冲突,危及社区和野生动物。
这些事件突出表明,迫切需要以可持续和人道的方式解决人象冲突。该项目旨在通过开发以先进物联网技术为动力的大象跟踪和地理围栏系统,为实现这一目标做出贡献
关键特性
•实时跟踪:从B系列SoM连续获取GPS数据。
•地理围栏:定义圆形边界(纬度、经度和半径)。如果大象离开了这个边界,通知它。
•可持续动力:由太阳能电池板供电,可扩展现场操作。
粒子B系列SoM的建立
B-SoM模块是该项目的核心,为蜂窝物联网应用量身定制。它是Particle的旗舰物联网模块,旨在与Particle物联网平台即服务(Platform-as-a-Service)无缝协作,该服务可为多达100台设备提供免费使用。此外,它还包括全球嵌入式SIM卡和数据计划,确保全球可靠的蜂窝连接。
我们特别为这个项目选择了B524 SoM,因为它具有强大的蜂窝连接,因为Wi-Fi在偏远的野生动物地区是不可行的选择。蜂窝功能可确保不间断通信,即使在其他连接选项不可用的室外环境中也是如此。
为了充分利用B524 SoM的能力,M.2评估板是一个必不可少的工具。该分断板简化了开发并简化了原型设计,使无缝访问模块的全部潜力成为可能。该板包括用于nRF52840 MCU和蜂窝调制解调器的USB端口,SD卡连接器,以太网连接器,桶插孔电源连接器,按钮,RGB LED,充电状态LED和LiPo电池连接器(不包括电池)。
以下是我们如何将B524 SoM连接到评估板。
•将蜂窝天线连接到SoM上标有CELL的U.FL连接器上。这一步对于实现可靠的蜂窝连接至关重要。
•将B524 SoM与Eval板上的M.2 NGFF连接器对齐。
•小心地将模块插入连接器,确保模块正确插入。
•使用eval board套件中提供的螺钉固定模块,以防止移动或断开。
要利用B524 SoM与粒子平台的全部功能,您需要设置您的粒子。IO帐户和配置您的设备。请遵循以下步骤:
1. 访问粒子设置网站:
打开浏览器,进入setup.particle.io。
2. 登录您的粒子帐户:
如果您已经有一个帐户,请输入您的凭据并登录。
如果你没有帐户,按照注册过程创建一个。
3. 选择您的设备:
在设置页面上,通过将Eval板连接到计算机,为您的设备选择适当的选项。
然后,它会自动将设备更新为最新的设备操作系统和固件。
4. 组织你的粒子装置
选择您的组织和产品,并为设备命名。
5. 完成安装:
一旦设置过程完成,您的设备将显示为注册在您的粒子帐户。
您将看到确认消息,表明设备已准备好进行开发。
粒子工作台
粒子工作台是一个先进的开发环境,集成了Visual Studio Code,使其易于编写,编译和调试固件的B524 SoM。你可以这样设置它:
1. 安装Visual Studio Code
从官方网站下载并安装Visual Studio Code。
2. 安装Particle Workbench扩展
打开Visual Studio Code。
通过单击左侧栏上的Extensions图标进入Extensions Marketplace。
搜索Particle Workbench并安装扩展。
3. 设置你的项目
•打开Visual Studio Code。
•按Ctrl+Shift+P(或在macOS上按Cmd+Shift+P)打开命令面板。
•输入粒子:创建新项目并选择它。
•根据提示选择项目目录,选择B524 SoM,设置目标固件版本。
准备GPS模块
在这个项目中,我们使用了RYS352A GPS模块进行精确的位置跟踪。该模块的规格如下。
RYS352A模块具有3.3V UART连接,允许与微控制器无缝通信。支持GPS、GLONASS、Galileo、北斗、QZSS、SBAS等多种GNSS系统,提供高精度定位数据。该模块集成了12个多音有源干扰消除器,有效地降低了信号噪声。
此外,它还包括增强的组件,如SAW滤波器,LNA(低噪声放大器)和TCXO(温度补偿晶体振荡器),用于卓越的信号处理。嵌入式GPS/GLONASS/北斗天线确保卫星信号接收一致。通过RTC(实时时钟)电池备份,该模块即使在断电时也可以保持时间。它还提供了10Hz的最大导航更新速率,使其适合高速跟踪应用。
连接Reyax GPS模块到粒子B系列SoM:
•SoM上从GPS到RX的TX。
•在SoM上从GPS到TX的RX。
•3.3V从GPS到3.3V在SoM
•从GPS到SoM的GND
TinyGPS++库用于解析来自模块的NMEA句子。
下面是获取经纬度的示例代码。
如果GPS获得了一个定位,它将显示如下。
设置Firebase实时数据库
Firebase实时数据库是一个NoSQL数据库,它将数据存储为JSON对象。它在所有连接的客户端之间实时同步数据,确保每个用户同时看到相同的数据。主要特点包括:
实时同步:数据更改立即传播到所有连接的设备。
离线支持:Firebase sdk在本地缓存数据,允许应用程序离线运行并在重新连接时同步更改。
可伸缩性:Firebase RTDB可以处理拥有数百万用户的大型应用程序。
设置Firebase项目
1. 创建一个Firebase项目:
进入Firebase控制台。
点击“添加项目”。
输入项目名称并按照提示创建项目。
2. 将Firebase添加到您的应用程序:
创建项目后,单击(web)图标将Firebase添加到web应用程序中。
通过提供昵称来注册应用程序。
Firebase将生成一个包含API密钥和其他设置的配置对象。在你的应用程序中初始化Firebase时,请保持这个方便。
启用Firebase实时数据库
1. 导航到实时数据库:
在Firebase控制台中,转到左侧栏的Build部分并选择Realtime Database。
2. 创建数据库:
点击“创建数据库”。
为您的数据库选择一个位置(最好靠近您的用户,以获得更好的性能)。
选择“以测试模式启动”,暂时允许所有用户读写访问(您可以稍后配置安全规则)。
3. 数据库URL
创建数据库之后,Firebase将为您的数据库提供一个格式为https://.firebaseio.com/的唯一URL。
这个URL用于在应用程序中引用数据库。
4. Firebase项目ID:
Firebase项目ID是Firebase项目的唯一标识符。它将您的项目与其他项目区分开来,并且在进行API调用或配置Firebase服务时是必需的。
从Firebase控制台:
•进入Firebase控制台。
•选择您的项目。
•点击侧边栏“项目概览”旁边的齿轮图标(⚙️)。
•选择“项目设置”。
•在General选项卡下,您将找到列出的Project ID。
来自Firebase配置对象:
当你将Firebase添加到应用程序时,Firebase提供了一个配置对象。该对象包含projd字段。
5. Firebase认证令牌(Firebase数据库密钥)
Firebase数据库秘密是Firebase实时数据库的遗留身份验证机制。它是一个随机生成的长字符串,授予对整个数据库的完全读写访问权限。它主要用于需要不受限制地访问数据库的服务器端应用程序或工具。
进入Firebase控制台:
•.登录Firebase控制台。
•选择您的项目。
导航到项目设置:
•点击侧边栏“项目概览”旁边的齿轮图标(⚙️)。
•选择“项目设置”。
访问数据库秘密:
•转到Service Accounts选项卡。
•向下滚动到数据库秘密部分。
•点击“显示”显示秘密。如果需要,您也可以点击“Add secret”来生成一个新的secret。
•复制密钥并安全地存储。将其视为密码,因为它授予对数据库的完全访问权限。
数据库结构和数据模型
Firebase实时数据库将数据存储为JSON树。树中的每个节点都可以包含键值对或嵌套的子节点。
这是我们使用的数据库结构:
设置粒子集成与Firebase
Particle为Firebase提供了一个内置的集成,允许你直接向Firebase实时数据库发送数据。
我们需要在Particle和Firebase之间进行3种不同的整合
•从Firebase到Particle获取地理围栏数据
•把实时位置从粒子到火基
•后实时位置从粒子到火基
1. 从Firebase到Particle获取地理围栏数据
这个集成包括从Firebase获取地理围栏数据(例如,边界坐标)并将其发送到Particle设备。
创建一个Firebase集成在粒子控制台:
•转到粒子控制台。
•导航到Integration并创建一个新的Firebase Integration。
•配置Firebase集成:
粒子固件代码:
•使用Particle.subscribe()侦听地理围栏数据。
2. 把实时位置从粒子到火基
这种集成包括使用PUT请求将实时位置数据从Particle设备发送到Firebase。
创建一个Firebase集成在粒子控制台:
•导航到Integration并创建一个新的Firebase Integration。
•配置Firebase集成:
粒子固件代码:
使用Particle.publish()发送位置数据。
3. 后实时位置从粒子到火基
这种集成包括使用POST请求将实时位置数据从Particle设备发送到Firebase以创建位置历史记录。
创建一个Firebase集成在粒子控制台:
•转到粒子控制台。
•导航到Integration并创建一个新的Firebase Integration。
•配置Firebase集成:
粒子固件代码:
•使用Particle.publish()发送位置样本位置数据。
整合Twilio的短信提醒
将Twilio与Particle设备集成在一起,您可以直接从BSoM发送SMS警报,这对于即时通知至关重要的应用程序(例如警报系统)来说非常理想。按照以下步骤设置Twilio并将其集成到您的BSoM中以发送短信提醒。
设置一个Twilio帐户,并获得您的凭据
•如果你还没有,在Twilio的网站上注册一个Twilio账户。
•一旦您的帐户设置,从Twilio控制台获取您的帐户SID和认证令牌,以及Twilio电话号码。你需要这些来授权并通过Twilio发送短信。
在粒子控制台设置Twilio集成
•登录到粒子控制台并导航到集成部分。
•点击New Integration并选择Twilio。
•事件名称:选择一个事件名称,如twilio_sms_alert, BSoM将在需要发送短信时触发该事件。
参数:设置如下参数字段:
•用户名:您的Twilio帐户SID。
•密码:您的Twilio认证令牌。
•Twilio SID:您的Twilio帐户SID。
表单数据:设置表单数据字段如下:
•来自:你的Twilio电话号码。
•收件人:收件人的电话号码(短信提醒将发送到该号码)。
•Body:消息文本,如果您想从BSoM代码定制消息,则可以包含动态值,例如{{PARTICLE_EVENT_VALUE}}。
网站
大象地理围栏网页提供了一个复杂且用户友好的界面,用于监控大象的运动、管理地理围栏区域和分析位置数据。专为环保人士,研究人员和现场人员,它提供了一个无缝的融合功能和直观的设计。主要功能包括
实时跟踪
在地图上显示大象的实时位置,确保最新的监测。
Geofence管理
•加载地理围栏:快速加载以前保存的地理围栏区域。
•Save Geofence:绘制自定义边界并保存以供将来监视。
位置的历史
使用样条路径跟踪和可视化选定大象的运动历史,使用户能够研究模式或行为。
技术的使用
前端
•HTML5和CSS3:网页的核心结构和样式。
•js:支持交互式地图功能,包括地理围栏绘图和实时位置跟踪。
•字体Awesome:提供高质量的图标,以增强用户体验。
•谷歌字体:使用“Smooch Sans”字体,看起来干净而现代。
后端集成
1. Firebase实时数据库:
•存储地理围栏数据、大象跟踪信息和历史路径。
•为前端提供实时更新,实现实时位置跟踪。
2. JavaScript:处理地理围栏创建、保存/加载功能和地图交互。
太阳能发电装置
该项目采用由两块6V太阳能电池板组成的太阳能发电系统。
这些面板将连接到太阳能电源管理器。
是专为5V太阳能板设计的高效太阳能电源管理模块。采用先进的MPPT(最大功率点跟踪)技术,最大限度地提高太阳能电池板效率,可通过USB或太阳能电池板输入为3.7V锂电池提供高达900mA的充电电流。该模块包括具有5V 1A输出的可控DC-DC转换器,可用于各种太阳能和低功耗应用。其全面的保护机制保护电池、太阳能电池板和输出电路,显著提高太阳能项目的稳定性和安全性。
为了给评估板供电,我们使用了一块1800mAh的锂电池。
外壳
我们使用Fusion 360设计了一个定制的外壳,以有效地保护和容纳设备的组件。外壳有两部分:上半部分容纳太阳能电池板,下半部分容纳充电控制器、电池和其他电子设备。
这些部件是3d打印PLA+
组装
首先,我们安全地安装太阳能电池板,并联连接以增强电流输出。
接下来,我们定位GPS模块并使用男对女跳线将其连接到评估板。
然后,我们将充电控制器连接到电池和评估板的VIN引脚,因为它支持5V到12V的输入电压范围。
最后,我们将太阳能电池板的电线连接到充电控制器上,完成了整个组装。
最终测试和部署
该项目展示了一种高效、可持续的野生动物监测解决方案,利用物联网、GPS和可再生能源技术确保大象及其自然栖息地的安全。
本文编译自hackster.io