24小時(shí)聯(lián)系電話(huà):18217114652、13661815404
中文
- 您當前的位置:
- 首頁(yè)>
- 電子資訊>
- 技術(shù)專(zhuān)題>
- 低成本智能農業(yè)系統
技術(shù)專(zhuān)題
低成本智能農業(yè)系統
低成本智能農業(yè)系統
這個(gè)基于物聯(lián)網(wǎng)的項目監視植物附近的土壤濕度,溫度和濕度水平以及控制站附近的光強度。當水分含量低于閾值水平時(shí),它將打開(kāi)水電磁閥。它的振動(dòng)傳感器檢測種植園附近動(dòng)物和嚙齒動(dòng)物的運動(dòng)或任何其他有害活動(dòng)。
該項目同樣適用于建筑物中的室內植物,溫室種植以及常規種植。Adafruit物聯(lián)網(wǎng)平臺用于在線(xiàn)監控各種傳感器的狀態(tài)。
低成本智能農業(yè)系統的框圖如圖1所示。項目的作者原型如圖2所示,而其電路圖如圖3所示。
圖2:作者的智能農業(yè)系統原型
圖3:智能農業(yè)系統的電路圖
電路與工作
物聯(lián)網(wǎng)系統的核心是NodeMCU ESP-32 8266 Wi-Fi模塊。它用于通過(guò)計算機網(wǎng)絡(luò )將從各種傳感器收集的信號傳輸給用戶(hù)。這些傳感器包括四個(gè)土壤濕度傳感器(SS1至SS4),一個(gè)光敏電阻器(LDR),一個(gè)振動(dòng)傳感器(VS1)以及一個(gè)溫度和濕度傳感器(DHT11)。
如果附近任何工廠(chǎng)的土壤濕度或濕度水平低于閾值水平(根據程序),NodeMCU中的控制器將通過(guò)繼電器模塊(RM1)打開(kāi)電磁閥,水開(kāi)始流動(dòng)。
LDR模塊用于感應控制室中的白天和黑夜情況。如果房間中的光強度低于閾值水平,尤其是在夜間,則通過(guò)繼電器模塊RM1打開(kāi)光。
傳感器DHT11連接在NodeMCU的D6引腳上,以監視溫度和濕度水平。
振動(dòng)傳感器VS1連接到NodeMCU的D8引腳。工廠(chǎng)附近的任何振動(dòng)都被記錄為有害活動(dòng),它通過(guò)NodeMCU板上內置LED的發(fā)光向用戶(hù)發(fā)出警報。
NodeMCU僅具有一個(gè)模擬輸入(A0引腳),但我們可能需要多達六個(gè)傳感器才能與MCU接口。通過(guò)使用帶有NodeMCU-ESP32的16×1模擬/數字高速CMOS多路復用器74HC4067可以解決此問(wèn)題。
土壤濕度傳感器SS1至SS4和一個(gè)LDR傳感器模塊連接至74HC4067模塊的輸入引腳C0至C4。使用選擇線(xiàn)S3,S2,S1和S0選擇來(lái)自這五個(gè)傳感器的五個(gè)模擬輸入的狀態(tài)。這些選擇線(xiàn)由NodeMCU的D3,D2,D1和D0引腳控制。表1中列出了它們的連接詳細信息。表2中列出了系統中連接的傳感器的列表。
通過(guò)選擇線(xiàn)從74HC4067多路復用器模塊選擇輸入后,來(lái)自多路復用器的可通過(guò)引腳SIG獲得的單路輸出連接到NodeMCU的模擬輸入A0。NodeMCU控制器處理輸入信號并打開(kāi)燈或激活螺線(xiàn)管,然后將信號連接到Internet。
DHT11傳感器的數據輸出連接到NodeMCU的D6引腳,用于檢測溫度和濕度。
為了控制交流電壓操作的燈和電磁閥向工廠(chǎng)供水,NodeMCU的D7和D5引腳分別連接到繼電器模塊的輸入引腳IN2和IN1。
軟件
Arduino IDE用于對NodeMCU板進(jìn)行編程。將NodeMCU連接到PC /筆記本電腦,然后從Arduino IDE的“工具”菜單中選擇正確的COM端口和板名稱(chēng)。該項目中使用的板名如圖4所示。
圖4:選擇板作為NodeMCU 1.0(ESP-12E模塊)
通過(guò)單擊“上載”按鈕將源代碼Program_11973.ino上載到Arduino板。在編譯和上傳源代碼之前,請不要忘記從Library Manager中包括ESP8266WiFi.h,DHT11.h,Adafruit和MQTT庫。
NodeMCU Wi-Fi連接到Adafruit.io開(kāi)源云服務(wù),以在線(xiàn)提供實(shí)時(shí)數據。消息隊列遙測傳輸(MQTT)是Adafruit.io支持的設備通信協(xié)議。
在Adafruit.io IoT平臺上組織儀表板的步驟:
生成一個(gè)密鑰并記下該密鑰。這是一個(gè)長(cháng)而唯一的標識符,可用于使用您的帳戶(hù)對任何設備進(jìn)行身份驗證。每個(gè)帳戶(hù)只有一個(gè)密鑰,但是您可以隨時(shí)撤消并重新生成密鑰。
創(chuàng )建帳戶(hù)后,您需要管理供稿,以便在儀表板上進(jìn)行發(fā)布,如圖5所示。(供稿基本上是一組可以讀取或寫(xiě)入的數據,如程序中所指定,根據您的應用程序。)
圖5:Adafruit IoT平臺上的Feeds窗口
在此項目中,我們使用了四個(gè)濕度傳感器(MS1至MS4)和一個(gè)溫度傳感器(tmp)。因此,舉例來(lái)說(shuō),如果該程序在代碼中使用了以下內容,則需要將每個(gè)供稿創(chuàng )建為MS1到MS4,tmp,LHT等,以便在信息中心上進(jìn)行管理:
Adafruit_MQTT_Publish photocel3 =
Adafruit_MQTT_Publish(&mqtt,AIO_USERNAME“
/ feeds / MS1”);
Adafruit_MQTT_Publish photocel4 = Adafruit_MQTT_Publish(&mqtt,AIO_USERNAME“ / feeds / MS2”);
Adafruit_MQTT_Publish photocel5 = Adafruit_MQTT_Publish(&mqtt,AIO_USERNAME“ / feeds / MS3”);
Adafruit_MQTT_Publish photocel6 = Adafruit_MQTT_Publish(&mqtt,AIO_USERNAME“ / feeds / MS4”);
Adafruit_MQTT_Publish photocel1 = Adafruit_MQTT_Publish(&mqtt,AIO_USERNAME“ / feeds / tmp”);
Adafruit_MQTT_Publish photocel2 = Adafruit_MQTT_Publish(&mqtt,AIO_USERNAME“ / feeds / hum”);
Adafruit_MQTT_Publish photocel7 = Adafruit_MQTT_Publish(&mqtt,AIO_USERNAME“ / feeds / LHT”);
您需要在Adafruit IO中添加所有提要,以在儀表板上顯示來(lái)自傳感器的實(shí)時(shí)數據,如表3所示。
有關(guān)使用Adafruit IoT和Arduino進(jìn)行配置的更多詳細信息,請參見(jiàn)源代碼文件夾中的“使用Adafruit和Arduino進(jìn)行配置”文檔文件。
現在打開(kāi)PROGRAM_11973.ino源代碼,包括您自己的所有Wi-Fi憑據,包括SSID,密碼,用戶(hù)名和密鑰,如下所示。
#define WLAN_SSID“ Samsungi” /// *您的WIFI名稱(chēng)SSIDCHANGE IT(1)
#define WLAN_PASS“ abcd123456” //您的WIFI密碼CHANGE IT(2)
#define AIO_SERVER“ io.adafruit.com” // Adafruit服務(wù)器
#define AIO_SERVERPORT 1883
#define AIO_USERNAME“ jitendra41085” // Adafruit用戶(hù)名更改(3)
#define AIO_KEY“ 859813f4cb144ee5b0f9e124a239a3f4” // adafruit Auth KeyCHANGE
IT(4)
接下來(lái),通過(guò)添加更改軟件配置
在Arduino IDE中的File / Preferences下,如圖6所示?,F在您可以保存代碼,再次編譯,然后將其上傳到NodeMCU板上。
圖6:Arduino IDE中的軟件配置
完成所有電路連接后,打開(kāi)NodeMCU板并打開(kāi)Adafruit IoT儀表板。您將看到如圖7所示的內容。
圖7:具有各種傳感器輸出的實(shí)時(shí)數據流的Adafruit.io儀表板