|
基于arduino +機智云物聯網平臺的陽臺生態控制系統的設計 李軍輝 北京農業職業學院
摘要 以基質培養的綠色植物所在的半封閉陽臺系統為研究對象,設計基于Arduino Uno WIFI +機智云物聯網平臺的遠程環境控制系統。系統通過傳感器實時采集溫度、濕度、光照等環境參數,通過WIFI無線網絡上傳機智云物聯網平臺的服務器。用戶通過手機等移動終端下載應用APP,訪問機智云服務器,實時了解系統的環境參數,通過遠程啟動灌溉、補光、關窗等操作調節環境參數。系統采用無線連接的WIFI +云服務器的形式,不需布線和支付移動費用,整個硬件系統經濟實用,可應用在城市居民的陽臺植物種植上。
作者簡介: 李軍輝(1972—),男,河北石家莊人,北京農業職業學院機電工程學院講師,碩士。研究方向:農業機械工程。
1 陽臺生態控制系統研究現狀分析
關于陽臺農業控制系統,國內外學者開展了一些研究。浙江大學周趙鳳等基于ST M8S208C8T6芯片, 設計了基于TJA1050芯片CAN總線營養液循環控制系統和無土栽培的陽臺農業立體栽培機控制器[1];西北農業大學梁鑫等研究了陽臺農場控制系統[2];國家農業智能裝備工程技術研究中心郭文忠等基于STM32F103微控制器,設計了陽臺農業立體栽培自動控制系統,實現了軟硬件結合的自動補水與補光控制[3];電子科技大學高虎等設計開發了基于Android系統的手機APP為遠程控制端, 以STM32單片機為控制中心,實現了遠程操控陽臺上晾衣、澆花等功能[4];南陽理工學院李云強以Arduino Uno作為主控芯片,通過GSM模塊與手機通信,設計了基于Arduino的智能溫室大棚控制系統[5]。還有大量學者對控制策略進行了研究。
2 陽臺植物環境監測控制系統硬件平臺設計
陽臺植物生態環境是一個半封閉、空間小的生態系統,是一個時變非線性的多輸入多輸出系統。系統的溫度、濕度、光照強度等各個參數相互作用、相互耦合,難以建立比較準確的控制模型。簡單的控制策略難以實現準確的調控,生態系統的環境控制策略一般采用智能控制組合策略,可解決各個參數相互耦合造成的超調和震蕩,實現對環境參數更好地控制,使系統具有穩定性和適應性[6]。常用的控制策略有基于模糊的PID模糊控制策略、遺傳模糊控制策略、神經網絡控制策略、專家控制策略等,根據陽臺生態系統的特點,采用比較成熟的模糊PID控制策略,設計控制系統,見圖1。

2.1控制系統的組成
由圖1可知,陽臺植物生態監測控制系統由環境感知模塊、環境調整控制模塊、環境參數顯示模塊和環境調節執行模塊四部分構成。環境感知模塊包括土壤濕度傳感器、溫度傳感器、光照強度傳感器等,用于實時采集生態環境系統參數數據;環境調整控制模塊是整個系統的核心,采用Arduino Uno開發板,一方面實時接收感知模塊的數據,上傳物聯網云服務器,另一方面接收遠程控制指令,下發執行模塊;調節執行模塊由灌溉控制電機、開窗控制電機等組成;環境參數顯示模塊由LCD顯示器、遠程移動終端構成。
2.2 控制系統的運行
環境感知模塊的傳感器實時采集陽臺植物生態環境的溫度、濕度、光照參數,并上傳至Arduino開發控制板,控制板將環境參數顯示在本地LCD顯示器上,并通過網絡擴展部分上傳至物聯網云服務器,供移動終端遠程實時訪問。遠程終端用戶根據植物的環境參數,在APP上通過云服務器向Arduino開發板下達指令,通過灌溉、開窗等調整生態系統的環境參數。另外,控制系統也可設置環境參數閾值,自動調整生態系統的環境參數。環境執行模塊接到云端指令后,啟動灌溉電機進行灌溉,開啟開窗電機、補光燈進行環境參數調節。
3 控制系統硬件組成
控制系統主要應用在城市家庭陽臺,為了便于推廣應用,硬件選用原則為價格便宜、性能可靠、精度夠用。
3.1 Arduino控制板
Arduino控制板是應用廣泛的開源硬件平臺,其價格便宜、功能強大,對硬件配置要求低。本文選用Arduino Uno開發版作為系統控制核心,開發版通過WIFI 擴展模塊連接網絡。微控制器采用的是Atmel的ATmega328。在軟件方面,Arduino有基于Eclipse 的IDE開發環境自身的軟件平臺,采用類C的語言進行編程,模塊化的封裝函數供程序開發者調用,預裝了Bootloader程序,不需要外部燒寫,很容易編寫代碼并通過USB端口下載到開發板上。簡化嵌入式系統的設計過程,其主要性能參數見表1。


