?
概述:
多點傳感器采集子系統(tǒng)是用基于 STM32 系類芯片STM32H750開發(fā)板ART-Pi開發(fā),支持無線采集多種傳感器數(shù)據(jù),子系統(tǒng)收集數(shù)據(jù)后通過無線網(wǎng)絡(luò)上傳分站。訪問該子系統(tǒng)時會展示一個網(wǎng)頁顯示本系統(tǒng)采集到的傳感器數(shù)據(jù)。該系統(tǒng)適用與工業(yè)現(xiàn)場各種傳感器數(shù)據(jù)收集轉(zhuǎn)儲,可以用在傳感器較多的場景中。
開發(fā)環(huán)境
硬件:ART-Pi主板
擴展板: ESP8266 WIFI模塊
RT-Thread版本:RT-Thread V 4.0.3
開發(fā)工具及版本:RT-Thread Studio 2.0.0
RT-Thread使用情況概述
內(nèi)核部分:調(diào)度器,信號量,消息隊列。
調(diào)度器:創(chuàng)建多個線程來實現(xiàn)不同的工作。
信號量:用來同步線程。
消息隊列:用來實現(xiàn)線程之間傳遞的數(shù)據(jù)。
組件部分:SPI框架, Sensor框架,SAL 套接字抽象層
軟件包部分:
Webnet:建立一個簡單Web服務(wù)器,提供數(shù)據(jù)顯示界面。
cJSON:C語言實現(xiàn)的極簡的解析 JSON 格式的軟件包。
TFTP:上傳配置數(shù)據(jù),網(wǎng)頁文件等。
MicroPython:邏輯實現(xiàn)的主要部分。實現(xiàn)與ESP8266的連接以傳輸收集的傳感器數(shù)據(jù)。還要實現(xiàn)對展示數(shù)據(jù)的網(wǎng)頁的動態(tài)生成。
硬件框架
將接收到ESP8266的數(shù)據(jù)轉(zhuǎn)儲后傳輸?shù)椒终?a class="article-link" target="_blank" href="/tag/%E4%B8%8A%E4%BD%8D%E6%9C%BA/">上位機。
軟件框架
軟件框架說明
本項目使用2個線程,其中一個負(fù)責(zé)基于ESP8266的采集板通過發(fā)送UDP數(shù)據(jù)包給ARIT-Pi獲得傳感器數(shù)據(jù),另一個線程負(fù)責(zé)根據(jù)數(shù)據(jù)池的數(shù)據(jù)生成動態(tài)網(wǎng)頁并上傳數(shù)據(jù)。
第一部分:數(shù)據(jù)接收線程
此線程負(fù)責(zé)接收由基于ESP8266的采集板發(fā)送來的UDP數(shù)據(jù)。并儲存在數(shù)據(jù)池內(nèi)。
第二部分:網(wǎng)頁生成線程
另一個線程負(fù)責(zé)從數(shù)據(jù)池內(nèi)提取數(shù)據(jù),并根據(jù)數(shù)據(jù)生成網(wǎng)頁供展示傳感器數(shù)據(jù)。然后將接收到ESP8266的數(shù)據(jù)轉(zhuǎn)儲后傳輸?shù)椒终旧衔粰C。
軟件模塊說明
server_run:接收UDP數(shù)據(jù)包線程,提取有用傳感器數(shù)據(jù),保存在數(shù)據(jù)池。
web_run:根據(jù)采集到的數(shù)據(jù)生成網(wǎng)頁文件,并保存在/flash/webnet目錄下。然后將數(shù)據(jù)上傳至上位機。
main:負(fù)責(zé)led 閃爍,用來顯示當(dāng)前系統(tǒng)的運行狀態(tài)。
演示效果
從傳感器傳來的數(shù)據(jù)是隨時變化的。
使用的材料其實也很簡單,就是一個ART-Pi主板和一個ESP8266模塊。
視頻觀看:
比賽感悟
通過這次實踐,我學(xué)習(xí)了RT-Thread 操作系統(tǒng)的裁剪和各種組件和軟件包的搭配使用。在過程中學(xué)到了許多以前沒有接觸過的知識,也對RT-Thread RTOS也有了新的認(rèn)識。對這種小操作系統(tǒng)能做到這樣的程度感到非常吃驚。這讓我以后使用該系統(tǒng)更有底氣。
RT-Thread的軟件包非常豐富,我在這個小操作系統(tǒng)上找到了需要的web服務(wù)器、TFTP服務(wù)器、socket組件,令人意外的是集成了MicroPython,而且在MicroPython中支持re和json,可以快速開發(fā)應(yīng)用,不用每一次修改程序都重新燒寫一遍芯片。但是我在試圖使用動態(tài)模塊時卻不順利,這讓我對這種操作系統(tǒng)的配置復(fù)雜性有一點卻步,感覺上手有一點難,其實還可以做的更好一些。
最后感謝主辦方提供了這么好的一個平臺,讓我學(xué)到了許多RT-Thread操作系統(tǒng)的特性。通過這次的實踐我對RT-Thread的許多特性有了了解,并且感受到此產(chǎn)品在工程開發(fā)上提供的許多便利性,我會在以后的作品中更多的使用RT-Thread產(chǎn)品,也會向朋友推薦這款產(chǎn)品。
?