远程分布式环境监测及喷灌控制系统通信模块设计——wifi数据传输

本文设计了一套基于WIFI网络通信数据传输系统,是以Arduino mega 2560单片机为核心控制部件,组成喷灌控制系统数据传输电路,并以WIFI通信方式实时传输各个传感器间的数据,将温湿度数据呈现在LCD显示屏上,并通过数据阀值控制抽水电机工作,实现对温室的温湿

  1引言

  我国是农业大国,喷灌控制系统广泛应用于农业生产。传统喷灌控制系统中数据的传输依赖于有线传输,而有线传输在实际应用中又弊病百出:有线方案施工繁琐、设备后期维护成本高、传输距离受限等。针对此问题,本文设计了一套基于WIFI通信模块的远程分布式环境监测及喷灌控制系统。具有传输速度高、覆盖范围远、组网简单、与Internet可无缝连接等优点。它能够实时传输监测数据,根据检测结果按需精确灌溉,达到高效节水的目的。
  该系统使用了Arduino开发板,解决了单片机编程繁琐的问题,同样简化了同单片机工作的流程。由于Arduino具有开放性、开源性、低成本、扩展性强等众多优点,已经收到了国内外的众多开发者和企业的广泛关注和使用。
  本文介绍了利用WIFI组建无线局域网的方法,重点阐述了喷灌控制系统电路的设计,包括温湿度传感器接入模块、无线ESP8266传感器发射模块、无线ESP8266传感器接收模块、数据滤波模块、数据液晶显示模块、控制模块。随着无线通信技术,计算机技术,自动化技术以及其他IT技术的发展,利用无线技术实现数据通信传输的成本会逐渐降低,系统的稳定性和可靠性将逐步提高,使得WIFI技术成为具有发展优势的数据传输解决方案。

  2系统设计方案

  2.1设计思路

  本设计主要是为了解决田间温湿度自动检测,wifi通信方式和喷灌控制的问题。一个完整的基于WIFI的精确喷灌控制系统主要由发射端和接收端实现。发射端的传感器采集田间墒情(包括土壤温、湿度)后通过无线模块发送到接收端,并由接收端进行数据处理,将数据呈现在显示器上,通过对比之前设置好的温湿度阀值,控制喷灌电机工作。
  系统以Arduino mega 2560单片机为核心控制部件,组成喷灌控制系统数据传输电路,并以WIFI通信方式实时传输各个传感器间的数据,将温湿度数据呈现在LCD显示屏上,并通过数据阀值控制抽水电机工作,实现对温室的温湿度实时监控与控制。

  2.2设计框架及结构

  为了实现前述的功能及设计意图,本设计的框架为一下四个部分数据采集部分、显示部分、数据传输部分、系统控制部分。在实现过程中又把系统分为六个模块来实现,温湿度传感器接入模块、无线ESP8266传感器发射模块、无线ESP8266传感器接收模块、数据滤波模块、数据液晶显示模块、控制模块。
远程分布式环境监测及喷灌控制系统通信模块设计——wifi数据传输
  不能只是单方的图,要加一定的文字阐述说明你在做什么事情,为什么要这样做?

  2.3系统硬件设计

  2.3.1数据采集模块AM2302
  考虑温室土壤的环境、传感器的响应时间、抗干扰能力、性价比等综合因素,本文选用AM2302数字温湿度传感器。DHT22数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专门的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个高精度测温元件,并与一个高性能8位单片机相连接。因此该传感器具有超快响应、抗干扰能力强、性价比极高等优点。该传感器超低能耗、传输距离远、全部自动化校准、采用电容式湿敏元件、完全互换、标准数字单总线输出、卓越的长期稳定性、采用高精度测温元件。单线制串行接口,使系统集成变得简易快捷。体积小、功耗低、信号传输距离远,适用于较多苛刻应用环境。DHT22数字温湿度传感器采用4针单排引脚封装,方便连接。
  AM2302引脚分配
  引脚名称描述
  VDD电源(3.3V-5.5V)
  SDA串行数据,双向口
  NC空脚
  ④GND地
  AM2302引脚分配图
  引脚说明(VDD SDA GND)
  AM2302的供电电压范围为3.3V-5.5V,使用中我们供电电压为5V。
  数据线SDA引脚为三态结构,用于读写传感器数据。把格式调一下
  单总线通信方式:单总线通信:AM2302器件采用简化的单总线通信。(要写的像论文不是在做笔记)单总线即只有一根数据线,系统中的数据交换、控制均由数据线完成。设备通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线;单总线通常要求外接一个约5.1kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。由于它们是主从结构,只有主机呼叫传感器时,传感器才会应答,因此主机访问传感器都必须严格遵循单总线序列,如果出现序列混乱,传感器将不响应主机。即用户主机发送一次起始信号(把数据总线SDA拉低至少800µs)后,AM2302从休眠模式转换到高速模式。待主机开始信号结束后,AM2302发送响应信号,从数据总线SDA串行送出40Bit的数据,发送数据结束触发一次信息采集,采集结束传感器自动转入休眠模式,直到下一次通信来临。(如图1)