Arduino Uno 開發板通過輸入輸出通道接受溫度、濕度、光照傳感器采集的環境參數信號,通過I2C接口驅動在LCD顯示屏上顯示。移動終端通過機智云發來的遠程指令和智能控制策略,驅動補光、灌溉電機、開窗電機等,調節生態系統環境。將傳感器上傳的參數通過WIFI模塊,上傳到機智云服務器,供移動終端遠程訪問。
3.2.1 土壤濕度傳感器
本文選用奧松機器人的土壤濕度傳感器,它通過測量土壤相對含水率來確定土壤濕度大小。工作原理是土壤的電阻值因含水量的不同而不同,通過2個探頭間的阻值變化來反映土壤的濕度情況,如圖3所示。當傳感器探頭懸空時,三極管基極處于開路狀態,輸出為0。土壤濕度不同使三極管的基極提供了大小變化的導通電流,發射極經過下拉電阻后轉換成電壓[7]。設定輸出與濕度的關系,0~30為干土壤、30~70為濕土壤、70~95為水。土壤濕度傳感器共引出3個引腳,分別是電源正 Vcc、電源地 GND、信號端 S,將土壤濕度傳感器直接連接到 Arduino UNO 控制器的模擬引腳,例如 A1引腳,見圖3。

3.2.2溫度傳感器采用DHT11
DHT11溫濕度傳感器體積小、功耗低、響應快、抗干擾能力強,輸出數字信號已校準。內部的8位單片機與空氣濕度元件和空氣溫度元件相連,輸出數據可由數據采集設備直接讀取。傳感器的OTP內存中存有程序形式的校準系數,在檢測信號的處理過程中調用校準系數進行校正[8]。采用單線制串行輸出接口,4針單排引腳封裝。DHT11數字溫度傳感器模塊共引出3個引腳,分別是地線GND、電源Vcc和數據線S。實際應用時,將S端接在Arduino Uno的一個數字輸入接口。傳感器分辨率為0.1°C,精度為±0.5°C,檢測范圍為- 40°C ~80°C,工作電壓為3.3~5.5 V。如圖4所示。

