• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于arduino與raspberry的農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)設(shè)計與實現(xiàn)

      2019-09-19 07:41:26冉彥中唐明祥楊可揚(yáng)王一煒曹婧華
      關(guān)鍵詞:樹莓以太網(wǎng)單片機(jī)

      冉彥中,唐明祥,楊可揚(yáng),王一煒,曹婧華

      (吉林大學(xué) a.公共計算機(jī)教學(xué)與研究中心; b.植物科學(xué)院, 長春 130062)

      農(nóng)業(yè)物聯(lián)網(wǎng)[1-2]通過對農(nóng)作物生命特征、生長環(huán)境從宏觀到微觀的實時監(jiān)測、跟蹤、控制,提高對農(nóng)業(yè)動植物生命體本質(zhì)的認(rèn)知能力、農(nóng)業(yè)復(fù)雜系統(tǒng)的調(diào)控能力和農(nóng)業(yè)突發(fā)事件的處理能力,達(dá)到合理使用農(nóng)業(yè)資源、降低生產(chǎn)成本、改善生態(tài)環(huán)境、提高農(nóng)產(chǎn)品產(chǎn)量和品質(zhì)的目的。對于農(nóng)業(yè)種植,溫、光、水、肥、氣是最關(guān)鍵的5個因素,采用溫度精準(zhǔn)控制、營養(yǎng)液精準(zhǔn)灌溉、智能控制系統(tǒng)等設(shè)備和系統(tǒng)能保證環(huán)境始終處于適宜植物生長的狀態(tài)。

      種植區(qū)內(nèi)設(shè)有傳感器,可實時檢測作物的生長狀態(tài),并反饋到中央控制室中,通過實際觀測和電腦分析就能進(jìn)行適宜的環(huán)境調(diào)控。農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)用來模擬現(xiàn)代化植物工廠,可快速了解現(xiàn)代科技及其在農(nóng)業(yè)中的應(yīng)用。

      1 系統(tǒng)總體設(shè)計

      系統(tǒng)傳感器層主要由土壤濕度傳感器、空氣溫濕度傳感器、光照傳感器、CO2傳感器等各種傳感器以及arduino單片機(jī)、raspberry樹莓派卡片電腦、微型攝像頭等組成。網(wǎng)絡(luò)層由ENC28j60網(wǎng)絡(luò)模塊、路由器、串口通信等組成。應(yīng)用層由Apche2服務(wù)器提供的www服務(wù)、數(shù)據(jù)庫mysql、網(wǎng)頁php以及控制遠(yuǎn)程拍照的python文件等組成。農(nóng)業(yè)物聯(lián)網(wǎng)結(jié)構(gòu)如圖1所示。

      圖1 農(nóng)業(yè)物聯(lián)網(wǎng)結(jié)構(gòu)

      本系統(tǒng)主要包括:① 滴灌子系統(tǒng),可根據(jù)土壤濕度、水分情況實現(xiàn)遠(yuǎn)程控制或自動實時滴灌;② 光照子系統(tǒng),可根據(jù)光照情況,實現(xiàn)開燈自動補(bǔ)光;③ 通風(fēng)子系統(tǒng),可根據(jù)空氣溫濕度,實現(xiàn)自動排風(fēng)換氣;④ 監(jiān)控子系統(tǒng),用樹莓派攝像頭監(jiān)控農(nóng)作物生長情況。

      2 系統(tǒng)硬件電路設(shè)計

      2.1 Arduino單片機(jī)

      Arduino[3-5]是源于意大利的開源硬件開發(fā)平臺,基于該平臺可快速搭建出具有各種實用功能的電子電路。Arduino單片機(jī)是采用USB接口的核心電路板,與電腦連接,其處理器核心是ATmega328,包括14個數(shù)字輸入輸出IO(其中6個可提供PWM輸出)、6個模擬輸入IO、1個16 MHz晶體振蕩器、1個電源插座和1個復(fù)位按鍵。經(jīng)過AD采樣對模擬電壓數(shù)字化,以IIC/串口通信的形式傳遞給Arduino單片機(jī),在Arduino IDE環(huán)境里編寫程序進(jìn)行編譯,然后下載到Arduino單片機(jī)里,以保證其系統(tǒng)工作。Arduino的硬件、軟件都是開源的,不但可以連接傳感器,還可以連接執(zhí)行器、控制器?;谶@些特點(diǎn),選用該單片機(jī)作為前端數(shù)據(jù)采集的處理器。

      2.2 Raspberry樹莓派

      Raspberry樹莓派作為一個移動平臺,是基于ARM的微型電腦主板,以SD/MicroSD卡為內(nèi)存硬盤,卡片主板周圍有1/2/4個USB接口和1個10/100 以太網(wǎng)接口,可連接鍵盤、鼠標(biāo)和網(wǎng)線,同時擁有視頻模擬信號的電視輸出接口和HDMI高清視頻輸出接口,但沒有輸出的顯示器,可以通過連接在電視屏幕或計算機(jī)的顯示器上進(jìn)行設(shè)置。以上部件全部整合在一塊主板上,具備PC的基本功能。其上裝有Linux操作系統(tǒng)、python編程環(huán)境,也可以安裝當(dāng)前流行的Tensorflow深度學(xué)習(xí)框架,搭建人工智能學(xué)習(xí)的環(huán)境,作為移動式智能終端實現(xiàn)對象檢測、物體識別等功能或作為網(wǎng)絡(luò)節(jié)點(diǎn)充當(dāng)網(wǎng)絡(luò)服務(wù)器進(jìn)行網(wǎng)絡(luò)存儲。

      2.3 NEC28j60網(wǎng)絡(luò)模塊

      網(wǎng)絡(luò)控制器ENC28J60在其內(nèi)部集成了MAC層和PHY層,支持10 Mbps的全雙工網(wǎng)絡(luò)通信。ENC28J60在主機(jī)之間或主機(jī)與從機(jī)之間采用SPI[6-7]串行通信,訪問方式采用瀏覽器訪問,故ENC28J60網(wǎng)絡(luò)模塊非常適合用于小型嵌入式設(shè)備,是嵌入式網(wǎng)絡(luò)系統(tǒng)的首選芯片。主控制器與網(wǎng)絡(luò)適配器之間通過中斷的方式進(jìn)行通信,完成數(shù)據(jù)的發(fā)送與接收。

      介紹了3種主要的電子設(shè)備的特點(diǎn),并給出了系統(tǒng)的電路設(shè)計圖[8-11],如圖2所示。

      圖2中,使用光照、土壤濕度等傳感器連接單片機(jī)Arduino的A0、A1、A2、A3等模擬量接口,空氣溫、濕度傳感器連接數(shù)字IO口,分別對環(huán)境數(shù)據(jù)的中光照強(qiáng)度、土壤濕度、空氣溫濕度等進(jìn)行采集。經(jīng)過AD采樣對模擬電壓數(shù)字化,以IIC/串口通信的形式傳遞給Arduino單片機(jī)后,單片機(jī)以USB串口的形式將數(shù)據(jù)轉(zhuǎn)發(fā)給Raspberry Pi3上的mysql數(shù)據(jù)庫進(jìn)行存儲。另外,所采集的數(shù)據(jù)通過連接的ENC286J60網(wǎng)絡(luò)模塊,在其上設(shè)立供網(wǎng)絡(luò)用戶訪問的Web站點(diǎn),且連接到路由器上的信號通過有線或無線方式傳輸,在局域網(wǎng)或互聯(lián)網(wǎng)上能實時看到環(huán)境的數(shù)據(jù)。Arduino單片機(jī)里編寫固化程序,可以根據(jù)閾值自動補(bǔ)光、通風(fēng)、開啟水泵等,即程序向Arduino的數(shù)字IO口3、4、5、6等寫HIGH、LOW電平控制繼電器的閉合,從而控制負(fù)載,也可以通過網(wǎng)絡(luò)訪問web站點(diǎn)網(wǎng)頁手動控制負(fù)載設(shè)備??刂葡到y(tǒng)具體實物如圖3所示。

      圖2 農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)電路

      圖3 控制系統(tǒng)具體實物

      3 系統(tǒng)的軟件設(shè)計

      軟件開發(fā)環(huán)境采用arduinoIDE環(huán)境。raspberry樹莓派中采用PHP編寫網(wǎng)頁,視頻流的控制采用python編寫。軟件系統(tǒng)里數(shù)據(jù)流向主要有兩條路徑:各個傳感器采集的數(shù)據(jù)匯總到arduino后,一是通過USB接口傳給raspberry,數(shù)據(jù)存儲于數(shù)據(jù)庫,以網(wǎng)頁的形式供用戶瀏覽,樹莓派上的微型攝像頭實時抓拍作物照片或視頻流,通過網(wǎng)絡(luò)遠(yuǎn)程觀看作物生長狀態(tài);二是連接到ENC28j60網(wǎng)絡(luò)模塊,在其上面建立了一個Web站點(diǎn),通過路由器以及免費(fèi)的物聯(lián)網(wǎng)平臺進(jìn)行域名解析,可以遠(yuǎn)程進(jìn)行負(fù)載設(shè)備的開啟或關(guān)閉以及實時顯示生長環(huán)境的數(shù)據(jù)。手機(jī)端采用App inventor的編程環(huán)境。

      3.1 DHT11溫、濕度采集算法設(shè)計

      根據(jù)DHT11芯片設(shè)計的獨(dú)特結(jié)構(gòu)設(shè)計傳感器讀取算法,數(shù)據(jù)采集算法如圖4所示。

      圖4 數(shù)據(jù)采集算法

      DHT11的Data數(shù)據(jù)引腳置高或低操作,準(zhǔn)確延時后等待傳感器相應(yīng),之后對數(shù)據(jù)進(jìn)行移位操作,最終讀取傳感器數(shù)據(jù)。通過不斷遍歷該流程分別讀取傳感器中環(huán)境的溫度整數(shù)值、濕度整數(shù)值,最終釋放總線。還設(shè)計了土壤濕度、光照強(qiáng)度等采集算法設(shè)計。

      DHT11[12-14]溫濕度傳感器數(shù)據(jù)采集實現(xiàn)部分代碼如下:

      #include

      //引用庫文件

      #include "DHT11.h"

      //引用庫文件

      int ReceiveByte=0;

      //申請整形變量

      DHT11 myDHT11(7);

      //數(shù)字IO口7輸入

      void setup()

      {

      Serial.begin(9600);

      //設(shè)置通訊的波特率為9600

      Serial.println("try to try!");

      //發(fā)送的內(nèi)容

      }

      void loop()

      myDHT11.DHT11_Read();

      //讀取溫濕度值

      {Serial.print(99,DEC);

      //發(fā)送識別碼

      Serial.println(myDHT11.TEM_

      Buffer_Int);

      delay(1000);

      //延時1m

      Serial.print(98,DEC);

      Serial.println(myDHT11.HUMI_Buff

      er_Int);

      break;

      }

      ……

      實測濕度在一定時間內(nèi)幾乎無變化,因此僅畫出了溫度變化的曲線,如圖5所示。

      圖5 溫度變化曲線

      3.2 Arudino 與ENC28j60組成web站點(diǎn)

      ENC28j60[15-17]是帶有SPI接口的獨(dú)立以太網(wǎng)網(wǎng)絡(luò)設(shè)備,它集成了MAC、TPHY層,其速度可達(dá)10 Mb/s,且兼容IEEE 802.3。在使用ENC28j60時,采用SPI通信協(xié)議。SPI(serial peripheral interface)工作方式采取主從模式,通常1個主設(shè)備可以連接1個或多個從設(shè)備。MISO引腳:主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出;MOSI引腳:主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入;SCLK引腳:時鐘信號引腳,其信號由主設(shè)備產(chǎn)生;SS引腳:從設(shè)備EN信號,由主設(shè)備控制。這個信號可以是SPI外設(shè)的一部分,也可用GPIO引腳實現(xiàn)。在以太網(wǎng)網(wǎng)絡(luò)中很多MCU集成了MAC控制器,MAC控制器作為鏈路層協(xié)議控制器連接外部以太網(wǎng)PHY(端口物理層),以太網(wǎng)中MAC控制器利用MII訪問PHY,用RJ-45接口外接水晶頭,接入網(wǎng)線連接到外網(wǎng)中就可完成數(shù)據(jù)交換。MAC即media access control,是媒體訪問控制子層協(xié)議。MII是媒體獨(dú)立接口,它是IEEE-802.3定義的以太網(wǎng)行業(yè)標(biāo)準(zhǔn),包括1個數(shù)據(jù)接口以及1個AC和PHY之間的管理接口,PHY是物理接口收發(fā)器。ENC286j60結(jié)構(gòu)如圖6所示。Arduino與ENC286j60連接引腳對應(yīng)接線如表1所示。

      圖6 ENC28j60結(jié)構(gòu)

      ENC28J60模塊ARDUINO單片機(jī)VCC 5 V/3.3 VGND GNDRESETRESETSS10MOSI 11MISO12SCK13

      利用ENC28J60就可以做簡單Web服務(wù)器,提供www服務(wù),網(wǎng)頁的編寫使用HTML語言,在ArduinoIDE環(huán)境里采用了類似C語言編寫程序。后面的示例采用C和Html混合編程,然后編譯、上傳到單片機(jī),既可讀取傳感器的數(shù)據(jù),又可使用瀏覽器訪問。HTTP協(xié)議是文本的,可以用Arduino的字符串函數(shù)管理。在局域網(wǎng)內(nèi)瀏覽器地址欄輸入192.168.1.66就可以訪問程序的頁面,實時顯示環(huán)境的溫、濕度數(shù)據(jù)。若外網(wǎng)訪問,則在路由器上的路由表中添加該IP等有關(guān)設(shè)置:

      #include

      //引入頭文件庫

      static byte mymac[]={ 0x74,0x69,0x69,0x2D,0x30,0x31 };//16進(jìn)制MAC地址

      static byte myip[]={ 192,168,1,66}; //自設(shè)www網(wǎng)站地址IP

      static byte gwip[]={ 192,168,1,1 };

      //網(wǎng)關(guān)地址

      byte Ethernet::buffer[500]; //緩沖區(qū)大小

      BufferFiller bfill;

      ……

      static void ReadDHT11()

      {

      h=dht.readHumidity(); //

      調(diào)用函數(shù)提取濕度值

      t=dht.readTemperature();

      //調(diào)用函數(shù)提取溫度值

      }

      static word homePage() {

      //ReadDHT11();

      bfill=ether.tcpOffset();

      bfill.emit_p(PSTR(

      "HTTP/1.0 200 OK "

      //在arduino里寫的html頁面

      "Content-Type:text/html "

      "Pragma:no-cache "

      " "

      //網(wǎng)頁刷新

      "

      Temp:$D C "),t,h);

      //網(wǎng)頁上顯示溫度、濕度值,每隔一定時間刷新

      return bfill.position();

      }

      3.3 系統(tǒng)現(xiàn)場環(huán)境視頻采集實現(xiàn)

      Raspberry Pi3采用LAMP(Linux、Apache、MySQL及php)架構(gòu),它是Linux,Apache,MySQL和PHP的縮寫,可自動采集環(huán)境中的圖像數(shù)據(jù)、視頻數(shù)據(jù),并將視頻按照一定的格式編碼存儲。在Raspberry Pi3上的操作系統(tǒng)上搭建VLC服務(wù)器,用它發(fā)布視頻,將實時視頻以網(wǎng)絡(luò)串流的方式發(fā)送到網(wǎng)絡(luò)上。在臺式電腦或手機(jī)終端設(shè)備上安裝VLC播放器,通過捕獲網(wǎng)絡(luò)中的視頻流,進(jìn)行解碼后在手機(jī)上就可實時播放現(xiàn)場環(huán)境的視頻。要實現(xiàn)此功能還要在樹莓派上設(shè)置IP,通過TCP/IP協(xié)議、RTP/RTCP等協(xié)議將采集回來的視頻通過H.264編碼,同時采用RTCP協(xié)議基于UDP面向無連接網(wǎng)絡(luò)方式實現(xiàn)。該IP要添加到路由器的路由表上,在其命令行下輸入:

      raspivid -o --t 0 -w 640 -h 360 -fps 25|cvlc -vvv stream:///dev/stdin --sout ′#standard{access=http,mux=ts,dst=:8090}′:demux=h264

      開啟服務(wù),實現(xiàn)視頻流傳遞。

      系統(tǒng)中樹莓派python編程[18-20]定時抓取環(huán)境現(xiàn)場圖片的python代碼如下:

      from picamera import PiCamera

      from time import sleep

      camera=PiCamera()

      camera.start_preview()

      for i in range(6):

      sleep(5)camera.capture(′/home/pi/image%s.jpg′%i)//單張圖片存放

      camera.stop_preview()

      這個python文件在linux系統(tǒng)中以一個定時任務(wù)開啟執(zhí)行。

      捕獲環(huán)境現(xiàn)場視頻流的python代碼,

      from picamera import PiCamera

      from time import sleep

      camera=PiCamera()

      camera.start_preview()

      camera.start_recording(′/home/pi/video.h264′)

      //視頻文件存放

      sleep(10)

      camera.stop_recording()

      camera.stop_preview()

      3.4 手機(jī)端APP編程

      手機(jī)端采用App inventor[21]編程環(huán)境。設(shè)計的控制負(fù)載設(shè)備APP界面如圖7所示??梢詫崿F(xiàn)遠(yuǎn)程開關(guān)燈、風(fēng)扇、水泵、天窗等功能。其原理是手機(jī)聯(lián)網(wǎng)后,操作按鈕向單片機(jī)發(fā)送命令字符,單片機(jī)里的程序接收到字符后做出判斷,控制數(shù)字IO口高低電平輸出,從而控制繼電器。

      圖7 控制APP

      4 結(jié)束語

      本文介紹了一種實現(xiàn)農(nóng)業(yè)物聯(lián)網(wǎng)的方案,便于動手實踐,幫助了解農(nóng)業(yè)互聯(lián)網(wǎng)的架構(gòu)以及掌握具體的編程實現(xiàn)細(xì)節(jié),其內(nèi)容涉及傳感器、通信、數(shù)據(jù)庫、網(wǎng)絡(luò)、計算機(jī)等多學(xué)科領(lǐng)域方面的知識。下一步,系統(tǒng)將增加變頻器微調(diào)水流、根據(jù)空氣情況打開天窗一定角度等功能。還可引入人工智能模塊,根據(jù)拍攝的照片進(jìn)行圖像識別,自動識別作物屬于哪個生長期或判斷是否有病蟲害,為決策提供科學(xué)依據(jù)。目前,該項目已得到初步應(yīng)用。

      猜你喜歡
      樹莓以太網(wǎng)單片機(jī)
      基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
      基于單片機(jī)的SPWM控制逆變器的設(shè)計與實現(xiàn)
      電子制作(2019年13期)2020-01-14 03:15:28
      基于單片機(jī)的層次漸變暖燈的研究
      電子制作(2019年15期)2019-08-27 01:12:10
      基于樹莓派的騎行智能頭盔設(shè)計
      電子制作(2019年11期)2019-07-04 00:34:32
      基于單片機(jī)的便捷式LCF測量儀
      電子制作(2019年9期)2019-05-30 09:42:02
      基于樹莓派的遠(yuǎn)程家居控制系統(tǒng)的設(shè)計
      電子制作(2017年17期)2017-12-18 06:40:43
      談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
      電子制作(2017年24期)2017-02-02 07:14:44
      響應(yīng)面法優(yōu)化紅樹莓酒發(fā)酵工藝
      中國釀造(2016年12期)2016-03-01 03:08:19
      一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
      淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
      茶陵县| 前郭尔| 连江县| 文昌市| 曲阜市| 上饶县| 兴仁县| 阆中市| 长阳| 灌阳县| 万源市| 江达县| 禄劝| 礼泉县| 萨嘎县| 荃湾区| 泊头市| 岳池县| 嘉兴市| 和龙市| 锡林浩特市| 通城县| 淳安县| 抚宁县| 柞水县| 四会市| 繁昌县| 航空| 镇安县| 得荣县| 十堰市| 凉城县| 桐梓县| 西乌珠穆沁旗| 门头沟区| 永福县| 施甸县| 嘉义县| 西丰县| 广宁县| 红原县|