基于stm32mp157的嵌入式linux+qt項(xiàng)目實(shí)戰(zhàn)物聯(lián)網(wǎng)畢業(yè)設(shè)計(jì)選題之智慧醫(yī)療項(xiàng)目
stm32mp157開發(fā)板FS-MP1A是華清遠(yuǎn)見自主研發(fā)的一款高品質(zhì)、高性價(jià)比的Linux+單片機(jī)二合一的嵌入式教學(xué)級(jí)開發(fā)板。開發(fā)板搭載ST的STM32MP157高性能微處理器,集成2個(gè)Cortex-A7核和1個(gè)Cortex-M4 核,A7核上可以跑Linux操作系統(tǒng),M4核上可以跑FreeRTOS、RT-Thread等實(shí)時(shí)操作系統(tǒng)。開發(fā)板搭配仿真器、顯示屏、攝像頭、資源擴(kuò)展板等豐富的擴(kuò)展模塊,可拓展物聯(lián)網(wǎng)、人工智能等相關(guān)技術(shù)學(xué)習(xí),還可以拓展豐富的項(xiàng)目實(shí)戰(zhàn),非常貼合企業(yè)當(dāng)下開發(fā)需求,是一款嵌入式Linux入門進(jìn)階必備開發(fā)板!
?
可學(xué)習(xí)技術(shù):嵌入式Linux應(yīng)用/系統(tǒng)/驅(qū)動(dòng)開發(fā)、ARM裸機(jī)開發(fā)、Qt界面編程、STM32單片機(jī)、FreeRTOS、人工智能機(jī)器視覺等。其中ARM Cortex-A7裸機(jī)開發(fā)課程是華清遠(yuǎn)見獨(dú)有特色課程,可關(guān)注:https://www.bilibili.com/video/BV1Xe4y1i7vm/,持續(xù)更新中。

可實(shí)戰(zhàn)項(xiàng)目:14個(gè)Linux+Qt綜合項(xiàng)目案例,6個(gè)MP1A物聯(lián)網(wǎng)拓展項(xiàng)目
Linux+Qt綜合項(xiàng)目案例:華清遠(yuǎn)見stm32mp157開發(fā)板優(yōu)勢(shì)特色部分,包括音樂播放器、智慧家庭、智能工業(yè)電表、智能出行助手、智能貓眼、環(huán)境監(jiān)測(cè)、智能安防、智能語(yǔ)音識(shí)別等10余個(gè)項(xiàng)目案例,涉及家居、醫(yī)療、農(nóng)業(yè)多種應(yīng)用方向,在案例中使用了多種物聯(lián)網(wǎng)和嵌入式技術(shù),包括OT開發(fā)、linux應(yīng)用開發(fā)、linux驅(qū)動(dòng)開發(fā)、物聯(lián)網(wǎng)云端接入、MQTT協(xié)議、json字符串等知識(shí)點(diǎn)。
基于Linux+Qt的智慧醫(yī)療項(xiàng)目
項(xiàng)目簡(jiǎn)介:
使用心率/脈搏傳感器采集數(shù)據(jù),通過算法計(jì)算得到心率和血氧。心率并不像環(huán)境光及接近傳感器那樣數(shù)據(jù)比較簡(jiǎn)單,并不能通過讀取一個(gè)文件獲得當(dāng)前的心率或血氧,而是通過一系列的數(shù)據(jù)計(jì)算出來的,這樣 sys 文件系統(tǒng)的接口就不能完全適用了,所以需要結(jié)合系統(tǒng)調(diào)用以字符設(shè)備的方式獲取對(duì)應(yīng)數(shù)據(jù),計(jì)算出心率和血氧。
關(guān)鍵文件說明:
/sys/bus/iio/devices/iio:device2/scan_elements/(in_intensity_ir_en/in_intensity_red_en): 通道使能,通過寫 1 或 0 使能或關(guān)閉通道。
/sys/bus/iio/devices/iio:device2/scan_elements/(in_intensity_ir_type/in_intensity_red_type): 通道數(shù)據(jù)類型。讀取格式為:be:u18/32>>8,be 表示數(shù)據(jù)為大端存儲(chǔ)(bigendian)、u 表示 數(shù)據(jù)為無(wú)符號(hào)數(shù),18/32>>8 表示 32 位數(shù)據(jù)左移 8 位后有效數(shù)據(jù)為 18 位。
/sys/bus/iio/devices/iio:device2/scan_elements/(in_intensity_ir_index/in_intensity_red_index): 讀取數(shù)據(jù)為當(dāng)前通道的序號(hào),red 為 0 通道,ir 為 1 通道
/sys/bus/iio/devices/iio:device2/buffer/length: 寫入數(shù)據(jù)用來設(shè)置緩存區(qū)樣本數(shù)量。
/sys/bus/iio/devices/iio:device2/buffer/enable: 寫入 1 或 0 用來使能設(shè)備采樣或停止設(shè)備采樣。
開發(fā)平臺(tái):
華清遠(yuǎn)見stm32mp157開發(fā)板豪華套餐(開發(fā)板+仿真器+五寸屏+攝像頭+資源擴(kuò)展板+tf卡+讀卡器)
源碼分析
數(shù)據(jù)采集線程
threadgetheart.h
該文件主要對(duì)數(shù)據(jù)采集用到的函數(shù)進(jìn)行聲明。
threadgethreat.cpp
這里只把線程的 run 函數(shù)展示出來,run 函數(shù)里調(diào)用的一些其他成員函數(shù)因?yàn)榇a量太大就不展示了,可以參考源碼。這些成員函數(shù)都是對(duì)采集的數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)換成心率和血氧
主線程
mainwindow.ui
這是 ui 界面的設(shè)計(jì),可以自行改動(dòng),用到的圖片資源可以參考源碼

mainwindow.h
mainwindow.cpp
子線程實(shí)時(shí)并計(jì)算心率和血氧,通過信號(hào)發(fā)送給主線程,主線程將心率和血氧顯示到 UI 界面上,并設(shè)置超過指定心率蜂鳴器報(bào)警。
實(shí)驗(yàn)源碼
源碼路徑【5_智慧醫(yī)療\實(shí)驗(yàn)源碼\5_znyl】
注意事項(xiàng)
1.在開發(fā)板運(yùn)行時(shí),需要導(dǎo)入中文字庫(kù),否則會(huì)因?yàn)樽R(shí)別不了中文。
將【5_智慧醫(yī)療\工具軟件\wqy-zenhei-0.9.47-nightlybuild.tar.gz 或 wqyzenhei-0.8.38-1.tar.gz】復(fù)制到 ubuntu 下。并使用 scp 命令將文件拷貝到開發(fā)板的 usr/share/fonts 目錄下,使用 tar 命令解壓后即可。
linux@ubuntu:~$ scp wqy-zenhei-0.8.38-1.tar.gz
root@192.168.10.128:/usr/share/fonts/

2.如果使用 mipi 五寸屏運(yùn)行此項(xiàng)目,需要進(jìn)行屏幕旋轉(zhuǎn)以適應(yīng)屏幕,具體步驟如下:
在/etc/profile.d/qt-eglfs.sh 添加環(huán)境變量如下


下面變量的 event0 設(shè)備需要填實(shí)際的觸摸屏設(shè)備

這里即填 event0