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

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

3天內(nèi)不再提示

項目分享|基于ElfBoard的遠(yuǎn)程監(jiān)測系統(tǒng)

ElfBoard ? 2024-01-17 11:14 ? 次閱讀

ElfBoard的“自創(chuàng)一派”共創(chuàng)社由19名來自各大高校的共創(chuàng)官組成,在不到一個月的時間里已經(jīng)建立起濃厚的學(xué)習(xí)氛圍,在這里每位共創(chuàng)官跨越不同的學(xué)科背景,交融思想、共享資源,迅速提升自身在嵌入式技術(shù)領(lǐng)域的專業(yè)素養(yǎng)。

值得一提的是,社群內(nèi)部已經(jīng)涌現(xiàn)出許多富有創(chuàng)意產(chǎn)品設(shè)計理念與技術(shù)解決方案,今天就跟大家分享一名共創(chuàng)官完成的項目報告“基于ElfBoard的遠(yuǎn)程監(jiān)測系統(tǒng)”。

一、項目介紹

1.1 項目目標(biāo)

基于i.MX6ULL構(gòu)建一個功能強大的遠(yuǎn)程檢測系統(tǒng)。系統(tǒng)能夠自動采集各種傳感器數(shù)據(jù),包括溫度、濕度、電壓等,并實時上傳至云端服務(wù)器,并且能夠根據(jù)采集到的傳感器數(shù)據(jù)對設(shè)備進行自動化控制,如設(shè)置電壓閾值,當(dāng)采集到的電壓大于閾值時,開啟LED1。

在用戶端,實現(xiàn)對采集到的傳感器數(shù)據(jù)進行處理、分析和可視化,便于用戶遠(yuǎn)程監(jiān)控和管理,還可以實現(xiàn)對設(shè)備的遠(yuǎn)程控制。集成高清攝像頭,將采集到的視頻數(shù)據(jù)傳輸至客戶端,實現(xiàn)對設(shè)備的遠(yuǎn)程實時監(jiān)控。

1.2 項目硬件

1、ElfBoard ELF 1 開發(fā)板

2、WiFi網(wǎng)絡(luò)

3、USB免驅(qū)攝像頭

4、Linux服務(wù)器

1.3 軟件環(huán)境

1、阿里云物聯(lián)網(wǎng)平臺

2、Nginx

3、Python

4、Flask

二、項目方案

2.1 遠(yuǎn)程監(jiān)控

采用RTMP協(xié)議,設(shè)備端使用FFmpeg采集攝像頭數(shù)據(jù)并推流至云端,云端使用Nginx提供Web服務(wù),并使用nginx-http-flv-module提供RTMP服務(wù),用戶端采用Web界面,并使用flv.js進行拉流播放。

2.2 數(shù)據(jù)檢測與設(shè)備控制

傳感器數(shù)據(jù)傳輸以及設(shè)備的遠(yuǎn)程控制通過阿里云物聯(lián)網(wǎng)平臺,采用MQTT協(xié)議。

三、數(shù)據(jù)檢測與設(shè)備控制

MQTT云平臺配置

參考 ElfBoard學(xué)習(xí)(九):MQTT

傳感器數(shù)據(jù)采集與上傳

基于Linux SDK中的data_model_basic_demo.c進行修改。

溫濕度數(shù)據(jù)采集

wKgZomWnShWABKpCAACL-kULRGo942.png

電壓數(shù)據(jù)采集

wKgaomWnSiaAbpXyAAClhbcqQAY987.png

LED狀態(tài)采集與控制

wKgZomWnSjWAVg2uAAB1kF8M5RQ365.png

自動化控制

當(dāng)ADC采集的電壓大于閾值2.5V時自動開啟LED1,低于時自動關(guān)閉LED1。

if(adc>2.5){ set_led(1,'1'); }else{ set_led(1,'0'); }

數(shù)據(jù)上傳

在main函數(shù)的while(1)中

