【RT-Thread作品秀】基于RT-Thread的智慧農業(yè)物聯(lián)網網關
作者:frankpyq
概述
智慧農業(yè)是目前物聯(lián)網一個比較廣泛的發(fā)展方向,基于從事農業(yè)物聯(lián)網相關硬件的開發(fā),結合這次RTT大賽,決定基于RT-Thread設計一款物聯(lián)網網關。本物聯(lián)網網關基于STM32H7為主芯片進行設計,分為硬件網關和物聯(lián)網平臺。硬件網關有以ART-PI開發(fā)板為核心板,自行設計了一個擴展板,板載一路4G通訊模塊,一路LORA無線采集模塊,一路RS485電路,2路繼電器輸出,4路LED指示,1路DS18B20溫度采集,1個蜂鳴器;硬件網關可以通過無線LORA采集節(jié)點數(shù)據(jù),最多可以接收32路無線節(jié)點采集;也可以通過RS485電路采集傳感器數(shù)據(jù)。采集到數(shù)據(jù)后,通過4G模塊發(fā)送到物聯(lián)網平臺。這里物聯(lián)網平臺我使用的是深圳市模擬科技有限公司的TLINK物聯(lián)網平臺。板載2路繼電器和LED指示燈,可以通過平臺下發(fā)命令控制開關。
開發(fā)環(huán)境
硬件:ART-PI(STM32H750XB), ART-PI_TOP擴展板;
RT-Thread版本:RT-Thread V 4.0.3
開發(fā)工具及版本:RT-Thread Studio 版本: 2.0.0
RT-Thread使用情況概述
(1)內核部分:調度器,信號量等。
調度器:創(chuàng)建多個線程來實現(xiàn)不同的工作。
信號量:用來線程間的同步。
(2)組件部分:UART框架,SENSOR框架。
UART框架:使用了3個串口,分別連接4G模塊,LORA模塊,RS485;分別用于跟平臺通訊和采集傳感器數(shù)據(jù)。
SENSOR框架:使用DS18B20采集設備機箱溫度。
(3)軟件包:暫未使用相關軟件包。
硬件框架
軟件框架說明
軟件模塊說明
項目工程文件是基于官方SDK的點燈示例程序開始的。
(1)read_temp_entry線程:用于讀取板載DS18B20溫度傳感器的數(shù)值。
(2)LoraU6RxData線程:用于采集無線LORA傳感器節(jié)點的數(shù)據(jù)。傳感器節(jié)點采用主動上報方式傳輸數(shù)據(jù),最多掛載32個節(jié)點。
(3)led_shine_entry線程:LED燈閃爍,用于指示設備狀態(tài);
(4)Task_Tlink_Tx線程:跟TLINk云平臺通訊,包含登錄和主動上報數(shù)據(jù)。
(5)TlinkRxData線程:用于接收和解析TLINK云平臺下發(fā)的控制指令,并執(zhí)行相關繼電器動作。
演示效果
(1)設備照片:
(2)平臺接收數(shù)據(jù)照片:
(3)云組態(tài)照片:
(4)演示視頻:
比賽感悟
認識RT-Thread已經是很多年前的事情了,當初也買了第一代的魔笛網絡收音機開發(fā)板,但是很遺憾一直都沒有在實際項目中使用到。主要原因都是我手頭的項目都是基于裸機開發(fā)的,都沒有使用過RTOS?;赗TT大賽的機緣,我就想努力嘗試一把,先用起來,然后決定以后項目中有需要的都上RTT系統(tǒng)。但是完事開頭難,我這個項目當初想起來挺容易,但是實際做起來的時候,真的還是很不容易的。主要還是我的RTOS編程經驗匱乏,對系統(tǒng)內核以及進程通信機制沒有理解透徹,導致寫程序的時候出了不少問題。從最開始的點燈,到后面的添加傳感器驅動框架,添加串口驅動框架,實現(xiàn)了DS18B20傳感器采集,實現(xiàn)了串口跟GPRS模塊和LOR模塊的通訊,實現(xiàn)了數(shù)據(jù)上TLINK云平臺。完成數(shù)據(jù)上報云平臺以及云平臺下發(fā)控制指令和執(zhí)行動作等等功能。這其中,我基本沒有使用額外的軟件包和驅動等,主要還是對RTT不是很熟悉,可以說還基本沒有上手。按照當初的設想,本來是要使用廣和通的L610的模塊,使用AT指令軟件包,ONENET軟件包等上移動ONENET云平臺。但是由于時間太緊和基礎太差的原因,20號之前只能完成這么多了。其實這兩天我已經用L610模塊連上了ONENET云平臺,但是詳細功能還沒有實現(xiàn),后面我會繼續(xù)把這個項目做下去,爭取把這個產品做完善。最后感謝舉辦方給我一個很好的學習和鍛煉的機會,RTT我相信我會一直用下去。