加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

【RT-Thread作品秀】基于RT-Thread的農(nóng)業(yè)數(shù)據(jù)采集

2020/12/19
502
服務支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗、收獲成長和認同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
方塊圖(2)
相關(guān)方案
  • 方案介紹
    • 概述
    • RT-Thread使用情況概述
    • 硬件框架
    • 軟件框架說明
    • 軟件模塊說明
    • 演示效果
    • 比賽感悟
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

概述

? ? ???隨著物聯(lián)網(wǎng)技術(shù)的廣泛推廣,產(chǎn)生了農(nóng)業(yè)物聯(lián)網(wǎng)。做智慧農(nóng)業(yè)物聯(lián)網(wǎng)項目,首先要解決的是農(nóng)業(yè)數(shù)據(jù)的采集問題;比如空氣的溫濕度、土壤的溫濕度、二氧化碳濃度、水培溶液的EC值、PH值等數(shù)據(jù);結(jié)合此次RTT大賽,筆者決定基于ART-Pi板子和RT-Thread實時操作系統(tǒng),開發(fā)一個農(nóng)業(yè)數(shù)據(jù)采集器。此次數(shù)據(jù)采集器筆者以ART-PI開發(fā)板核心板,外接了一款溫濕度傳感器模塊、GPS模塊、OLED模塊、串口通訊模塊進行了基礎(chǔ)Demo版本代碼編寫與調(diào)試,實現(xiàn)了采集溫濕度數(shù)據(jù)在OLED屏上顯示、GPS位置信號信息采集后經(jīng)串口輸出等功能。后續(xù)還有采集的數(shù)據(jù)經(jīng)板載的WiFi模塊上傳至TCP Server?? 、阿里IOT平臺的規(guī)劃。

開發(fā)環(huán)境

硬件ART-PI(STM32H750XB)、GPS模塊、DHT11、0.96寸OLED屏、USB轉(zhuǎn)串口模塊

RT-Thread版本:RT-Thread V 4.0.3

開發(fā)工具及版本:RT-Thread Studio?版本: 2.0.0

RT-Thread使用情況概述

(1)內(nèi)核部分:調(diào)度器,信號量等。

? ? ? ? ?調(diào)度器:創(chuàng)建多個線程來實現(xiàn)不同的工作。

? ? ? ? ?信號量:用來線程間的同步。

(2)組件部分UART框架,SENSOR框架。

UART框架:使用了1個串口,用于采集GPS模塊數(shù)據(jù)、同時用于串口輸出數(shù)據(jù)。

II2C框架:使用了1路II2C接口用于連接OLED屏,進行采集溫濕度數(shù)據(jù)的顯示。

SENSOR框架:使用DHT11采集空氣溫濕度

(3)軟件:u8g2?? netutils?? dht11 ??gps_rmc

硬件框架

軟件框架說明

軟件模塊說明

主函數(shù)中執(zhí)行了

wlan_autoconnect_init();

serial_init();

oled_init();

DHT11_init();

創(chuàng)建了3個線程,其中

dht11_thread_entry()用于讀取溫濕度傳感器數(shù)據(jù);

serial_thread_entry()用于讀取串口1 RX引腳接收到的GPS模塊數(shù)據(jù);

演示效果

比賽感悟

? ? ? ?首先筆者要表揚一下自己,能在工作之余、在下班后回家還要哄娃入睡之余,利用了一切可以利用的時間,進行STM32單片機的理論、RT-Thread Studio平臺、II2C通訊、串口通訊理論知識的學習,然后小白一樣的摸索著玩ART-Pi;筆者之前是Java程序員出身,在Java代碼層面是打通過跟阿里IOT平臺進行數(shù)據(jù)采集對接的,可是用STM32單片機來做,尤其是要熟悉STM32單片機的開發(fā)流程與技巧、RT-Thread 開發(fā)環(huán)境與編程規(guī)范等,作者實在是顯得有點稚嫩,畢竟想要很快入行,是需要時間積累的。筆者還是5年前玩過AVR單片機,之后的工作主要是PLC、C#、JAVA相關(guān),最近的工作是基于GoLinux系統(tǒng)進行應用程序開發(fā),講真筆者對STM32單片機的知識了解還是相當欠缺的,Ubuntu系統(tǒng)用過半年左右,對于實時操作系統(tǒng)比如RTOS等,不曾了解;可是這些并不能阻止我對國產(chǎn)操作系統(tǒng)的關(guān)心與關(guān)注。當某次在論壇看到RT-Thread Smart發(fā)布會宣傳時,筆者一下子就被深深吸引,在參會中看到了搭載RT-Thread Smart內(nèi)核的板子啟動很快,于是乎當時就萌發(fā)了了解一下RT-Thread的想法。后面也就有了參加此次RT-Thread全連接創(chuàng)意創(chuàng)客大賽的故事。

? ? ? 筆者的初心并不是參加比賽獲得名次,而是通過參與,讓自己去熟悉RT-Thread,熟悉RT-Thread跟STM32單片機的聯(lián)姻;想著能不能基于RT-Thread操作系統(tǒng)、APT-Pi板子做些數(shù)據(jù)采集的實驗測試;幸不辜負青春,通過此次嘗試,筆者調(diào)通了APT-Pi 的板載串口1的收發(fā)控制、II2C通訊驅(qū)動OLED屏、采集單總線的溫濕度傳感器DHT11、板載WiFi模塊進行參數(shù)配置聯(lián)網(wǎng)、TCP通訊測試、GPS信號數(shù)據(jù)截取處理等;在整個邊學習邊碼字的過程中也遇到了一些困難,比如調(diào)試II2C接口的氣壓傳感器時,折騰了幾天就是不出結(jié)果,還不知道問題出在哪,還有調(diào)試SPI接口液晶屏時,也是遇到困難,最后曲線救國,換成了II2C接口的OLED屏,還好調(diào)通了。主要是筆者時間上受限了,工作上幾個項目要跟進,期間去出差了外省幾次;下班后回家寶寶又會粘著我求抱抱。本來計劃的是多接一些傳感器采集數(shù)據(jù),比如采集485接口傳感器數(shù)據(jù)、通過調(diào)用我自己封裝的dll文件去跟歐姆龍PLC進行通訊的測試、上傳數(shù)據(jù)至阿里IOT平臺,截止當前未完成,但后面我會繼續(xù)把這個項目做下去,爭取把這個數(shù)據(jù)采集器做得完善。最后感謝大賽舉辦方給我們提供了一個如此好的學習和鍛煉的機會,我會嘗試將RTT引入到自己研發(fā)的產(chǎn)品中去。

  • 代碼地址.txt
    描述:代碼地址
  • 項目文檔.docx
    描述:項目說明

相關(guān)推薦

電子產(chǎn)業(yè)圖譜