wKgZomWnSkSACdI9AACFbxTAZ0c784.png

云端指令響應(yīng)

由于云端傳輸?shù)臄?shù)據(jù)為JSON格式,因此需要使用cJSON進行解析。

添加cJSON

在components文件夾下添加cJSON相關(guān)文件

wKgZomWnJ_KACL_vAAAcPjS1W7Q646.png

修改Makefile

wKgaomWnKBSAJRmyAACrRn9vdwk802.png


在74行和78行后面要添加-lm,否則在編譯的時候會報錯。

實現(xiàn)代碼

wKgaomWnSpSAUXIRAAC50TTB23g200.png

wKgaomWnSqGAFfvUAABjHo6ImKg901.png

四、視頻監(jiān)控

RTMP服務(wù)器搭建

云端服務(wù)器使用Nginx,但Nginx本身并不支持RTMP,需要使用相關(guān)的插件使其支持RTMP。此外由于網(wǎng)頁端播放RTMP流需要Flash插件的支持,而目前Flash插件許多瀏覽器已不再支持,因此需要使用支持 HTTPS-FLV的nginx-http-flv-module,并通過flv.js實現(xiàn)RTMP流的播放。這里首先需要下載Nginx和nginx-http-flv-module的源碼,并采用編譯的方式安裝Nginx,具體步驟如下:

./configure --add-module=/usr/local/nginx/nginx-http-flv-module make&&make install

安裝完成后,需要進入Nginx安裝目錄(默認(rèn)為/usr/local/nginx/),并在conf文件夾下對nginx.conf文件進行修改,增加rtmp功能(注意需要打開服務(wù)器的1935端口):

wKgaomWnSrCAMb_0AACQclp72Uk235.png

wKgZomWnSseABY7EAABzxHvqjz0990.png

wKgaomWnStmAS7WYAAAUb2nbPKY605.png

最后啟動Nginx服務(wù),即可完成RTMP服務(wù)器的搭建:

cd /usr/local/nginx/sbin ./nginx

本地推流

FFmpeg的編譯配置參考:攝像頭采用的是USB免驅(qū)攝像頭,將攝像頭插入ElfBoard的USB口即可正常識別及工作,設(shè)備節(jié)點為/dev/video2。之后可以使用v4l2-ctl工具查看并配置攝像頭信息最后使用命令就能夠?qū)崿F(xiàn)推流:

ffmpeg -f video4linux2 -r 5 -s 320x240 -i /dev/video2 -c:v libx264 -preset ultrafast -tune zerolatency -r 5 -f flv rtmp://xxx.xxxxxx.xxx/live/test

五、用戶端設(shè)計

框架

使用Python編程,采用Web界面,并通過Flask提供Web服務(wù)以及后端數(shù)據(jù)處理能力。可以部署在云端,也可以在本地運行。界面如下所示:

wKgZomWnRCGADJ2tAADb96YVgOY414.png

視頻拉流

Web用戶端的視頻拉流通過flv.js實現(xiàn),首先需要在html文件中導(dǎo)入flv.js:

之后設(shè)計Web頁面播放器,具體代碼如下:

