電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>基于物聯(lián)網(wǎng)的大象檢測系統(tǒng)

基于物聯(lián)網(wǎng)的大象檢測系統(tǒng)

2022-10-18 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

關(guān)于該項(xiàng)目

我目前居住在印度南部美麗的山站烏蒂。主要問題是大象經(jīng)常進(jìn)入村莊。我們有時(shí)會(huì)被他們的聲音驚醒,但大多數(shù)時(shí)候他們是沉默的,所以我們不會(huì)被驚動(dòng)。

所以我計(jì)劃制作一個(gè)可以檢測大象并發(fā)送警報(bào)的設(shè)備。

inshot_20220925_2048546541_MCWMtzTNBg.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

為您的項(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)。比如電子郵件和短信。

img_20220918_201641_4eaFVJWlJZ.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

步驟1:

這個(gè) Grove AI Vision 模塊可以通過使用 Roboflows ML 檢測進(jìn)行訓(xùn)練以檢測模型。這是 Seeedstudio 創(chuàng)建和上傳自定義模型的指南。https://wiki.seeedstudio.com/Grove-Vision-AI-Module/

這是我可以檢測大象的模型。這不是一個(gè)很好的模型,但它工作得很好。

screenshot_(215)_FzjpTiRvZg.png?auto=compress%2Cformat&w=740&h=555&fit=max

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è)云平臺集成。

inshot_20220925_2104506611_JHjOoKQyeO.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

我已經(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ā)送到云端。

image_7s4WiBIggV.png?auto=compress%2Cformat&w=740&h=555&fit=max

首先從 Blues Notehub 獲取項(xiàng)目 ID 并將其粘貼到以下代碼中。

image_1EQbXiQ8qo.png?auto=compress%2Cformat&w=740&h=555&fit=max

接下來,編譯代碼并將其上傳到 Wio 終端,現(xiàn)在這個(gè) wio 終端將檢測到串行數(shù)據(jù)并將其轉(zhuǎn)發(fā)到 Blues Notecard。所以這現(xiàn)在將發(fā)送模型狀態(tài)、模型置信度和計(jì)數(shù)。

image_toVmbHCOzO.png?auto=compress%2Cformat&w=740&h=555&fit=max

這是我的完整代碼

?

#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)。

image_tOcAThjtri.png?auto=compress%2Cformat&w=740&h=555&fit=max

對于這種可視化,我們將使用 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ù)。

image_gMbS1kTmV8.png?auto=compress%2Cformat&w=740&h=555&fit=max

首先,轉(zhuǎn)到 Blues Note hub 上的 Route 選項(xiàng)卡,然后選擇類型為 MQTT 并以以下格式輸入憑據(jù)。

image_pbiZU8tpct.png?auto=compress%2Cformat&w=740&h=555&fit=max

image_8KLQFgAhBQ.png?auto=compress%2Cformat&w=740&h=555&fit=max

現(xiàn)在我們需要做另一個(gè)程序,只需轉(zhuǎn)到 Blues Device 上的環(huán)境部分,然后將內(nèi)容更改如下。

image_3zOxGFNUiF.png?auto=compress%2Cformat&w=740&h=555&fit=max

這就是我們現(xiàn)在的最后一步。

第 3 步:

打開 Qubitro 門戶并查找來自筆記中心的傳入數(shù)據(jù)。

image_HIANPFXl9O.png?auto=compress%2Cformat&w=740&h=555&fit=max

現(xiàn)在您看到我們也從筆記中心獲得了如此多的數(shù)據(jù),我們需要對它們進(jìn)行整理。為此,只需轉(zhuǎn)到 Blues Route 選項(xiàng)卡并向下滾動(dòng)并添加一個(gè) JSON 整流器,如下所示。

image_3O3lMfwQKm.png?auto=compress%2Cformat&w=740&h=555&fit=max

讓我們再看一下數(shù)據(jù),它現(xiàn)在更具可讀性和合理性。(另外,我添加了位置)

image_MRf2mlAtJ5.png?auto=compress%2Cformat&w=740&h=555&fit=max

下一步是將此導(dǎo)航的視覺效果添加到監(jiān)控部分并創(chuàng)建一個(gè)新儀表板。

image_f0dyj47oa5.png?auto=compress%2Cformat&w=740&h=555&fit=max

您可以根據(jù)需要添加不同的小部件。最后,我們將添加一個(gè)警報(bào)系統(tǒng),為此我們將使用 webhook 和 make。

轉(zhuǎn)到eu1.make.com并創(chuàng)建一個(gè)新帳戶,

image_fcJk171QwZ.png?auto=compress%2Cformat&w=740&h=555&fit=max

然后接下來創(chuàng)建一個(gè)像這樣的新場景,

image_OynCEP0Q6G.png?auto=compress%2Cformat&w=740&h=555&fit=max

在這里,我添加了帶有 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í)行。

image_HEXlKVjo0y.png?auto=compress%2Cformat&w=740&h=555&fit=max

Webhook 警報(bào)流

這是電子郵件警報(bào)的最終輸出。

image_cwvwvmL3Wq.png?auto=compress%2Cformat&w=740&h=555&fit=max

這是 SMS 警報(bào)的最終輸出。

20220911_133705_mnP11cQbmt.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

結(jié)論:

inshot_20220925_2101259131_Sy49PdLCzX.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

在本教程中,我向您展示了如何使用 Qubitro Cloud 的 webhook 和 Twilio 集成的蜂窩通信構(gòu)建基于視覺的大象檢測警報(bào)系統(tǒng)。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)