前言:想要寫出一篇引人入勝的文章?我們特意為您整理了設施農業物聯網網關設計研究范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:在設施農業中應用物聯網技術,可以對設施農業進行升級,提高設施農業的現代化水平,使用物聯網網關可以簡化物聯網的設計和實施。介紹了一種采用無線接入和有線接入、可級聯的設施農業物聯網網關的設計方案。
關鍵詞:網關;物聯網;設施農業
在設施農業中應用物聯網技術,可以對設施農業進行升級,提高設施農業的現代化水平,實現智能農業,比如在遠程就可實時監控生產環境的溫濕度、光照等情況,可實現天窗開閉、風機運行和水簾降溫等程序的遠程控制或自動控制。在實施物聯網過程種也存在一些問題:1)在物聯網的三層架構體系中,包含傳感器的感知層的信息種類較大,比如有溫度、濕度、光照度、二氧化碳濃度等,傳感器的類型較多,它們的接口和協議也是多種多樣,比如模擬接口、RS485接口、Zig⁃Bee接口;2)不同類型的通信技術都只能各自組網,通信的接收端必須有對應通信發送端的接收器才能完成數據通信,因此控制中心的計算機需要連接不同的接收器接入不同的傳感器的網絡,還需要解析不同的協議;3)傳感器網絡的通信技術,比如Zigbee、RS485等屬于近距離通信,如果要傳輸數據到遠程服務器,就需要增加設備進行網絡轉換;4)大量傳感器接入到服務器,會增加服務器的負擔,需要更高性能的服務器。物聯網網關是連接感知層和網絡層的關鍵節點設備,是物聯網的重要設備,具有網絡轉換、協議轉換、數據交換等功能,使用物聯網網關可以簡化物聯網的設計和實施,可以解決上述問題。
1系統總體結構和功能配置
1.1系統結構和原理
本方案的物聯網網關,由上行通信接口、下行通信接口、主控模塊等部分組成(見圖1)。1)上行通信接口,連接遠程服務器(云端系統)、用戶終端,在硬件上主要包括上行通信模塊、接口電路,在軟件上主要包括模塊驅動程序、上行通信協議處理程序。2)下行通信接口,連接傳感器、控制器等設備終端,在硬件上主要包括下行通信模塊、接口電路,在軟件上主要包括模塊驅動程序、下行通信協議處理程序。3)主控模塊是網關的核心部分,在硬件上由高級單片機和外圍接口電路構成,在軟件上主要包括數據轉發程序、協議轉換程序等。上行接口主要是連接遠程服務,需要使用遠程通信技術,主要包括Internet通信、移動通信等。上行通信模塊主要包括用于接入Internet網絡的以太網通信模塊、WiFi通信模塊,用于接入移動通信網絡的GPRS通信模塊、4G通信模塊、NB-IOT通信模塊等。下行接口主要是連接傳感器和控制器,一般使用的是短距離通信技術,主要包括RS485、Zig⁃Bee、WiFi、LoRa等;而對于4~20mA等模擬量的設備,并不直接接入網關,需要一個變送器或采集器進行轉換,以數字通信的方式接入到網關。下行通信模塊主要包括RS485通信模塊、ZigBee通信模塊、WiFi通信模塊、Lora通信模塊等。主控模塊通過UART、SPI、I2C等接口和上行通信模塊、下行通信模塊連接,通信模塊由主控模塊進行配置和控制。網關的工作原理如下:網關通過WiFi或RS485等下行通信接口連接到傳感器終端或風機、遮陽等控制器,通過WiFi或以太網等上行通信接口接入到Internet網絡或局域網連接遠程服務器;服務器的數據或指令通過上行接口傳輸到主控模塊,主控模塊根據上行通信協議取出數據后,進行處理,根據下行協議重新打包,經下行通信接口轉發到傳感器終端、控制器;傳感器終端、控制器的數據,由下行接口上傳到主控模塊經處理后轉發到上行接口,傳輸到遠程服務器。在此過程中,網關完成了網絡轉換、協議轉換、數據轉發等功能。
1.2系統功能配置
本方案的網關功能配置如下:1)上行接口:具有1個WiFi接口、1個以太網接口,支持TCP/UDP、HTTP通信協議,采用Client工作模式,可通過上行接口連接遠程服務器。2)下行接口:具有1個RS485接口,半雙工、波特率可配置、主站工作模式,支持Modbus通信協議;具有1個WiFi接口,主站工作模式,支持TCP/UDP、Modbus通信協議,可通過下行接口接入傳感器或控制器。3)工作電壓:DC5V;4)指示燈:電源指示燈、通信指示燈、狀態指示燈。
2硬件和軟件的設計
本方案的網關采用模塊化設計,通信模塊直接選用市面上已有的通信模塊,需要根據選定的具體通信模塊設計接口電路、編寫模塊驅動程序。
2.1硬件設計
2.1.1主控模塊主控模塊以32位高級單片機STM32F407ZG為控制核心,該單片機使用3.3VDC工作電源,具有1024kB的flashROM、192kB的RAM,并支持通過FSMC接口擴展RAM,具有3個I2C接口、6個UART接口、2個SPI接口、1個SDIO接口,內部RTC模塊。
2.1.2上行通信接口上行通信模塊主要包括1個WiFi通信、1個以太網通信模塊。其中WiFi通信模塊使用ESP8266通信模塊,通過UART連接到主控模塊的UART3;以太網通信模塊使用W5500通信模塊,通過SPI連接到主控模塊的SPI2。
2.1.3下行通信接口下行通信模塊主要包括1個WiFi通信模塊、1個RS485通信模塊。其中WiFi通信模塊使用USR-WIFI232-XXX通信模塊,通過UART連接到主控模塊的UART2;RS485通信模塊使用MAX485通信模塊,連接到主控模塊的UART4。
2.1.4存儲、顯示部分主控模塊通過FSMC接口連接IS62WV51216擴展RAM,可存儲512k雙字節(1024kB)大小的數據,用于在協議處理、數據轉發過程的變量存儲;通過I2C接口I2C1連接EPROM存儲器24C02,可存儲256×8(2kbits)大小的數據,用于存儲配置參數;通過SDIO連接SD卡,用于存儲運行中產生的數據。網關具有1個電源指示燈、1個運行狀態指示燈、1個上行接口通信指示燈、1個下行接口通信指示燈,主控模塊通過4個IO口驅動4個LED燈。除了指示燈,沒有其他顯示器件,可通過調試串口或者上行接口查詢系統信息和狀態。主控模塊的UART1作為調試串口。
2.1.5電源部分電源部分使用外接5VDC穩壓電源,負載能力不小于10W。通過電源接口接入電路板,在電路板上通過LDO穩壓電路輸出3.3VDC穩壓電源作為工作電源。
2.2軟件設計
2.2.1軟件設計的主要內容和方案軟件設計主要包括:通信接口驅動程序、模塊的驅動程序、通信協議處理程序、配置程序、數據采集程序、數據轉發程序,完成通信接口接入、遠程連接、網絡轉換、協議轉換、數據轉發。由于RTOS實時操作系統在系統層已經實現了任務的調度,在多任務系統開發中比較有優勢,同時本方案的硬件支持運行RTOS,因此采用基于RTOS進行開發。
2.2.2軟件的層次結構采用分層結構進行軟件設計,軟件的結構從下到上分成:硬件驅動層、模塊驅動層、網絡通信層、應用層。硬件驅動層完成對硬件的配置和驅動,包括系統時鐘的配置、IO的配置、UART接口的驅動、SPI接口的驅動、I2C接口的驅動、FSMC接口的驅動等。模塊驅動層完成對通信模塊、存儲模塊等外接模塊的配置和驅動,包括上行接口中的WiFi通信模塊、以太網通信模塊的驅動,下行接口中的WiFi通信模塊、RS485通信模塊等的驅動,存儲模塊的驅動等。網絡通信層完成網絡連接和數據傳輸、協議的處理,包括RS485通信、TCP/UDP、HTTP、Mod⁃bus等。應用層完成業務功能,包括系統配置、協議轉換、數據轉發、信息采集、數據存儲等。
2.2.3任務的分配和調度系統使用了FREE—RTOS實時操作系統,在RTOS系統層采用分時調度的方式實現系統線程(簡稱線程)的切換。系統分配6個線程,各線程優先級一致,由RTOS系統分時調度,將各種業務定義成不同的業務任務(簡稱任務),每個線程執行一個或多個業務任務。線程1完成系統配置、系統監測、系統指示任務;線程2完成上行接口處理任務;線程3完成下行接口處理任務;線程4完成協議轉換、數據轉發任務;線程5完成數據存儲任務;線程6完成信息采集任務。由于各個線程是無限循環并且是并行執行的,為了對各個線程進行監測,取一個狀態字并為每個線程設定一個狀態位。每個線程在循環一輪都給對應的狀態位置位,線程1每隔100ms要對各個線程的狀態位進行檢測。如果所有線程對應的狀態位都置位,則清零狀態字并驅動狀態指示燈亮或滅。因此系統正常運行時,狀態指示燈是閃爍的。
3主要功能的設計
接入功能、數據轉發功能、協議轉換功能,是網關要實現的主要功能。
3.1上行接口的設計
上行接口主要是連接遠程服務,需要使用遠程通信技術,使用的通信協議是TCP/UDP,以及基于TCP/UDP的HTTP、Modbus等。TCP/UDP屬于傳輸層協議,由通信模塊實現,在模塊驅動層通過對模塊的配置,可以啟動相關功能,因此在硬件設計上,需要選擇支持TCP/UDP功能的通信模塊。本系統所用的上行通信模塊均支持TCP/UDP功能,其中WiFi通信模塊通過UART通信使用相應的AT指令進行配置,以太網通信模塊通過SPI通信配置模塊相應的寄存器進行配置。HTTP、Modbus等運行在TCP之上,屬于應用層協議,由主控模塊實現,通過協議處理程序完成。HTTP協議在Web應用中得到廣泛的應用;Modbus協議在工業領域廣泛應用,是工業電子設備之間常用的連接方式。通過上行接口,實現以下功能:1)使用的是HTTP協議對網關參數的配置和查詢:網關實現一個WebServer,可以處理HTTP協議的GET方法請求。通過瀏覽器打開配置頁面對參數進行查詢和配置,網關作為TCPServer,需要打開監聽端口。2)使用Modbus協議將傳感器數據傳輸到服務器:網關作為TCPClient連接到TCPServer,由服務器發起請求網關作為從設備響應數據。Mod⁃bus協議有專門的TCP格式,這里只是將TCP作為數據鏈路,報文使用的是Modbus-RTU格式。
3.2下行接口的設計
下行接口主要是連接傳感器、下級網關,包括1個WiFi接口、1個RS485接口。WiFi接口配置成AP模式,下級網關的上行WiFi以及采用WiFi通信的傳感器可以連接到到這個AP。在通信上,配置成TCPServer,打開監聽端口,下級網關、傳感器作為TCPClient連接到這個端口,使用TCP協議進行數據傳輸。由于RS485通信是半雙工的,模塊需要配置成主機模式,由網關發起通信。RS485通信的校驗位和波特率等參數設計成可配置以適應實際設備的通信參數。在往下行接口發送數據的時候,會發送到所有通過WiFi接口連接的傳感器、通過RS485接口連接的傳感器以及通過WiFi接口連接的下級網關。
3.3數據轉發和協議轉換功能的設計
數據轉發指的是將數據從下行接口轉發到上行接口,或將數據從上行接口轉發到下行接口。在轉發的過程中,由于兩個接口的通信協議不用,需要根據接收口的協議將數據接收讀取解析出來,經過一定的處理后,按發送口的通信協議重新打包發送,這個就是協議轉換。整個過程就是實現對數據的接收、解包、處理、封裝、轉發。網關采用多種可配置的模式實現對數據的轉發,運行的時候根據配置執行下列模式中的一個模式:模式1為直接透傳模式。運行此模式的時候,系統將上行接口的數據直接轉發到下行接口,由于下行接口有多個端口,數據將依次轉發到各個端口,下行接口的數據也依次直接轉發到上行接口。模式2為協議透傳模式。運行此模式的時候,會對收到的數據進行協議核對,符合Modbus協議格式的數據將被轉發,不符合的數據將在本地被處理:按其他協議處理或丟棄。
3.4級聯功能的設計
級聯功能可以給系統帶來靈活性,通過級聯功能可以實現:通信的中繼進而達到延長通信距離的功能;分級擴展進而達到擴大接入能力的功能;分組接入進而提高系統性能和簡化系統管理。本系統的級聯功能通過WiFi通信接口實現:本級網關的上行WiFi模塊打開STA模式,上級網關的下行WiFi模塊打開AP模式;本級網關的上行WiFi接入到上級網關的下行WiFi;上級網關把本機網關看成一個傳感器終端,本機網關把上級網關看成一個服務器;按正常的模式進行數據轉發和協議轉換。級聯之后的系統,只有一個頂級網關連接到服務器。從頂級網關看,所有的傳感器設備都是連接在本網關的下行WiFi接口上,可以把下級的級聯網關看成透明的。
4結束語
使用物聯網網關可以簡化物聯網的設計和實施,但是目前并沒有標準的、通用的物聯網網關可以選用,需要針對具體的應用而開發相應的物聯網網關。本方案的物聯網網關主要針對設施農業,以無線通信為主要通信方式,這樣便于設備的安裝和布置,同時也保留了以太網、RS485有線通信方式以滿足現場的實際需求。在通信接口的設計上,并沒有把所有的通信方式都接入。上行接口只接入WiFi通信模塊和以太網通信模塊,用于接入Internet網絡;如果想使用移動網絡實現遠程通信,可以考慮把通信模塊替換成GPRS通信模塊、4G通信模塊、NB-IOT通信模塊等。下行接口只接入WiFi通信模塊、RS485通信模塊,可實現傳感器和控制器的無線接入和有線接入;如果需要實現ZigBee、LoRa、藍牙等通信的接入,可以增加相應的通信模塊。
參考文獻:
[1]葉長欖.應用物聯網推動現代農業發展[J].福建農機,2019(1):6-8.
作者:葉長欖 單位:福建省農業機械化研究所