01項目簡介
本項目實現(xiàn)了基于啟明RA6M5的《物聯(lián)網(wǎng)居家環(huán)境健康監(jiān)控設(shè)備》。項目以啟明RA6M5為主控,OLED為顯示設(shè)備用于顯示信息,HS3003傳感器用于采集環(huán)境溫濕度數(shù)據(jù),MQ-5可燃氣體傳感器采集空氣中可燃氣體濃度,Max30102傳感器采集人體心率以及血氧值,遙感模塊為設(shè)備的本地控制端,內(nèi)部RTC用于實時時鐘,ESP8266模塊用于連接物聯(lián)網(wǎng)平臺以及更新實時時鐘時間,并且實現(xiàn)阿里云物聯(lián)網(wǎng)平臺的連接,用于數(shù)據(jù)上傳與下發(fā),蜂鳴器用于環(huán)境危險報警。本項目實現(xiàn)了集環(huán)境監(jiān)控,健康監(jiān)控以及物聯(lián)網(wǎng)為一體的多功能監(jiān)控裝置。
02系統(tǒng)架構(gòu)
使用到的外設(shè)模塊有:
LED:紅色用于模擬燈,可以被遠程控制打開與關(guān)閉。綠色LED周期性呼吸,指示系統(tǒng)是否正常運行。
蜂鳴器:用于可燃氣體超閾值報警。
搖桿模塊:用于搖桿控制顯示界面切換以及報警關(guān)閉。
MQ-5可燃氣體傳感器:用于檢測空氣中可燃氣體濃度值。
EEPROM:用于保存MQ-5可燃氣體濃度閾值。
ESP8266 WIFI模塊:用于更新網(wǎng)絡時間以及連接物聯(lián)網(wǎng)平臺。
MAX30102:用于采集人體的心率以及血氧值。
HS3003:用于采集環(huán)境溫濕度信息。
OLED:用于顯示時間,溫濕度信息,可燃氣體濃度,心率,血氧數(shù)值,物聯(lián)網(wǎng)平臺鏈接狀態(tài)等信息。
詳細結(jié)構(gòu)描述見下圖:
所使用的板載資源以及OS資源見下圖所示:
03硬件資源說明
3.1 線路連接
板載資源不做說明(連線參考開發(fā)板原理圖),只說外接模塊的連線。
3.1.1 OLED
使用了SCI I2C6:
SCL - P505
SDA - P506
VCC - 3.3V
GND - GND
3.1.2 HS3003
同OLED,使用了SCI6 I2C:
SCL - P505
SDA - P506
VCC - 3.3V
GND - GND
3.1.3 MQ-5
使用了ADC0 AN003:
ADC- P003(AN003)
3.1.4 MAX30102
使用了SCI3 I2C:
SCL - P408
SDA - P409
VCC - 3.3V
GND - GND
INT引腳使用了外部中斷:
INT - P804
3.1.5 搖桿模塊
使用了ADC0 AN001,AN002,AN010:
X軸 - P001(AN001)
Y軸 - P002(AN002)
Z軸(按鈕) - P010(AN010)
+5V - 3.3V
GND - GND
04軟件實現(xiàn)
4.1 OS資源說明
軟件使用了FreeRTOS實時操作系統(tǒng),創(chuàng)建了7個任務,功能如下:
Os_Display:用于控制OLED顯示信息。
Os_LedCtrl:用于控制LED功能。
Os_HwInit:用于初始化公共資源,并且該任務是首先執(zhí)行的,執(zhí)行完畢之后其他任務才允許執(zhí)行,避免資源在未初始化之前使用。
Os_WifiCtrl:用于控制ESP8266模塊,進行聯(lián)網(wǎng)控制以及網(wǎng)絡資源管理。
Os_Sensor:用于采集傳感器信息,包括HS3003,MQ-5。
Os_JoystickCtrl:用于采集搖桿模塊信息,并且判斷搖桿模塊的動作。
Os_Max30102Ctrl:用于采集人體的心率以及血樣數(shù)值。
下圖簡單描述了各個任務的工作,由于各個部分的關(guān)系型較為復雜,下面以文字和示例圖詳細說明。
4.2 功能說明
首先上一張全家福:
4.2.1 HS3003溫濕度采集
通信方式:
HS3003通過I2C通信,與OLED控制使用了同一路SCI的I2C,通過互斥量相互隔離,實現(xiàn)一路I2C控制兩個從設(shè)備的目的。功能:
HS3003可以測量環(huán)境的溫度以及濕度信息,通過計算公式進行轉(zhuǎn)換成攝氏度以及百分比值。
周期性采集,每一秒鐘采集一次。供其他模塊使用。
4.2.2 MQ-5 可燃氣體濃度采集
通信方式:
MQ-5通過將采集到的可燃氣體濃度值轉(zhuǎn)換為ADC值輸出,單片機周期性采集ADC信號用于計算空氣中可燃氣體濃度。
功能:
MQ-5可燃氣體濃度傳感器可以采集空氣中的可燃氣體濃度,單位為ppm(百萬分之一),每一秒鐘更新一次數(shù)據(jù)。供其他模塊使用。
4.2.3 MAX30102心率血樣采集
通信方式:
MAX30102使用I2C通信,為了精度以及采集速率,使用了單獨的一路I2C來工作(其實和OLED使用同一路也是可以的)
功能:
MAX30102上面的INT中斷引腳用于判斷數(shù)據(jù)是否更新,當有更新數(shù)據(jù)時,中斷會拉高,數(shù)據(jù)被讀取之后拉低。
MAX30102會一直處于通信狀態(tài),當中斷引腳變高之后,開始采集數(shù)據(jù)。當沒有手指放上去的時候,采集到的傳感器輸出值RED以及IR數(shù)值,輸出值大概在2000以內(nèi),但是當手指放上去之后,輸出值會突變?yōu)?00000以上,以此來判斷是否有手指放在傳感器上做數(shù)據(jù)采集。
采集到的RED以及IR值會周期性變化,以此來計算心率以及血樣數(shù)值。
手指剛放上去的時候采集到的數(shù)值是不穩(wěn)定的,需要等待一段時間才會采集到穩(wěn)定的數(shù)值,血氧值大于95%,心率在60到120之前是較為正常的值。
4.2.4 搖桿模塊控制功能
通信方式:
搖桿模塊有兩個方向(X軸和Y軸)以及一個按鈕(Z軸),都是通過ADC進行采樣。
功能:
對搖桿模塊的控制,在X軸,Y軸和Z軸上都會輸出一個ADC值,通過對采樣值進行分析判斷可以直到當前搖桿處于什么位置,以此來實現(xiàn)控制的功能。
搖桿模塊用于對現(xiàn)實界面進行切換,當搖桿模塊滑向右和上方時(即X軸以及Y軸的正方向),則會切換到傳感器顯示界面;當搖桿模塊滑向左或者下方時(即X軸和Y軸的負方向)則切換到時間顯示界面。
4.2.5 報警功能
報警使用了板載的蜂鳴器,當MQ-5采集到的空氣中可燃氣體濃度大于設(shè)定閾值的時候就會打開蜂鳴器報警,報警閾值可以通過物聯(lián)網(wǎng)設(shè)置。也可以通過物聯(lián)網(wǎng)控制報警功能打開/關(guān)閉。
當設(shè)定閾值更新時,會判斷更新的閾值是否和當前閾值相等,不等則寫入EEPROM,下次系統(tǒng)上電的時候會自動從EEPROM中讀取閾值
4.2.6 ESP8266 網(wǎng)絡通信
板載的ESP8266 WIFI模塊用于物聯(lián)網(wǎng)通信,通信平臺為阿里云物聯(lián)網(wǎng)平臺,通信方式為MQTT。
ESP8266上電工作流程:
復位ESP8266
關(guān)閉回顯,連接AP
連接AP完成之后更新SNTP時間,并將時間寫入到RTC
時間更新完成之后MQTT通信連接阿里云物聯(lián)網(wǎng)平臺
數(shù)據(jù)通信(上載和下發(fā)),上載一秒鐘更新一次
使用了一個定時器用來判斷ESP8266 AT指令是否響應超時,如果超時,會重新發(fā)送。
連接了物聯(lián)網(wǎng)平臺之后,會將溫度、濕度、可燃氣體濃度、血氧數(shù)值,心率數(shù)值,可燃氣體報警閾值、報警開關(guān)以及LED亮度上傳到阿里云物聯(lián)網(wǎng)平臺。
物聯(lián)網(wǎng)平臺可以下發(fā)LED亮度百分比命令來控制本地LED的亮度。
物聯(lián)網(wǎng)平臺可以下發(fā)可燃氣體濃度報警閾值到本地。
物聯(lián)網(wǎng)平臺可以下發(fā)可燃氣體報警使能命令到本地。
下圖為阿里云平臺收到的數(shù)據(jù):
下圖為阿里云平臺下發(fā)數(shù)據(jù)的調(diào)試界面:
4.2.7 OLED顯示功能
OLED提供顯示功能,包括:
上電顯示
日期時間星期顯示
wifi連接狀態(tài)顯示
IoT物聯(lián)網(wǎng)平臺連接狀態(tài)顯示
溫度、濕度、可燃氣體濃度顯示
心率、血氧顯示
上電之后會顯示啟動界面,1s之后切換到時間顯示界面
時間顯示界面下會顯示W(wǎng)IFI連接狀態(tài),IoT物聯(lián)網(wǎng)平臺連接狀態(tài),日期時間星期,空氣濕度和溫度。wifi圖標閃爍,表示在連接AP,常亮表示連接成功;IoT圖標閃爍表示在連接物聯(lián)網(wǎng)平臺,常亮表示連接成功;時間或從RTC中讀取并顯示。
當搖桿模塊滑向X軸或者Y軸正方向時,切換到傳感器數(shù)據(jù)顯示界面,此界面下,搖桿模塊滑到X軸或者Y軸負方向時,切換到時間顯示界面
當手指放到MAX30102傳感器上進行測量時,切換到心率血樣顯示界面,此界面下,手指離開MAX30102,則退回到之前的界面
4.2.8 燈控制功能
板載的LED1來模擬普通LED燈,亮度控制位百分比,支持0~100:0為關(guān)閉LED;100為全亮度。
通過物聯(lián)網(wǎng)平臺下發(fā)控制亮度命令,本地接收到命令之后使用PWM控制LED的亮度。
4.2.9 RTC
RTC用于本地實時時鐘
上電會自動從上一次的時間開始計時,EAP8266成功連接AP之后之后會自動發(fā)起時間更新命令獲取SNTP時間,并更新到本地RTC中。
06總結(jié)
本人是第一次使用野火的開發(fā)板,之前聽說過野火,但是一直沒機會接觸。無意間在公眾號中看到了本次比賽,遂毫不猶豫的參加了。啟明RA6M5給我的感覺就是精簡,美觀,板載資源豐富,擴展性強,給作品開發(fā)帶來了很多便攜性,像是板載ESP8266以及蜂鳴器,就減少了外擴模塊的工作。歷時三個月,終于算是完成了比賽,期間的心酸以及收獲也難以述說,遇到了很多難題,也收獲了很多知識。
簡而言之,本次比賽學習到了很多東西,也讓我了解了更多野火的產(chǎn)品。感謝野火提供的本次機會。祝愿野火越來越好,開發(fā)更多物美價廉的產(chǎn)品,方便廣大愛好者以及工程師。
審核編輯:湯梓紅
-
傳感器
+關(guān)注
關(guān)注
2565文章
52971瀏覽量
767128 -
mcu
+關(guān)注
關(guān)注
146文章
17970瀏覽量
366523 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2930文章
46219瀏覽量
392176 -
蜂鳴器
+關(guān)注
關(guān)注
12文章
895瀏覽量
46937 -
監(jiān)控設(shè)備
+關(guān)注
關(guān)注
0文章
100瀏覽量
13290
原文標題:【瑞薩RA MCU創(chuàng)意氛圍賽作品賞析】項目10——物聯(lián)網(wǎng)居家環(huán)境/健康監(jiān)控設(shè)備
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
基于瑞薩RA6M5/RA2L1和百度語音云的語音識別控制與無線通信控制系統(tǒng)

基于RA6M5開發(fā)板的低功耗電子時鐘設(shè)計

【野火啟明6M5開發(fā)板體驗】與野火啟明6M5開發(fā)板的第一次親密接觸
【野火啟明6M5開發(fā)板體驗】1 RA6M5開發(fā)環(huán)境搭建
【野火啟明6M5開發(fā)板體驗】3 RA6M5按鍵
基于RA6M5 MCU組的云套件數(shù)據(jù)手冊

評論