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