本篇評測由電子工程世界的優(yōu)秀評測者“Bruceou”提供。
1、項(xiàng)目背景
智能家居控制系統(tǒng),是以智能家居系統(tǒng)為平臺,家居電器及家電設(shè)備為主要控制對象,利用綜合布線技術(shù)、網(wǎng)絡(luò)通信技術(shù)、自動(dòng)控制系統(tǒng)、音頻技術(shù)等將家居生活有關(guān)的設(shè)施進(jìn)行高效集成,提升家居智能、安全、便利、舒適,為我們的生活帶來很的方便性。隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,隨之而誕生的智能家居成為了物聯(lián)網(wǎng)技術(shù)中的佼佼者。智能家居是隨著人們生活水平的提高而逐漸發(fā)展起來的朝陽產(chǎn)業(yè)。它的出現(xiàn)給人們的生活帶來極大的便利;同時(shí),智能家居的出現(xiàn)也帶動(dòng)了一大批經(jīng)濟(jì)產(chǎn)業(yè)。對于傳統(tǒng)的智能家居而言,功能相對單一,且不能將各種家電設(shè)備之間進(jìn)行有效互聯(lián);再者傳統(tǒng)的智能家居一般采用有線的方式進(jìn)行組網(wǎng),組網(wǎng)不便,維修不易。
2、作品簡介
本文設(shè)計(jì)了一個(gè)基于ZigBee的智能家居控制系統(tǒng),該系統(tǒng)巧妙地使用了ZigBee的一大優(yōu)勢--自組網(wǎng)功能,完全避免了傳統(tǒng)的組網(wǎng)方式。ZigBee技術(shù)具有組網(wǎng)簡單、方便,且組網(wǎng)容量大等優(yōu)點(diǎn)。本智能控制系統(tǒng)將ZigBee技術(shù)和家庭智能網(wǎng)關(guān)技術(shù)有效結(jié)合,以MYD-YG2UL為智能網(wǎng)關(guān)的處理器,在MYD-YG2UL嵌入一個(gè)Linux系統(tǒng),該系統(tǒng)是一個(gè)高度集成的網(wǎng)關(guān)系統(tǒng),從而對家庭設(shè)備進(jìn)行本地和遠(yuǎn)程操作,真正實(shí)現(xiàn)了家電設(shè)備的智能化。
3、系統(tǒng)框圖
本項(xiàng)目嘗試通過構(gòu)建一體化、實(shí)時(shí)控制的智能家居,可用于普通居民家庭、大中小型商場以及工業(yè)領(lǐng)域等。下圖展示了家居智能設(shè)備與終端系統(tǒng)互聯(lián)情況。MYD-YG2UL作為控制端,與家具智能設(shè)備直接連接,并接有傳感設(shè)備。同時(shí),MYD-YG2UL作為端點(diǎn)與云端相連,為云端提供家具智能設(shè)備的運(yùn)行情況并接收云端控制命令。遠(yuǎn)程終端設(shè)備可通過云端實(shí)時(shí)查詢和控制家居智能設(shè)備。
?
本文所提出的智能家居系統(tǒng)解決方案整體框架如圖所示。通過技術(shù)論證和架構(gòu)分析后,決定將系統(tǒng)劃分為三個(gè)子系統(tǒng):ZigBee無線傳感器監(jiān)控子系統(tǒng),網(wǎng)關(guān)子系統(tǒng),監(jiān)控子系統(tǒng)。ZigBee無線傳感器監(jiān)控子系統(tǒng)通過各個(gè)傳感器節(jié)點(diǎn)采集數(shù)據(jù),將采集的數(shù)據(jù)通過無線網(wǎng)絡(luò)系統(tǒng)傳遞給路由節(jié)點(diǎn),再通過路由節(jié)點(diǎn)將收集的各個(gè)終端節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行二次傳遞給協(xié)調(diào)器,由協(xié)調(diào)器與智能網(wǎng)關(guān)進(jìn)行數(shù)據(jù)交換,以完成數(shù)據(jù)的傳遞。用戶就能在遠(yuǎn)程進(jìn)行查家中的各種環(huán)境信息,實(shí)時(shí)掌握家中的最新動(dòng)態(tài)。網(wǎng)關(guān)子系統(tǒng)有兩大作用,一是連接以太網(wǎng);二是搭載攝像頭采集視頻數(shù)據(jù),實(shí)施遠(yuǎn)程監(jiān)控的功能。智能網(wǎng)關(guān)為整個(gè)智能家居系統(tǒng)的核心所在,協(xié)調(diào)各個(gè)子系統(tǒng)正常運(yùn)轉(zhuǎn)。
4、詳細(xì)設(shè)計(jì)
在系統(tǒng)提供在線查看安全監(jiān)測數(shù)據(jù)的功能,通過多傳感器采集數(shù)據(jù),搭建無線局域網(wǎng),實(shí)時(shí)同步各個(gè)傳感器信息,實(shí)現(xiàn)全方位的安全監(jiān)測和報(bào)警功能;同時(shí)搭建了Web服務(wù)器,供用戶遠(yuǎn)程查看監(jiān)控信息。
4.1 ZigBee無線傳感監(jiān)控子系統(tǒng)
ZigBee協(xié)議為智能家居環(huán)境監(jiān)測提供了無線自組局域網(wǎng)解決方案。協(xié)調(diào)器節(jié)點(diǎn)可以實(shí)時(shí)獲取到各個(gè)終端節(jié)點(diǎn)的環(huán)境信息,實(shí)時(shí)傳遞給用戶便于用戶查看,路由節(jié)點(diǎn)用于終端節(jié)點(diǎn)的二次傳遞,起到信息傳遞的作用;終端節(jié)點(diǎn)用于通過各個(gè)傳感器收集環(huán)境信息,判斷采集信息是否達(dá)到預(yù)警、報(bào)警閥值,是否執(zhí)行相應(yīng)動(dòng)作,將用戶指定的信息數(shù)據(jù)通過路由器傳遞給終端節(jié)點(diǎn),最后在傳遞給用戶,方便用戶了解環(huán)境信息。
4.1.1 ZigBee工作流程圖
ZigBee的工作流程圖如下圖所示。
Figure 4-1 Z-Stack 工作流程圖
Z-Stack采用操作系統(tǒng)的思想來構(gòu)建,采用事件輪循機(jī)制,而且有一個(gè)專門的Timer2 來負(fù)責(zé)定時(shí)。從CC2530工作開始,Timer2 周而復(fù)始地計(jì)時(shí),有采集、發(fā)送、接收、顯示等任務(wù)要執(zhí)行時(shí)就執(zhí)行。當(dāng)各層初始化之后,系統(tǒng)進(jìn)入低功耗模式,當(dāng)事件發(fā)生時(shí),喚醒系統(tǒng),開始進(jìn)入中斷處理事件,結(jié)束后繼續(xù)進(jìn)入低功耗模式。如果同時(shí)有幾個(gè)事件發(fā)生,判斷優(yōu)先級,逐次處理事件。這種軟件構(gòu)架可以極大地降級系統(tǒng)的功耗。整個(gè)Z-Stack 的主要工作流程,如圖所示,大致分為以下6步:
- 關(guān)閉所有中斷;
- 芯片外部(板載外設(shè))初始化;
- 芯片內(nèi)部初始化;
- 初始化操作系統(tǒng);
- 打開所有中斷;
- 執(zhí)行操作系統(tǒng)。
4.1.2 ZigBee建立網(wǎng)絡(luò)、加入網(wǎng)絡(luò)流程分析
本設(shè)計(jì)主要是用ZigBee組建網(wǎng)絡(luò)系統(tǒng),建立網(wǎng)絡(luò)、加入網(wǎng)絡(luò)為本設(shè)計(jì)的一個(gè)重點(diǎn),下面分別介紹協(xié)調(diào)器建立網(wǎng)絡(luò)、路由器加入網(wǎng)絡(luò)、終端節(jié)點(diǎn)加入網(wǎng)絡(luò)的組網(wǎng)過程。協(xié)調(diào)器的建立網(wǎng)絡(luò)過程如下圖所示。
Figure 4-2 協(xié)調(diào)器建立網(wǎng)絡(luò)過程
從上圖可以發(fā)現(xiàn),網(wǎng)絡(luò)的建立是從ZDO來實(shí)現(xiàn)的,網(wǎng)絡(luò)建立后,從應(yīng)用層收到ZDO_ATATE_CHANGE消息,對該消息包含當(dāng)前節(jié)點(diǎn)網(wǎng)絡(luò)狀態(tài)。路由器節(jié)點(diǎn)加入網(wǎng)絡(luò)過程如下圖所示。路由器加入網(wǎng)絡(luò)的過程是由ZDO實(shí)現(xiàn)的,當(dāng)路由器加入網(wǎng)絡(luò)以后,在應(yīng)用程會收到當(dāng)前節(jié)點(diǎn)的網(wǎng)絡(luò)狀態(tài)。
Figure 4-3 路由器加入網(wǎng)絡(luò)過程
終端節(jié)點(diǎn)加入網(wǎng)絡(luò)如下圖所示。由下圖可知,終端節(jié)點(diǎn)加入網(wǎng)絡(luò)的過程也是由ZDO實(shí)現(xiàn)的,在應(yīng)用層收到該節(jié)點(diǎn)的信息后,即可讀出當(dāng)前的網(wǎng)絡(luò)狀態(tài)。
Figure 4-4 終端節(jié)點(diǎn)加入網(wǎng)絡(luò)過程
4.1.3 ZigBee環(huán)境監(jiān)測流程
環(huán)境監(jiān)測的流程圖如下所示。
?
ZigBee各個(gè)節(jié)點(diǎn)進(jìn)行初始化化后進(jìn)行組網(wǎng),各個(gè)終端節(jié)點(diǎn)不斷采集環(huán)境信息,在一切準(zhǔn)備妥當(dāng)之后,協(xié)調(diào)器就會定時(shí)向網(wǎng)關(guān)環(huán)境信息。ZigBee子系統(tǒng)與網(wǎng)關(guān)通過ser2net實(shí)現(xiàn)交互,將ZigBee子系統(tǒng)的協(xié)調(diào)器的串口數(shù)據(jù)傳給網(wǎng)關(guān),網(wǎng)關(guān)通過TCP協(xié)議與外界交互。智能網(wǎng)關(guān)上電后,進(jìn)行系統(tǒng)初始化,網(wǎng)絡(luò)連接等,等待協(xié)調(diào)器發(fā)送環(huán)境信息,當(dāng)接收到數(shù)據(jù)后,通過無線網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送至云端。云端得到相應(yīng)的數(shù)據(jù)后,繪制每個(gè)終端的溫濕度曲線,也可實(shí)時(shí)查看當(dāng)前的環(huán)境信息。當(dāng)然移動(dòng)端也可獲取環(huán)境信息,同時(shí)也可控制家電設(shè)備。另外,為了保證數(shù)據(jù)傳輸?shù)目煽啃?,設(shè)計(jì)了簡單的數(shù)據(jù)傳輸協(xié)議保證數(shù)據(jù)的可靠交互。
4.2 網(wǎng)關(guān)/監(jiān)控子系統(tǒng)
網(wǎng)關(guān)/監(jiān)控子系統(tǒng)有攝像頭、智能網(wǎng)關(guān)和移動(dòng)終端組成。智能網(wǎng)關(guān)上電之后完成板級初始化,連接號WiFi,初始化攝像頭。當(dāng)有用戶請求視頻信息時(shí),智能網(wǎng)關(guān)立即獲取攝像頭數(shù)據(jù)傳給用戶。
5、具體部署
5.1 ZigBee無線傳感監(jiān)控子系統(tǒng)
IAR編譯
打開工程
\ZStack-CC2530-2.3.0-1.4.0\Projects\zstack\Utilities\SerialApp\CC2530DB\下的SerialApp.eww。
Figure 5-1 編譯固件
編譯完后單擊下載按鈕。
Figure 5-2 編譯完成
固件燒寫
使用SmartRF Flash Programmer燒寫Hex固件到ZigBee節(jié)點(diǎn),將Coordinator.hex和EndDevice 1-4.hex分別下載到協(xié)調(diào)器和終端。注意:如果沒有那么多板子的話,只要下載 Cocodinator.hex和 EndDevice1.hex就可以了。
Figure 5-3 下載方法
上位機(jī)調(diào)試
一定要給協(xié)調(diào)器先上電,因?yàn)槭褂玫?a target="_blank">USB轉(zhuǎn)串口,程序自動(dòng)識別串口。筆者提供免安裝和安裝版本,在這里使用免安裝版本,雙擊ZigBee.exe。筆者這里這是為自動(dòng)刷新數(shù)據(jù)。筆者使用了一個(gè)終端,可看到如下圖所示的信息。
Figure 5-4 上位機(jī)軟件
手機(jī)控制
如果想手機(jī)也控制則需要有無線路由器,手機(jī)打開 wifi 并連接好后,先點(diǎn)網(wǎng)絡(luò)設(shè)置,輸入電腦 IP 地址后點(diǎn)連接,手機(jī)顯示連接成功后,會自動(dòng)刷新數(shù)據(jù)。如下圖所示。
Figure 5-5 手機(jī)網(wǎng)路設(shè)置及控制
5.2 網(wǎng)關(guān)/監(jiān)控子系統(tǒng)
網(wǎng)關(guān)子系統(tǒng)可以使用Yocto或者Openwrt系統(tǒng),其中有幾個(gè)關(guān)鍵組件,下面一一講解。
OpenWrt系統(tǒng)編譯
安裝相關(guān)工具和庫
先更新源:
$sudo apt-get update
安裝git工具
$sudo apt-get install git
安裝依賴的庫文件
$sudo apt-get install gcc g++ binutils patch bzip2 flex bison cmake make autoconf gettext texinfo unzip sharutils ncurses-term zlib1g-dev libncurses5-dev gawk$ sudo apt-get install gawk grep libc-dev libz-dev perl rsync subversion$ sudo apt install build-essential ccache device-tree-compiler gettext gperf intltool libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev libncurses5-dev libssl-dev libreadline-dev libtool wget nano patch pkgconf python3 python3-pyelftools zlib1g-dev swig texinfo ack xxd
OpenWrt源碼獲取
米爾科技針對MYD-YG2UL開發(fā)板提供兩種獲取源碼的方式,一種是直接從米爾光盤鏡像中獲取壓縮包,另外一種是使用 git獲取位于 github 上實(shí)時(shí)更新的源碼進(jìn)行構(gòu)建。筆者這里直接從光盤鏡像獲取源碼壓縮包并將其拷貝到用戶目錄并解壓。
$ tar -xvf myir-renesas-openwrt.tar.bz2
其解壓目錄如下所示。
當(dāng)然也可以從github拉取代碼:
$ git clone https://github.com/MYiR-Dev/myir-renesas-openwrt.git -b develop-rzg2ul-openwrt22
編譯OpenWrt系統(tǒng)還需要依賴linux內(nèi)核,因此需要將myir-renesas-linux.tar.bz2 內(nèi)核源碼解壓到 openwrt 源碼下的 Linux 目錄下。
$ tar -xvf myir-renesas-linux.tar.bz2 -C linux/
配置OpenWrt
下載完OpenWrt的源碼后,為了使OpenWrt支持更多的軟件,需要更新和安裝其它源上面的軟件。
$./scripts/feeds update -a$./scripts/feeds install -a
一切就緒,接下來就可以開始編譯了。在編譯OpenWrt系統(tǒng)之前,我們首先要對它進(jìn)行配置。
$ make defconfig && make menuconfig
我們就可以通過方向鍵來選擇配置選項(xiàng),通過空格鍵來選擇配置狀態(tài)。當(dāng)執(zhí)行完上命令后,便會彈出如圖。
為了讓OpenWrt系統(tǒng)能成功的在我們的開發(fā)板上運(yùn)行起來,我們需要做如下配置。
- .選擇CPU型號
Target System (Renesas) ---> - .選擇CPU子型號
Subtarget (RZ/G2X MPU soc evk boards (64 bit) ---> - .選擇具體路由器型號Target Profile (myir rzg2ul) --->
Target Image 配置如下。
Advanced configuration options 配置,使用外部的內(nèi)核源碼。
使能 OpenWrt SDK。
當(dāng)然還可以使能 Toolchain,用于應(yīng)用開發(fā)。
還可以配置Image configuration ,比如版本信息。
PPP 設(shè)置,取消勾選PPP選項(xiàng),不然會報(bào)錯(cuò)。
如果勾選PPP選項(xiàng),報(bào)錯(cuò)信息如下。
然后保存退出,這樣就配置完成了。
編譯OpenWrt
最后執(zhí)行make V=99,開始漫長的編譯,編譯時(shí)間由電腦配置決定,由于編譯時(shí),需要的軟件是從網(wǎng)絡(luò)上面下載,所以這里要求電腦必須能夠上網(wǎng)。V=99意思顯示所有信息。
$make V=99
在編譯前,可是用以下命令將源碼先下載:
$ make -j8 download V=s
第一次編譯大概需要4、5個(gè)小時(shí),以后再次編譯,則分分鐘搞定。編譯出來的鏡像位于bin/targets/renesas/armv8目錄下面。
$ls bin/targets/renesas/armv8
其中openwrt-renesas-armv8-myir_rzg2ul-xxx.gz就是我們要的鏡像。燒寫到板子上面即可啟動(dòng)。這樣最簡單OpenWrt就可以啟動(dòng)了,不過好多功能都沒有,一步一步來,不斷深入。這樣最簡單OpenWrt就可以啟動(dòng)了,其他的功能在此基礎(chǔ)上累加就可以了。當(dāng)然也可使用build_dir/target-aarch64_generic_musl/linux-renesas_armv8目錄下的root.ext4文件系統(tǒng)及內(nèi)核等文件。
基于ser2net的數(shù)據(jù)傳輸
ser2net(Serial to Network Proxy)給用戶提供了一種網(wǎng)絡(luò)與串口相互連接的軟件,它可以將串口數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)程設(shè)備上。ser2net是一種基于TCP協(xié)議的串口服務(wù)器,它通過將串口數(shù)據(jù)轉(zhuǎn)換成網(wǎng)絡(luò)數(shù)據(jù)包,實(shí)現(xiàn)了串口數(shù)據(jù)的遠(yuǎn)程傳輸。ser2net的工作原理可以分為以下幾個(gè)步驟:
1.配置串口參數(shù):首先需要對sr2net進(jìn)行配置,包括串口的波特率、數(shù)據(jù)位、停止位等參數(shù),以及網(wǎng)絡(luò)相關(guān)的配置,如IP地址、端口號等。
2.建立TCP連接:ser2net在啟動(dòng)后會監(jiān)聽指定的端口,當(dāng)有客戶端請求建立TCP連接時(shí),ser2net會接受連接請求,并與客戶端建立起TCP連接。
3.串口數(shù)據(jù)轉(zhuǎn)發(fā):一旦TCP連接建立成功,ser2net會開始監(jiān)聽串口上的數(shù)據(jù)。當(dāng)有數(shù)據(jù)到達(dá)時(shí),ser2net會將數(shù)據(jù)通過TCP連接發(fā)送給客戶端。同時(shí),ser2nt會監(jiān)聽客戶端發(fā)送的數(shù)據(jù),并將其轉(zhuǎn)發(fā)到串口上。
4.數(shù)據(jù)處理:ser2nt還支持對數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)換。例如,可以對接收到的數(shù)據(jù)進(jìn)行校驗(yàn)、解析或加工,然后再將其發(fā)送給客戶端。
添加 ser2net 應(yīng)用程序
首先進(jìn)入 OpenWrt 系統(tǒng)源碼,然后運(yùn)行 make menuconfig 命令進(jìn)行配置。
# make menuconfig
在彈出的配置菜單中,配置如下。Network --><*>ser2net然后選中 ser2net 這個(gè)選項(xiàng),如圖所示。
最后退出保存,再編譯。
# make V=99
配置 Wi-Fi 串口
既然是 Wi-Fi 串口, 那么我們就可以理解為它由兩部分組成,一部分是網(wǎng)絡(luò)編程器的 TCP服務(wù)器,用于接收客戶端通過 Wi-Fi 傳來的數(shù)據(jù);另一部分就是串口,用于將 TCP 服務(wù)器接收到的數(shù)據(jù)通過串口發(fā)送出去。既然是 TCP 服務(wù)器,那么我們需要設(shè)置它的 IP 地址和端口號。既然是串口,那么我們需要設(shè)置它的波特率等參數(shù)。那么,這些參數(shù),我們怎么來設(shè)置呢?通過修改 ser2net.conf 這個(gè)配置文件來實(shí)現(xiàn),位于開發(fā)板上的/etc 目錄下。將上面編譯出來的固件,重新燒寫到開發(fā)板上面,然后上電啟動(dòng),進(jìn)入/etc 目錄。
# cd /etc# vi ser2net.conf
只需要在 ser2net.conf這個(gè)配置中的最后面添加一行以下內(nèi)容即可。
33333:raw:0:/dev/ttySC4:115200
最后保存退出,然后重啟開發(fā)板,即可。接下來就需要修改配置文件。
$ vim ser2net.conf33333:raw:600:/dev/ttySC4:115200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCT
ser2net工具安裝完后,可執(zhí)行文件放在:/sbin/ser2net,新建配置文件ser2net.conf啟動(dòng)ser2net.。
$ /sbin/ser2net -C ser2net.conf
當(dāng)然也可直接使用命令。
$ /sbin/ser2net -C "33333600:/dev/ttySC4:115200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS"
然后查看ser2net運(yùn)行狀態(tài)。
$ ps -elf | grep ser2net
ZigBee的數(shù)據(jù)就通過ser2net進(jìn)行數(shù)據(jù)傳輸?shù)?。如果是OpenWrt直接將ser2net配置進(jìn)入系統(tǒng)即可。
Yocto系統(tǒng)移植ser2net
如果是Yocto系統(tǒng),需要移植ser2net。
1.下載源碼
ser2net的官網(wǎng)為://http://ser2net.sourceforge.net/,在頁面中可以找到下載鏈接。筆者的版本為3.5.1??梢酝ㄟ^頁面中的下載鏈接進(jìn)行下載,也可以通過下面的命令行進(jìn)行下載。
wget https://udomain.dl.sourceforge.net/project/ser2net/ser2net/ser2net-3.5.1.tar.gz
2.解壓源碼
$ tar -xvf ser2net-3.5.1.tar.gz$ cd ser2net-3.5.1/
3.配置
./configure --host=aarch64-poky-linux
“arm-linux”是交叉編譯工具的前綴,根據(jù)自己的實(shí)際情況進(jìn)行修改。
4.編譯并安裝
設(shè)置環(huán)境變量:
$ source /opt/poky/3.1.21/environment-setup-aarch64-poky-linux
編譯
$ make
最后將程序下載到開發(fā)板,修改用戶權(quán)限后即可運(yùn)行。
基于mipg-streamer視頻監(jiān)控
配置 OpenWrt 支持 usb 攝像頭
要支持?jǐn)z像頭,就必須配置上攝像頭的驅(qū)動(dòng),因?yàn)槭敲怛?qū)的 USB 攝像頭,因此我們必須配置上 UVC 驅(qū)動(dòng),具體如圖所示。首先,我們選中內(nèi)核模塊進(jìn)行配置。Kernel modules --->Video Support ---><*> kmod-video-core<*> kmod-video-uvc-*- kmod-video-videobuf2
編譯。
$make V=99
將固件燒寫到板子中,插入U(xiǎn)SB攝像頭,接口查看是否有video0這個(gè)設(shè)備節(jié)點(diǎn)了。
配置 OpenWrt 支持 mipg-streamer 軟件
mipg-streamer 就是一款用于視頻數(shù)據(jù)采集、視頻數(shù)據(jù)格式轉(zhuǎn)換、視頻數(shù)據(jù)傳輸?shù)能浖?,服?wù)器。因此為了讓 openwrt 系統(tǒng)支持該軟件,我們需要將它配置進(jìn)去。Multimedia ---><*> mjpg-streamer
就這樣我們就讓 openwrt 系統(tǒng)支持無線監(jiān)控,按前面的方法配置好后,保存退出,然后 make V=99,最后將編譯出來的固件燒寫到我們的開發(fā)板上面。然后啟動(dòng)系統(tǒng)。啟動(dòng)完成,插入我們的攝像頭,就會看到/dev/video0 這個(gè)設(shè)備節(jié)點(diǎn)。usb 攝像頭接入開發(fā)板后提示如下:
如果插上提示不對,請先做上一章,再重新生成固件即可。然后運(yùn)行 mipg-streamer 軟件:
#mjpg_streamer -i "input_uvc.so -d /dev/video0" -o "output_http.so"
其中:-i 表示指定輸入,這里輸入為:input_uvc.so 即 uvc(usb video),-d 是設(shè)備位置,我們攝像頭的設(shè)備位置在:/dev/video0,-y 用于區(qū)分一般攝像頭和支持 MJPEG 的攝像頭,-o 指定輸出,這里輸出到 output_ http.so 即 http(可以理解為輸出到網(wǎng)頁上),-w指定 web 服務(wù)器為 www。運(yùn)行命令后,可以得到如下圖的信息:
好的,電腦上必須用火狐瀏覽器才能看到時(shí)視頻哦,我們打開網(wǎng)頁輸入:http://192.168.2.1:8080/?action=stream其中 192.168.2.1 是開發(fā)板的 ip 地址,8080 是 http tcp 的端口,action表示某個(gè)動(dòng)作,這里表示:stream。通過這個(gè)輸入我們就可以從網(wǎng)頁完成視頻的監(jiān)控了!
6、總結(jié)
由于此項(xiàng)目中涉及到的知識非常的多,如:
- Linux開發(fā),包括系統(tǒng)移植,驅(qū)動(dòng)開發(fā)等
- 電腦端C#程序,包括串口、界面開發(fā)等;
- 搭建安卓開發(fā)環(huán)境,學(xué)習(xí)安卓界面開發(fā),安卓的socket通訊;
- ZigBee組網(wǎng)實(shí)驗(yàn),多終端通訊,對于簡單項(xiàng)目在我們上面修改一下就可做成自己的產(chǎn)品;
- 項(xiàng)目中使用的通訊協(xié)議是基本Modbus協(xié)議修改而來的,結(jié)構(gòu)相同只是命令碼不同,更標(biāo)準(zhǔn)、更完善。
-
智能家居
+關(guān)注
關(guān)注
1928文章
9553瀏覽量
184922 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371 -
家居系統(tǒng)
+關(guān)注
關(guān)注
0文章
9瀏覽量
7054 -
米爾電子
+關(guān)注
關(guān)注
0文章
109瀏覽量
449
發(fā)布評論請先 登錄
相關(guān)推薦
評論