今年3月中,由騰訊TencentOS團隊聯合恩智浦半導體、安謀科技(Arm China)發起的線上開發者活動——TencentOS Tiny AIoT 應用創新大賽,評選出了優勝獲獎者,本文介紹其中一個獲獎作品。
一、總體設計家居自動澆灌監控系統主要實現了,在室內環境下植物的濕度監測和自動澆灌。
系統基于TencentOS Tiny EVB_AIoT開發板和NXP的MCUXpresso IDE,使用了土壤濕度傳感器監測土壤濕度,并通過TencentOS Tiny的MQTT模塊,傳輸至騰訊云物聯網開發平臺(IoT Explorer),可根據設定閾值由外接的水泵對上述環境變量進行控制,系統連接騰訊云后可以實時遠程觀測植物土壤濕度并手動控制水泵啟停。
二、具體設計與實現(一)硬件方案
系統基于TencentOS Tiny AIoT開發套件,套件核心板采用NXP i.MX RT1062處理器,套件自帶物聯網俱樂部的,基于WAN Interface接口的ESP8266模組和E53模塊,額外模組有fly-fish的土壤濕度采集模塊,水泵由于過年不發貨,年后又由于疫情不發貨,導致遲遲不能到位,眼看交作業日期一天天臨近,于是打上了E53模組上的LED燈的主意,假設為水泵吧,反正都是一個針腳IO控制。
(二)軟件方案與實現
1. MQTT線程,負責連接騰訊云,接收土壤濕度數據并轉發至騰訊云,接收騰訊云的控制命令,啟停水泵。
2. ADC線程,負責采集土壤濕度采集模塊的數據并通過消息隊列轉發至MQTT線程,經測試ADC數據只能在2900(水中)到4096(空氣中)之間變化,所以做了個簡單的量化數據計算公式(100 - (adcVal - 3096)/10),按照濕度百分比來計算。
3. PUMP線程,接受來自MQTT線程的命令,啟停水泵,本案例中是亮滅E53模塊的LED燈。
4. LED線程,按照每1s切換一次的頻率,點亮、熄滅板子上的藍色LED燈,指示系統是否正常工作。
三、功能展示(一)總體展示
業務邏輯實現。
歷史數據展示:
(二)數據采集+本地控制
土壤濕度超過一定值,水泵(E53 LED)停止工作,同時往騰訊云上報的數據如下圖。
土壤濕度低于一定值,水泵(E53 LED)開始工作,同時往騰訊云上報的數據如下圖。
(三)云端控制
如果需要人工控制水泵的話,直接在云端下發命令,人工接管水泵工作。
(四)騰訊連連
四、一些想法和建議(一)關于RT1062和IDE
i.MX RT1062這顆U很強大很贊,譬如跑個RTOS,別家的U在這個負荷已經開始燙手了,得益于更先進的制程,1062一點溫度都沒有感覺到。MCUXpresso IDE的Pins模塊,對于不熟悉NXP產品的人來說,尤其是默認路由功能,真的是救星一般,單論針腳選擇和初始化生成,感覺比CUBEMX還要好用一點。
同樣的,缺點(或者是不習慣的地方)也很明顯,一方面是MCU的針腳命名,去尋找一個針腳真心費勁;另一方面是資料,相關資料較少,譬如網上找了很多資料關于FlexRAM配置都有點不痛不癢,很希望有個類似Pins這樣的圖形化生成小工具。
(二)關于TencentOS Tiny和IoT Explorer
TencentOS Tiny的確很Tiny,各項資源開銷都很小,幾個組件的確穩定,譬如這次用到的MQTT組件,對比別家的跑著跑著一天內就掉線,Tiny的沒有這現象。
Tiny的一個問題不得不說,就是文檔不知道是不是太老舊還是不同步,資料不全,譬如想知道消息隊列的案例,gitee上給的是指向github的鏈接,因為沒有梯子,只能國內的找找,到底是用tos_msg_q_create()還是tos_msg_queue_create()亦或者用tos_queue_create()創建MQ,哪個是最新的?
最后,感謝騰訊提供這么一次機會近距離實戰體驗RT1062和TencentOS Tiny。
原文標題:AIoT應用創新大賽獲獎作品精選:智能家居自動澆灌監控系統
文章出處:【微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
監控系統
+關注
關注
21文章
3616瀏覽量
169425 -
智能家居
+關注
關注
1912文章
9157瀏覽量
179469 -
恩智浦半導體
+關注
關注
0文章
65瀏覽量
16909 -
安謀科技
+關注
關注
0文章
93瀏覽量
7447
原文標題:AIoT應用創新大賽獲獎作品精選:智能家居自動澆灌監控系統
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論