本文利用農(nóng)業(yè)物聯(lián)網(wǎng)的相關(guān)優(yōu)勢(shì),搭建了一個(gè)基于 STM32 、機(jī)智云平臺(tái)的農(nóng)作物需水量計(jì)算系統(tǒng),利用傳感器采集農(nóng)作物的現(xiàn)場(chǎng)環(huán)境信息后通過 ZigBee 協(xié)議發(fā)送到數(shù)據(jù)處理終端,根據(jù)設(shè)置的作物生長(zhǎng)系數(shù)計(jì)算出對(duì)應(yīng)的作物需水量;同時(shí)將相關(guān)的數(shù)據(jù)經(jīng)過 4G 模塊傳輸至機(jī)智云物聯(lián)網(wǎng)平臺(tái),實(shí)現(xiàn)用戶足不出戶即可了解到農(nóng)作物的相關(guān)信息,為制定合理的灌溉制度提供數(shù)據(jù)參考,達(dá)成適時(shí)灌溉和節(jié)約用水等目的。
實(shí)物圖和App操作界面
01 系統(tǒng)總體設(shè)計(jì)
基于機(jī)智云物聯(lián)網(wǎng)平臺(tái)的農(nóng)作物需水量計(jì)算系統(tǒng),利用嵌入式微控制器采集作物的溫濕度、風(fēng)速環(huán)境信息,同時(shí)采用 ZigBee 技術(shù)進(jìn)行數(shù)據(jù)的傳輸,將采集的作物環(huán)境信息傳輸至數(shù)據(jù)處理終端;當(dāng)數(shù)據(jù)處理終端接收到相關(guān)的數(shù)據(jù)后,對(duì)作物需水量進(jìn)行計(jì)算;然后通過 4G 技術(shù)將相關(guān)的數(shù)據(jù)與機(jī)智云平臺(tái)建立連接,農(nóng)業(yè)管理者可以在任一地點(diǎn)通過機(jī)智云后臺(tái)或移動(dòng)設(shè)備查看和設(shè)置相關(guān)的數(shù)據(jù)。該系統(tǒng)框圖和ZigBee 組網(wǎng)示意圖如下所示。
圖1:系統(tǒng)框圖
圖2:ZigBee 組網(wǎng)示意圖
02 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件主要分為農(nóng)作物現(xiàn)場(chǎng)環(huán)境信息采集終端和數(shù)據(jù)處理終端兩個(gè)部分。農(nóng)作物現(xiàn)場(chǎng)環(huán)境信息采集終端的主要作用是通過 STM32 主控單元采集農(nóng)作物的溫濕度、風(fēng)速信息并通過 ZigBee 無線通信協(xié)議將相應(yīng)的數(shù)據(jù)傳輸?shù)綌?shù)據(jù)處理終端。
數(shù)據(jù)處理終端則是依據(jù)農(nóng)作物數(shù)據(jù)參數(shù)和環(huán)境數(shù)據(jù)信息實(shí)現(xiàn)對(duì)作物騰發(fā)量的實(shí)時(shí)預(yù)測(cè),并根據(jù)作物系數(shù)計(jì)算出相應(yīng)的作物需水量,同時(shí)通過 4G 模塊接入機(jī)智云平臺(tái)和 APP,實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程監(jiān)測(cè)和管理。整個(gè)硬件設(shè)計(jì)的架構(gòu)框圖如所示。
圖3:硬件系統(tǒng)總體框圖
03 系統(tǒng)硬件模塊及電路設(shè)計(jì)介紹
? STM32主控單元的選擇與設(shè)計(jì)
對(duì)農(nóng)作物生長(zhǎng)環(huán)境信息進(jìn)行采集和傳輸?shù)闹骺?a href="http://ttokpm.com/v/tag/137/" target="_blank">芯片選擇了STM32F103VBT6 芯片,其內(nèi)核使用Cortex-M3 架構(gòu),芯片內(nèi)部包含有 ADC/DAC/2I C /USART/SPI 等外設(shè)資源,為數(shù)據(jù)通信的采集傳輸提供了足夠豐富的接口資源。
圖4:STM32F103VBT6 芯片實(shí)物圖
此外,以 STM32F103VBT6 為核心的主控單元的最小外圍電路還應(yīng)包括時(shí)鐘電路、復(fù)位電路、Flash啟動(dòng)電路和調(diào)試電路。最小外圍電路圖如圖5所示。復(fù)位電路采用 RC電路實(shí)現(xiàn),防止剛上電時(shí)不穩(wěn)定的電源對(duì)系統(tǒng)產(chǎn)生影響,同時(shí)也可通過按鍵實(shí)現(xiàn)手動(dòng)復(fù)位。
本系統(tǒng)主要應(yīng)用于野外對(duì)相關(guān)信息進(jìn)行采集,經(jīng)常面臨惡劣的使用環(huán)境,可能導(dǎo)致芯片內(nèi)部集成的時(shí)鐘源精度的下降而影響系統(tǒng)的正常運(yùn)行。為了維持系統(tǒng)時(shí)鐘源的穩(wěn)定和精確,在片外使用 8MHz 的無源晶振與內(nèi)部鎖相回路(PLL)相結(jié)合來為各模塊提供穩(wěn)定的時(shí)鐘源。
圖5:STM32 主控芯片及其最小外圍電路原理圖
為了實(shí)現(xiàn)軟件設(shè)計(jì)與硬件資源間的調(diào)試和下載,需要在單片機(jī)中預(yù)留出下載調(diào)試電路。STM32調(diào)試方式有JTAG模式和SWD模式,與 JTAG 模式的 20 個(gè)引腳相比,SWD模式(串行調(diào)試接口)只需要連接 GND、SWDIO、SWDCLK 和 3.3V 的引腳。其傳輸速率可高達(dá) 10M/s,在高速模式下具有比 JTAG 更加可靠的性能。因此本文中采用 SWD 接口進(jìn)行程序的下載和調(diào)試。
? 數(shù)據(jù)采集模塊的電路設(shè)計(jì)
在實(shí)際應(yīng)用中需要對(duì)溫濕度和風(fēng)速這三種主要環(huán)境因素進(jìn)行實(shí)時(shí)的監(jiān)測(cè),為此分別設(shè)有溫濕度采集模塊和風(fēng)速傳感器模塊,通過實(shí)測(cè)值來完成對(duì)作物騰發(fā)量的預(yù)測(cè)。
1)溫濕度采集模塊
圖6:DHT11 傳感器的實(shí)物圖
采用 DHT11 溫濕度傳感器對(duì)農(nóng)作物生長(zhǎng)環(huán)境中的溫濕度進(jìn)行測(cè)量,該模塊可同時(shí)提供經(jīng)過嚴(yán)格校準(zhǔn)后誤差精度在±2℃的溫度值和±5%的濕度值數(shù)字信號(hào),滿足在現(xiàn)代農(nóng)業(yè)監(jiān)測(cè)技術(shù)領(lǐng)域中的應(yīng)用。DHT11 傳感器的電路原理圖如圖所示。
圖8:DHT11 傳感器的電路原理圖
2)風(fēng)速傳感器模塊電路設(shè)計(jì)
我們采用模擬量風(fēng)速變送器 RS-FSJT-V05 來對(duì)現(xiàn)場(chǎng)風(fēng)速進(jìn)行測(cè)量,RS-FSJT-V05 風(fēng)速變送器通過三個(gè)夾角相同的風(fēng)杯來完成對(duì)風(fēng)速的測(cè)量。測(cè)量風(fēng)速時(shí),其內(nèi)部的信號(hào)信號(hào)處理結(jié)構(gòu)可將測(cè)量結(jié)果轉(zhuǎn)換為 0-5V的電壓模擬量進(jìn)行輸出,通過與單片機(jī) A/D 轉(zhuǎn)換電路的連接即可方便快捷地讀出對(duì)應(yīng)的風(fēng)速信號(hào)。其實(shí)物圖如下所示。
圖9:RS-FSJT-V05 傳感器實(shí)物圖
風(fēng)速變送器 RS-FSJT-V05 主要參數(shù)如下表所示。
表:RS-FSJT-V05 傳感器主要參數(shù)
RS-FSJT-V05 風(fēng)速傳感器與 STM32 單片機(jī)通過三線制進(jìn)行連接,其中棕色 VCC 與 5V電源進(jìn)行連接,黑色 GND 接 STM32 上的 GND,藍(lán)色正輸出信號(hào)接 STM32 中的 PA1。同時(shí)為了避免采集到的電壓信號(hào)超過單片機(jī) A/D 模塊的最大采集電壓,采用分壓電阻來將采集到電壓降低后再輸入到單片機(jī)中的 A/D 轉(zhuǎn)換模塊,否則將會(huì)有數(shù)據(jù)溢出產(chǎn)生的可能,導(dǎo)致測(cè)量錯(cuò)誤。其電路原理圖如圖所示。
圖10:風(fēng)速傳感器電路原理圖
? 通信傳輸模塊的電路設(shè)計(jì)
對(duì)傳感器采集數(shù)據(jù)的傳輸可以通過有線或無線的方式進(jìn)行,但有線通信需架設(shè)錯(cuò)綜復(fù)雜的線纜,既不利于農(nóng)業(yè)的種植,也不容易進(jìn)行調(diào)整。因此在本文中數(shù)據(jù)處理單元通過 ZigBee 協(xié)議來獲取采集的數(shù)據(jù)。
此外,為了使農(nóng)作物管理人員可以方便地隨時(shí)隨地查看相關(guān)的信息,通過 4G 通信技術(shù)將相關(guān)的數(shù)據(jù)傳輸至機(jī)智云平臺(tái),用戶可以通過機(jī)智云后臺(tái)或者 APP 方便地查看相關(guān)的數(shù)據(jù),實(shí)現(xiàn)對(duì)農(nóng)田作物進(jìn)行精細(xì)化管理。
1) ZigBee 無線傳輸模塊電路設(shè)計(jì)
本文采用 DL-LN33 多跳自組織 ZigBee 模塊,實(shí)物圖如圖11所示。該模塊是具有無線自組網(wǎng)功能的多跳模塊,將無線模塊和 Z-stack 協(xié)議棧的優(yōu)點(diǎn)融于一身,無需依賴基站、WiFi 等外部設(shè)備的幫助即可完成自動(dòng)組網(wǎng)過程,適用于需要進(jìn)行多跳自組網(wǎng)的應(yīng)用場(chǎng)景。
圖11:DL-LN33 模塊實(shí)物圖
該模塊完成上電后,會(huì)自動(dòng)尋找周圍同一網(wǎng)絡(luò)下的節(jié)點(diǎn)進(jìn)行通訊,與通信范圍外的節(jié)點(diǎn)間的通訊將通過范圍內(nèi)的其它節(jié)點(diǎn)代為轉(zhuǎn)發(fā)完成。即進(jìn)行多跳通信,在一次通信過程中信息最多可以經(jīng)過 16 次的轉(zhuǎn)發(fā)。與傳統(tǒng)的 ZigBee 芯片相比,DL-LN33 模塊與相鄰模塊間建立網(wǎng)絡(luò)時(shí),無需指定協(xié)調(diào)器和其它形式的關(guān)鍵節(jié)點(diǎn),使同一網(wǎng)絡(luò)中的每個(gè)模塊的地位都是相等的,網(wǎng)絡(luò)的運(yùn)行并不會(huì)因?yàn)椴糠帜K的損壞而受到影響。
此外,DL-LN33 模塊拋棄了復(fù)雜的 Z-stack 協(xié)議棧協(xié)議,將相關(guān)的協(xié)議棧和芯片驅(qū)動(dòng)程序進(jìn)行了封裝,用戶只需掌握簡(jiǎn)單的串口通信即可實(shí)現(xiàn)模塊與主控芯片間的通信。DL-LN33 模塊通過 STM32 的USART 3 進(jìn)行數(shù)據(jù)交換,其電路原理圖如圖所示。
圖12:DL-LN33 電路原理圖
2) 4G 通信電路設(shè)計(jì)
由于農(nóng)田一般都處于遠(yuǎn)離人群的地方,用戶不太可能實(shí)時(shí)地去現(xiàn)場(chǎng)查看作物的環(huán)境監(jiān)測(cè)信息,因此本文選擇使用 4G 遠(yuǎn)程通信技術(shù)將傳感器采集的相關(guān)的數(shù)據(jù)以及通過計(jì)算的作物騰發(fā)量和作物需水量數(shù)據(jù)發(fā)送到機(jī)智云物聯(lián)網(wǎng)平臺(tái)中,使用戶可以在任何地點(diǎn)實(shí)現(xiàn)對(duì)數(shù)據(jù)的實(shí)時(shí)查看。
4G通訊模組選擇GA211模塊,其搭載了一塊有數(shù)據(jù)接收處理功能無線通信模組 EC20,支持移動(dòng)、聯(lián)通、電信的 4G 網(wǎng)絡(luò),確保在各種網(wǎng)絡(luò)條件下均可正常工作。內(nèi)置了機(jī)智云的 GAgent 固件,使用時(shí)無需研究繁瑣的網(wǎng)絡(luò)通信協(xié)議和信號(hào)處理電路的架構(gòu)設(shè)計(jì),只需開發(fā) STM32 單片機(jī)的串口功能,即可輕松實(shí)現(xiàn)產(chǎn)品設(shè)備與機(jī)智云平臺(tái)之間的通信。GA211模塊實(shí)物圖如圖所示。
圖13:GA211轉(zhuǎn)接板實(shí)物圖
GA211 轉(zhuǎn)接板采用 5V 電壓供電,與 STM32 之間通過 USART 2 進(jìn)行通信,整個(gè)轉(zhuǎn)接板使用 5P 排線端子與 STM32 連接在一起,具體電路圖如圖所示。
圖14:GA211 模塊電路原理圖
? 電源模塊設(shè)計(jì)
本系統(tǒng)采用常見的+24V 電源做為系統(tǒng)的總電源,經(jīng)過處理后分別供給不同的電路使用。系統(tǒng)共有三種工作電壓:一是由外接電源提供的+24V電壓,用來為系統(tǒng)提供總的電源;二是供給 STM32 芯片和溫濕度傳感器的+3.3V 電壓;三是供給風(fēng)速傳感器模塊和 GA211 轉(zhuǎn)接板+5V 電壓。
電源模塊的設(shè)計(jì)過程中要考慮到各模塊工作時(shí)的額定電壓、電流和功率,各通信模塊的最佳供電方案等,以及上電時(shí)的紋波濾波、電涌保護(hù)、電磁兼容、瞬時(shí)電壓和瞬時(shí)電流的問題。其電路原理如圖所示。
圖15:電源模塊電路原理圖
系統(tǒng)涉及到兩種不同功能的硬件終端:農(nóng)作物現(xiàn)場(chǎng)環(huán)境信息采集終端和數(shù)據(jù)處理終端,由于其功能的不同,在相應(yīng)的硬件設(shè)計(jì)上也有所區(qū)別。為了方便系統(tǒng)的維護(hù)和降低設(shè)計(jì)的成本,采用主控單元和功能單元相隔離的設(shè)計(jì)思路,兩種不同的終端設(shè)備共用一套相同的主控單元,將不同的功能使用拓展板進(jìn)行拓展,且傳感器與電路板之間通過端口進(jìn)行連接。
當(dāng)使用中遇到部分功能失效時(shí),只需維護(hù)損壞的部分即可,降低了維護(hù)的難度和成本。功能模板部分的設(shè)計(jì)原理如圖16、圖17所示。
圖16:數(shù)據(jù)處理終端電路原理圖
圖17:信息采集終端電路原理圖
04 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件部分基于的 STM32F103VBT6 進(jìn)行開發(fā),主要功能是通過傳感器采集作物生長(zhǎng)環(huán)境中的溫濕度和風(fēng)速信息,利用 ZigBee 無線通信網(wǎng)絡(luò)向數(shù)據(jù)處理節(jié)點(diǎn)發(fā)送采集到相關(guān)數(shù)據(jù),將其與作物系數(shù)相結(jié)合計(jì)算出作物需水量,并將相應(yīng)的數(shù)據(jù)傳輸?shù)綑C(jī)智云物聯(lián)網(wǎng)平臺(tái)上。因此軟件部分也相應(yīng)的分為信息采集終端和數(shù)據(jù)處理終端兩個(gè)部分,下面將對(duì)相應(yīng)部分的軟件設(shè)計(jì)進(jìn)行詳細(xì)的介紹。
? 信息采集終端的軟件設(shè)計(jì)
信息采集終端主要的功能是對(duì)作物現(xiàn)場(chǎng)的環(huán)境信息進(jìn)行采集,并通過 DL-LN33 模塊將采集的數(shù)據(jù)傳輸?shù)綌?shù)據(jù)處理終端。當(dāng)信息采集終端上電后,首先完成STM32 單片機(jī)和相關(guān)硬件設(shè)備的初始化,隨后 DL-LN33 無線通信模塊將進(jìn)行信道掃描,與數(shù)據(jù)處理終端建立通信。待其與數(shù)據(jù)處理終端成功建立通信后,將采集到的溫濕度和風(fēng)速數(shù)據(jù)周期性的發(fā)送給數(shù)據(jù)處理終端。信息采集終端的工作流程圖如圖所示。
圖18:信息采集終端的工作流程圖
1) 溫濕度采集程序設(shè)計(jì)
本文以 DHT11 傳感器為基礎(chǔ)來實(shí)現(xiàn)對(duì)農(nóng)作物生長(zhǎng)環(huán)境溫濕度的實(shí)時(shí)采集,并將其轉(zhuǎn)換為數(shù)字信號(hào)后傳輸?shù)?STM32F103VBT6 中。
DHT11 與 STM32 之間基于單總線協(xié)議進(jìn)行數(shù)據(jù)通信時(shí),需要遵循嚴(yán)格的時(shí)序關(guān)系。溫濕度采集的程序流程圖如圖所示。
圖19:溫濕度采集的程序流程圖
2) 風(fēng)速采集程序設(shè)計(jì)
本文中所采用的 RS-FSJT-V05 風(fēng)速傳感器的輸出量為模擬信號(hào),在實(shí)際使用過程中需要對(duì)其進(jìn)行AD 轉(zhuǎn)換。STM32F103VBT6 內(nèi)部含有2個(gè)12位的 ADC 轉(zhuǎn)換通道,其數(shù)字量的最大值為4096,其范圍為0~4095。本文通過 ADC1 的通道1來完成對(duì)風(fēng)速的A/D 轉(zhuǎn)換,其轉(zhuǎn)換公式如下:
公式中,adcx是RS-FSJT-V05 傳感器輸出的模擬量經(jīng)過 A/D 轉(zhuǎn)換后的數(shù)字量,MAX_WIND_SPEED 是最大可測(cè)風(fēng)速。風(fēng)速傳感器的代碼流程圖如圖所示。
圖20:風(fēng)速傳感器的代碼流程圖
RS-FSJT-V05 傳感器的模擬量輸出容易受到基準(zhǔn)電壓浮動(dòng)或其他外部因素的干擾,導(dǎo)致其采集的單次信號(hào)并不能完全準(zhǔn)確的反應(yīng)真實(shí)的數(shù)據(jù),因此在返回采樣值之前需要進(jìn)行濾波處理來盡可能地消除干擾誤差,來提高數(shù)據(jù)的精確度。
通過中位值平均濾波算法來對(duì)采樣值進(jìn)行數(shù)字濾波,該方法將中位值濾波和算術(shù)平均值濾波兩種濾波技術(shù)的優(yōu)點(diǎn)綜合在一起,對(duì)于偶然條件下發(fā)生的脈沖性干擾具有較強(qiáng)的濾除作用。其代碼如圖所示。
圖21:風(fēng)速傳感器的代碼流程圖
3) DL-LN33 無線通信模塊的軟件設(shè)計(jì)
DL-LN33 無線通信模塊采用自主研發(fā)的的通信協(xié)議進(jìn)行數(shù)據(jù)的傳輸與通信,其通信過程與 ZigBee 類似,但封裝了更加復(fù)雜的協(xié)議棧和芯片驅(qū)動(dòng)程序,只需了解簡(jiǎn)單的串口協(xié)議即可進(jìn)行通信,操作過程得到了極大的簡(jiǎn)化。
上電后,同一網(wǎng)絡(luò)下的不同地址的 DL-LN33 無線通信模塊在通信之前需要指定相同的信道和網(wǎng)絡(luò) ID,并通過軟件來重啟設(shè)備使相關(guān)的設(shè)置生效。然后擁有相同信道和網(wǎng)絡(luò) ID 的DL-LN33 通信模組之間將自動(dòng)地組建一個(gè)通信網(wǎng)絡(luò),即可通過其內(nèi)部協(xié)議封裝的數(shù)據(jù)發(fā)送和接收函數(shù)來進(jìn)行數(shù)據(jù)間的正常交互。
系統(tǒng)利用 STM32 單片機(jī)實(shí)現(xiàn)對(duì) DL-LN33無線通信模塊的初始化和數(shù)據(jù)傳輸,程序的處理流程如圖所示。
圖22:DL-LN33 無線通信程序流程圖
DL-LN33 無線通信模塊初始化完成后,信息采集終端即可將采集到溫濕度和風(fēng)速數(shù)據(jù)賦給 DL-LN33 模塊中的數(shù)據(jù)部分,并通過協(xié)議中的發(fā)送函數(shù)傳輸給數(shù)據(jù)處理節(jié)點(diǎn),對(duì)應(yīng)的代碼如圖所示。
圖23:DL-LN33 無線通信模塊接收數(shù)據(jù)代碼
數(shù)據(jù)處理終端接收到來自信息采集終端的指令信息后,將相應(yīng)的數(shù)據(jù)從結(jié)構(gòu)體包中提取出來,以便進(jìn)行后續(xù)的處理,對(duì)應(yīng)的代碼如下圖所示。
圖24:DL-LN33 無線通信模塊接收數(shù)據(jù)代碼
? 數(shù)據(jù)處理終端的軟件設(shè)計(jì)
數(shù)據(jù)處理終端的主要作用是通過 DL-LN33 無線通信模塊接收信息處理終端發(fā)送過來的農(nóng)作物環(huán)境信息的相關(guān)數(shù)據(jù)和算法計(jì)算得到的最佳網(wǎng)絡(luò)參數(shù),再根據(jù)計(jì)算出作物需水量,并將相應(yīng)的數(shù)據(jù)信息通過 GPRS 模塊傳輸至機(jī)智云物聯(lián)網(wǎng)平臺(tái)??蓪?duì)機(jī)智云平臺(tái)自動(dòng)生成的代碼進(jìn)行修改移植,來達(dá)到數(shù)據(jù)通過機(jī)智云平臺(tái)進(jìn)行遠(yuǎn)程顯示和控制的目的。
機(jī)智云物聯(lián)網(wǎng)平臺(tái)的優(yōu)勢(shì)在于通過為設(shè)計(jì)人員提供各種簡(jiǎn)單易用的的智能應(yīng)用硬件開發(fā)工具和豐富多樣的 SDK 和 開放API 等數(shù)據(jù)開發(fā)服務(wù),可以極大降低傳統(tǒng)的產(chǎn)品的研發(fā)運(yùn)營(yíng)成本。同時(shí)其提供的 GAgent 開發(fā)固件可以自主完成數(shù)據(jù)在設(shè)備、機(jī)智云平臺(tái)和應(yīng)用端之間的轉(zhuǎn)發(fā)和處理。開發(fā)過程中,開發(fā)人員只需通過串口將燒錄好 GAgent 固件的 WiFi、GPRS等聯(lián)網(wǎng)模塊與硬件產(chǎn)品進(jìn)行連接,即可實(shí)現(xiàn)設(shè)備和云之間的數(shù)據(jù)通信功能。
1) 機(jī)智云云端配置
步驟①:創(chuàng)建相應(yīng)的產(chǎn)品
開發(fā)人員根據(jù)硬件資源在機(jī)智云平臺(tái)創(chuàng)建相應(yīng)的產(chǎn)品,指定產(chǎn)品的名稱和通訊技術(shù)方案。產(chǎn)品創(chuàng)建成功后,平臺(tái)將會(huì)提供 Product Key 和 Product Secret 兩個(gè)數(shù)據(jù)。進(jìn)行不同產(chǎn)品區(qū)分時(shí)主要依據(jù) Product Key 參數(shù),該參數(shù)在生成代碼時(shí)自動(dòng)寫入 MCU 中,主要用于機(jī)智云平臺(tái)據(jù)此來識(shí)別相應(yīng)的 WiFi/GPRS 設(shè)備。Product Secret參數(shù)則用于 APP 或服務(wù)器與平臺(tái)進(jìn)行數(shù)據(jù)交互。
圖25:機(jī)智云平臺(tái)創(chuàng)建的產(chǎn)品相關(guān)信息
步驟②:創(chuàng)建相應(yīng)的數(shù)據(jù)點(diǎn)
數(shù)據(jù)點(diǎn)的功能是用來比較抽象地描述產(chǎn)品的主要功能,創(chuàng)建成功后云端將自動(dòng)將為其定義合適的數(shù)據(jù)格式并生成相應(yīng)的通訊協(xié)議。
本設(shè)計(jì)需要把作物環(huán)境信息(溫濕度、風(fēng)速)、作物騰發(fā)量和作物需水量的數(shù)據(jù)傳輸?shù)綑C(jī)智云平臺(tái)中,這四個(gè)參數(shù)均通過相應(yīng)的數(shù)字進(jìn)行顯示且只能讀取不能修改。由于制定灌溉策略時(shí)多是依據(jù)作物需水量來計(jì)算,所以設(shè)置一個(gè)可進(jìn)行修改的的作物系數(shù)來根據(jù)作物騰發(fā)量計(jì)算出作物需水量。
實(shí)際操作為通過客戶端設(shè)置一個(gè)可以根據(jù)實(shí)際情況進(jìn)行修改的數(shù)值,該數(shù)據(jù)可通過云端修改主控芯片中相應(yīng)的參數(shù)大小,主控芯片可利用此數(shù)值和作物騰發(fā)量計(jì)算出作物需水量,參數(shù)類型為數(shù)值,對(duì)于云端來說可寫。創(chuàng)建相應(yīng)的數(shù)據(jù)點(diǎn)如圖所示。
圖26:植物騰發(fā)量計(jì)算的相關(guān)數(shù)據(jù)點(diǎn)信息
步驟③:下載代碼并移植修改
數(shù)據(jù)點(diǎn)設(shè)置完成后,即可選擇對(duì)應(yīng)的硬件平臺(tái),輸入對(duì)應(yīng)的Product Secret 后生成相應(yīng)的代碼。下載生成的 MCU 代碼結(jié)構(gòu)如圖所示。
圖27:MCU SDK 文件內(nèi)容目錄結(jié)構(gòu)
開發(fā)人員無需關(guān)注黑色部分標(biāo)注的基本的 STM32 開發(fā)文件,只需根據(jù)項(xiàng)目的需要完成相關(guān)的驅(qū)動(dòng)配置和數(shù)據(jù)處理即可,其中嵌入式設(shè)備與機(jī)智云平臺(tái)間的數(shù)據(jù)交互處理函數(shù)主要位于 Gizwits_product.c 和Gizwits_product.h 文件中中,根據(jù)設(shè)備的功能編寫相應(yīng)的硬件動(dòng)作執(zhí)行函數(shù)即可。
2) 機(jī)智云程序流程圖
機(jī)智云自動(dòng)生成代碼后,開發(fā)人員需要將代碼移植到 Keil MDK 平臺(tái)的工程文件中。得益于 GAgent 固件中 gizwits 串口協(xié)議層代碼的完整性,MCU 與機(jī)智云的交互過程已經(jīng)被全部封裝,開發(fā)人員只需完成 MCU 中串口函數(shù)的發(fā)送、中斷以及 Giziwits_product.c 中的業(yè)務(wù)邏輯即可。機(jī)智云串口協(xié)議層在 STM32上代碼結(jié)構(gòu)框圖如圖所示。
圖28:機(jī)智云串口協(xié)議層代碼的結(jié)構(gòu)框圖
由圖28可知,MCU 上電后,首要的工作是對(duì)外設(shè)、用戶和協(xié)議進(jìn)行初始化。當(dāng)GA211 模塊通過串口協(xié)議配置成功并與機(jī)智云平臺(tái)成功連接后,該模塊就可用來接收來自云平臺(tái)或手機(jī) APP 的信息。
信息接收完成后,將通過 GA211 模塊內(nèi)部的 GAgent 協(xié)議幀的方式發(fā)送到 STM32 主控芯片進(jìn)行處理,主控芯片將接收到的數(shù)據(jù)存放在緩沖區(qū),通過程序定時(shí)對(duì)緩沖區(qū)中的數(shù)據(jù)進(jìn)行解析處理,并推送給數(shù)據(jù)處理函數(shù)進(jìn)行相應(yīng)的事件處理。
STM32主控單元也可以將信息采集終端發(fā)送過來的數(shù)據(jù)存入各個(gè)數(shù)據(jù)點(diǎn),以數(shù)據(jù)點(diǎn)協(xié)議棧格式發(fā)送到 GA211 模塊,再由 GA211 模塊將數(shù)據(jù)傳輸?shù)綑C(jī)智云平臺(tái),云平臺(tái)根據(jù)報(bào)文中的數(shù)據(jù)信息進(jìn)行相應(yīng)的事件處理。
3) STM32 上的串口協(xié)議棧移植
系統(tǒng)的數(shù)據(jù)處理終端需要通過 USART3 來接收數(shù)據(jù)采集終端經(jīng)過 DL-LN33 模塊傳輸來的數(shù)據(jù),并根據(jù)這些數(shù)據(jù)和作物需水量的計(jì)算。
由于機(jī)智云自動(dòng)生成的代碼中只包含 USART1、2 的初始化和處理函數(shù),因此首先需要對(duì) USART3 進(jìn)行初始化處理。串口3 主要用于 DL-LN33 模塊與 STM32 之間傳輸數(shù)據(jù),DL-LN33 模塊接收到來自信息采集終端的數(shù)據(jù)后,先將數(shù)據(jù)存入緩沖區(qū),然后主控芯片將串口中的數(shù)據(jù)一位位的讀取出來,相應(yīng)的代碼如圖29、圖30所示。
圖29:串口3初始化
圖30:MCU 讀取串口數(shù)據(jù)
完成數(shù)據(jù)的讀取和作物騰發(fā)量的預(yù)測(cè)后,需要將相關(guān)的數(shù)據(jù)傳輸?shù)綑C(jī)智云物聯(lián)網(wǎng)平臺(tái),并完成作物系數(shù)與 STM32 主控芯片之間的通信,機(jī)智云平臺(tái)與主控芯片間數(shù)據(jù)上報(bào)和下行控制的程序流程圖如圖31、圖32所示。
圖31:數(shù)據(jù)上報(bào)的機(jī)智云協(xié)議
圖32:下行控制的機(jī)智云協(xié)議
由于作物系數(shù)只是完成對(duì)作物騰發(fā)量的校準(zhǔn)來計(jì)算作物需水量,并未觸發(fā)事件的處理,因此只需將上述提到的串口接收函數(shù)和作物需水量計(jì)算函數(shù)放入 gizwitsHandle() 函數(shù)中的代碼即可,如下圖所示。
圖33:基于 C 語言的數(shù)據(jù)預(yù)測(cè)過程
05 系統(tǒng)調(diào)試與運(yùn)行
為了驗(yàn)證基于 STM32 和機(jī)智云物聯(lián)網(wǎng)平臺(tái)的農(nóng)作物需水量計(jì)算系統(tǒng)各部分是否可以達(dá)到既定的設(shè)計(jì)目標(biāo),以及系統(tǒng)運(yùn)行時(shí)是否存在問題,需要對(duì)其進(jìn)行一系列的軟硬件測(cè)試。驗(yàn)證測(cè)試可以分為三個(gè)部分,包括無線通信測(cè)試、作物環(huán)境信息的采集和數(shù)據(jù)與機(jī)智云平臺(tái)進(jìn)行交互通訊。
?無線通信模塊的功能驗(yàn)證
無線通信模塊的主要功能是在信息采集終端和數(shù)據(jù)處理終端之間建立無線通信網(wǎng)絡(luò),使數(shù)據(jù)可以在信息采集終端和數(shù)據(jù)處理終端之間進(jìn)行通信,以便進(jìn)行后續(xù)數(shù)據(jù)的處理。
為了可以方便地查看模塊間的通信網(wǎng)絡(luò),使用專用的 DL-LN33 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)顯示軟件,將 DL-LN33 模塊與 USB轉(zhuǎn) TTL 的 CP2102 連接后,即可在該軟件中顯示出 DL-LN33 模塊間的網(wǎng)絡(luò)結(jié)構(gòu)。驗(yàn)證實(shí)驗(yàn)采用了一個(gè)信息采集終端和一個(gè)數(shù)據(jù)處理終端的模式,其網(wǎng)絡(luò)結(jié)構(gòu)如圖所示。
圖34:DL-LN33 無線通信模塊的網(wǎng)絡(luò)結(jié)構(gòu)
將其同時(shí)上電稍等片刻后,兩個(gè) DL-LN33 無線通信模塊即可建立如圖34所示的網(wǎng)絡(luò)結(jié)構(gòu)。其中紅色的 3AD4 節(jié)點(diǎn)為數(shù)據(jù)處理節(jié)點(diǎn)中的 DL-LN33 模塊,可以用來傳輸整個(gè)自組網(wǎng)的網(wǎng)絡(luò)信息;另外一個(gè) 11BF 節(jié)點(diǎn)為信息采集終端中的 DL-LN33 模塊,用來將信息采集端點(diǎn)采集的數(shù)據(jù)發(fā)送到數(shù)據(jù)處理端點(diǎn)。
? 作物環(huán)境信息采集功能驗(yàn)證
作物環(huán)境信息的采集功能驗(yàn)證主要通過 Keil μvision 的在線調(diào)試功能完成。設(shè)計(jì)好信息采集終端的軟硬件后,通過Keil μvision 進(jìn)入在線調(diào)試模式并將溫濕度、風(fēng)速的變量數(shù)據(jù)導(dǎo)入到內(nèi)存窗口中進(jìn)行顯示,如圖所示。
圖35:作物環(huán)境信息采集功能驗(yàn)證
從圖中可以看出,信息采集終端采集到的溫度為10℃,濕度為37%,風(fēng)速為0.6m/s。這說明信息采集終端可以有效地對(duì)作物的生長(zhǎng)環(huán)境進(jìn)行采集,其軟硬件設(shè)計(jì)符合預(yù)期的要求。
?數(shù)據(jù)與機(jī)智云的交互通信功能驗(yàn)證
驗(yàn)證環(huán)境信息數(shù)據(jù)與機(jī)智云的交互過程,主要包括溫濕度、風(fēng)速和作物需水量等數(shù)據(jù)的上傳和作物系數(shù)的下發(fā)過程。該過程首先要驗(yàn)證 GA211 模塊是否可以正常接入機(jī)智云平臺(tái)。
GA211模塊內(nèi)部封裝了 機(jī)智云GAgent 固件,插入電話卡后,通過 STM32主控芯片的 USART2 與機(jī)智云建立通信,其功能驗(yàn)證可以通過機(jī)智云串口工具進(jìn)行驗(yàn)證,將其與電腦接口通過 USB 轉(zhuǎn) CP2102 模塊進(jìn)行連接,然后在串口工具的配置中輸入產(chǎn)品的 Product Key 和 Product Secret。輸入完成后切換到模擬 MCU 功能,等待一段時(shí)間后即可看到模塊連接上基站和 M2M 服務(wù)器(即機(jī)智云)。此時(shí),在機(jī)智云平臺(tái)上可以看到相應(yīng)的設(shè)備處于在線狀態(tài)。
圖36:GA211 轉(zhuǎn)接板與機(jī)智云連接通信測(cè)試
圖37:設(shè)備上線記錄
經(jīng)過測(cè)試,GA211轉(zhuǎn)接板可以正常接入機(jī)智云物聯(lián)網(wǎng)平臺(tái)。經(jīng)過以上分析,系統(tǒng)各部分的功能均可正常工作,且滿足設(shè)計(jì)的要求。接下來對(duì)整個(gè)系統(tǒng)的功能進(jìn)行測(cè)試,由于受實(shí)驗(yàn)條件的限制,通過在實(shí)驗(yàn)室中來完成對(duì)系統(tǒng)的整體測(cè)試驗(yàn)證。測(cè)試運(yùn)行的實(shí)物圖如圖所示。
圖38:系統(tǒng)實(shí)物圖
上電啟動(dòng)一段時(shí)間后,信息采集終端所采集的到的溫濕度、風(fēng)速數(shù)據(jù)通過 DL-LN33模塊發(fā)送至數(shù)據(jù)處理終端,經(jīng)過計(jì)算得出作物騰發(fā)量和作物需水量,并經(jīng) 4G 模塊的GA211 轉(zhuǎn)接板轉(zhuǎn)發(fā)到機(jī)智云物聯(lián)網(wǎng)平臺(tái)。農(nóng)業(yè)管理人員可直接使用通過 PC 端的用戶網(wǎng)頁登錄機(jī)智云平臺(tái),實(shí)現(xiàn)對(duì)采集數(shù)據(jù)的遠(yuǎn)程訪問。
此外管理人員可通過機(jī)智云管理后臺(tái)查看設(shè)備的運(yùn)行記錄和通信日志,也可通過折線圖來顯示實(shí)時(shí)的監(jiān)測(cè)數(shù)據(jù)。需要注意的是,在折線圖中,若當(dāng)前的監(jiān)測(cè)數(shù)值與前個(gè)時(shí)間間隔的數(shù)據(jù)一致,則不會(huì)上傳至機(jī)智云平臺(tái),仍以上個(gè)時(shí)間間隔的數(shù)據(jù)顯示,直至數(shù)據(jù)發(fā)送變化時(shí)才會(huì)顯示最新的數(shù)據(jù)。
圖39:設(shè)備接入云端的上下線記錄
圖40:設(shè)備運(yùn)行數(shù)據(jù)記錄詳情
為了解決電腦使用不方便的問題,機(jī)智云提供了基于 APP 的遠(yuǎn)程數(shù)據(jù)查看工具,通過 APP 可以隨時(shí)查看設(shè)備的狀態(tài)以及在線設(shè)備的監(jiān)測(cè)數(shù)據(jù)。手機(jī) APP 的使用測(cè)試圖如圖所示。
圖41:手機(jī) APP 使用測(cè)試圖
APP Demo 是機(jī)智云提供的一款可以運(yùn)行在 Android、iOS 系統(tǒng)上的遠(yuǎn)程數(shù)據(jù)查看程序。使用時(shí),通過 APP中的二維碼掃描 GAgent_Debugger_V3.5 助手中生成的二維碼界面即可完成與對(duì)應(yīng)設(shè)備的綁定,二維碼生成時(shí)需要提供 Product Key 和 MAC/IMEI,其中MAC/IMEI 為 GA211 轉(zhuǎn)接板的識(shí)別碼,連接機(jī)智云后可在設(shè)備日志中找到。
設(shè)備綁定完成后即可通過APP 遠(yuǎn)程查看系統(tǒng)采集到的溫濕度及風(fēng)速等數(shù)據(jù),也可通過 APP 設(shè)置相應(yīng)的作物系數(shù),完成對(duì)作物需水量的計(jì)算,并在 APP 中進(jìn)行顯示。產(chǎn)品設(shè)備與 APP 連接成功后的測(cè)試如圖42所示。說明設(shè)計(jì)的系統(tǒng)可以根據(jù)采集到的農(nóng)作物的環(huán)境信息完成對(duì)作物需水量的計(jì)算,并通過 APP 進(jìn)行顯示,到達(dá)了預(yù)期的設(shè)計(jì)要求。
圖42:設(shè)備對(duì)接 APP 運(yùn)行測(cè)試圖
06 系統(tǒng)設(shè)計(jì)總結(jié)
本系統(tǒng)為設(shè)計(jì)遠(yuǎn)程智能作物需水量控制方案,提出了基于 STM32和機(jī)智云物聯(lián)網(wǎng)平臺(tái)的農(nóng)作物需水量統(tǒng)計(jì)系統(tǒng),可以廣泛應(yīng)用于分析和計(jì)算作物的真實(shí)需水量,且可以隨時(shí)隨地通過機(jī)智云的管理后臺(tái)或手機(jī) APP 來查看相應(yīng)的數(shù)據(jù),為農(nóng)田管理人員提供真實(shí)的作物需水量情況,為其制定合理的灌溉策略提供數(shù)據(jù)參考。
-
微控制器
+關(guān)注
關(guān)注
48文章
7454瀏覽量
150851 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2900文章
44062瀏覽量
370214 -
STM32
+關(guān)注
關(guān)注
2264文章
10854瀏覽量
354291
原文標(biāo)題:方案|基于STM32+機(jī)智云物聯(lián)網(wǎng)平臺(tái)的農(nóng)作物需水量計(jì)算系統(tǒng)
文章出處:【微信號(hào):IoTMaker,微信公眾號(hào):機(jī)智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論