基于正點(diǎn)原子的IMX6ULL開發(fā)板的智能倉(cāng)儲(chǔ)項(xiàng)目
提示:該項(xiàng)目根據(jù)華清遠(yuǎn)見智能倉(cāng)儲(chǔ)項(xiàng)目改版,將他的A9開發(fā)板換成了自己的IMX6ULL開發(fā)板。同時(shí)等我將該項(xiàng)目整個(gè)流程完成之后,會(huì)為大家附上適配正點(diǎn)原子linux開發(fā)板的全部代碼
(代碼資料和視頻教程私聊)
視頻教程
相應(yīng)課程配套源碼
本人其他項(xiàng)目鏈接基于linux的智能倉(cāng)儲(chǔ)項(xiàng)目
基于Qt的人臉識(shí)別
基于STM32的智能家居
移植人臉識(shí)別到Linux開發(fā)板上
基于正點(diǎn)原子的IMX6ULL開發(fā)板的智能車載系統(tǒng)(Qt)
PS:華清遠(yuǎn)見這個(gè)項(xiàng)目真的很不錯(cuò),適合自學(xué)轉(zhuǎn)行的同學(xué)好好學(xué)習(xí)一波,我就是機(jī)械轉(zhuǎn)行自學(xué)的
前言
提示:這里可以添加本文要記錄的大概內(nèi)容:
目前,制造企業(yè)市場(chǎng)競(jìng)爭(zhēng)日益激烈,提高生產(chǎn)效率、降低運(yùn)營(yíng)成本,對(duì)于企業(yè)來(lái)說(shuō)至關(guān)重要。為此基于、ZigBee技術(shù)、嵌入式linux技術(shù)、并結(jié)合web服務(wù)器及單片機(jī)stm32,可以實(shí)現(xiàn)倉(cāng)庫(kù)貨物的入庫(kù)、盤點(diǎn)、出庫(kù)、倉(cāng)庫(kù)環(huán)境管理、實(shí)現(xiàn)遠(yuǎn)程實(shí)時(shí)監(jiān)控、遠(yuǎn)程環(huán)境控制,并集報(bào)警提醒等多種功能于一身,實(shí)現(xiàn)了真正的智能,技術(shù)積累雄厚,入門門檻高,但是操作簡(jiǎn)單,方便快捷。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、項(xiàng)目系統(tǒng)概述
智能倉(cāng)儲(chǔ)是基于Linux C編程和HTML界面編程,通過stm32作為終端倉(cāng)儲(chǔ)環(huán)境的采集,結(jié)合RFID和數(shù)據(jù)庫(kù)將倉(cāng)庫(kù)實(shí)時(shí)的貨物數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)當(dāng)中,并將倉(cāng)庫(kù)數(shù)據(jù)和環(huán)境數(shù)據(jù)提交給主機(jī)做處理,主機(jī)將環(huán) 境信息實(shí)時(shí)的更新到網(wǎng)頁(yè)上,而將倉(cāng)庫(kù)的貨物出入庫(kù)的信息保存到數(shù)據(jù)庫(kù)當(dāng)中。當(dāng)檢測(cè)到的環(huán)境信息低于設(shè)定值時(shí),比如倉(cāng)庫(kù)的光照較暗,那么系統(tǒng)主機(jī)端自動(dòng)控制遠(yuǎn)程的LED燈開啟,增加光照的強(qiáng)度,改善環(huán)境信息。
如果倉(cāng)庫(kù)內(nèi)環(huán)境溫度高于某一值,則自動(dòng)開啟蜂鳴器報(bào)警,并開啟風(fēng)扇進(jìn)行換氣操作,降低倉(cāng)庫(kù)內(nèi)的環(huán)境溫度,如果溫度持續(xù)升高。其硬件整體環(huán)境如下:將stm32采集的數(shù)據(jù)封裝為一個(gè)環(huán)境信息結(jié)構(gòu)體,然后通過zigbee將結(jié)構(gòu)體數(shù)據(jù)發(fā)出,zigbee的接收端使用usb轉(zhuǎn)串口模塊,通過驅(qū)動(dòng)的編寫,將zigbee接收端在linux開發(fā)板上識(shí)別為一個(gè)串口節(jié)點(diǎn)。然后開發(fā)板通過讀取節(jié)點(diǎn)的信息即可處理來(lái)自32開發(fā)板的數(shù)據(jù),然后通過linux開發(fā)板將數(shù)據(jù)發(fā)送到網(wǎng)頁(yè)端。
二、整體流程圖如下
接下來(lái)就是對(duì)流程圖的介紹。
上面介紹了linux開發(fā)板讀取到了zigbee傳來(lái)的數(shù)據(jù),然后通過pthread_transfer線程將環(huán)境信息結(jié)構(gòu)體填充,然后將數(shù)據(jù)通過pthread_refresh線程刷新到網(wǎng)頁(yè)。這里就存在一個(gè)問題了主線程中是C語(yǔ)言編寫的,而網(wǎng)頁(yè)是用html語(yǔ)言顯示的。這就涉及到了C語(yǔ)言與html語(yǔ)言的通信。所以本項(xiàng)目在正點(diǎn)原子linux開發(fā)板移植了boa服務(wù)器。通過boa服務(wù)器和CGI應(yīng)用程序?qū)與html形成交互(中間還有一層cgi應(yīng)用程序)
三、項(xiàng)目效果
下圖為網(wǎng)頁(yè)顯示部分,通過賬號(hào)密碼登錄后來(lái)到主界面,主界面又可分為4個(gè)部分,分別為歷史照片、實(shí)時(shí)監(jiān)控(此部分是將攝像頭采集到的數(shù)據(jù)通過FFmpeg推流mgpeg-streamer和nginx服務(wù)器作為流媒體服務(wù)器,然后將視頻流信息拉流到網(wǎng)頁(yè)端口,后面我會(huì)寫博客詳細(xì)介紹)、M0控制部分(此部分是通過消息隊(duì)列,將網(wǎng)頁(yè)下發(fā)的數(shù)據(jù)來(lái)控制linux硬件,比如led,beep等)、環(huán)境信息(該部分是將stm32部分采集到的數(shù)據(jù)上傳到linux板子之后,通過pthread_transfer線程將數(shù)據(jù)填充到環(huán)境信息結(jié)構(gòu)體部分,該環(huán)境信息和網(wǎng)頁(yè)通信采用了共享內(nèi)存的方法)
下圖為M0控制部分
通過網(wǎng)頁(yè)下發(fā)命令到cgi程序,然后cgi與主進(jìn)程進(jìn)行交互來(lái)控制板子上面的硬件
下圖為stm32傳過來(lái)的環(huán)境信息
可以將32采集到的環(huán)境信息通過linux板子上傳到網(wǎng)頁(yè)端
以上網(wǎng)頁(yè)就是我暫時(shí)移植好的項(xiàng)目,目前實(shí)現(xiàn)了通過網(wǎng)頁(yè)端控制linux板子上的硬件,然后將stm32傳上來(lái)的數(shù)據(jù)顯示到網(wǎng)頁(yè)上,將攝像頭采集到的數(shù)據(jù)推流到網(wǎng)頁(yè)上還沒實(shí)現(xiàn),后續(xù)接著實(shí)現(xiàn)
總結(jié)
提示:這里對(duì)文章進(jìn)行總結(jié):
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-793844.html
其實(shí)該項(xiàng)目的應(yīng)用場(chǎng)景不要局限于智能倉(cāng)儲(chǔ),當(dāng)你把這一套項(xiàng)目跑通之后,你會(huì)發(fā)現(xiàn)無(wú)論是什么板子的硬件采集到的數(shù)據(jù)都可以通過無(wú)線通信的方式將數(shù)據(jù)上傳到linux開發(fā)板,然后讓Linux開發(fā)板單單作為一個(gè)服務(wù)器來(lái)協(xié)調(diào)數(shù)據(jù)的上傳和下發(fā),只需要更改網(wǎng)頁(yè)顯示不同的數(shù)據(jù),和最下層的硬件采集不同的數(shù)據(jù)來(lái)達(dá)到不同應(yīng)用場(chǎng)景的目的
與此同時(shí),該項(xiàng)目相對(duì)比較復(fù)雜,使用了線程、線程間通信、信號(hào)量、消息隊(duì)列、共享內(nèi)存、互斥鎖、網(wǎng)頁(yè)、無(wú)線通信等模塊的知識(shí),是一個(gè)綜合項(xiàng)目,能夠幫助我們掌握UC的知識(shí),很適合非科班更改應(yīng)用場(chǎng)景后作為面試的項(xiàng)目,且該文章只是單純的介紹了本人做出來(lái)的項(xiàng)目效果和大體框架,里面的細(xì)節(jié)很多都沒有表述,因此歡迎大家關(guān)注收藏和指正,我接下來(lái)的博客會(huì)詳細(xì)的介紹沒一部分的詳細(xì)內(nèi)容。到時(shí)候會(huì)附上代碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-793844.html
到了這里,關(guān)于嵌入式linux項(xiàng)目之智能倉(cāng)儲(chǔ)(基于正點(diǎn)原子IMX6ULL開發(fā)板)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!