远程分布式环境监测及喷灌控制系统通信模块设计——wifi数据传输
  2.2.2液晶显示模块LCD 1602
  本文选用的是型号为LCD 1602的液晶显示屏模块。1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。

  具有以下优点:

  ①显示效果完美
  ②I2C总线控制仅占用2个IO口
  ③液晶背光可控,可以通过跳线控制,也可以通过程序控制
  ④板载对比度调节电位器
  ⑤接口标注方便使用
  ⑥使用Arduino库文件编程,程序简单
  1602采用标准的16脚接口,其中:
  第1脚:VSS为地电源
  第2脚:VDD接5V正电源
  第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度
  第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
  第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
  第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
  第7~14脚:D0~D7为8位双向数据线。
  第15脚:背光电源正极
  第16脚:背光电源负极
  设计中驱动1602液晶显示屏需要7个IO口,但是由于Arduino控制板IO接口有限,同时为了使接线方式简便,我们使用了一块LCD1602转接板。
  LCD1602转接板
  LCD1602转接板特点:
  1.供电电压:+5v
  2.支持I2C协议
  3.具有背光灯,和对比度调节电位器
  4线输出更简单
  5.设备地址:0x27
  接线说明
  GND:系统电源负极
  VCC:系统电源正极
  SDA:IIC数据线
  SCL:IIC时钟线
  2.2.3 WIFI数据传输模块ESP-8266
  Wi-Fi是一种允许电子设备连接到一个无线局域网(WLAN)的技术,通常使用2.4G UHF或5G SHF ISM射频频段。连接到无线局域网通常是有密码保护的;但也可是开放的,这样就允许任何在WLAN范围内的设备可以连接上。无线保真是一个无线网络通信技术的品牌,由Wi-Fi联盟所持有。目的是改善基于IEEE 802.11标准的无线网路产品之间的互通性。有人把使用IEEE 802.11系列协议的局域网就称为无线保真。甚至把无线保真等同于无线网际网路(Wi-Fi是WLAN的重要组成部分)。
