1 項目前準備
工具及環境:
1.開發環境:Ubuntu16.04
2.工具:Qt creator
3.迅為電子i.MX6ULL終結者開發板
MX6ULL終結者開發板已板載了DHT11傳感器,且提供的Linux鏡像和設備樹已配置好了dht11接口,dht11驅動程序使用高版本Linux內核自帶的穩定驅動程序,根文件系統使用網盤資料里的Yocto鏡像,使用手冊有詳細的系統移植和 Qt5移植步驟。開發板要保證iio接口正常,如圖 1.1:
cd /sys/bus/iio/devices/iio:device1
多cat幾次, cat in_temp_input ,出現00為結尾的數字為正常
2 軟件流程圖
本實驗目的是練習Qt的使用。把dht11采集的溫度濕度顯示在觸摸屏的Qt上,并通過TCP傳輸到PC機的Qt界面上。應用程序將采集到的數據利用UDP網絡套接字傳輸給終結者的 Qt進程,終結者的Qt將數據轉發給PC端的Qt顯示界面。流程圖如圖 2.1:
3 Linux應用程序
功能描述:
1.獲取溫濕度數據。
2.將溫濕度封裝成消息通過UDP發送到i.MX6ULL服務器。
高版本Linux內核自帶了dht11 的驅動,使用者不用再去關心它的時序問題,可以用標準IO讀取sysfs的/sys/bus/iio/devices/iio:device1/下的溫濕度端口,測試讀取成功后將數據發送到Qt進程。
為了讓讀者更好地理解Qt的 UDP,所以此處沒有用到操作系統進程間通信機制,直接使用UDP網絡套接字,代碼在readDHT11.c:
編譯:arm-linux-gnueabihf-gcc -o read readDHT11.c
4 終結者Qt服務器
Qt服務器功能描述:
1.接收應用程序發來的數據并解析;
2.界面顯示出:溫濕度,PC客戶端的連接狀態,系統時間;
3.通過 TCP向 PC客戶端發送數據包。
4.1 界面布局
溫度顯示:LCD Number
濕度顯示:LCD Number
系統時間,連接狀態提示: Label
關閉按鈕:push Button
Mainwindow.ui :
在屬性欄設置主窗口尺寸,寬度為1024,高度為600,添加兩個LCD Number組件,設置最小寬度500,最小高度為290,然后垂直布局兩個LCD Number,如:圖 4.1.2
給LCD Number添加顏色,右擊此組件,選擇“改變樣式表”,
在彈出的界面選擇“添加顏色”,點擊“color”,
在彈出的顏色選擇框中選擇想要添加的顏色,然后點擊“OK”。
自動回到樣式表編輯器,可以看到添加的color,點擊”apply”,然后點擊”OK”,發現 LCD Number的顏色已經改變,另外一個 LCD Number的操作方法不再贅述。
在主界面右上角添加兩個 Label,一個用來顯示時間,一個顯示TCP連接狀態,寬度500,高度130,垂直布局,如圖 4.1.7:
添加退出按鈕,設置最小高度80,最小寬度100,修改字體大小:
在按鈕左側添加 Label,最小寬度300,最小高度290,在按鈕和Label間添加彈簧,然后水平布局,效果如圖 4.1.9:.
點擊主窗口,然后點擊柵格布局,效果如圖 4.1.10:
最后改變各控件的名稱,方便在代碼中調用。
到此,服務器端基本ui界面組裝完成,讀者可以在此基礎上美化。
上一篇:迅為-i.MX6ULL開發板-網絡測試方法(二)
下一篇:迅為-IMX6ULL-QT應用_在開發板上移植ssh
- 熱門資源推薦
- 熱門放大器推薦