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