远程分布式环境监测及喷灌控制系统通信模块设计——wifi数据传输
  ESP8266是一个完整且自成体系的WiFi网络解决方案,能够独立运行,也可以作为从机搭载其他主机MCU运行。ESP8266在搭载应用并作为设备中唯⼀的应⽤处理器时,能够直接从外闪存中启动。内置的高速缓冲存储器有利于提⾼系统性能,并减少内存需求。另外⼀种情况是,ESP8266负责无线上网接入承担WiFi适配器的任务时,可以将其添加到任何基于微控制器的设计中,连接简单易⾏,只需通过SPI/SDIO接口或I2C/UART口即可。该模块核心处理器ESP8266在较小尺寸封装中集成了业界领先的Tensilica L106超低功耗32位微型MCU,带有16位精简模式,主频支持80 MHz和160 MHz,支持RTOS,集成Wi-Fi MAC/BB/RF/PA/LNA,板载天线。支持标准的IEEE802.11 b/g/n协议,完整的TCP/IP协议栈。可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。

  ESP-8266无线模块如图:

  ESP-01 WIFI模块
  本模块优势:
  ①价格低。
  ②体积做到11*10毫米左右,指甲盖大小,方便嵌入到任何产品。
  ③功能强大内部跑LWIP协议。
  ④支持三种模式:AP,STA,AP+STA共存模式。
  ⑤完善简洁高效的AT指令,开发简单。
  ESP-01管脚图
  ESP-01管脚功能定义
  序号Pin脚名称功能说明
  1 GND GND
  2 GPIO2通用IO,内部已上拉
  3 GPIO0 1)工作模式选择:
  悬空:Flash Boot,工作模式
  下拉:UART DownLoad,下载模式
  4 RXD串口0数据接收端RXD
  5 VCC 3.3V,模块供电
  6 RST 1)外部复位管脚,低电平复位
  2)可以悬空或者接外部MCU
  7 CH_PD芯片使能,高电平使能,低电平失能
  8 TXD串口0数据发送端TXD
  2.2.4核心控制部件Arduino Mega2560
  Arduino单片机是基于开放源代码的USB接口Simple i/o接口板,且开放源码的硬件平台,和一套为Arduino板编写程序的IDE集成开发环境组成。Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。
  相较于传统单片机,Arduino单片机有以下几个方面优势:
  (1)学习Arduino单片机可以完全不需要了解其内部硬件结构和寄存器设置,仅仅知道它的端口作用即可;可以不懂硬件知识,只要会简单的C语言,就可用Arduino单片机编写程序。
  (2)、Arduino软件语言仅仅需掌握少数几个指令,而且指令的可读性也强,稍微懂一点C语言即可,轻松上手,快速应用。
  (3)、Arduino的理念就是开源,软硬件完全开放,技术上不做任何保留。针对周边I/O设备的Arduino编程,很多常用的I/O设备都已经带有库文件或者样例程序,在此基础上进行简单的修改,即可编写出比较复杂的程序,完成功能多样化的作品。
  (4)、Arduino由于开源,也就意味着从Arduino相关网站、博客,论坛里得到大量的共享资源,在共享资讯的辅助下,通过资源整合,能够加快创作作品的速度及效率。
  (5)、相对其他开发板,Arduino及周边产品相对质廉价优,学习或创作成本低,烧录代码不需要烧录器,直接用USB线就可以完成下载。
  所以本文选用了Arduino Mega2560为核心控制部件。

  Arduino Mega简介:

  Arduino Mega是一块以ATmega2560为核心的微控制器开发板,本身具有54组数字I/O input/output端(其中14组可做PWM输出),16组模拟比输入端,4组UART(hardware serial ports),使用16 MHz crystal oscillator。由于具有bootloader,因此能夠通过USB直接下载程序而不需经过其他外部烧写器。供电部份可选择由USB直接提供电源,或者使用AC-to-DC adapter及电池作为外部供电。
  由于开放原代码,以及使用Java概念(跨平台)的C语言开发环境,让Arduino的周边模块以及应用迅速的成长。而吸引Artist使用Arduino的主要原因是可以快速使用Arduino语言与Flash或Processing…等软件通讯,做出多媒体互動作品。Arduino开发IDE介面基于开放源代码原则,可以让您免费下载使用于专题制作、学校教学、电机控制、互动作品等等。

  电源设计

  Arduino Mega的供电系统有两种选择,USB直接供电或外部供电。电源供应的选择将会自动切换。外部供电可选择AC-to-DC adapter或者电池,此控制板的极限电压范围为6V~12V,但倘若提供的电压小于6V,I/O口有可能无法提供到5V的电压,因此会出现不稳定;倘若提供的电压大于12V,稳压装置则会有可能发生过热保护,更有可能损坏Arduino MEGA。因此建议的操作供电为6.5~12V,推荐电源为7V或12V。

  引脚说明:

  (1)14路数字输入输出口:工作电压为5V,每一路能输出和接入最大电流为40mA。
  每一路配置了20-50K欧姆内部上拉电阻(默认不连接)。
  (2)4路串口信号:串口0—0(RX)and 1(TX);串口1—19(RX)and 18(TX);串口2—17(RX)and 16(TX);串口3—15(RX)and 14(TX)。其中串口0与内部ATmega8U2 USB-to-TTL芯片相连,提供TTL电压水平的串口接收信号。
  (3)6路外部中断:2(中断0),3(中断1),18(中断5),19(中断4),20(中断3),and 21(中断2)。触发中断引脚,可设成上升沿、下降沿或同时触发。
  
  (4)14路脉冲宽度调制PWM(0–13):提供14路8位PWM输出。
  (5)SPI(53(SS),51(MOSI),50(MISO),52(SCK)):SPI通信接口。
  (6)LED(13号):Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。
  
  (7)16路模拟输入:每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整输入上限。除此之外,有些引脚有特定功能:TWI接口(20(SDA)和21(SCL)):支持通信接口(兼容I2C总线)。
  (8)Reset:信号为低时复位单片机芯片。

  3电路设计

  3.1硬件连接

  在发射端硬件的连接中,通过USB接口来给arduino控制器供电,显示屏LCD1602的VCC,GND,SDA,SCL引脚(为了更方便接入,显示屏接入了转接板)分别接入Arduino Mega控制板上的+5v,GND,SDA,SCL端口。温湿度传感器的VDD,DATA,GND引脚接入8,7,GND端口。5v的端口已经被占显示屏用,通过代码来把8端口设置成高电平5v。蓝牙模块的RXD,TXD,GND,VCC分别接入RXD,TXD,GND,+3.3v。
  发射端
  在接收端硬件的连接中,通过USB接口来给arduino控制器供电。接收端蓝牙模块的RXD,TXD,GND,VCC分别接入RXD,TXD,GND,+3.3v。PWM电机控制器VCC,GND,DATA引脚接入9,GND,6,另一端VIN,GND,DATA引脚接入+220V,GND,水泵。

  3.2arduino编程软件

  Arduino语言是建立在C/C++基础上的Arduino语言,实际上是基于AVR C编程语言,Arduino编程语言可以通过C++库进行扩展的,如果需要的话,可以直接往你arduino程序中添加AVR-C代码,并且不用我们去了解他的底层,让我们也能轻松上手。

  3.3实现程序

  4设计结果

  该控制系统根据目前节水灌溉技术的发展趋势和国内实际的应用特点和要求,采用了自动化的结构形式,实现对土壤湿度的自动检测和喷灌控制。系统以Arduino Mega2560为核心部件,系统完成对土壤湿度信号的采集、处理、传输、显示以及对执行机构的控制等功能。

  该系统的主要特点是:

  1)适用性强,用户只需对参数进行设置并启动系统正常运行便可满足不同作物对土壤湿度的要求,实现对土壤湿度的实时监控.
  2)可对作物进行适时、适量灌水,不仅有利于作物的生长发育,而且避免了水资源的浪费,起到了高产节水的作用。
  3)将模糊智能控制技术引入对土壤湿度的分析和处理中,模糊控制决策无需建立被控对象的数学模型,系统的鲁棒性强,适合对非线性、时变、滞后系统的控制,对灌溉系统采用模糊控制非常适合。具体采用双输入单输出的模糊控制方法,使控制系统更具科学性。
  4)系统成本低廉,操作非常简单,可扩展性强,只要稍加改变,即可增加其他使用功能。
  本文研究灌溉控制技术对现代化农业的发展具有十分重要的意义。因课题限于时间、技术、试验条件的种种不足,使得系统无论是在硬件或是在软件上都存在很多不合理、不完善的地方,还需要做进一步的改善提高。具体还存在以下几个方面:
  1)本系统只对灌溉中水的因素实行监控,而未涉及肥的问题,应将水肥结合起来进行灌溉,对作物生长效果会更好。
  2)应同时考虑土壤湿度和作物需水量两个因素,判断是否要对作物进行灌溉以及所需灌水量的多少。
  3)被测土壤湿度只是进行了一个点测试,如果能进行多点检测就会使检测到的湿度值精度更高。
  4)本系统在模拟检测中运行较好,实际应用中还有很多令人不满意的地方,如采样数据不太稳定等,还有待于进一步完善提高。

  参考文献:

       [1]赵德安等,单片机原理与应用[M],北京.机械工业出版社,2004.
  [2]吴景社,李久生,李英能等,纪节水农业中的高新技术重点研究领域[J]农业工程学报,2008.
  [3]涂安富,金城谦,吴崇友,卢宴,钟伟民.几种节水灌溉新技术分析[M],中国农机化出版社,2005.
下载提示:

1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。

2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。

3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。

原创文章,作者:写文章小能手,如若转载,请注明出处:https://www.447766.cn/chachong/11994.html,

Like (0)
写文章小能手的头像写文章小能手游客
Previous 2021年5月18日
Next 2021年5月18日

相关推荐

My title page contents