資料介紹
描述
關(guān)于該項(xiàng)目
我目前居住在印度南部美麗的山站烏蒂。主要問題是大象經(jīng)常進(jìn)入村莊。我們有時(shí)會(huì)被他們的聲音驚醒,但大多數(shù)時(shí)候他們是沉默的,所以我們不會(huì)被驚動(dòng)。
所以我計(jì)劃制作一個(gè)可以檢測大象并發(fā)送警報(bào)的設(shè)備。
為您的項(xiàng)目制造 PCB
?
您可以以便宜的價(jià)格制造 10 塊優(yōu)質(zhì) PCB,并將其運(yùn)送到您家門口。您還將獲得首次訂單的運(yùn)費(fèi)折扣。將您的 Gerber 文件上傳到PCBWAY ,以便以高質(zhì)量和快速的周轉(zhuǎn)時(shí)間制造它們。PCBWay 現(xiàn)在可以提供從設(shè)計(jì)到外殼生產(chǎn)的完整產(chǎn)品解決方案。查看他們的在線 Gerber 查看器功能。使用獎(jiǎng)勵(lì)積分,您可以從他們的禮品店獲得免費(fèi)的東西。
項(xiàng)目流程:
首先,我們必須訓(xùn)練一些機(jī)器學(xué)習(xí)來檢測大象。這個(gè) SenseCAP K1100 套件包含 Grove AI 視覺模塊和 Wio 終端,因此我們可以訓(xùn)練視覺模塊檢測大象并將數(shù)據(jù)發(fā)送到 Wio 終端,然后將數(shù)據(jù)傳遞到云端,并發(fā)出警報(bào)。比如電子郵件和短信。
步驟1:
這個(gè) Grove AI Vision 模塊可以通過使用 Roboflows ML 檢測進(jìn)行訓(xùn)練以檢測模型。這是 Seeedstudio 創(chuàng)建和上傳自定義模型的指南。https://wiki.seeedstudio.com/Grove-Vision-AI-Module/
這是我可以檢測大象的模型。這不是一個(gè)很好的模型,但它工作得很好。
Seeedstudio 正在使用 Edge 脈沖集成,因此我將使用 Edge Impulse 模型對其進(jìn)行更新,這將是一個(gè)更加自信的模型。
現(xiàn)在我們的 Wio 終端將得到模型檢測結(jié)果,下一步是將模型分類結(jié)果發(fā)送到云端并發(fā)出警報(bào)。
第2步:
我最初的計(jì)劃是集成 LoRa 和 TTN,但我沒有 LoRaWAN 或 Helium 網(wǎng)關(guān),所以我只是制定了使用 Wi-Fi 或蜂窩物聯(lián)網(wǎng)的計(jì)劃。然后我使用蜂窩移動(dòng)來完成這項(xiàng)工作。
在這個(gè)項(xiàng)目中,我使用了 Blues Wireless notecard,它是一種基于蜂窩的物聯(lián)網(wǎng)硬件,還允許與多個(gè)云平臺集成。
我已經(jīng)在 Wio 終端的 UART 端口(第 8 和第 10 針)中連接了 Blue 的記事卡。我添加了一個(gè)可以在夜間打開并在白天關(guān)閉的燈光系統(tǒng),為視覺分類提供一些燈光。您必須在 Blues note hub 上創(chuàng)建一個(gè)新項(xiàng)目并對該項(xiàng)目進(jìn)行編程,我將進(jìn)入 Wio 終端以將數(shù)據(jù)發(fā)送到云端。
首先從 Blues Notehub 獲取項(xiàng)目 ID 并將其粘貼到以下代碼中。
接下來,編譯代碼并將其上傳到 Wio 終端,現(xiàn)在這個(gè) wio 終端將檢測到串行數(shù)據(jù)并將其轉(zhuǎn)發(fā)到 Blues Notecard。所以這現(xiàn)在將發(fā)送模型狀態(tài)、模型置信度和計(jì)數(shù)。
這是我的完整代碼
?
#define LGFX_AUTODETECT #define LGFX_USE_V1 #include#include static LGFX lcd; static LGFX_Sprite sprite(&lcd); int count; #include #define txRxPinsSerial Serial1 #define productUID "com.gmail.pradeeplogu26:wio_gate_keeper" Notecard notecard; #include "Seeed_Arduino_GroveAI.h" #include GroveAI ai(Wire); uint8_t state = 0; String Status; double conf; void setup() { pinMode(WIO_LIGHT, INPUT); notecard.begin(txRxPinsSerial, 9600); J *req = notecard.newRequest("hub.set"); JAddStringToObject(req, "product", productUID); JAddStringToObject(req, "mode", "continuous"); notecard.sendRequest(req); delay(1000); Wire.begin(); Serial.begin(115200); Serial.println("begin"); if (ai.begin(ALGO_OBJECT_DETECTION, MODEL_EXT_INDEX_1)) // Object detection and pre-trained model 1 { Serial.print("Version: "); Serial.println(ai.version()); Serial.print("ID: "); Serial.println( ai.id()); Serial.print("Algo: "); Serial.println( ai.algo()); Serial.print("Model: "); Serial.println(ai.model()); Serial.print("Confidence: "); Serial.println(ai.confidence()); state = 1; } else { Serial.println("Algo begin failed."); } lcd.init(); lcd.setRotation(1); lcd.setBrightness(128); lcd.fillScreen(0xffffff); lcd.fillScreen(0x6699CC); lcd.setTextColor(0xFFFFFFu); lcd.setFont(&fonts::Font4); lcd.drawString("Gate Keeper", 90, 100); delay(2000); } void loop(){ if (state == 1) { uint32_t tick = millis(); if (ai.invoke()) // begin invoke { while (1) // wait for invoking finished { CMD_STATE_T ret = ai.state(); if (ret == CMD_STATE_IDLE) { break; } delay(20); } uint8_t len = ai.get_result_len(); // receive how many people detect if (len) { int time1 = millis() - tick; Serial.print("Time consuming: "); Serial.println(time1); Serial.print("Number of people: "); Serial.println(len); object_detection_t data; //get data for (int i = 0; i < len; i++) { Serial.println("result:detected"); count=len; Status = "Positive"; Serial.print("Detecting and calculating: "); Serial.println(i + 1); ai.get_result(i, (uint8_t*)&data, sizeof(object_detection_t)); //get result Serial.print("confidence:"); Serial.print(data.confidence); conf=data.confidence; Serial.println(); J *req = notecard.newRequest("note.add"); if (req != NULL) { JAddStringToObject(req, "file", "sensors.qo"); JAddBoolToObject(req, "sync", true); J *body = JCreateObject(); if (body != NULL) { JAddNumberToObject(body, "confidence", data.confidence); JAddNumberToObject(body, "count", len); JAddStringToObject(body, "result", "positive"); JAddItemToObject(req, "body", body); } notecard.sendRequest(req); } } } else { Serial.println("No identification"); Status="Negative"; conf=0.0; len=0; } } else { delay(1000); Serial.println("Invoke Failed."); } } else { state == 0; } lcd.fillScreen(0xffffff); lcd.fillRect(10, 3, 300, 30, 0x6699CC); lcd.setTextColor(0xFFFFFFu); lcd.setFont(&fonts::Font4); lcd.drawString("Gate Keeper", 90, 8); lcd.fillRect(10, 45, 140, 90, 0x9900FF); lcd.fillRect(170, 45, 140, 90, 0x9900FF); lcd.fillRect(10, 145, 140, 90, 0x9900FF); lcd.fillRect(170, 145, 140, 90, 0x9900FF); lcd.setTextSize(0.5, 0.5); lcd.setTextColor(0xFFFFFFu); lcd.drawString("Status", 60, 50); lcd.drawString("Light", 220, 50); lcd.drawString("Confidence", 35, 150); lcd.drawString("Count", 220, 150); int j = analogRead(WIO_LIGHT); int k = rand() % 100; lcd.setCursor( 35, 80); lcd.setTextSize(1, 1); lcd.print(Status); lcd.setCursor( 220, 80); lcd.setTextSize(1, 1); lcd.print(j); lcd.setCursor( 35, 170); lcd.setTextSize(1, 1); lcd.print(conf); lcd.setCursor( 220, 170); lcd.setTextSize(1, 1); lcd.print(count); delay(1000); // lcd.fillScreen(0xffffff); lcd.setFont(&fonts::Font4); lcd.setTextSize(1, 1); }
?
這是從 Blues Notehub 上的 Wio 終端接收到的數(shù)據(jù),現(xiàn)在我們的數(shù)據(jù)到達(dá)了云端,接下來我們必須添加一些可視化和警報(bào)系統(tǒng)。
對于這種可視化,我們將使用 Qubitro Cloud 平臺,Qubitro 允許可視化來自多個(gè)數(shù)據(jù)源(如 MQTT、TTN、HTTPS、Helium 等)的數(shù)據(jù)。有關(guān)更多詳細(xì)信息,請?jiān)L問 Qubitro.com 。轉(zhuǎn)到portal.qubitro.com并創(chuàng)建一個(gè)新項(xiàng)目并添加一個(gè)具有 MQTT 連接的設(shè)備。您可以看到連接憑據(jù),只需記下這些憑據(jù),因?yàn)槟鷮⒃谙乱徊街行枰@些憑據(jù)。
首先,轉(zhuǎn)到 Blues Note hub 上的 Route 選項(xiàng)卡,然后選擇類型為 MQTT 并以以下格式輸入憑據(jù)。
現(xiàn)在我們需要做另一個(gè)程序,只需轉(zhuǎn)到 Blues Device 上的環(huán)境部分,然后將內(nèi)容更改如下。
這就是我們現(xiàn)在的最后一步。
第 3 步:
打開 Qubitro 門戶并查找來自筆記中心的傳入數(shù)據(jù)。
現(xiàn)在您看到我們也從筆記中心獲得了如此多的數(shù)據(jù),我們需要對它們進(jìn)行整理。為此,只需轉(zhuǎn)到 Blues Route 選項(xiàng)卡并向下滾動(dòng)并添加一個(gè) JSON 整流器,如下所示。
讓我們再看一下數(shù)據(jù),它現(xiàn)在更具可讀性和合理性。(另外,我添加了位置)
下一步是將此導(dǎo)航的視覺效果添加到監(jiān)控部分并創(chuàng)建一個(gè)新儀表板。
您可以根據(jù)需要添加不同的小部件。最后,我們將添加一個(gè)警報(bào)系統(tǒng),為此我們將使用 webhook 和 make。
轉(zhuǎn)到eu1.make.com并創(chuàng)建一個(gè)新帳戶,
然后接下來創(chuàng)建一個(gè)像這樣的新場景,
在這里,我添加了帶有 Twilio 和電子郵件的 webhook,因此一旦觸發(fā)了 webhook,它將啟動(dòng) SMS 和電子郵件警報(bào)。
然后轉(zhuǎn)到 Qubitro 門戶并導(dǎo)航到規(guī)則部分,在此處添加一個(gè)新規(guī)則我添加了一個(gè)規(guī)則,例如模型分?jǐn)?shù) =100,因此每當(dāng)檢測到模型時(shí),它都會(huì)觸發(fā) webhook,然后所有操作都將由 make 執(zhí)行。
Webhook 警報(bào)流
這是電子郵件警報(bào)的最終輸出。
這是 SMS 警報(bào)的最終輸出。
結(jié)論:
在本教程中,我向您展示了如何使用 Qubitro Cloud 的 webhook 和 Twilio 集成的蜂窩通信構(gòu)建基于視覺的大象檢測警報(bào)系統(tǒng)。
- 物聯(lián)網(wǎng)感知技術(shù)及系統(tǒng)應(yīng)用 1次下載
- 集成計(jì)費(fèi)和檢測系統(tǒng)的基于物聯(lián)網(wǎng)的沼氣監(jiān)測
- 探究機(jī)械工程物聯(lián)網(wǎng)系統(tǒng)遠(yuǎn)程解決方案 15次下載
- 什么是智能工廠-物聯(lián)網(wǎng)系統(tǒng) 7次下載
- 基于ZigBee和物聯(lián)網(wǎng)的智能草莓大棚控制系統(tǒng) 37次下載
- 物聯(lián)網(wǎng)工程概述課件下載 0次下載
- 基于區(qū)塊鏈的物聯(lián)網(wǎng)訪問控制系統(tǒng) 45次下載
- 一種面向物聯(lián)網(wǎng)服務(wù)的Web攻擊向量檢測方法 7次下載
- 物聯(lián)網(wǎng)實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計(jì)方案 17次下載
- 物聯(lián)網(wǎng)實(shí)訓(xùn)室管理系統(tǒng)的設(shè)計(jì)方案 33次下載
- 物聯(lián)網(wǎng)操作系統(tǒng)的技術(shù)路線有哪些之中國廠商的機(jī)遇有哪些
- 如何使用物聯(lián)網(wǎng)操作系統(tǒng)Zephyr實(shí)現(xiàn)“連續(xù)集成”開源軟件的詳細(xì)說明
- 物聯(lián)網(wǎng)是什么?現(xiàn)在物聯(lián)網(wǎng)通信標(biāo)準(zhǔn)和協(xié)議有哪些?物聯(lián)網(wǎng)應(yīng)用的概述
- 物聯(lián)網(wǎng)的真正價(jià)值是什么?
- 基于物聯(lián)網(wǎng)的礦井溫、濕度檢測系統(tǒng)設(shè)計(jì) 49次下載
- 基于阿里云物聯(lián)網(wǎng)平臺的智能燈光控制系統(tǒng)設(shè)計(jì) 4026次閱讀
- 基于物聯(lián)網(wǎng)的水管理系統(tǒng)設(shè)計(jì)方案 1887次閱讀
- 如何使用物聯(lián)網(wǎng)實(shí)現(xiàn)智能垃圾監(jiān)控系統(tǒng)的設(shè)計(jì) 2392次閱讀
- 基于電子標(biāo)簽和物聯(lián)網(wǎng)實(shí)現(xiàn)工業(yè)企業(yè)物聯(lián)網(wǎng)系統(tǒng)的設(shè)計(jì) 3698次閱讀
- Inventek物聯(lián)網(wǎng)照明解決方案系統(tǒng)架構(gòu)分析 1866次閱讀
- 物聯(lián)網(wǎng)操作系統(tǒng)到底是什么 3988次閱讀
- 物聯(lián)網(wǎng)操作系統(tǒng)到底是什么? 2904次閱讀
- 物聯(lián)網(wǎng)系統(tǒng)評價(jià)的模型如何去構(gòu)建實(shí)現(xiàn) 1328次閱讀
- 物聯(lián)網(wǎng)技術(shù)綜合實(shí)驗(yàn)系統(tǒng)III型參數(shù) 3701次閱讀
- 你知道水泵物聯(lián)網(wǎng)監(jiān)控系統(tǒng)嗎 2111次閱讀
- 物聯(lián)網(wǎng)十大經(jīng)典開源操作系統(tǒng) 1w次閱讀
- 基于物聯(lián)網(wǎng)的智能電表系統(tǒng)的設(shè)計(jì)及原理 3853次閱讀
- 物聯(lián)網(wǎng)網(wǎng)關(guān)概述及系統(tǒng)設(shè)計(jì) 9432次閱讀
- 物聯(lián)網(wǎng)有哪些操作系統(tǒng)?物聯(lián)網(wǎng)操作系統(tǒng)匯總 5.4w次閱讀
- 物聯(lián)網(wǎng)操作系統(tǒng)的架構(gòu)和基本功能 5530次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多