概述:
基于物聯(lián)網(wǎng)的智能家庭火災(zāi)監(jiān)控系統(tǒng)基于ART-Pi STM32H750 開(kāi)發(fā)板和RTThread,通過(guò)板載AP6212和MQTT通信協(xié)議接入阿里云物聯(lián)網(wǎng),該系統(tǒng)具有一個(gè)APP客服端,可通過(guò)該APP實(shí)時(shí)查看各個(gè)傳感器狀態(tài),判斷是否發(fā)生火災(zāi),并且具有一鍵報(bào)警功能,為未來(lái)智慧消防建設(shè)提供了一種解決方案。
開(kāi)發(fā)環(huán)境
硬件:ART-Pi STM32H750
使用的模塊:DS18B20數(shù)字溫度傳感器,火焰?zhèn)鞲衅?/a>,MQ2煙霧傳感器
RT-Thread版本:RT-Thread V 4.0.3
開(kāi)發(fā)工具及版本:RT-Thread Studio
APP SDK:Flutter 1.22.2
RT-Thread使用情況概述
內(nèi)核部分:調(diào)度器,郵箱。
調(diào) 度 器 :創(chuàng)建多個(gè)線程來(lái)實(shí)現(xiàn)不同的工作。
郵 箱 :用與線程間通信。
組件部分:FAL:Flash 抽象層,DS18B20,cJSON,Ali IoTKit以及WIFI(AP6212A)
軟件包部分:
Ali IoTKit:ali-iotkit 是 RT-Thread 移植的用于連接阿里云 IoT 平臺(tái)的軟件包,方便設(shè)備上云封裝了豐富的連接協(xié)議,如 MQTT、 CoAP、HTTP、TLS,并且對(duì)硬件平臺(tái)進(jìn)行了抽象,使其不受具體的硬件平臺(tái)限制而更加靈活。。
cJSON:C語(yǔ)言實(shí)現(xiàn)的極簡(jiǎn)的解析 JSON 格式的軟件包。
DS18B20 數(shù)字溫度傳感器:對(duì)接了 RT-Thread Sensor 框架的 DS18B20 驅(qū)動(dòng)程序。
FAL:FAL (Flash Abstraction Layer) Flash 抽象層,是對(duì) Flash 及基于 Flash 的分區(qū)進(jìn)行管理、操作的抽象層,對(duì)上層統(tǒng)一了 Flash 及 分區(qū)操作的 API。
硬件框架
軟件框架
線程說(shuō)明
mqtstart:用于初始化連接參數(shù),并連接阿里云。
startSensor:初始化傳感器,創(chuàng)建郵箱,并循環(huán)讀取傳感器的值,每讀取一次傳感器的值,向郵箱中發(fā)送一個(gè)包含三個(gè)傳感器數(shù)據(jù)的郵件。
pubmsg:用于向阿里云上傳傳感器數(shù)據(jù)。以永久等待方式,讀取郵箱中的郵件,并將郵件的信息上傳。
程序運(yùn)行后,這三個(gè)線程棧利用率均達(dá)到70%,滿足官方線程棧大小設(shè)置建議。
實(shí)物及APP截圖
視頻觀看:
代碼地址 (下載后可見(jiàn))
比賽感悟
首先,非常開(kāi)心有幸看到國(guó)產(chǎn)嵌入式操作系統(tǒng)---- RT-Thread。參賽之后才開(kāi)始接觸RT-Thread,它給我的印象是內(nèi)核非常容易上手,各種文檔資源非常豐富,內(nèi)核可裁剪,擁有豐富的package,讓開(kāi)發(fā)者不再關(guān)注于硬件底層,而將更多精力放在業(yè)務(wù)邏輯上,方便使用的各種包資源更是大大縮短了開(kāi)發(fā)周期,還有強(qiáng)大的柿餅GUI,一系列的生態(tài)軟件讓RT-Thread不僅僅只是一個(gè)操作系統(tǒng)。
ART-Pi開(kāi)發(fā)板非常強(qiáng)大,非常漂亮,體積小但功能俱全,是電路板藝術(shù)品當(dāng)之無(wú)愧。
在以后會(huì)更深入地學(xué)習(xí)RT-Thread,希望自己有一天能為社區(qū)貢獻(xiàn)出自己的一份力,更希望有機(jī)會(huì)加入RT-Thread團(tuán)隊(duì)。