24小(xiǎo)时联系電(diàn)话:18217114652、13661815404
中文(wén)
- 您当前的位置:
- 首页>
- 電(diàn)子资讯>
- 技术专题>
- 低成本智能(néng)农业系统
技术专题
低成本智能(néng)农业系统
低成本智能(néng)农业系统
这个基于物(wù)联网的项目监视植物(wù)附近的土壤湿度,温度和湿度水平以及控制站附近的光强度。当水分(fēn)含量低于阈值水平时,它将打开水電(diàn)磁阀。它的振动传感器检测种植园附近动物(wù)和啮齿动物(wù)的运动或任何其他(tā)有(yǒu)害活动。
该项目同样适用(yòng)于建筑物(wù)中的室内植物(wù),温室种植以及常规种植。Adafruit物(wù)联网平台用(yòng)于在線(xiàn)监控各种传感器的状态。
低成本智能(néng)农业系统的框图如图1所示。项目的作者原型如图2所示,而其電(diàn)路图如图3所示。
图2:作者的智能(néng)农业系统原型
图3:智能(néng)农业系统的電(diàn)路图
電(diàn)路与工作
物(wù)联网系统的核心是NodeMCU ESP-32 8266 Wi-Fi模块。它用(yòng)于通过计算机网络将从各种传感器收集的信号传输给用(yòng)户。这些传感器包括四个土壤湿度传感器(SS1至SS4),一个光敏電(diàn)阻器(LDR),一个振动传感器(VS1)以及一个温度和湿度传感器(DHT11)。
如果附近任何工厂的土壤湿度或湿度水平低于阈值水平(根据程序),NodeMCU中的控制器将通过继電(diàn)器模块(RM1)打开電(diàn)磁阀,水开始流动。
LDR模块用(yòng)于感应控制室中的白天和黑夜情况。如果房间中的光强度低于阈值水平,尤其是在夜间,则通过继電(diàn)器模块RM1打开光。
传感器DHT11连接在NodeMCU的D6引脚上,以监视温度和湿度水平。
振动传感器VS1连接到NodeMCU的D8引脚。工厂附近的任何振动都被记录為(wèi)有(yǒu)害活动,它通过NodeMCU板上内置LED的发光向用(yòng)户发出警报。
NodeMCU仅具有(yǒu)一个模拟输入(A0引脚),但我们可(kě)能(néng)需要多(duō)达六个传感器才能(néng)与MCU接口。通过使用(yòng)带有(yǒu)NodeMCU-ESP32的16×1模拟/数字高速CMOS多(duō)路复用(yòng)器74HC4067可(kě)以解决此问题。
土壤湿度传感器SS1至SS4和一个LDR传感器模块连接至74HC4067模块的输入引脚C0至C4。使用(yòng)选择線(xiàn)S3,S2,S1和S0选择来自这五个传感器的五个模拟输入的状态。这些选择線(xiàn)由NodeMCU的D3,D2,D1和D0引脚控制。表1中列出了它们的连接详细信息。表2中列出了系统中连接的传感器的列表。
通过选择線(xiàn)从74HC4067多(duō)路复用(yòng)器模块选择输入后,来自多(duō)路复用(yòng)器的可(kě)通过引脚SIG获得的单路输出连接到NodeMCU的模拟输入A0。NodeMCU控制器处理(lǐ)输入信号并打开灯或激活螺線(xiàn)管,然后将信号连接到Internet。
DHT11传感器的数据输出连接到NodeMCU的D6引脚,用(yòng)于检测温度和湿度。
為(wèi)了控制交流電(diàn)压操作的灯和電(diàn)磁阀向工厂供水,NodeMCU的D7和D5引脚分(fēn)别连接到继電(diàn)器模块的输入引脚IN2和IN1。
软件
Arduino IDE用(yòng)于对NodeMCU板进行编程。将NodeMCU连接到PC /筆(bǐ)记本電(diàn)脑,然后从Arduino IDE的“工具”菜单中选择正确的COM端口和板名称。该项目中使用(yòng)的板名如图4所示。
图4:选择板作為(wèi)NodeMCU 1.0(ESP-12E模块)
通过单击“上载”按钮将源代码Program_11973.ino上载到Arduino板。在编译和上传源代码之前,请不要忘记从Library Manager中包括ESP8266WiFi.h,DHT11.h,Adafruit和MQTT库。
NodeMCU Wi-Fi连接到Adafruit.io开源云服務(wù),以在線(xiàn)提供实时数据。消息队列遥测传输(MQTT)是Adafruit.io支持的设备通信协议。
在Adafruit.io IoT平台上组织仪表板的步骤:
生成一个密钥并记下该密钥。这是一个長(cháng)而唯一的标识符,可(kě)用(yòng)于使用(yòng)您的帐户对任何设备进行身份验证。每个帐户只有(yǒu)一个密钥,但是您可(kě)以随时撤消并重新(xīn)生成密钥。
创建帐户后,您需要管理(lǐ)供稿,以便在仪表板上进行发布,如图5所示。(供稿基本上是一组可(kě)以读取或写入的数据,如程序中所指定,根据您的应用(yòng)程序。)
图5:Adafruit IoT平台上的Feeds窗口
在此项目中,我们使用(yòng)了四个湿度传感器(MS1至MS4)和一个温度传感器(tmp)。因此,举例来说,如果该程序在代码中使用(yòng)了以下内容,则需要将每个供稿创建為(wèi)MS1到MS4,tmp,LHT等,以便在信息中心上进行管理(lǐ):
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中添加所有(yǒu)提要,以在仪表板上显示来自传感器的实时数据,如表3所示。
有(yǒu)关使用(yòng)Adafruit IoT和Arduino进行配置的更多(duō)详细信息,请参见源代码文(wén)件夹中的“使用(yòng)Adafruit和Arduino进行配置”文(wén)档文(wén)件。
现在打开PROGRAM_11973.ino源代码,包括您自己的所有(yǒu)Wi-Fi凭据,包括SSID,密码,用(yòng)户名和密钥,如下所示。
#define WLAN_SSID“ Samsungi” /// *您的WIFI名称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用(yòng)户名更改(3)
#define AIO_KEY“ 859813f4cb144ee5b0f9e124a239a3f4” // adafruit Auth KeyCHANGE
IT(4)
接下来,通过添加更改软件配置
在Arduino IDE中的File / Preferences下,如图6所示。现在您可(kě)以保存代码,再次编译,然后将其上传到NodeMCU板上。
图6:Arduino IDE中的软件配置
完成所有(yǒu)電(diàn)路连接后,打开NodeMCU板并打开Adafruit IoT仪表板。您将看到如图7所示的内容。
图7:具有(yǒu)各种传感器输出的实时数据流的Adafruit.io仪表板