目录
摘要 1
Abstract 2
第一章 绪论 3
1.1 选题的背景和意义 3
1.2 本论文章节结构 3
第二章 相关关键技术 4
2.1 C语言简介 4
2.2 KEIL软件简介 5
第三章 基于4G手机远程智能花卉浇灌系统的设计 6
3.1 设计思路 6
3.2 系统整体设计 6
3.3 单片机功能模块的设计 7
3.3.1 STC15W4K48S4 系列单片机简介 7
3.3.2 DHT11温湿度传感器 10
3.3.3 小型功率继电器 12
3.3.4 TFT显示屏 13
第四章 基于4G手机远程智能花卉浇灌系统的实现 18
4.1 硬件环境的实现 18
4.2 本地控制模块的实现 18
4.2.1 蜂鸣器、继电器、LED控制部分实现 19
4.2.2 DHT11温湿度采集部分实现 20
4.2.3 界面显示部分实现 22
4.2.4 主程序部分 24
第五章 系统调试 31
总结 37
致谢 38
参考文献 39
基于4G手机远程监控的智能花卉自动浇灌系统
的设计与实现
摘要:现在的社会,国家的经济飞速发展,百姓安居乐业,生活水平也逐渐的提高,每一个家庭对自己的居住环境的要求也变得更高了,在家里养殖花卉植物也成为了人们点缀装饰自己生活环境的主流。为了便于人们在家中养殖这些花卉,本文设计了一种“基于4G手机远程监控的智能花卉自动浇灌系统”,这个系统,具有可远距离实时监控温湿度与控制继电器自动浇水的功能。
本文设计的智能浇灌系统主要包括三部分:手机端APP模块、单片机模块、4G开发平台模块。手机端APP模块的主要作用是显示采集到的温湿度数值以及控制单片机模块的继电器开关。单片机模块的主要功能是采集温湿度并实时在显示屏上显示,单片机模块主要由DHT11温湿度传感器、STC15F2K60S2单片机芯片、继电器、TFT LCD液晶显示屏等组成。4G开发平台的主要作用是实现数据在4G网络中的传送与接收,主要包括ARM开发模块、4G手机终端模块、7寸LCD显示屏三个部分。
关键词:智能浇灌;4G;单片机
Design and implementation of intelligent flower automatic irrigation system based on 4G mobile remote monitoring
Abstract:Present society , the country’s economy is developing rapidly , people live and work in peace . Living standards gradually improve , Every family has become even more of their own living environment. At home, it has become the mainstream of the people’s living environment. In order to facilitate people to breed the flowers in the home, this paper designs a kind of intelligent flower automatic irrigation system based on 4G mobile remote monitoring system, this system Function of remote monitoring temperature and humidity and automatic watering of control relay.
The intelligent irrigation system designed in this paper mainly includes three parts. Including mobile terminal APP module, microcontroller module, 4G development platform module The main function of the APP module of the mobile phone is to display the temperature and humidity data collected and the relay switch controlled by SCM. The main function of the single chip microcomputer module is to collect temperature and humidity and display in real time on the display screen, SCM module mainly by the DHT11 temperature and humidity sensor, STC15F2K60S2 microcontroller chip, relay, LCD TFT LCD screen, etc. The main role of 4G development platform is to achieve data transmission and reception in the 4G network, including ARM development module, 4G mobile terminal module, 7 inch LCD display three parts.
Keywords: intelligent watering; 4G; Microcontrollers;
第一章绪论
选题的背景和意义
在现代,因为社会的进步,再加上大家的生活质量也正变得越来越高。这些让很多人越来越乐于在家里种植一些花花草草,这样它能够美化家庭环境和净化空气的同时,也可以丰富家庭生活。由于鲜花经过光合作用的过程能够吸收空气中的二氧化碳,净化室内空气,因而空气特别新鲜,有许多花和树木还可以吸收空气中的有害气体,所以如今很多人喜爱在自家的阳台上种植一些花卉植物。
但是花卉植物是否能生长良好,主要取决于人们是否可以根据不同花卉生长的习惯在适量的水。但是现在人们的工作繁忙,生活节奏快,缺乏种植经验,往往忽略了照顾家庭的花卉。有时旅行时间较长或工作太忙,让人们对于花卉的照顾非常不方便,经常当人们回家的时候花卉已经凋谢殆尽了,这使得很多喜欢用鲜花装饰家里的人望而却步。虽然如今在市场上有销售自动浇水的设备,然而它们一般对做不到远距离给家里的花卉浇水,不适合那些经常在外面旅游或者每天忙于工作不能回家的人,而且大多的设备只能设定一个按时浇水的时间,很难盆栽适当和及时浇水。也有非常便宜的花卉智能浇水器,可以提示人们及时的给盆栽植物浇水。但这只能提示,浇水的工作还是需要自己去做。当没有人在家里,即使报警了,它也不会及时的浇水,所以,本文想通过设计一个远距离智能浇水系统包括土壤温度和湿度的检测、可以实现远距离智能浇水的花卉自动浇水系统来解决人们所遇到的问题。
本论文章节结构
本论文从现在很多人因为不能在较远的地方给自己家的花卉浇水的现状出发,设计了一种“基于4G手机远程监控的智能花卉自动浇灌系统”。本论文总共有五章内容,第一章着重介绍了一下选题的背景意义和对于整个论文架构的安排。第二章讲解了在设计中所运用的相关关键技术,包括C语言、KEIL软件等。第三章介绍了本系统的设计方案。第四章介绍了各个系统模块的实现过程,包括硬件环境的实现和本地控制模块的实现。第五章对整个系统的调试结果做了一个详细的分析。
第二章相关关键技术
C语言简介
二十世纪七十年代初,C语言之父丹尼斯·里奇在贝尔实验室对B语言,取BCPL语言的第一个字母,做进一步的修改完善,开发出了C语言,取BCPL语言的第二个字母,一开始开发C语言的目的是为了能把UNIX系统很好的描述出来。C语言是一种面向过程的高级开发语言,从C语言诞生到迄今相继出现了很多种语言,比如,有面向对象的程序设计语言C++、可视化程序设计语言Visual C++、组件导向的程序设计语言C#,目前这些程序设计语言已成为程序设计的主流语言,但是它们还都是以C语言作为其基础的,所以,C语言的生命力是非常顽强的,直到现在这个百花齐放的大世界里仍然被许多用户和开发者所青睐。
C语言相比于其他面向过程的程序设计语言(BASIC、Pascal等)具有高效灵活、功能强、移植性好等特点,概括起来主要有以下几点:
(1)简介、灵活、方便:C语言一共32个关键字,大部分是对于数据的描述。还有9种控制语句,是对程序流程控制,C语言的程序书写形式非常随意并且灵活。
(2)更多运算符、表达能力强:C拥有的45种运算符,它把很多对数据的操作都当作运算符解决。开发人员可灵活的使用所提供的运算符表达其他语言难以表达的表达式。
(3)以函数作为模块单位:使用C语言编写的程序是由许许多多的单独的函数的模块组成的,其中必有一个函数名为main()的主函数,C语言的输入和输出是通过调用函数实现的,而与其他语言是通过语句来实现的有很大不同,从而实现了程序设计模块化。
(4)生成目标代码好:用C语言编译系统生成的目标代码仅仅比汇编语言生成代码的效率低10%~20%。
(5)可以访问物理地址:汇编语言的很多功能都可以使用C语言来实现,用C语言编写的程序对使用的硬件可以进行直接操作,更适用编写系统。
(6)可移植性好:这是C语言最突出的特点,C语言写出来的代码正常情况下不用重新编写就可以在不同型号的计算机和不同的操作系统上应用。
C语言编写的程序,不能直接被计算机识别、理解和执行,需要一种担任编译工作的程序,把C语言的源程序转换为计算机能直接识别的程序,C语言程序的编写需经过4个过程:
(1)编辑:源程序先经过编写,再到存储到磁盘文件中,这个过程是编辑。
(2)编译:将已经编辑好的源程序转化成二进制目标代码
(3)连接:把编译好的模块的目标代码与系统提供的标准模块进行连接,得到具有绝对执行的可执行文件。
(4)执行:执行一个经过编译和连接后得到可执行文件
KEIL软件简介
KEIL软件由美国软件设备公司生产的,是一款用来编写单片机软件程序的系统,相比于汇编语言,C语言在功能上、结构性等很多特性上有明显特点,因此对于很多初学者来说C语言非常的好学并且非常的好用,KEIL软件则提供了很多功能,包括C语言编译器和一个功能齐全的仿真软件等很多功能的一个比较完美的开发方案。目前比较成熟的KEIL软件有KEIL2、KEIL3、KEIL4。本设计选用的是KEIL3,ARM推出全新的针对各种嵌入式处理器的软件开发工具,集成KEIL3的REALVIEW MDK开发环境。
KEIL集成开发环境是以工程的方法来管理文件的,而不是单一的文件模式,所有文件包括源程序,头文件,甚至说明的文档都可以放在工程项目文件里进行统一管理,在使用KEIL前,一定要习惯这种工程管理模式,对于刚开始使用KEIL的用户来说,一般只要按照下面的步骤来创立一个KEIL应用程序:
(1)首先创建一个工程项目文件。
(2)再为工程选择目标器件。
(3)然后创建源程序文件。
(4)最后保存建立的源程序项目文件,并把其加入到工程项目文件中来。
第三章基于4G手机远程智能花卉浇灌系统的设计
设计思路
本设计需要实现,在本地端实时采集温湿度数据显示在TFTLCD液晶显示屏,并且通过串口发送到ARM模块上,本地端还要能够根据指令判断是否需要浇水。 远程端可以通过4G网络来接收与发送数据,用户使用手机APP查询实时的温湿度数据,并且温湿度更新频率可以灵活调整,还可以使用手机APP通过4G网络发送相应指令来控制继电器的开关实现智能浇水功能。
本文根据设计要求给出了如下方案:
方案一:使用4G网络直接将单片机采集到的数据发送到手机端,实现端对端的数据传送。
方案二:使用第三方服务器作为数据中转,将采集到的数据通过4G网络上传到第三方服务器,手机端通过APP访问第三方服务器获取数据,从而实现远程控制。
经过论证发现方案一:使用4G网络直接发送数据到手机端是无法实现的。因为数据传输需要时间,有一定延迟性,在传送中容易造成数据丢失,而且本设计需要对单片机模块的温湿度传感器和继电器进行控制,方案一不能够完成这样的功能。通过进一步查询的资料发现,第三方服务器可以作为数据中转站实现数据的储存,同时还可以给本设计所用到的温湿度传感器和继电器分配设备ID实现远程控制功能,所以本设计选用方案二。
系统整体设计
基于4G手机远程监控的智能花卉浇灌系统主要有单片机控制模块、温湿度传感器模块、继电器模块、4G开发平台、乐联云服务器和手机端APP组成。其系统整体结构如下图3-1所示:
图3-1 智能花卉浇灌系统整体结构图
单片机主要负责本地部分数据采集和控制,DHT11温湿度传感器将采集到温湿度数据传送给单片机,单片机处理后传送到TFT LCD显示屏显示出来,同时通过串口将数据传递给4G开发平台。单片机还会根据程序控制继电器的开关实现浇水和遮阳的功能。
4G开发平台由4G模块、ARM和显示屏组成,将单片机传送过来的数据通过移动4G网络发送到乐联云服务器,同时用户通过手机端APP从服务器接收数据,实现远程监控功能。用户也可以通过手机端APP发送相应指令到乐联云服务器,服务器转发到4G开发平台然后通过串口传递给单片机实现远程控制功能。
单片机功能模块的设计
3.3.1STC15W4K48S4 系列单片机简介
单时钟周期/机器周期(1T)的单片机有一个典型的例子为宏晶科技的STC15系列单片机STC15W4K48S4,它具有宽电压、高速度、高可靠、低功耗、超强抗干扰等一系列的特征。作为新兴的8051 系列单片机,它的指令代码可直接被用于传统的8051系列单片机上,但其运行速度要比传统的8051系列单片机要快8~12倍左右。这块芯片内部具有高精度R/C时钟,8路10位PWM,8路10位A/D转换,内置4000字节大容量SRAM,四组独立高速异步串行通信端口(UART1/ UART2/ UART3/ UART4)和一组高速同步串行通信端口SPI。
(1)工作电压:2.5V-5.5V
(2)16K、32K、40K、48K、56K、61K、63.5K字节内Flash程序存储器,擦写次数大于10万次
(3)拥有4096字节大容量的 SRAM,包括常规的256字节RAM和内部扩展的 3840字节XRAM
(4)ISP/IAP,在程序和应用中均可编程,不需要编辑器和仿真器
(5)工作频率范围:5MHz28MHz,相当于普通8051的60MHz336MHz
(6)内部高精度R/C时钟(±0.3%),±1%温度(-40℃+85℃),常温下温度±0.6%(-20℃+65℃),ISP编程时内部时钟从5MHz~35MHz可设(5.5296MHz、11.0592MHz 、22.1184 MHz 、33.1776 MHz)
(7)不需外部晶振和外部复位,同时可以对外输出时钟和低电平复位信号
(8)完全独立的高度异步串行通信端口共有四组,分时切换时可做9组串口使用:串口 1(RxD/P3.0、TxD/P3.1)可切换到(RxD_2/P3.6、TxD_2/P3.7),还可以切换到(RxD_3/P1.6、TxD_3/P1.7);串口2(RxD2/P1.0、TxD2/P1.1)可切换(RxD2_2/P4.6、TxD2_2/P4.7);串口3(RxD3/P0.0、TxD3/P0.1)可切换到(RxD3_2/P5.0、TxD3_2/P5.1;串口4(RxD4/P0.2、TxD4/P0.3)可切换到(RxD4_2/P5.2、TxD4_2/P5.3)
(9)一组高速同步串行通信端口SPI
(10)支持程序加密后传输,防拦截
(11)支持 RS485 下载
(12)低功耗设计:具有低速模式、空闲模式、掉电模式、停机模式
(13)可将掉电模式、停机模式唤醒的定时器:有内部功耗掉电唤醒专用定时器
(14)硬件看门狗(WDT)
单片机引脚图如图3-2所示:
图3-2 STC15W4K48S4单片机引脚图
单片机内部结构框图如下图3-3所示:
图3-3 STC15W4K32S4单片机内部结构框图
3.3.2DHT11温湿度传感器
DHT11温湿度传感器是一款以数字信号输出的温湿度传感器。该传感器运用了数字模块技术和温湿度传感技术,同时具有可靠性、稳定性等特点。它的内部还包含了一个电阻式感湿元件和一个NTC测温元件,这些元件还与一个高性能8位单片机相互连接。由于DHT11温湿度传感器使用单线制串行接口,使得数据传输和数据处理变得尤为简易快捷。也因为它的体积超小、功耗也极低,还可以在大于20米的距离传输,极多的优点也使得它成为各类应用最好的选择。它的产品外观为4针单排引脚封装,方便硬件连接使用。其主要应用:暖通空调、除湿器、汽车、自动控制、数据记录器、气象站、家电、温度调节器、医疗等其他相关温湿度检测控制的领域。
DHT11温湿度传感器外观如下图3-4所示:
图3-4 DHT11温湿度传感器
DHT11温湿度传感器封装尺寸如下图3-5所示:
图3-5 封装尺寸图
DHT11温湿度传感器引脚如下图3-6所示:
图3-6 温湿度传感器接口电路图
DHT11温湿度传感器引脚说明如下表3-1所示:
表3-1 DHT11温湿度传感器引脚说明
管脚 名称 功能
1 VCC 电源3-5.5V
2 DATA 单总线串行数据传输
3 N/A 空脚
4 GND 接地
串行接口(单线双行)
它还采用了最简单的单总线串行通信方式,对于系统中的数据交换、控制全部是由单总线完成。、单片机微处理器与DHT11之间的通信和同步通过DATA管脚进行传输,传输方式采用单一总线数据格式,一次传送时间大概40ms,每次传送40位的数据,高位先出,数据分整数值部分和小数值部分。
(1)数据格式:
8bit湿度整数部分+8bit湿度小数部分+8bit温度整数部分+8bit温度小数部分+8bit校验位。
(2)校验位数据定义
“8bit湿度整数部分+8bit湿度小数部分+8bit温度整数部分+8bit温度小数部分”等于8bit校验位等于所得结果的末8位。
使用注意事项
(1)电阻式温湿度元器件的感应层容易受到化学蒸汽的干扰,由于化学物质的腐蚀可能会导致测量数值不准确和元器件灵敏度下降。在纯净的环境下污染物会逐渐扩散,传感器将缓慢恢复。当传感器处于极限工作状态或者处于化学蒸汽下灵敏度下降时,可以将传感器放置在50-60℃和<10%Rh的湿度环境下烘干2小时;然后在20-30℃和>70%RH的湿度环境下放置5小时以上。
(2)气体的相对湿度,主要依赖于温度,所以在测量湿度时应该尽量保证温湿度传感器在相同温度下工作。如果和释放热量的元器件共用一个印制电路板,应该在安装时尽量远离DHT11传感器,并且保持良好的通风散热环境。为了减少热传导的热量,DHT11与印制电路板其他部分的铜镀层应尽可能最小,并且在两者之间流出一定的间隙用于散热。
(3)禁止长时间暴露在太阳光下或者强烈的紫外线照射。
(4)使用高质量的屏蔽线,因为DATA信号线的质量会影响通讯距离和质量。
(5)焊接时,在最高温度260℃的状态下接触时间应小于10秒。
3.3.3小型功率继电器
本设计SRD-05VDC-SL-C小型功率继电器(DC-5V 、AC-250V 10A)其外观如下图3-7所示:
图3-7 继电器外观
继电器电路图如下图3-8所示:
图3-8 继电器电路图
继电器是一种电控制元器件,它由控制部分和被控制部分组成,即继电器可以被单片机等通过一定的输入量控制闭合功能,同时又可以控制外接电路的通断。实际上是利用小电流控制大电流电器工作的一种“自动开关”,继电器被广泛运用在遥控、遥测、通讯、自动控制、机电一体化、智能家居等设备中,是最重要的控制元器件之一。
3.3.4TFT显示屏
TFT-LCD显示屏又被称为薄膜晶体管液晶显示屏。TFT-LCD显示屏与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),这样液晶显示屏在非选通状态时的串扰可以有效地被解决,使显示液晶屏上的静态特性与扫描线数无关,这样可以大大增强了图像质量。TFT-LCD也被称为真彩液晶显示器。
本设计使用的TFTLCD模块特点如下:
(1)3.2寸屏幕,工作电压2.8~3.3V。
(2)320×240的分辨率。
(3)16 位真彩显示。
(4)自带触摸屏,可以用作控制输入。
该模块支持65K色显示,显示分辨率为320×240,接口为16位的并行8080接口,自带触摸屏如图3-9所示。
图3-9 TFT液晶屏模块
TFT液晶屏显示接口电路图,如下图3-10所示:
图3-10 TFT液晶屏显示接口电路图
从图3-10可以看出,本设计使用的TFTLCD模块是通过16位的并行方式和外部连接,当然也可以采用8位的方式,但是由于使用8位数据线,速度会比16位方式慢一倍以上,并且在显示图片的时候,彩屏的数据量比较大,所以本设计选择16位的接口。其引脚接口定义情况如下表3-2所示:
表3-2 TFT模块引脚接口定义表
管脚 功能
CS TFTLCD片选信号
WR 向TFTLCD写入数据
RD 从TFTLCD读取数据
D[15:0] 16位双向数据线
RST 复位TFTLCD
RS 命令/数据标志(0,读写命令;1,读写数据)
TFTLCD模块使用流程如下图3-11所示:
图3-11 TFTLCD模块使用流程
其他型号的LCD显示屏的使用也可以通过以上流程图表示。图中的硬复位和初始化序列部分,只需要在程序第一次运行的时候执行一次就可以。操作屏幕可以按照以下流程:设置坐标→写GRAM指令→写颜色数据,然后可以在 LCD上面看到对应的点显示程序写入的颜色。读点流程为:设置坐标→读GRAM指令→读取颜色数据,这样就可以获取到对应点的颜色数据了。
电阻式触摸屏简介
在苹果手机发布之前,市面上所有的电子产品几乎都是使用的电阻式触摸屏,电阻式触摸屏是利用压力感应原理进行触点检测控制,需要直接受力接触,通过检测电阻来确定触摸的位置。本设计使用的TFTLCD模块自带的触摸屏也是电阻式触摸屏。
(1)TFT液晶屏模块原理图,如图3-12,含触摸屏驱动电路。
图3-12 TFT液晶屏模块原理图
(2)XPT2046引脚功能如下图3-13所示:
图3-13 XPT2046引脚图(TSSOP封装)
XPT2046各引脚功能情况如下表3-3所示:
表3-3 XPT2046引脚功能
引脚号 名称 说明
13 BUSY 忙时信号线。当为高电平时为高阻状态
14 DIN 串行数据输入端。当为低电平时,数据在DCLK上升沿锁存进来
15 片选信号。控制转换时序和使能串行输入输出寄存器,高电平时ADC掉电
16 DCLK 外部时钟信号输入
1 VCC 电源输入端
2 XP XP位置输入端
3 YP YP位置输入端
4 XN XN位置输入端
5 YN YN位置输入端
6 GND 接地
7 VBAT 电池监视输入端
8 AUX ADC辅助输入通道
9 VREF 参考电压输入/输出
10 IOVDD 数字电源输入端
11 PENIRQ 笔接触中断引脚
12 DOUT 串行数据输出端。数据在DCLK的下降沿移出,当高电平时为高阻状态
(3)XPT2046原理框图如下图3-14所示:
图3-14 XPT2046原理框图
第四章基于4G手机远程智能花卉浇灌系统的实现
硬件环境的实现
由于4G终端创新开发平台每一部分模块都是独立的,本设计使用时需要把所使用到的部分连接起来(如下图4-1所示),本设计需要使用4G网络进行传输所以需要把4G模块和ARM模块用USB数据线连接在一起,同时需要将ARM模块和单片机模块进行连接实现本地和云端的数据交互,使用杜邦线将两个模块的串口部分以Tx-Tx,Rx-Rx的方式连接起来。
图4-1 硬件环境搭建
本地控制模块的实现
基于4G手机远程智能浇灌花卉系统的单片机部分,在本地主要实现对温湿度数据的采集和显示,继电器、LED、蜂鸣器的控制功能。同时还需要将本地采集到的数据和各元器件的实时状态通过串口发送到ARM模块,然后通过4G模块发送到乐联云服务器,用户可以通过手机端通过APP获取到实时数据。下面分部介绍各部分功能的实现过程。
4.2.1蜂鸣器、继电器、LED控制部分实现
由于本设计需要通过继电器控制外接设备实现浇水功能,在硬件连接时还需要测试串口连通性,所以编写蜂鸣器和LED程序用于测试使用,以下子程序可以在需要时被直接调用。程序编写部分如下:
void Beep_Off(void)
{
BEEPON =0; //关闭蜂鸣器
}
void JD1ON(void)
{
JD1 =0; //打开继电器1
}
void JD2ON(void)
{
JD2 =0; //打开继电器2
}
void JD1OFF(void)
{
JD1 =1; //关闭继电器1
}
void JD2OFF(void)
{
JD2 =1; //关闭继电器2
}
void LED3_ON(void) //打开LED3
{
LED_D3=0;
}
void LED4_ON(void) //打开LED4
{
LED_D4=0;
278

被折叠的 条评论
为什么被折叠?