var player = document.getElementById('videoElement'); if (flvjs.isSupported()) { var flvPlayer = flvjs.createPlayer({ type: 'flv', url: 'http://xxx.xxxxx.xx/live?port=1935&app=myapp&stream=test', "isLive": true, hasAudio: false, hasVideo: true, //withCredentials: false, //cors: true }, { enableWorker: true, enableStashBuffer: false, lazyLoad: false, lazyLoadMaxDuration: 0, lazyLoadRecoverDuration: 0, deferLoadAfterSourceOpen: false, fixAudioTimestampGap: true, autoCleanupSourceBuffer: true, }); flvPlayer.attachMediaElement(videoElement); flvPlayer.load(); //加載 flv_start(); } function flv_start() { player.play(); } function flv_pause() { player.pause(); }

遠(yuǎn)程數(shù)據(jù)的讀取與指令下發(fā)

這一部分通過后端python編程實現(xiàn),并提供相應(yīng)的web接口。前后端的交互通過ajax請求實現(xiàn)。

wKgaomWnSxmAFkevAACfytCMgf8645.png

wKgZomWnSymAUiO6AACnYqIganU551.pngwKgaomWnSzWAZ0bsAACjoixNgSo992.png
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5045

    文章

    18814

    瀏覽量

    298441
  • 監(jiān)測系統(tǒng)

    關(guān)注

    8

    文章

    2612

    瀏覽量

    81078
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4769

    瀏覽量

    96150
  • Linux應(yīng)用
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    5192
收藏 人收藏

    評論

    相關(guān)推薦

    飛凌嵌入式-ElfBoard-項目分享|基于ELF 1S開發(fā)板完成的物聯(lián)網(wǎng)開源項目

    項目系統(tǒng)框架,如下圖所示: 1 – 云(涂鴉云服務(wù)器) 開源項目是采用涂鴉云作為云服務(wù)器的,之所以采用涂鴉云,主要是涂鴉的IoT生態(tài)體系很友好,并且對于初學(xué)者來說涂鴉云的學(xué)習(xí)門檻和接入門檻是比較
    發(fā)表于 05-16 09:12

    基于CompactRIO的遠(yuǎn)程狀態(tài)監(jiān)測系統(tǒng)研究

    使用LabVIEW作為開發(fā)工具,以CompactRIO、NI9234為運行硬件平臺,開發(fā)遠(yuǎn)程狀態(tài)監(jiān)測系統(tǒng),主要功能包括:u對若干個振動測點進行監(jiān)測:數(shù)據(jù)采集、存儲、回放,參數(shù)設(shè)置;u基
    發(fā)表于 11-21 15:04

    溫室環(huán)境遠(yuǎn)程監(jiān)測系統(tǒng)的設(shè)計

    溫室環(huán)境遠(yuǎn)程監(jiān)測系統(tǒng)的設(shè)計本項目致力于開發(fā)出一套基于單片機的溫室環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng),本
    發(fā)表于 10-31 21:05

    【GoKit申請】+實時遠(yuǎn)程動態(tài)生命狀態(tài)監(jiān)測

    本帖最后由 thwin520 于 2015-4-28 13:05 編輯 項目名稱或開發(fā)想法:實時遠(yuǎn)程動態(tài)生命狀態(tài)監(jiān)測!現(xiàn)在很多人選擇在家里面做康復(fù),不希望呆在醫(yī)院里,有了這個系統(tǒng)
    發(fā)表于 04-28 12:57

    土壤墑情監(jiān)測系統(tǒng)實現(xiàn)土壤水分和溫度遠(yuǎn)程監(jiān)測

    絡(luò)、遠(yuǎn)程監(jiān)測設(shè)備和土壤墑情檢測設(shè)備四部分構(gòu)成?!?監(jiān)控中心硬件主要由服務(wù)器、計算機、交換機、打印機等組成。軟件主要有操作系統(tǒng)軟件、數(shù)據(jù)庫軟件、土壤墑情監(jiān)測
    發(fā)表于 09-06 14:42

    嵌入式遠(yuǎn)程車載監(jiān)測系統(tǒng)怎么實現(xiàn)?

    隨著后PC時代的到來,嵌入式系統(tǒng)的應(yīng)用已經(jīng)越來越普遍,而基于GPRS無線網(wǎng)絡(luò)的遠(yuǎn)程監(jiān)測系統(tǒng)也在諸多工業(yè)工程領(lǐng)域有著廣泛應(yīng)用。本文將闡述基于GPRS無線網(wǎng)絡(luò)的嵌入式
    發(fā)表于 03-26 06:38

    抽油機井無線遠(yuǎn)程監(jiān)測系統(tǒng)方案

    抽油機井無線遠(yuǎn)程監(jiān)測系統(tǒng)方案
    發(fā)表于 09-17 13:49

    典型的遠(yuǎn)程監(jiān)測系統(tǒng)由哪幾部分組成?

    典型的遠(yuǎn)程監(jiān)測系統(tǒng)由哪幾部分組成?
    發(fā)表于 06-01 06:57

    怎樣去設(shè)計基于ZigBee的遠(yuǎn)程溫度監(jiān)測系統(tǒng)

    1. 引言 溫度監(jiān)測系統(tǒng)廣泛應(yīng)用于對溫度敏感的工業(yè)、農(nóng)業(yè)、醫(yī)學(xué)等現(xiàn)場,如通信基站機房、礦井、糧倉、智能家居等環(huán)境中。傳統(tǒng)的溫度監(jiān)測系統(tǒng)需在所監(jiān)測
    發(fā)表于 07-19 08:02

    如何實現(xiàn)病房輸液遠(yuǎn)程監(jiān)測和控制系統(tǒng)設(shè)計?

    如何實現(xiàn)病房輸液遠(yuǎn)程監(jiān)測和控制系統(tǒng)設(shè)計?
    發(fā)表于 10-28 07:52

    基于STM32的遠(yuǎn)程預(yù)付費電能監(jiān)測系統(tǒng)設(shè)計與應(yīng)用

    摘要:隨著電子信息技術(shù)的飛速發(fā)展,電能的遠(yuǎn)程監(jiān)測也得到了迅速的發(fā)展,它的發(fā)展和應(yīng)用,對電力系統(tǒng)的安全運行具有重要的意義。本文設(shè)計一種基于MQTT服務(wù)器的遠(yuǎn)程電能
    發(fā)表于 01-14 08:00

    LabVIEW開發(fā)遠(yuǎn)程結(jié)構(gòu)健康監(jiān)測系統(tǒng)

    LabVIEW開發(fā)遠(yuǎn)程結(jié)構(gòu)健康監(jiān)測系統(tǒng) 工程師依賴于振動監(jiān)測來評估建筑物、橋梁和其他大型結(jié)構(gòu)的完整性。傳統(tǒng)的振動監(jiān)測工具在數(shù)據(jù)收集上存在限制
    發(fā)表于 12-08 17:47

    基于GPRS的溫度遠(yuǎn)程監(jiān)測系統(tǒng)設(shè)計

    針對傳統(tǒng)方法在監(jiān)測野生動物時存在的一些問題,設(shè)計了一套野生動物的遠(yuǎn)程監(jiān)測系統(tǒng)。該系統(tǒng)主要包括野生動物相關(guān)參數(shù)前端采集、處理及GPRS
    發(fā)表于 03-20 15:09 ?97次下載
    基于GPRS的溫度<b class='flag-5'>遠(yuǎn)程</b><b class='flag-5'>監(jiān)測</b><b class='flag-5'>系統(tǒng)</b>設(shè)計

    ARM和CDMA的油井工況遠(yuǎn)程監(jiān)測系統(tǒng)

    ARM和CDMA的油井工況遠(yuǎn)程監(jiān)測系統(tǒng)
    發(fā)表于 10-30 11:21 ?4次下載
    ARM和CDMA的油井工況<b class='flag-5'>遠(yuǎn)程</b><b class='flag-5'>監(jiān)測</b><b class='flag-5'>系統(tǒng)</b>

    基于心電遠(yuǎn)程監(jiān)測系統(tǒng)設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于心電遠(yuǎn)程監(jiān)測系統(tǒng)設(shè)計.pdf》資料免費下載
    發(fā)表于 10-19 10:20 ?1次下載
    基于心電<b class='flag-5'>遠(yuǎn)程</b><b class='flag-5'>監(jiān)測</b><b class='flag-5'>系統(tǒng)</b>設(shè)計