基于STM32和U10通讯模块的智能大棚控制系统软件设计.doc_第1页
基于STM32和U10通讯模块的智能大棚控制系统软件设计.doc_第2页
基于STM32和U10通讯模块的智能大棚控制系统软件设计.doc_第3页
基于STM32和U10通讯模块的智能大棚控制系统软件设计.doc_第4页
基于STM32和U10通讯模块的智能大棚控制系统软件设计.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

本本 科科 毕毕 业业 设设 计计 基于 stm32 和 u10 通讯模块的智能大棚控制系 统软件设计 姓 名姜学智 学 院信息与电气工程学院 专 业电气工程及其自动化 年 级2010 学 号20103615671 指导教师王福才 2014 年 5 月 15 日 独 创 声 明 本人郑重声明:所呈交的毕业论文(设计) ,是本人在指导老师的指 导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽 我所知,除文中已经注明引用的内容外,本论文(设计)不含任何其他 个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献 的个人和集体均已在文中以明确方式标明。 此声明的法律后果由本人承担。 作者签名: 年 月 日 毕业论文(设计)使用授权声明 本人完全了解鲁东大学关于收集、保存、使用毕业论文(设计)的 规定。 本人愿意按照学校要求提交论文(设计)的印刷本和电子版,同意 学校保存论文(设计)的印刷本和电子版,或采用影印、数字化或其它 复制手段保存论文(设计) ;同意学校在不以营利为目的的前提下,建立 目录检索与阅览服务系统,公布论文(设计)的部分或全部内容,允许 他人依法合理使用。 (保密论文在解密后遵守此规定) 论文作者: 年 月 日 毕业设计开题报告毕业设计开题报告 姓 名姜学智学 院信息与电气工程学院年级2010学号20103615671 题 目基于 stm32 和 u10 通讯模块的智能大棚控制系统软件设计 课题来源科研课题类别应用 选题意义(包括科学意义和应用前景,研究概况,水平和发展趋势,列出主要参考文献目录):选题意义(包括科学意义和应用前景,研究概况,水平和发展趋势,列出主要参考文献目录): 目前各种生产生活中,都在向自动化控制方向发展,不仅节省了劳动力,还能准确迅速的实现各种 控制操作。为此我们根据与菜农的具体需求,种植人员不到大棚就可实现防盗、卷、放毡、放气,有条 件的农户还要求将土壤墒情、自动供水考虑进去。因此,本研究的主要内容是设计一套基于手机短信控 制的低成本智能自动化系统,以便节省人力资源,对促进大棚农业生产的规模化发展有重要意义。 主要参考文献:主要参考文献: 1 谭浩强.c程序设计(第三版)m 北京:清华大学出版社,2005.7. 2 黄智伟,王兵,朱卫华.stm32f 32 位 arm 微控制器应用设计与实践 m. 北京:北京航空航天大 学出版社,2012.8 3喻金钱,等.stm32f arm cortex-m3 核微控制器开发与应用m.北京:清华大学出版社,2011. 4 joseph yiu . cortex-m3 权威指南m.北京:北京航空航天大学出版社,2009. 研究主要内容和预期结果(说明具体研究内容和拟解决的关键问题,预期结果和形式,如在理论上解决研究主要内容和预期结果(说明具体研究内容和拟解决的关键问题,预期结果和形式,如在理论上解决 哪些问题及其价值,或应用的可能性及效果):哪些问题及其价值,或应用的可能性及效果): 本系统可根据经纬度变化自动更新卷、放毡时间,根据温度变化可自动分级放气,根据红外感应可 短信提醒防盗,研制出一个低成本、可靠的、适合于采集各种信息的标准化控制器,农户可根据自身具 体状况进行取舍。根据特殊天气变化或任意时间可用手机短信控制整个系统,实现自动化。即可自动运 行又可手机短信控制,降低费用成本。适合于农村保护用地使用的低成本、标准化的的短信控制自动卷、 放毡、放气、防盗系统。 拟采取的研究方法和技术路线(包括理论分析、计算,实验方法和步骤及其可行性论证,可能遇到的问拟采取的研究方法和技术路线(包括理论分析、计算,实验方法和步骤及其可行性论证,可能遇到的问 题和解决方法,以及研究的进度与计划):题和解决方法,以及研究的进度与计划): 在做本系统时,首先对系统的主要功能进行分析,然后根据系统需求制定系统设计方案。在对制定 好的方案进行充分论证后,通过反复的实验测试,对系统进行修改完善。以上工作主要包括一下几个步 骤: 1. 硬件系统的设计 2. 系统各个子块的测试 3. 整个系统的整合测试 4. 系统稳定性优化 指导教师意见(对论文选题的意义、应用性、可行性、进度与计划等内容进行评价,填写审核结果:同指导教师意见(对论文选题的意义、应用性、可行性、进度与计划等内容进行评价,填写审核结果:同 意开题、修改后再开题、不同意开题):意开题、修改后再开题、不同意开题): 该生具备根据系统的实际需要完成设计任务的能力,并且在无线控制软件方面表现出了浓厚的 兴趣及爱好。设计方案可行,同意该同学开题。 签名: 年 月 日 学院毕业论文(设计)领导小组意见:学院毕业论文(设计)领导小组意见: (签章) 年 月 日 毕业设计结题报告毕业设计结题报告 姓 名姜学智学 院信息与电气工程学院年级2010学号20103615671 题 目基于 stm32 和 u10 通讯模块的智能大棚控制系统软件设计 课题来源科研课题类别应用 本课题完成情况介绍(包括研究过程、实验过程、结果分析、存在的问题及应用情况等。本课题完成情况介绍(包括研究过程、实验过程、结果分析、存在的问题及应用情况等。 ) 本课题经过认真设计,已基本达到设计目的,在本课题的设计过程参考了大量的相关资料,在设 计过程中得到了毕业设计指导老师的悉心指导,掌握了综合系统设计的有关知识, 意识到了设计系 统的两大因素,即成本和稳定性。 在本课题的设计过程中,查阅了不少相关文献和资料,得到了老师和同学的很大帮助。本课题经 过认真设计,初步达到设计目的。自己也掌握了关于这方面的很多知识,在指导老师的指导下,证实 了此软件设计是可行的。 指导教师评语:指导教师评语: 该生设计的大棚卷帘防盗系统软件方案适用可行,能很好的实现农村大棚的管理,有效的提高了工 作效率,节省了人力,且该系统操作简单,设计结果令人满意,同意结题。 签名: 年 月 日 学院毕业论文(设计)领导小组意见:学院毕业论文(设计)领导小组意见: (公章) 年 月 日 指导教师 评定成绩 毕业设计成绩评定表毕业设计成绩评定表 学院:信息与电气工程学院 学号:20103615671 姓 名姜学智总成绩 题 目基于 stm32 和 u10 通讯模块的智能大棚控制系统软件设计 评 阅 人 评 语 评定成绩: 签名: 年 月 日 答 辩 小 组 评 语 答辩成绩: 组长签名: 年 月 日 注:总成绩=指导教师评定成绩(50%)+评阅人评定成绩(20%)+答辩成绩 (30%) ,将总成绩由百分制转换为五级制,填入本表相应位置。 目 录 1 引言.1 2 硬件平台2 2.1 硬件电路的框架结构2 2.2 部分硬件电路图纸3 3 软件设计总述 .4 3.1 软件设计要求4 3.2 软件设计流程图4 4 部分模块程序介绍.6 4.1 短消息的相关介绍6 4.1.1 短消息收发的实现模式.6 4.1.2 查询端口并发送短信的程序 7 4.2 存储器操作函数的设计7 4.2.1 cat1640 基本操作介绍8 4.2.2 cat1640 操作函数介绍9 4.3 usart 通讯部分9 4.3.1 对 usart 进行基本配置的函数.9 4.3.2 串口的读写操作的函数10 4.4 温度检测函数 10 4.4.1 计算温度值程序 .10 4.4.2 ds18b20 检测和初始化函数.11 5 主要部分源程序.12 5.1 主函数部分 12 5.2 分析手机模块传来的数据的函数 14 6 结束语21 参考文献22 致 谢22 鲁东大学本科毕业设计 1 基于 stm32 和 u10 通讯模块的智能大棚控制系统软件设计 姜学智 (信息与电气工程学院,电气工程及其自动化专业,2010 级 4 班,20103615671) 摘摘 要:要:本文主要介绍了以 u10 为远程通讯模块,以 stm32f103 为微处理 器的大棚控制系统的软件设计方案,给出了软件设计的总体架构及部分程序的 代码。试验结果表明,该软件设计是合理的,可行的。 关关键词键词: :智能大棚;stm32;远程控制;u10 模块 the software design of intelligent greenhouse control system based on stm32 and u10 mobile model jiang xuezhi (major of electrical engineering and the automation, school of information and electrical engineering, class4grade2010, 20103615671) abstract: this paper describes a software design program that use u10 as a remote communication module and use stm32f103 as microprocessor control system for greenhouses, give the general framework for software design and the step-by-step introduction. the test results show that the software design is reasonably stable and feasible. key words: intelligent greenhouse; stm32; remote control;u10 mobile model 1 引言 当前我国农村大棚大部分都是一些中小型的大棚,大型大棚在我国还是比 较少的,而且大部分都是半自动或是人工操作的,管理起来比较繁琐而且浪费 人力物力。目前国内温室整体的科技含量远低于国外,可以说我国高科技智能 温室刚刚起步。 由于传统大棚存在诸多缺点,所以智能大棚控制系统应运而生。智能大棚 鲁东大学本科毕业设计 2 控制系统是根据菜农在实际生产中的要求而设计的一套自动控制技术,该系统 具有测温功能,以及手机短信远程控制卷帘机实现远程卷帘功能,并根据温度 能够自动打开通风口来进行放风,同时还具有防盗功能。系统控制简单操作易 于实现,且工作稳定,用户在使用它时,不但省工省时省力,而且能够早拉晚 放,增加光照时间,丰产丰收。能避免在恶劣天气状况下拉草帘不及时而造成 不必要的经济损失。还可以扩大大棚规模,增加产值,对促进农业的发展有一 定的推进作用。 2 硬件平台 2.1 硬件电路的框架结构 stm32f103vet6 ldo 稳压电路 spx1117m3-3.3 rtc 后备电源接口 继电器反馈继电器输出jtag 接口 (20pin) eeprom (cat1640) ic 接口 u10 手机模块 max485 usart 接口 继电器状态 灯 控制器指示 灯 电流检测红外检测输入 (防盗) 温度检测输入行程开关 图图 1 硬件电路的框架结构图 各功能单元介绍: stm32f103:微处理单元,完成数据的处理 u10 通讯模块:收发短信、电话 鲁东大学本科毕业设计 3 eeprom 存储单元:存储数据信息 继电器输出控制单元:控制外部直流继电器,进而控制电机 测温单元:测量棚内温度,实现实时调节 红外单元:监测人员进入 rtc 后备电源接口:掉电时保持时钟准确 2.2 部分硬件电路图纸 图图 2 stm32 mcu 最小系统电路 鲁东大学本科毕业设计 4 图图 3 u10 手机模块连接电路 3 3 软件设计总述 3.1 软件设计要求 设计要求:本控制器主要实现的是对农村蔬菜大棚的远程控制。通过控制 器内的手机通讯模块接收客户打电话或发短信实现的控制命令,收到客户端的 命令并处理后,能够根据命令完成相应的卷帘和放帘、调整放气口、修改控制 号码等操作。短信控制命令的数据形式主要是在分析 pdu 码格式的短信,电 话控制命令的形式则是通过判断电话接通的时间来实现的。为了防止误控制, 在写程序的时候要设置专门的分析控制号码的程序,只有存在 eeprom 内的 号码才能执行控制,其他号码的控制则被忽略。 设计目标: 实现对大棚卷帘机的自动控制。通过单片机内的时钟,根据要求设定定时时 间,在定时时间到了之后,自动控制两路继电器的关断,来进行控制卷帘机 的正传与反转。卷帘或放帘一定程度,触发设定好的行程开关,电机停止运 行。用户也可以在非定时时间通过打电话或发短信控制卷帘机,实现用户控 制。 实现自动放气的控制。通过温度传感器 ds18b20 检测温度,根据温度的变化 来控制放气装置,调整放气口的大小,实现自动放气。 实现防盗的功能。因为农村大棚一般都是建在野外,那么大棚的安全性问题 也比较重要。本系统通过安装在大棚内部的红外感应传感器模块,来检测盗 鲁东大学本科毕业设计 5 贼的进入。在大棚没有人的时候,启动防盗功能。在有人入侵的时候,触发 传感器,然后控制器控制大棚内的灯和喇叭打开,并且启动控制器的摄像头, 对大棚内部进行图像采集,照片以彩信的形式发送到客户手机中。以后可根 据照片中采集到的人的照片报案。 3.2 软件设计流程图 本系统软件设计流程图如图 4: 鲁东大学本科毕业设计 6 开始 初始化外设 时间校对(短信) 待机 是否收到串口 信息 串口 3 信息 接收到电脑发来 的数据,并写入 eeprom 串口 2 信息 短信信息 分析短信信息 开关监 控 定时 测温度 开关继 电器 修改 eeprom 内信息 完成一次操作 控制继电器动作 电话信息 鲁东大学本科毕业设计 7 图图 4 软件流程图 4 部分模块程序介绍 4.1 短消息的相关介绍 4.1.1 短消息收发的实现模式 通过发送特定的 at 指令,可以应用手机模块实现发送和接收短信。本平台 应用的是上海移远公司的 u10 模块。 用于短信操作的相关 at 指令如表 1 所示: 表表 1 相关 at 指令 考虑到本系统的主要用户是中文用户,所以收发中文短信是必须要实现的。 现如今短信的格式,主要有 text 和 pdu 两种格式。text 格式和 pdu 格式 都支持发送中文短信,但是考虑到有些模块不支持,对于以后的移植造成不便。 所以,在设计中编写了两种格式发送短信的程序,需要哪个就调用哪个。 pdu 格式相对复杂,它有着特定的协议,而且他还有三种编码方式,我们 鲁东大学本科毕业设计 8 这里采用的是 ucs2 编码。ucs2 编码主要用于发送 unicode 码。而 text 格式 相对简单,因此在此只给出 text 格式的部分程序: 4.1.2 查询端口并发送短信的程序 void check_gpio_putmessage(char*num) char* o1;char* o2;char* o3;char* o4;char* o5; if(gpio_readinputdatabit(gpioa,gpio_pin_8)=bit_reset) o1=“5f004e00“; elseo1=“51734e00“; if(gpio_readinputdatabit(gpioa,gpio_pin_9)=bit_reset) o2=“5f004e8c“; elseo2=“51734e8c“; if(gpio_readinputdatabit(gpioa,gpio_pin_10)=bit_reset) o3=“5f004e09“; elseo3=“51734e09“; if(gpio_readinputdatabit(gpioa,gpio_pin_11)=bit_reset) o4=“5f0056db“; elseo4=“517356db“; if(gpio_readinputdatabit(gpioa,gpio_pin_12)=bit_reset) o5=“5f004e94“; elseo5=“51734e94“; deal_number(num); uart2_putstr(“at+cmgf=0r“); delay_ms(200); uart2_putstr(“at+cmgs=35r“); delay_ms(200); uart2_putstr(“0891683108505305f011000d9168“); uart2_putstr(n); /uart2_putstr(“5166084638f0“); uart2_putstr(“00080014“); uart2_putstr(o1);uart2_putstr(o2);uart2_putstr(o3); uart2_putstr(o4);uart2_putstr(o5); delay_ms(200); uart2_putchar(0x1a); 4.2 存储器操作函数的设计 cat1640 是整个系统存储系统信息的器件,其内部存储了此系统主机的控 制电话号码、系统定时控制的一些时间数据、当地经纬度等等,其作用至关重 鲁东大学本科毕业设计 9 要。 4.2.1 cat1640 基本操作介绍 cat1640 的写操作: 在本系统中 cat1640 作为从机使用,在进行单个字节写操作的时候,主机 先发送 start 信号和从机地址,从机收到后给主机发送一个应答信号。然后,主 机发送两个 8 位要写到从机存储位置的地址。在主机收到应答信号之后,开始 发送 8 位数据。发送完成后,cat1640 再发出应答信号,主机接收到后发出停 止条件。这时,cat1640 启动内部非易失性存储编程周期,不接受主机的任何 要求。cat1640 写周期时序图如图 5 。 图图 5 cat1640 写周期时序图 cat1640 内含 64 字节的页写缓冲区,因此在一个页面写入周期内,写入 的字节数不能超过 64 字节。在执行页面写操作时,开始的第一个字节跟单个字 节写入基本相同。不同的是,写完第一个字主机收到 cat1640 发来的应答信号 之后,并不发送停止条件,而是接着写下一个字节,直到写完后,才发送停止 条件。需要注意的是,如果在停止条件之前发送的字节数超过 64 字节,则之前 写入的数据将会被后来的数据覆盖。 页面写入的周期时序图如图 6: 鲁东大学本科毕业设计 10 图图 6 cat1640 写周期时序 cat1640 的读操作分为当前地址读取和选择地址读取两种,具体读取时序跟写操作类 似,在此不再赘述。 4.2.2 cat1640 操作函数介绍 主要的操作函数如下: uint8_t i2c_read(i2c_typedef *i2cx,uint8_t i2c_addr,uint16_t addr,uint8_t *buf,uint16_t num) /通过指定 i2c 接口读取多个字节数据,成功返回 0 uint8_t i2c_write(i2c_typedef *i2cx,uint8_t i2c_addr,uint16_t addr,uint8_t *buf,uint16_t num); /通过指定 i2c 接口写入多个字节数据,成功返回 0 4.3 usart 通讯部分 usart 通讯部分主要是微处理器与电脑、u10 手机模块的通讯。 stm32f103 系列 mcu 拥有 3 个 usart,在本系统中 usart2 用于 mcu 与 u10 通讯模块之间的通讯,usart3 用于 mcu 与电脑之间的通讯。 usart 的主要操作函数如下: 4.3.1 对 usart 进行基本配置的函数 usart_init(usartx, tim_cmd(tim2, enable); str2x2= usart_receivedata(usart2); x2+; 4.4 温度检测函数 4.4.1 计算温度值程序 ds18b20 存储的温度是 16 位的带符号扩展的二进制补码形式 当工作在 12 位分辨率时,其中 5 个符号位,7 个整数位,4 个小数位 |-整数-|-小数 分辨率 1/(24)=0.0625-| 低字节 | 23 | 22 | 21 | 20 | 2(-1) | 2(-2) | 2(-3) | 2(-4) | |-符号位:0-正 1-负-|-整数-| 高字节 | s | s | s | s | s | 26 | 25 | 24 | 温度 = 符号位 + 整数 + 小数*0.0625 计算温度的程序如下: float ds18b20_get_temp(void) uint8_t tpmsb, tplsb; short s_tem; float f_tem; ds18b20_rst(); ds18b20_presence(); ds18b20_write_byte(0xcc);/* 跳过 rom */ 鲁东大学本科毕业设计 12 ds18b20_write_byte(0x44);/* 开始转换 */ ds18b20_rst(); ds18b20_presence(); ds18b20_write_byte(0xcc);/*跳过 rom */ ds18b20_write_byte(0xbe);/* 读温度值*/ tplsb = ds18b20_read_byte(); tpmsb = ds18b20_read_byte(); s_tem = tpmsb=100 ) return 1; else pulse_time = 0; /* 存在脉冲到来,且存在的时间不能超过 240us */ while( !ds18b20_data_in() else return 0; uint8_t ds18b20_init(void) ds18b20_gpio_config(); ds18b20_rst(); return ds18b20_presence(); 5 主要部分源程序主要部分源程序 5.1 主函数部分 主函数中首先进行各个模块进行初始化,然后在循环函数中反复查询各个 模块的状态,若状态有变化,则执行相应的操作。程序如下: #include “stm32f10x.h“ #include #include extern u8 t3; extern tm timer; extern char str332; extern char str2200; u8 alarmreadbuffer16; u8 alarmwritebuffer16=17,30,1+2,4+8+16,7,0,4+8+16,1+2, 9,30,1+2+4+8+16,0, 3,0,0,1+2+4+8+16; / 01conrelay1 23 marks1 45conrelay2 67 mars2 /89conrelay3 1011 marks3 1213conrelay4 1415 mars4 int main(void) 鲁东大学本科毕业设计 14 rcc_configuration(); gpio_configuration(); nvic_configuration(); usart3_configuration(); usart2_configuration(); i2c_configuration(); timer2_configuration(); timer3_configuration(); delay_init(72); rtc_init(); /i2c_write(i2c1,cat1640,128,alarmwritebuffer,16 ); start_u10(str2); delay_ms(2000); check_10086(str2); uart2_putstr(“at+cmgf=1rn“); delay_ms(50); uart2_putstr(“at+cmgf=1rn“); delay_ms(50); gpio_close_relay(1+2+4+8+16); check_start(); while(1) check_sec(); check_data2(str2); check_data(str3); check_alarm(); check_newday(); 5.2 分析手机模块传来的数据的函数 void check_data2(char *str) 鲁东大学本科毕业设计 15 u8 k,i,u; char *p,*ttime; char p111,pnstr44,pn11; char time11; if(t2=1) t2=0; p=strstr(str,“+cmti“); /+cmti: “sm“,2 if(p1=c delay_ms(50); uart2_putstr(“at+cmglrn“); delay_ms(50); p=strstr(str,“read“,“+86“); /+cmgl:1,“recunread“,“+8615668064830“,“,“2014/04/07 13:54:38+32“ if(p1=e delay_ms(50); ttime=p+27; strncpy( time,ttime,11); strncpy( p1,p+10,11); uart3_putstr(p1);uart3_putstr(“rn“); if(seekphonenumber(p1) 3) gpio_open_relay(1+4+16);gpio_close_relay(8+2); count=0; delay_ms(800);check_gpio_putmessage(number); if(count4gpio_close_relay(1+4+16); count=0; delay_ms(800);check_gpio_putmessage(number); 鲁东大学本科毕业设计 22 6 结束语结束语 本文以被控对象为中心,以简洁的操作和方便控制为宗旨设计了这个用于远程

温馨提示

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

最新文档

评论

0/150

提交评论