聚豐項目 > 基于i.mx6ul的大型糧倉溫濕度監控系統
本項目旨在基于i.mx6ul設計一套糧倉溫濕度監控系統,能夠具備測量糧堆溫度、空氣溫濕度、控制外設、診斷系統狀態等功能。 特點及優勢: i.mx6ul與stm32的組合。 多個stm32負責糧倉內部多點的數據采集,成本更低,更加靈活; i.mx6作為人機交互節點,功能非常強大,可以作為嵌入式服務器,為上位機服務,存儲容量更大,便于儲存更多數據; i.mx6ul開發板帶有一塊7寸觸摸屏,顯示美觀大方,人機交互體驗更好; 節點之間使用CAN總線通信,距離長、傳輸穩定;
JMU2012
分享JMU2012
團隊成員
何希平 嵌入式軟件工程師
本項目對系統的總體方案進行了設計,大型糧倉溫濕度監控系統的組成部分,按照功能分類,有五類節點,分別是用于采集糧堆溫度的溫度采集節點、用于采集倉內外空氣溫濕度的溫濕度采集節點、用于數據轉發的數據中轉節點、用于降溫排濕的控制設備節點和用于顯示倉內各指標狀態和控制的人機交互節點。
倉內各個節點之間的數據傳輸,采用了傳輸穩定可靠和距離遠的CAN總線通信方式。該系統的工作過程為:倉內節點上的傳感器采集溫濕度數據,然后傳輸到人機交互節點,在人機交互節點上設置報警閾值,當溫濕度數據超過閾值時,及時提醒管理員,且可以設置自動或手動方式控制倉內的設備,如降溫排濕或者開關燈。系統的總體框圖如下圖所示,
各個節點的編程。
1、溫度采集節點
開發平臺:Keil MDK
開發語言:C語言
軟件思路:芯片初始化、執行DS18B20的搜索算法,將DS18B20的ID值讀出并存入AT24C02中,用匹配ROM指令分別取讀傳感器的溫度值,然后將傳感器的值通過CAN總線傳輸到數據節點。
2、溫濕度采集節點
開發平臺:Keil MDK
開發語言:C語言
軟件思路:芯片初始化,AM2302的溫濕度采集,然后將傳感器的值通過CAN總線傳輸到數據節點。
3、控制設備節點
開發平臺:Keil MDK
開發語言:C語言
軟件思路:芯片初始化,通過CAN總線接收指令,然后驅動繼電器去控制風扇和照明燈等設備。
4、數據中轉節點
開發平臺:Keil MDK
開發語言:C語言
軟件思路:芯片初始化,通過CAN總線接收溫濕度采集節點的數據,并把這些數據通過轉發到i.mx6平臺上。
5、i.mx6平臺編程
開發平臺:Ubuntu + Qt Creator
開發語言:C++
軟件上,基于串口助手,寫了個Qt程序,完成預期功能,最后的程序還可以當做一個串口助手使用。
開發流程大概是這樣的:
首先,對軟件工程有個整體印象,了解各個文件的作用;
再次,對串口接收到的數據進行處理,填入表格控件中。
主要需要解決以下幾個問題:
找到讀取串口的函數,void MainWindow::readMyCom();
(1)接收到的字節數組放在這里,QByteArray temp = myCom->read();,
(2)可以轉為字符串,然后用字符串比較函數,進行比較;
(3)有用的字符串寫入表格控件;
(4)發送指令部分,用槽函數將控件的動作與實際執行函數進行連接。
將數據中轉節點的STM32的串口連接到i.mx6的串口上,然后STM32將向i.mx6發送數據。通訊協議為:波特率9600,8N1。
然后可以在屏幕上看到數據。
海里的魚123: 謝謝樓主
回復
動心忍性1234: 您好我是無線電雜志的編輯,我們對您的項目十分感興趣,請問您有興趣投稿嗎?成為我們的作者除稿費外還有其他優厚條件。敬請參與。投稿請聯系QQ260534978.
回復