如何使用粒子B系列SoM構(gòu)建實時大象跟蹤系統(tǒng)
我們的物聯(lián)網(wǎng)項圈可以實時跟蹤大象,通過GPS、地理圍欄和即時警報確保安全。
本項目演示了如何使用粒子B系列SoM構(gòu)建實時大象跟蹤系統(tǒng)。該系統(tǒng)可以對大象進行實時GPS跟蹤,并實施地理圍欄,如果大象離開了預定義的邊界,就通知護林員。數(shù)據(jù)顯示在與OpenStreetMap集成的web界面上,并存儲在Firebase中進行分析。
動機
我們當?shù)匾幻?0歲的男子因一頭野象襲擊而不幸喪生,這一事件深深震撼了我們的社區(qū)。這一令人心碎的事件并不是孤立的;它反映了人象沖突日益嚴重的全球危機,威脅著人類的生命和這些雄偉動物的生存。這種沖突正變得越來越頻繁,突出表明迫切需要創(chuàng)新的解決辦法,以減輕這些沖突并促進共存。
在世界上許多地區(qū),人象沖突已達到令人震驚的程度,往往造成毀滅性后果,如作物被毀、財產(chǎn)損失以及人和動物的生命損失。例如:
?在斯里蘭卡,每年約有70人和300頭大象死于沖突。
?在肯尼亞,大象經(jīng)常誤入村莊尋找食物,導致財產(chǎn)損失和死亡。
?在泰國,快速的城市化和棲息地的喪失加劇了人象沖突,危及社區(qū)和野生動物。
這些事件突出表明,迫切需要以可持續(xù)和人道的方式解決人象沖突。該項目旨在通過開發(fā)以先進物聯(lián)網(wǎng)技術(shù)為動力的大象跟蹤和地理圍欄系統(tǒng),為實現(xiàn)這一目標做出貢獻
關(guān)鍵特性
?實時跟蹤:從B系列SoM連續(xù)獲取GPS數(shù)據(jù)。
?地理圍欄:定義圓形邊界(緯度、經(jīng)度和半徑)。如果大象離開了這個邊界,通知它。
?可持續(xù)動力:由太陽能電池板供電,可擴展現(xiàn)場操作。
粒子B系列SoM的建立
B-SoM模塊是該項目的核心,為蜂窩物聯(lián)網(wǎng)應用量身定制。它是Particle的旗艦物聯(lián)網(wǎng)模塊,旨在與Particle物聯(lián)網(wǎng)平臺即服務(Platform-as-a-Service)無縫協(xié)作,該服務可為多達100臺設備提供免費使用。此外,它還包括全球嵌入式SIM卡和數(shù)據(jù)計劃,確保全球可靠的蜂窩連接。
我們特別為這個項目選擇了B524 SoM,因為它具有強大的蜂窩連接,因為Wi-Fi在偏遠的野生動物地區(qū)是不可行的選擇。蜂窩功能可確保不間斷通信,即使在其他連接選項不可用的室外環(huán)境中也是如此。
為了充分利用B524 SoM的能力,M.2評估板是一個必不可少的工具。該分斷板簡化了開發(fā)并簡化了原型設計,使無縫訪問模塊的全部潛力成為可能。該板包括用于nRF52840 MCU和蜂窩調(diào)制解調(diào)器的USB端口,SD卡連接器,以太網(wǎng)連接器,桶插孔電源連接器,按鈕,RGB LED,充電狀態(tài)LED和LiPo電池連接器(不包括電池)。
以下是我們?nèi)绾螌524 SoM連接到評估板。
?將蜂窩天線連接到SoM上標有CELL的U.FL連接器上。這一步對于實現(xiàn)可靠的蜂窩連接至關(guān)重要。
?將B524 SoM與Eval板上的M.2 NGFF連接器對齊。
?小心地將模塊插入連接器,確保模塊正確插入。
?使用eval board套件中提供的螺釘固定模塊,以防止移動或斷開。
要利用B524 SoM與粒子平臺的全部功能,您需要設置您的粒子。IO帳戶和配置您的設備。請遵循以下步驟:
1. 訪問粒子設置網(wǎng)站:
打開瀏覽器,進入setup.particle.io。
2. 登錄您的粒子帳戶:
如果您已經(jīng)有一個帳戶,請輸入您的憑據(jù)并登錄。
如果你沒有帳戶,按照注冊過程創(chuàng)建一個。
3. 選擇您的設備:
在設置頁面上,通過將Eval板連接到計算機,為您的設備選擇適當?shù)倪x項。
然后,它會自動將設備更新為最新的設備操作系統(tǒng)和固件。
4. 組織你的粒子裝置
選擇您的組織和產(chǎn)品,并為設備命名。
5. 完成安裝:
一旦設置過程完成,您的設備將顯示為注冊在您的粒子帳戶。
您將看到確認消息,表明設備已準備好進行開發(fā)。
粒子工作臺
粒子工作臺是一個先進的開發(fā)環(huán)境,集成了Visual Studio Code,使其易于編寫,編譯和調(diào)試固件的B524 SoM。你可以這樣設置它:
1. 安裝Visual Studio Code
從官方網(wǎng)站下載并安裝Visual Studio Code。
2. 安裝Particle Workbench擴展
打開Visual Studio Code。
通過單擊左側(cè)欄上的Extensions圖標進入Extensions Marketplace。
搜索Particle Workbench并安裝擴展。
3. 設置你的項目
?打開Visual Studio Code。
?按Ctrl+Shift+P(或在macOS上按Cmd+Shift+P)打開命令面板。
?輸入粒子:創(chuàng)建新項目并選擇它。
?根據(jù)提示選擇項目目錄,選擇B524 SoM,設置目標固件版本。
準備GPS模塊
在這個項目中,我們使用了RYS352A GPS模塊進行精確的位置跟蹤。該模塊的規(guī)格如下。
RYS352A模塊具有3.3V UART連接,允許與微控制器無縫通信。支持GPS、GLONASS、Galileo、北斗、QZSS、SBAS等多種GNSS系統(tǒng),提供高精度定位數(shù)據(jù)。該模塊集成了12個多音有源干擾消除器,有效地降低了信號噪聲。
此外,它還包括增強的組件,如SAW濾波器,LNA(低噪聲放大器)和TCXO(溫度補償晶體振蕩器),用于卓越的信號處理。嵌入式GPS/GLONASS/北斗天線確保衛(wèi)星信號接收一致。通過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句子。
下面是獲取經(jīng)緯度的示例代碼。
如果GPS獲得了一個定位,它將顯示如下。
設置Firebase實時數(shù)據(jù)庫
Firebase實時數(shù)據(jù)庫是一個NoSQL數(shù)據(jù)庫,它將數(shù)據(jù)存儲為JSON對象。它在所有連接的客戶端之間實時同步數(shù)據(jù),確保每個用戶同時看到相同的數(shù)據(jù)。主要特點包括:
實時同步:數(shù)據(jù)更改立即傳播到所有連接的設備。
離線支持:Firebase sdk在本地緩存數(shù)據(jù),允許應用程序離線運行并在重新連接時同步更改。
可伸縮性:Firebase RTDB可以處理擁有數(shù)百萬用戶的大型應用程序。
設置Firebase項目
1. 創(chuàng)建一個Firebase項目:
進入Firebase控制臺。
點擊“添加項目”。
輸入項目名稱并按照提示創(chuàng)建項目。
2. 將Firebase添加到您的應用程序:
創(chuàng)建項目后,單擊(web)圖標將Firebase添加到web應用程序中。
通過提供昵稱來注冊應用程序。
Firebase將生成一個包含API密鑰和其他設置的配置對象。在你的應用程序中初始化Firebase時,請保持這個方便。
啟用Firebase實時數(shù)據(jù)庫
1. 導航到實時數(shù)據(jù)庫:
在Firebase控制臺中,轉(zhuǎn)到左側(cè)欄的Build部分并選擇Realtime Database。
2. 創(chuàng)建數(shù)據(jù)庫:
點擊“創(chuàng)建數(shù)據(jù)庫”。
為您的數(shù)據(jù)庫選擇一個位置(最好靠近您的用戶,以獲得更好的性能)。
選擇“以測試模式啟動”,暫時允許所有用戶讀寫訪問(您可以稍后配置安全規(guī)則)。
3. 數(shù)據(jù)庫URL
創(chuàng)建數(shù)據(jù)庫之后,F(xiàn)irebase將為您的數(shù)據(jù)庫提供一個格式為https://.firebaseio.com/的唯一URL。
這個URL用于在應用程序中引用數(shù)據(jù)庫。
4. Firebase項目ID:
Firebase項目ID是Firebase項目的唯一標識符。它將您的項目與其他項目區(qū)分開來,并且在進行API調(diào)用或配置Firebase服務時是必需的。
從Firebase控制臺:
?進入Firebase控制臺。
?選擇您的項目。
?點擊側(cè)邊欄“項目概覽”旁邊的齒輪圖標(??)。
?選擇“項目設置”。
?在General選項卡下,您將找到列出的Project ID。
來自Firebase配置對象:
當你將Firebase添加到應用程序時,F(xiàn)irebase提供了一個配置對象。該對象包含projd字段。
5. Firebase認證令牌(Firebase數(shù)據(jù)庫密鑰)
Firebase數(shù)據(jù)庫秘密是Firebase實時數(shù)據(jù)庫的遺留身份驗證機制。它是一個隨機生成的長字符串,授予對整個數(shù)據(jù)庫的完全讀寫訪問權(quán)限。它主要用于需要不受限制地訪問數(shù)據(jù)庫的服務器端應用程序或工具。
進入Firebase控制臺:
?.登錄Firebase控制臺。
?選擇您的項目。
導航到項目設置:
?點擊側(cè)邊欄“項目概覽”旁邊的齒輪圖標(??)。
?選擇“項目設置”。
訪問數(shù)據(jù)庫秘密:
?轉(zhuǎn)到Service Accounts選項卡。
?向下滾動到數(shù)據(jù)庫秘密部分。
?點擊“顯示”顯示秘密。如果需要,您也可以點擊“Add secret”來生成一個新的secret。
?復制密鑰并安全地存儲。將其視為密碼,因為它授予對數(shù)據(jù)庫的完全訪問權(quán)限。
數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)模型
Firebase實時數(shù)據(jù)庫將數(shù)據(jù)存儲為JSON樹。樹中的每個節(jié)點都可以包含鍵值對或嵌套的子節(jié)點。
這是我們使用的數(shù)據(jù)庫結(jié)構(gòu):
設置粒子集成與Firebase
Particle為Firebase提供了一個內(nèi)置的集成,允許你直接向Firebase實時數(shù)據(jù)庫發(fā)送數(shù)據(jù)。
我們需要在Particle和Firebase之間進行3種不同的整合
?從Firebase到Particle獲取地理圍欄數(shù)據(jù)
?把實時位置從粒子到火基
?后實時位置從粒子到火基
1. 從Firebase到Particle獲取地理圍欄數(shù)據(jù)
這個集成包括從Firebase獲取地理圍欄數(shù)據(jù)(例如,邊界坐標)并將其發(fā)送到Particle設備。
創(chuàng)建一個Firebase集成在粒子控制臺:
?轉(zhuǎn)到粒子控制臺。
?導航到Integration并創(chuàng)建一個新的Firebase Integration。
?配置Firebase集成:
粒子固件代碼:
?使用Particle.subscribe()偵聽地理圍欄數(shù)據(jù)。
2. 把實時位置從粒子到火基
這種集成包括使用PUT請求將實時位置數(shù)據(jù)從Particle設備發(fā)送到Firebase。
創(chuàng)建一個Firebase集成在粒子控制臺:
?導航到Integration并創(chuàng)建一個新的Firebase Integration。
?配置Firebase集成:
粒子固件代碼:
使用Particle.publish()發(fā)送位置數(shù)據(jù)。
3. 后實時位置從粒子到火基
這種集成包括使用POST請求將實時位置數(shù)據(jù)從Particle設備發(fā)送到Firebase以創(chuàng)建位置歷史記錄。
創(chuàng)建一個Firebase集成在粒子控制臺:
?轉(zhuǎn)到粒子控制臺。
?導航到Integration并創(chuàng)建一個新的Firebase Integration。
?配置Firebase集成:
粒子固件代碼:
?使用Particle.publish()發(fā)送位置樣本位置數(shù)據(jù)。
整合Twilio的短信提醒
將Twilio與Particle設備集成在一起,您可以直接從BSoM發(fā)送SMS警報,這對于即時通知至關(guān)重要的應用程序(例如警報系統(tǒng))來說非常理想。按照以下步驟設置Twilio并將其集成到您的BSoM中以發(fā)送短信提醒。
設置一個Twilio帳戶,并獲得您的憑據(jù)
?如果你還沒有,在Twilio的網(wǎng)站上注冊一個Twilio賬戶。
?一旦您的帳戶設置,從Twilio控制臺獲取您的帳戶SID和認證令牌,以及Twilio電話號碼。你需要這些來授權(quán)并通過Twilio發(fā)送短信。
在粒子控制臺設置Twilio集成
?登錄到粒子控制臺并導航到集成部分。
?點擊New Integration并選擇Twilio。
?事件名稱:選擇一個事件名稱,如twilio_sms_alert, BSoM將在需要發(fā)送短信時觸發(fā)該事件。
參數(shù):設置如下參數(shù)字段:
?用戶名:您的Twilio帳戶SID。
?密碼:您的Twilio認證令牌。
?Twilio SID:您的Twilio帳戶SID。
表單數(shù)據(jù):設置表單數(shù)據(jù)字段如下:
?來自:你的Twilio電話號碼。
?收件人:收件人的電話號碼(短信提醒將發(fā)送到該號碼)。
?Body:消息文本,如果您想從BSoM代碼定制消息,則可以包含動態(tài)值,例如{{PARTICLE_EVENT_VALUE}}。
網(wǎng)站
大象地理圍欄網(wǎng)頁提供了一個復雜且用戶友好的界面,用于監(jiān)控大象的運動、管理地理圍欄區(qū)域和分析位置數(shù)據(jù)。專為環(huán)保人士,研究人員和現(xiàn)場人員,它提供了一個無縫的融合功能和直觀的設計。主要功能包括
實時跟蹤
在地圖上顯示大象的實時位置,確保最新的監(jiān)測。
Geofence管理
?加載地理圍欄:快速加載以前保存的地理圍欄區(qū)域。
?Save Geofence:繪制自定義邊界并保存以供將來監(jiān)視。
位置的歷史
使用樣條路徑跟蹤和可視化選定大象的運動歷史,使用戶能夠研究模式或行為。
技術(shù)的使用
前端
?HTML5和CSS3:網(wǎng)頁的核心結(jié)構(gòu)和樣式。
?js:支持交互式地圖功能,包括地理圍欄繪圖和實時位置跟蹤。
?字體Awesome:提供高質(zhì)量的圖標,以增強用戶體驗。
?谷歌字體:使用“Smooch Sans”字體,看起來干凈而現(xiàn)代。
后端集成
1. Firebase實時數(shù)據(jù)庫:
?存儲地理圍欄數(shù)據(jù)、大象跟蹤信息和歷史路徑。
?為前端提供實時更新,實現(xiàn)實時位置跟蹤。
2. JavaScript:處理地理圍欄創(chuàng)建、保存/加載功能和地圖交互。
太陽能發(fā)電裝置
該項目采用由兩塊6V太陽能電池板組成的太陽能發(fā)電系統(tǒng)。
這些面板將連接到太陽能電源管理器。
是專為5V太陽能板設計的高效太陽能電源管理模塊。采用先進的MPPT(最大功率點跟蹤)技術(shù),最大限度地提高太陽能電池板效率,可通過USB或太陽能電池板輸入為3.7V鋰電池提供高達900mA的充電電流。該模塊包括具有5V 1A輸出的可控DC-DC轉(zhuǎn)換器,可用于各種太陽能和低功耗應用。其全面的保護機制保護電池、太陽能電池板和輸出電路,顯著提高太陽能項目的穩(wěn)定性和安全性。
為了給評估板供電,我們使用了一塊1800mAh的鋰電池。
外殼
我們使用Fusion 360設計了一個定制的外殼,以有效地保護和容納設備的組件。外殼有兩部分:上半部分容納太陽能電池板,下半部分容納充電控制器、電池和其他電子設備。
這些部件是3d打印PLA+
組裝
首先,我們安全地安裝太陽能電池板,并聯(lián)連接以增強電流輸出。
接下來,我們定位GPS模塊并使用男對女跳線將其連接到評估板。
然后,我們將充電控制器連接到電池和評估板的VIN引腳,因為它支持5V到12V的輸入電壓范圍。
最后,我們將太陽能電池板的電線連接到充電控制器上,完成了整個組裝。
最終測試和部署
該項目展示了一種高效、可持續(xù)的野生動物監(jiān)測解決方案,利用物聯(lián)網(wǎng)、GPS和可再生能源技術(shù)確保大象及其自然棲息地的安全。
本文編譯自hackster.io