3.2.3光照強度傳感器
GY-30光照強度傳感器,采用ROHM原裝BH1750FVI芯片,I2C數字接口,支持速率最大為400 Kbps。傳感器內置16bitAD轉換器直接數字輸出,省略復雜的計算,省略標定,通過計算電壓獲得有效數據。供電電源為3~5V,光照度范圍為0~65535 lx,分辨率最小到1 lx,精度誤差最大值為±20%。不區分環境光源,接近視覺靈敏度分光特性,可對廣泛亮度進行1 lx高精度測定。標準NXP IIC通信協議模塊內部包含通信電平轉換,與5V單片機IO直接連接。在Arduino Uno硬件上,A4、A5連接GY-30的SDA、SCL引腳,見圖5。
3.2.4 esp8266 WIFI接入模塊
Arduino采用WIFI形式接入互聯網,采用ESP8266模塊集成到Arduino Uno 開發版上。它是超低功耗的UART-WIFI 模塊,封裝尺寸小,可將用戶的物理設備連接到WIFI 上,進行互聯網或局域網通信,實現聯網功能。
3.2.5 物聯網云服務平臺機智云
物聯網云服務平臺接受系統傳感器上傳的參數,供遠程客戶訪問;接受遠程客戶下達的命令,發送給Arduino控制器,通過執行模塊調節系統環境參數。平臺向開發者提供API接口,為開發者提供數據處理和存儲服務。規模比較大的平臺有 Scinan、Arrayent、COSM/Pachube 、機智云等。COSM是目前用戶量最大的開放物聯網平臺,能通過簡單的開源硬件或者單片機,實現傳感器數據的上傳和存儲,還提供一系列的數據展現方式。
本文采用機智云平臺,它向開發者提供了非常方便的智能硬件開發框架和云服務功能。在平臺上可以直接定義產品和進行設備端開發調試,并提供應用開發、產品測試、云端開發、數據服務功能,覆蓋智能硬件的全生命周期服務
4 軟件設計及主要工作流程
在機智云創建開發者帳號,輸入物理地址創建新產品,輸入產品數據點,創建產品數據信息,見圖6
4.1.創建虛擬設備

機智云數據點設置
4.1.1 應用開發
硬件層面上,機智云提供已經燒錄GAgent(固件)的通訊模塊,實現上層應用(APP應用、機智云云端)到設備的雙向數據通訊,以及配置入網、發現綁定。軟件層面,機智云提供開發框架代碼實現了底層通信協議的解析封包,通信數據與傳感器數據的轉換,并供開發API接口。在本系統設計中,在代碼框架事件處理邏輯中添加環境傳感器、電機、水泵等控制函數。當設備偵聽到云端或APP端的數據后,代碼將數據轉換成事件通知應用層設備。下發設備數據是APP、云端控制設備,經過云端直接下發給GAgent。上報設備數據通過系統中設備主動上報當前狀態,當設備MCU收到WIFI模組控制產生的狀態變化,設備MCU立刻主動上報當前狀態,發送頻率不受限制。
4.2 Arduino Uno 控制板開發
智能陽臺生態系統以Arduino Uno為控制核心,支持C 語言與匯編語言混合編寫, 底層驅動程序由匯編語言編寫, 對外采用C 語言接口。程序開發環境選用軟件Arduino IDE5.0,操作系統為Microsoft Windows 7(32位)。在Arduino IDE5.0配置開發環境,導入機智云物聯網平臺的硬件開發庫文件,開發各模塊庫函數,編譯好程序后下載到開發版進行調試。該系統程序主要由主程序、初始化子程序、偵聽遠程讀指令函數、遠程控制模塊APP、讀取環境光照子程序、讀取土壤濕度子程序、讀取空氣溫度子程序組成。程序流程見圖7。

4.3遠程控制端APP開發
機智云物聯網平臺的Android平臺SDK封裝了手機與機智云智能硬件的通訊過程,手機與云端的通訊過程。提供配置入網、發現、連接、控制、心跳、狀態上報、報警通知等。APP開源框架提供用戶注冊登錄、配置設備入網、設備發現控制、消息推送等功能,見圖8。

遠程app控制
5系統實驗
本系統在陽臺實訓室測試時,陽臺已經裝入寬帶并提供WIFI環境,控制板通過WIFI接入網絡。首先,打開手機APP,讀取陽臺的溫度、土壤濕度、光照環境參數,檢測溫度、濕度和光照傳感器是否正常工作,也可遠程通過Arduino終端節點控制照明燈、澆水和開窗繼電器的開關,見圖9。

Android APP工程工作
6結論
通過設計和實驗室模擬測試,基于Arduino +機智云物聯網平臺的陽臺生態控制系統可有效地實現遠程控制陽臺生態系統環境,具有安全可靠、擴展性強和經濟的優點,可以推廣到寵物飼喂等系統。該系統具有很強的可實施性,在城市具有很大的應用空間,并有較好的社會效益和經濟效益。
|