【《单片机控制的现代农业智能监测系统软件设计案例》3000字】_第1页
【《单片机控制的现代农业智能监测系统软件设计案例》3000字】_第2页
【《单片机控制的现代农业智能监测系统软件设计案例》3000字】_第3页
【《单片机控制的现代农业智能监测系统软件设计案例》3000字】_第4页
【《单片机控制的现代农业智能监测系统软件设计案例》3000字】_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机控制的现代农业智能监测系统软件设计案例目录TOC\o"1-3"\h\u16425单片机控制的现代农业智能监测系统软件设计案例 1319251.1软件开发环境 1279141.2系统软件设计 1260011.3软件设计架构 2115411.4编程语言的介绍 2230871.1.1C语言简介 2171861.1.2C语言的特点 215271.5软件整体流程框图 364321.3.1下位机部分 337421.3.2上位机部分 570171.6主要模块功能实现 7324211.4.1DHT11温湿度模块实现 79631.4.2OLED显示模块实现 9176341.4.3土壤湿度ADC实现 10146671.4.4ESP8266数据通信实现 101.1软件开发环境KeilC51开发计算机软件51系列兼容单片机C语言计算机软件开发系统。C语言在实用性、结构、可读性和可维护性方面比编程语言有很多明显的优势,所以它很更容易被接受和使用。Keil提供了一个完整的开发系统,为开发人员提供了一个简洁和高效的开发应用程序。1.2系统软件设计本系统的设计为现代农业智能监测系统,模块分别有单片机系统、OLED显示模块、ESP8266数据传输模块、DHT11温湿度采集模块、光照强度采集模块以及报警模块。在keil中编译调试代码非常快捷,用模块的方式来实现功能,利用ST-Link下载器直接使用keil就可以下载编译后的可执行程序到单片机中进行验证。1.3软件设计架构软件开发是在硬件电路设计的基础设计上进行,通过仔细地分析各个模块程序来确定设计思想以及实现功能的具体方法。整个系统的代码是通过将系统分为完全不同的模块,采用模块化设计思想和C语言编程。代码部分包括主程序、OLED显示驱动、温湿度检测驱动、光照强度检测驱动、数据传输驱动和报警驱动程序。图1.1软件设计架构图1.4编程语言的介绍1.1.1C语言简介C语言是结构化的语言,层次结构非常透明,开发人员有时会以分模块的方式来编写他们的程序,这有利于调试。C语言具有强大的处理和展示能力,一套全面的操作符和一系列的数据类型,允许用户简单地建立各种数据结构,通过指针直接解决内存,并操作硬件。C语言常常被用来开发软件应用程序。C语言是通用的结构化语言,具有几个独特的有点。(1)简单性:C语言仅有9中控制语句和32个关键字。(2)运用广泛。有34个运算符,运算的范围广阔,因此,结果的表达类型也非常的丰富。(3)结构完善。C语言是一种结构化语言,它允许标准应用程序在标准单元的类型中执行,这在系统描述和代码执行方面提升开发效率。1.1.2C语言的特点=1\*GB3①开发简单,操作灵活。C语言拥有非常简洁的编译系统。=2\*GB3②结构化的控制语句。管理语句有结构化的选项,可以改变函数的逻辑管理和面向过程的编程。=3\*GB3③具有丰富的数据类型。C语言包含丰富的数据类型,还有指针这种其他语言不具备的数据类型,操作灵活。能用来实现各种复杂的数据类型的运算。=4\*GB3④运算符丰富。34个运算符,赋值、括号等均可以用作运算符来进行操作,使C程序的表达式类型和运算符类型多样化。=5\*GB3⑤层次清晰。C语言让编程者按照模块的方式编写,非常有利于代码调试。程序的编写对许多不必要的部分进行了精简。=6\*GB3⑥C语言支持操作内存地址直接操纵硬件。=7\*GB3⑦C语言普适性好,可移植性强。在很多计算机系统中都能被使用,效率显著。1.5软件整体流程框图1.3.1下位机部分在硬件电路设计上,先对引脚资源进行合理规划,然后进行整个系统的程序设计,程序使用C语言进行编程,采用模块化设计,包括DHT11温湿度采集模块、光照强度A/D模块、esp8266数据传输模块、报警模块、显示模块等。使用STM32F103C8T6作为CPU对数据进行处理。程序初始化包括单片机I/O端口使能、OLED显示器初始化设置等。程序存放于单片机STM32F103C8T6中,启动后开始循环执行,轮询检测环境温湿度、光照强度以及土壤湿度。主程序是整个单片机程序的主体框架,软件设计的主要思路是将温湿度检测、光照强度检测、数据传输、开始初始化数据采集开始初始化数据采集,数据传输Esp8266接收数据是否超限OLED接收显示结束否报警是图1.2程序流程图系统软件流程如图:系统上电后开始初始化,DHT11,光敏模块土壤湿度模块,ESP8266等模块初始化完成后,开始与控制器通信,在收到cpu信号后开始采集传输温湿度数据,单片机收到数据后,将采集到的数据通过IIC通信的方式发送到OLED模块,此时OLED屏幕进行实时显示。上位机部分则是通过手机打开app可以操作滑条对需要设定的上限值进行设定,并将数据通过网络服务器发送到esp8266模块,esp8266接收到数据后将数据传输到CPU,CPU将接收到的值与采集到的实时数据进行对比,决定是否启动蜂鸣器报警,并将数据值通过ESP8266发送到服务器,服务器将数据发送到手机进行远程实时显示。整体流程图如下图1.2所示。1.3.2上位机部分手机端使用机智云开源服务进行物联网开发,利用机智云开源平台就能够进行简单快捷的开发,能够很好的帮助开发者实现物联网开发,当我们在开发时,开发人员只需将网络模块与固件信息写正在开发的智能硬件上,这样他们就能通过机互联网了解设备的联网和智能开发。在本系统中利用机智云接入云平台,实现了手机操作,查看等功能。使用虚拟设备进行开发能够有效降低成本,减少开发步骤,完成智能硬件的基本操作和调试需要等工作。主要开发步骤:=1\*GB3①首先使用烧写工具烧写机智云官网提供的ESP8266官方固件,烧写成功后ESP8266就能与机智云进行通信。打开烧写工具将下载的固件通过USBtoTTL模块烧写到ESP8266中。烧写注意rst位需要接地短暂接地,同时GPIO2接地才是下载模式。=2\*GB3②登录机智云官网,创建新产品,填写产品分类,根据实际开发需求来选择需要的WIFI/移动解决方案。=3\*GB3③添加新的只读数据节点。添加温湿度、光照强度等数据节点,因为有些数据只远程查看,选择只读就可以,注意标识名需要使用英文,然后点击添加此节点。=4\*GB3④添加新的读写数据节点。信息节点的读/写种类有只读、可写、报警、故障等。只读是可以远程监控不能操作的信息,可写是可以远程管理,如开灯和其他操作,报警是信息点设置为一个,一旦APP可以有关联报警提示。=5\*GB3⑤应用,生成代码框架。下载官方生成的框架就能够进行适合自己的虚拟设备测试和后面的实际设备测试。=6\*GB3⑥点击MCU开发选项,选择独立的MCU方案,选择STM32F103作为硬件平台,点击生成代码框架。下载代码包,即可进行硬件开发。=7\*GB3⑦在下载的代码包中进行硬件开发,分别实现各个模块的功能后,就能通过APP与esp8266通信,从而实现手机远程操控与监测功能。1.6主要模块功能实现1.4.1DHT11温湿度模块实现根据通信协议,DHT11不能主动采集接近的温度和湿度,单片机通过I/O口发送激励信号,单片机主动驱动检测器,传感器可以开始运算,然后单片机都要将管理的信息线传给检测器,传感器完成信息采集、模数转换、数据传输等任务,因此单片机单独通过I/O口高低电平连续检测,分析出正确的数字数据。DHT11通过双向单线输出温湿度数据,每一次数据输出长度为40位(高位在前,大约需要4ms)。图1.3DHT11数据格式数据采集步骤:第一步:传感器检测温度和湿度数据,记录数据。第三步:单片机单片机等待接收信号。第三步:单片机接收数据。第四步:设备输出四十位数据,单片机按照引脚高低电平的变化接收四十位数据。开始开始DHT11初始化等待主机开始信号DHT11响应信号主机检测响应信号是否响应数据接收结束是否图1.4DHT11子程序流程图1.4.2OLED显示模块实现0.96英寸的OLED显示器分辨率128*64,每没一点为一个led。需要哪个位置点亮直接操作相应位置的地址。在实际使用中,如果要显示汉字、数字、图画等特殊符号均可以通过取模软件,取出图片、汉字等适用于OLED模块的数组,通过显示函数就能够达到想要的效果。在开发时首先需要对相应引脚进行使能和开启IIC通道,并且将IIC通道设置为开漏输出。初始化OLED,初始化引脚后需要延时100ms是很重要的,设置显示起点坐标。开始开始初始化OLED唤醒设置清屏函数设置显示函数结束图1.5OLED显示子程序流程图1.4.3土壤湿度ADC实现 土壤湿度采集主是利用采集模块输出的AO模拟信号,通过AD转换得出。在AD转换过程中需要使能时钟端口,使能复位时钟,设置分频,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论