【《基于单片机的智能花盆系统设计与实现》11000字(论文)】_第1页
【《基于单片机的智能花盆系统设计与实现》11000字(论文)】_第2页
【《基于单片机的智能花盆系统设计与实现》11000字(论文)】_第3页
【《基于单片机的智能花盆系统设计与实现》11000字(论文)】_第4页
【《基于单片机的智能花盆系统设计与实现》11000字(论文)】_第5页
已阅读5页,还剩23页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

INET图3-2 STM32F103RCT6实物图该芯片由意法半导体公司基于ARM公司Cortex-M3内核架构设计制造,采用32位硬件寻址总线,最高时钟频率为72MHz。核心工作电压为1.8V,外设工作电压为3.3V,运行内存为48kb,只读内存为256kb。它拥有丰富的硬件时钟树和各种定时器资源,包括高级定时器、通用定时器和基本定时器。而且基本上每个引脚都有硬件中断,5个串口资源,3个SPI,2个IIC2,1个CAN总线,1个USB1,通过硬件ADC/DAC有一个12位的DMA控制器,所以信号转换不再需要这种芯片。如果采样精度不太高,芯片内部有三种低功耗模式,即休眠、待机和关机模式。该芯片的封装形式如下。STM32芯片的控制无非是根据官方芯片手册配置各种寄存器。系统选用的芯片有51个IO引脚,每个引脚都有自己的功能和职责,通过寄存器和数据总线与主控核心通信。下面介绍IO端口寄存器配置方式,直接通过软件实现寄存器操作。所谓最小系统是指系统正常运行所需的最小电路单元。系统可以正常运行,必须有时钟心跳,就像人类的心脏一样。在这里,一个谐振电路组成的8兆赫和32.768khz石英晶体管和陶瓷电容器,8mhz的外部高速时钟输入,即时钟芯片主要道路的供应,和32.768khz的外部低速时钟输入,主要用于准确的时机;单片机最小系统还包括复位电路,采用按键低电平复位的方式;单片机外设工作电压为3.3V,并包含滤波稳压电源电路。芯片的正常运行依赖于驱动软件,即下载界面的代码。此处采用SWD下载调试模式。综上所述,STM32单片机的最小系统电路包括晶体振荡器时钟源电路、复位电路、滤波稳压电源电路和下载调试接口电路。STM32最小系统由四部分组成:电源电路、复位电路、晶体振荡器电路和下载电路。电源电路:VDD为数字电源正极,VSS为负极。VDDA表示模拟电源的正极,VSSA表示模拟电源的负极。VREF+为基准电压输入引脚的正极,VREF-为对应的负极。ADC和DAC分别负责模拟到数字和数字到模拟的转换。复位电路:STM32复位管脚复位到低电平,正常工作时复位管脚处于高电平状态。晶体振荡器电路:STM32有两套晶体振荡器,分别提供给单片机的主时钟和RTC的时钟。下载电路:STM32有两个引脚BOOT0和BOOT1。两个引脚的高低电平控制STM32单片机的启动方式。具体原理图见3-3。图3-3 STM32F103C8T6单片机最小系统电路图3.2.2Wi-Fi模块设计Wi-Fi模组ESP8266是一款工业级一体化802.11b/g/n模组,实现TTL串口、WIFI无线网络和以太网口双向透明传输。传统的串口设备或MCU控制设备利用WIFI模块可以快速接入WIFI无线网络。该模块支持RTS/CTS流控制,当通过串口传输数据时,或者与单片机进行通信时,由于两端的处理速度不同,出现接收端的数据缓冲区已满,而发送端依然在发送数据,造成数据丢失。流控制可以解决这种数据丢失的问题。该模块串口通信接入STM32单片机,使用的是串口3,波特率115200,实现WIFI数据包的双向透明转发,模块内部完成协议转换,通过该模块,客户可以将物理设备连接到Wi-Fi网络上,从而实现物联网的控制与管理。Wi-Fi模块电路图如图3-4所示。图3-4ESP8266接口电路图3.2.3湿度采样模块设计土壤湿度传感器模块能感应湿度的变化值,AO输出通过STM32PA4ADC接口进行模数转换,根据单总线通信协议,总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲,应答脉冲使主机知道,以产生低电平应答脉冲,若为低电平,再延时480us。图3-5土壤传感器接口电路原理图3.2.4水泵驱动模块设计本系统通过继电器模块对水泵电机发出工作信号,因此,STM32单片机的PC12引脚连接三极管的基极,VCC连接集电极,发射极与LED连接。当引脚电平为低的时候三极管导通,继电器线圈得电,触点闭合,执行放水浇花动作。水泵驱动电路图如图3-6所示图3-6 继电器开关电路图3.2.5光照检测模块设计本系统选择光敏电阻作为检测光照的器件,在模块电路中,通过串联一个电阻实现光敏电阻的分压,电阻为分压电阻,同时也保护光敏电阻。光敏电阻输出数据是模拟量,通过单片机ADC转成数字量输入主控芯片计算处理。在本设计中,模块引脚AO直接与单片机PA5口相连,引脚1连接VCC3.3V电源供电,引脚2与GND相接。舵机驱动模块电路图如图3-7所示。图3-7 光照强度检测模块电路图3.2.6LCD液晶显示模块设计LCD液晶显示电路如电路图所示,模块8080并行通信口接入单片机PE组IO口,DC5V供电,使能脚接入PB0引脚,读写引脚接入单片机PB2口,RS复位脚接入单片机PB13口,液晶电路VEE口接一滑动变阻器,目的是为调节LCD的显示分辨率。系统中采用LCD作为显示器件输出信息。在本电路中电位器可以调节液晶显示的对比度即清晰度。其具体电路原理图如下图所示。图3-8 LCD液晶显示电路原理图3.3本章小结本章主要介绍智能花盆控制系统的整体硬件框架设计以及具体元器件的选型,根据数据手册搭建各模块电路,并绘制出模块电路图,最后整合成整体的原理图,硬件架构的设计是系统设计的根基,这里根据自身所学的知识加以以前的项目开发经验,结合各模块的芯片手册以及优秀的电路设计,还介绍了各模块的使用原理等,为后面的软件设计奠定基调。第4章软件系统设计嵌入式开发领域底层硬件的编程语言一般是汇编、C或C++,纵观语言发展史,从最初的贝尔实验室成立,一步步衍生了近200种程序语言,像主流的JAVA、PYTHON、GO等,很多语言其实是另一种语言的变体。C作为继汇编语言后的一大语种,程序设计方式不再那么繁琐,C发展历史悠久,很多大型的底层的软件都用C编写,一来是底层编译效率高,二来是有丰富的数据结构和算法。本系统软件因为涉及直接操作单片机寄存器,固C语言是作为首先,汇编语言存在移植效率差、设计结构臃肿的缺陷,因此不适合有业务逻辑应用的开发工具,基于机器语言发展的前身,C语言既可以直接操作硬件,且设计模式高效,固选择C语言开发本次项目。4.1软件开发平台4.1.1AltiumDesigner16绘图软件如今,有很多软件绘制电路原理图,如:Protel,AltiumDesigner,Cadence等,这些软件各有各的特点,选择合适的软件绘制可以提高系统开发的效率,最后经过比对分析,选择了AltiumDesigner16。AltiumDesigner16是一个比较适合初学者使用的绘图软件,不但集成了Protel绘图软件的优点,可以绘制电路图和电路仿真,可以制作PCB,AltiumDesigner16是一套完整的板卡级设计系统,真正地实现了在单个应用程序中的集成。该设计系统的目的就是为了支持整个设计过程。AltiumDesigner16PCB线路图设计系统完全利用了WindowsXP平台的优势,具有改进的稳定性、增强的图形功能和超强的用户界面,设计者可以选择最适当的设计途径以最优化的方式工作。图4-1AltiumDesigner10操作界面4.1.2MDK编译软件STM32单片机的开发,不仅需要硬件技术的支持,还需要软件技术的支持。作为微处理器,芯片微处理器只能通过指令识别机器码和实现硬件功能。对于单片机的早期开发,代码是用汇编语言编写的,代码相对简单快捷,但代码非常易读,所以现在单片机的开发已经用到了C语言等高级语言中。C语言是高效且易于维护,这是单片机初学者的不错选择。一旦有了编程语言,需要一个编译器将代码转换成机器码,本设计就用MDK5包含这个编译器。所以MDK是一个不错的选择,本设计使用MDK5作为集成开发环境。图4-2MDK5组成4.2系统程序设计4.1.1系统总体流程图单片机系统编程总的来说包括裸机前后台搭建方式和RTOS内核移植编程方式,由于此次软件业务逻辑不是很庞大,固采用裸机应用方式。裸机的前后台搭建即是用子函数封装一个个线程体,在主循环函数实现线程函数递归调度,前台相当于中断,后台即为响应,而RTOS系统编程其实是利用实时操作系统作为载体,像UCOS等,这些像空闲、系统任务等都被封装成API,开发者根据需求直接调度就可以。本系统软件包括了驱动软件设计和系统事务逻辑设计,首先写好每个模块的驱动软件,这里包括ESP8266Wi-Fi模块串口通信的驱动、LCD显示的驱动、湿度传感器采样的ADC驱动、光敏电阻光强采样的驱动、继电器开关控制的驱动。根据数据手册的芯片时序图,在哪一时刻需要拉高电平,拉高多长时间,下降沿的时序又是怎样的,等等这些理论,综合起来完成驱动的开发。感知层传感器的驱动软件设计首先是初始化芯片时钟,void封装一个数据函数,定义传值移位变量,拉低片选使能脚,for循环写入10位有效数据,取出最高位写入数据,当检测到写数据停止位时,拉高片选使能脚,关闭数据传送,这款芯片是上升沿开启数据读写的。按键驱动的逻辑就是高低平使能中断,单片机系统实时扫描服务程序,当触发按键时,中断捕获触发信号。系统业务软件逻辑流程设计是首先进行单片机所有外设初始化操作,包括单片机时钟、相应模块芯片、LCD并进行清零操作,进入voidmain主函数循环体,实时监听系统中断,扫描按键是否按下,当有按键按下时,判断是哪种信号功能按键,对应调度驱动事件,在设置响应时加限值判断,判断是否达到电压输出阈值,最终判断输出是否满足要求,整个系统就是这么一个前台编程、后台调度的操作,基于高内聚低耦合设计模式,完成软件需求。系统总体流程图如图4-1所示。图4-1总体设计流程图4.1.2LCD液晶子程序设计LCD子程序流程图如图4-2所示。主要步骤是先进行硬件初始化,初始化模块接口及各引脚IO电平,不断扫描行列坐标,液晶面板总共能打印两行,每行16个字符点,用户传参定位坐标点,二维XY坐标,一旦捕获到坐标数据,往对应坐标像素填充数据,判断数据是否显示完成,是的话结束扫描。图4-3液晶显示流程图4.1.3湿度检测子程序设计首先进行IO口引脚的初始化,接着进入功能函数体,函数体首部是把数据输入总线拉低18毫秒,再复位由上拉电阻电平拉高,这里设定20微秒延时,然后判断数据输出总线是否有响应信号,如果没有反应,跳出的子程序,如果有响应则返回标志位,继续执行。否否是发出湿度转换命令写入寄存器读湿度前复位显示测湿度点位置复位开始硬件存在?延时发出读湿度命令写入寄存器读入湿度值数据返回延时图4-3土壤湿度采样程序流程图4.3ESP8266串口通信协议设计ESP8266模块与单片机的通信接口是串口,波特率115200,二者通信需要设计通信协议。串行端口是异步的(不传输时钟相关数据),两个设备在使用串口通信时,必须先约定一个数据传输速率,并且这两个设备各自的时钟频率必须与这个速率保持相近,某一方的时钟频率相差很大都会导致数据传输混乱,工作原理是将传输数据的每个字符一位接一位地传输。起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。资料位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。波特率:是衡量资料传送速率的指标。表示每秒钟传送的符号数(symbol)。一个符号代表的信息量(比特数)与符号的阶数有关。例如资料传送速率为120字符/秒,传输使用256阶符号,每个符号代表8bit,则波特率就是120baud,比特率是120*8=960bit/s。这两者的概念很容易搞错。4.4本章小结本章首先介绍智能花盆系统所需的软件工具,包括AltiumDesigner16,MDK5编译器软件,并对这些软件工具的开发、使用说明、功能模式进行了简要说明。然后介绍智能花盆系统各个软件独立模块的功能,绘制各个模块的工作流程图,根据每个模块的流程图,综合设计系统软件流程图,最后是本系统设计最关键的协议设计--串口通信介绍。第5章系统调试5.1系统功能性测试系统调试的目的是让整机功能如预期设想跑起来,大方向包括硬件调试和软件调试,所谓硬件调试就是利用仪器仪表测量工具,如示波器、逻辑分析仪、万用表等,主要测试电路电源是否正常、是否出现短路断路故障、芯片时序波形是否正确、是否产生纹波太大的电信号。所谓软件调试就是将代码下载进入单片机,接单片机串口进入计算机,通过上位机应用查看故障点,打印出软件故障出现位置,一般分析为程序逻辑故障、软件可靠性测试、安全接口测试、业务功能有误。本次设计系统调试整体来说还算比较顺利,就是ESP8266WIFI与安卓终端通信那里调试出现bug,后面分析为程序协议出错。根据流程规则进行智能花盆调试,最终系统功能如预期需求所设正常运行。系统实物图如图所示5-1所示。系统实物图5.2软件的调试设计中的核心芯片是使用Keil编译器的STM32微控制器,以及用于编程,调试和程序下载的设计软件。基于单片机的路障提示系统设计,整个程序调试软件的设计是Keil。Keil用于编写和调试程序。使用该软件时,我们遇到了一些问题,以及软件程序的延迟。问题发生后,不断修改程序,并查找问题的结果。这一方面的问题将得到解决。这部分主要是软件工程建立的图形介绍。首先,单击“项目”以设置软件的一些目标选项,以便可以生成项目,建立工程项目如图5-2所示。工程项目设置软件接口以编译源程序。发生错误时,它将返回上一级以更正错误并重新编译,直到没有错误为止。需要注意一些设置,SCM属性设置如图5-3所示。单片机属性设置图由Keil软件生成的“X.HEX”文件需要在SCM的属性设置中导入。设置属性后,按OK编译项目并调试代码。项目成功编译后,系统将提示生成二进制可执行文件和HEX文件。STM32MCU与传统的51MCU相比,下载程序不需要额外的辅助软件。该程序可以直接通过Keil软件下载。在本设计中,由于IO端口资源有限,因此采用ST-Link中的SW下载方法,ST-Link和STM32单片机仅需要4条线。这些包括SDIO,CLK,VCC和GND。并且在开发过程中,Keil软件可以通过ST-Link在线硬件调试为STM32微控制器,可以查看每个寄存器的值并调试程序的断点,非常方便。Keil的软件开发环境如图5-4所示。Keil开发环境另外本系统还可以传输湿度和光照信息到安卓(Android)平台手机上,ESP8266与之间的通信基于TCP/IP协议。手机软件采用Java语言编程,ESP8266模块的IP地址为:;端口号:8086。手机在连接WiFi模块后即可接受到单片机传来的土壤湿度和光照参数,目前手机APP只有展示从单片机读取的数据的功能。手机APP界面如图5-5所示。图5-5手机APP界面图5.3本章小结本章主要介绍智能花盆系统硬件调试、软件调试和系统集成调试,硬件调试包括对元器件焊接的短路测试、供电电源测试、电源稳定性测试以及硬件调试的原理介绍、方法和相关注意事项,软件调试包括模块驱动代码测试、自运行测试和与软件的通讯测试,系统集成调试就是智能花盆系统整个系统的功能调试了,最后结果是功能满足需求,运行正常。结论课题需求下来到系统实物功能调试完成经历了几个月的时间,以单片机控制为核心的智能花盆设计涉及的知识点涵盖硬件、软件和算法,可谓是一嵌入式综合工程设计,课题秉承“大道至简、高内聚低耦合”的设计理念,拿到课题需求,首先综合各技术资料进行了需求分析,其中技术资料包括市面关于此课题相似产品的设计方案,分析完后整理出有用的资源,设计硬件方案,包括功能模块的选型以及单片机资源的分配、绘制硬件电路以及电路验证仿真,再者设计软件方案,包括根据可靠的硬件电路验证设计软件驱动,绘制软件流程图以及设计系统软件流程,最后用仪器设备焊接电路,进行硬件软件调试分析,解决调试过程出现的问题,整机功能验证完成后输出总结报告,这些就是系统开发流程的总结。智能花盆在生活中应用是广泛的,像市面上很多方案公司做的农业采集网络节点器等等,其关键技术就在于传感器底层数据采集、校验然后上传到终端进行数据分析以及图形化展示。本次设计是基于单片机开发的,在设计的过程中遇到了很多问题,最典型的一种是ESP8266模组与主控的UART总线通信无法读数据,请求无ACK应答,但是能读到从设备的ID,这就导致了上下位机的通信层协议无法正常承载数据包并传送,最后无数据输出,即使有,也是跳变数据,最后经过一步步排除,首先从电源供电开始,确保系统电路电源正常,把分析矛头放到STM32的UART口底层库配置上,用示波器抓波形分析,最后断点调试发现,串口帧读写信号的程序有bug,重新仔细查阅芯片手册,调整读数据下降沿时间,终于解决了此问题。当然在开发的过程中还遇到了像器件虚焊、电容电容选值不对等的问题,经过一层层摸索,最后还是成功把该项目完成。本课题完成心得,相比于以前上课学的知识,本次毕设体现的是理论与实际相结合优势,光会原理不行,得会实际开发才行,拿到一个需求要有架构思想,通过自己的不懈努力,实物终于制作完成,且实物呈现的功能如预期设想,后期还会基于此去升级优化,作为一个技术人,深知自己技术经验不足,在踏出大学校门前会不断巩固自己的技术水平,为以后做开发奠定基础。当然,本次设计离实际的市场产品的开发还相差甚远,只是实现了功能需求而已,性能这块,没作验证,而且开发也没有标准,所以系统还有待迭代优化,为了更好的与市场产品开发接轨,接下来会基于本需求重点思考性能点,以用户的角度去设计开发,以前沿技术的角度去完善项目。【参考文献】潘敏开,黄业盛,何俊蜓,刘晋胜.一种交互式的物联网智能花盆系统设计[J].科技资讯,2017,15(02):4-6.吴广赵刚,李小红,吕向

温馨提示

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

最新文档

评论

0/150

提交评论