設(shè)計一個基于LoRa的GPS虛擬圍欄解決方案,用于牲畜和野生動物管理
該項目為牲畜和野生動物管理實現(xiàn)了基于lora的虛擬圍欄解決方案。該系統(tǒng)使用LoRa通信、GPS和邊緣處理來創(chuàng)建虛擬邊界并監(jiān)測動物的運動。當(dāng)動物越過規(guī)定的邊界時,它會觸發(fā)警報,幫助管理放牧區(qū)域并防止未經(jīng)授權(quán)的動物運動。
組件
硬件
LoRa發(fā)送節(jié)點:
?Heltec LoRa32 V2/V3
?GPS模塊(TinyGPS++)
?音頻反饋蜂鳴器
?用于觸覺反饋的振動電機(可選)
LoRa發(fā)送節(jié)點:Heltec LoRa32 V2/V3GPS模塊(TinyGPS++)音頻反饋蜂鳴器觸覺反饋振動電機(可選)
LoRa接收節(jié)點:
?Heltec LoRa32 V2/V3
?OLED顯示屏(SSD1306)
?LoRa接收節(jié)點:Heltec LoRa32 V2/V3OLED Display (SSD1306)
?WiFi連接:ESP32 WiFi進行數(shù)據(jù)傳輸
軟件
編程語言:c++ (Arduino)
依賴關(guān)系:
?LoRa.h
?Adafruit_GFX.h
?Adafruit_SSD1306.h
?TinyGPS + + . h
?HTTPClient.h
依賴性:LoRa.hAdafruit_GFX.hAdafruit_SSD1306.hTinyGPS + + .hHTTPClient.h
Dashboard:使用Leaflet.js的基于flash的web應(yīng)用程序,用于實時地理位置跟蹤
特性
虛擬擊劍:
?定義基于多邊形的地理圍欄邊界。
?當(dāng)動物離開虛擬圍欄時,使用蜂鳴器和振動發(fā)出警報。
?虛擬圍欄:定義基于多邊形的地理圍欄邊界。當(dāng)動物離開虛擬圍欄時,使用蜂鳴器和振動發(fā)出警報。
實時監(jiān)控:
?接收動物的實時位置數(shù)據(jù)。
?在交互式地圖上顯示節(jié)點位置和移動。
?實時監(jiān)控:實時接收動物位置數(shù)據(jù)。在交互式地圖上顯示節(jié)點位置和移動。
數(shù)據(jù)傳輸:
?使用LoRa進行遠程、低功耗通信。
?基于http的數(shù)據(jù)從LoRa接收器傳輸?shù)紽lask儀表板。
?數(shù)據(jù)傳輸:采用LoRa進行遠程、低功耗通信?;趆ttp的數(shù)據(jù)從LoRa接收器傳輸?shù)紽lask儀表板。
WiFi連接:
?連接本地WiFi網(wǎng)絡(luò),向遠程服務(wù)器發(fā)送數(shù)據(jù)。
?WiFi連接:連接本地WiFi網(wǎng)絡(luò),向遠程服務(wù)器發(fā)送數(shù)據(jù)。
可定制的儀表板:
?用戶友好的界面,查看當(dāng)前位置和路徑。
?地理防御系統(tǒng)有彩色標(biāo)記的漏洞警報。
?可定制儀表板:用戶友好的界面,用于查看當(dāng)前位置和路徑。地理防御系統(tǒng)有彩色標(biāo)記的漏洞警報。
如何使用
硬件設(shè)置
傳感器節(jié)點:
?將GPS模塊和蜂鳴器連接到Heltec LoRa32。
?程序使用Arduino提供的代碼(transmitter.ino)。
?發(fā)送節(jié)點:將GPS模塊和蜂鳴器連接到Heltec LoRa32上。程序使用Arduino提供的代碼(transmitter.ino)。
接收器節(jié)點:
?將OLED顯示器連接到Heltec LoRa32上。
?程序使用Arduino提供的代碼(receiver.ino)。
?接收節(jié)點:將OLED顯示屏連接到Heltec LoRa32。程序使用Arduino提供的代碼(receiver.ino)。
軟件設(shè)置
Arduino:
?安裝所需的庫(LoRa, Adafruit_GFX, Adafruit_SSD1306, TinyGPS++)。
?將相應(yīng)的代碼上傳到發(fā)射機和接收機。
?Arduino:安裝所需的庫(LoRa, Adafruit_GFX, Adafruit_SSD1306, TinyGPS++)。將相應(yīng)的代碼上傳到發(fā)射機和接收機。
Flask儀表板:
?確保安裝了Python和Flask。
?運行Flask服務(wù)器腳本(app.py)。
?通過http://:5000訪問儀表板。
?Flask Dashboard:確保安裝了Python和Flask。運行Flask服務(wù)器腳本(app.py)。通過http://:5000訪問儀表板。
指示板
特性
地圖視圖:
?顯示具有實時更新的節(jié)點。
?使用Leaflet.js進行地圖渲染。
?地圖視圖?:顯示實時更新的節(jié)點。使用Leaflet.js進行地圖渲染。
側(cè)邊欄導(dǎo)航:
?主頁:主視圖。
?清除路徑:清除折線路徑。
?導(dǎo)出為CSV:保存跟蹤數(shù)據(jù)。
?設(shè)置:調(diào)整地理圍欄參數(shù)。
?側(cè)邊欄導(dǎo)航:主頁:主視圖。清除路徑:清除折線路徑。導(dǎo)出為CSV:保存跟蹤數(shù)據(jù)。設(shè)置:調(diào)整地理圍欄參數(shù)。
安裝和依賴項
?Arduino庫
?LoRa
?Adafruit GFX
?Adafruit SSD1306
?TinyGPS + +
?Python庫
?Flask
?Leaflet.js(前端)
未來的改進
?為動物行為分析添加邊緣機器學(xué)習(xí)。
?集成SMS/基于通知的警報。
?延長電池壽命與優(yōu)化的電源管理。
本文編譯自hackster.io





