基于云的智能窗设计.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于云的智能窗设计.doc》由会员分享,可在线阅读,更多相关《基于云的智能窗设计.doc(83页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 基于云的智能窗设计海 南 大 学毕 业 论 文(设计)题 目: 基于云的智能窗设计 学 号: 20151681310117 姓 名: 周哲 年 级: 2015 学 院: 信息与通信工程学院 系 别: 电子工程系 专 业: 电子信息工程 指导教师: 李京兵教授 完成日期: 2019年 5 月 3 日 摘 要本文介绍了基于STM32F103C8T6实现的智能开关窗装置,论述了如何利用STM32单片机实现智能窗的一系列功能。主要工作如下:(1) 使用DHT11、ESP8266、光感和雨感等传感器通过检测温度、湿度、雨水并将模拟值反馈给STM32F103C8T6,再通过编写程序使STM32F103C
2、8T6进行识别是否达到了开关窗的要求,并通过软件判别当前位置以及所需位置,实现了智能窗的自动开关。(2) 借助阿里云以及EMQ MQTT服务器实现远程操控以及数据远程读取。(3) 提出一种新颖的智能窗的固定方式,适合不同长短的窗户,且同时做到牢固和易于安装。下文以硬件和软件两个方面进行了设计与调试:1. 硬件方面以STM32为核心处理器,ESP8266实时接收从平台转发而来的消息,并通过串口传给单片机,单片机解析后执行相应的命令,单片机又通过串口发送数据给ESP8266,ESP8266再进行上传到云平台,完成一套接收发送的操作。2. 软件设计基于使用C语言的Keil开发软件、EMQ服务器以及谷
3、歌出品的基于java语言的安卓专用开发工具Android Studio。关键字:STM32F103C8T6;MQTT;ESP8266;Android;智能窗; AbstractThis paper introduces the intelligent switching window device based on STM32F103C8T6, and discusses how to realize a series of functions of the intelligent window by using STM32 single chip computer. The main wor
4、k isas follows: (1)Sensors such as DHT11, ESP8266, photosensitivity and rain sensitivity are used to detect temperature, humidity, rain and feed back the analog value to STM32F103C8T6. Then the program is programmed to identify whether STM32F103C8T6 meets the requirements of the switch window, and t
5、he software is used to identify the current position and the required position, thus realizing the automatic switch of the intelligent window. (2)Realize remote control and data remote reading with Aliyun and EMQ MQTT server. (3)A novel fixing method of smart windows is proposed, which is suitable f
6、or windows of different lengths and is firm and easy to install. Following is the design and debugging of hardware and software. 1. In hardware aspect, STM32 is the core processor. ESP8266 receives the message forwarded from the platform in real time, and passes it to MCU through serial port. MCU pa
7、rses and executes the corresponding commands. MCU sends data to ESP8266 through serial port, and ESP8266 uploads to cloud platform to complete a set of receiving and sending operations. 2. Software design is based on Keil development software using C language, EMQ server and Android Studio, a specia
8、l Android development tool basedon Java language produced by Google. Key words: STM32F103C8T6; MQTT; ESP8266; Android; Smart Window目 录摘 要1Abstract21 绪论41.1 课题研究背景及意义41.2 国内外研究现状及发展趋势51.3 研究内容和论文结构51.3.1 研究内容51.3.2 论文结构52 硬件开发62.1 信息处理模块62.1.1 STM32F103C8T6硬件介绍62.1.2 Keil开发环境与工具72.2 ESP8266 WIFI模块82.
9、2.1 ESP8266 模块介绍82.2.2 ESP8266 硬件连接82.2.3 ESP8266 软件开发92.3 电机驱动模块122.3.1 TB6612FNG 模块介绍122.3.2 TB6612FNG 硬件连接122.3.3 TB6612FNG 软件开发132.4 雨水检测模块142.4.1 雨水检测模块介绍142.4.2 雨水检测硬件连接142.4.3雨水检测软件开发142.5 温湿度采集模块162.5.1 DHT11模块介绍162.5.2 DHT11硬件连接162.5.3 DHT11软件开发173 软件设计193.1 百万级分布式开源物联网MQTT消息服务器193.1.1 EMQ简
10、介193.1.2 EMQ使用193.2 HOME_WINDOW APP203.2.1 APP登陆界面及主界面203.2.2APP按键开关窗功能213.2.3 APP滑动开关窗功能223.2.4 APP定时开关窗功能234 调试过程264.1调试与错误265 实验结果285.1设计原理图285.2实物图295.3实现功能296 总结与展望307 已授权专利31致 谢32参考文献33附录1【总程序】34附录2【WIFI程序】63附录3【电机程序】72附录4【其他程序】761 绪论1.1 课题研究背景及意义如今已是2019年,越来越多过上小康生活的人们希望能用上智能家居产品。但是由于许多关键问题难以
11、解决,导致各种智能家居的价格高昂、安装困难等问题。同时,身处于海南的人们,或多或少都会因为空气潮湿导致的发霉问题所困扰,且预防霉菌主要依靠开窗通风,借助空气的流通将室内的潮气带走。一天中一般下午的空气较为干燥,最适合开窗通风又不会带来更多的潮气,但这个时间段大多数上班族白天都在工作,错过了开窗通风的最佳时间,就很容易导致房间的墙壁、沙发和衣柜等等东西发霉。另一方面,海南作为国际知名的旅游岛,每年都要接待大量的游客。当处于游客稀少的旅游淡季中,许多酒店客房都无人居住,但是为了避免发霉还需要耗费大量的人力开窗通风,而一旦突然降雨还会无法立刻将所有窗户关闭,导致雨水进入屋内,造成不必要的损失。为了解
12、决这些问题,我们想到可以研发一款智能开关的窗户,实现随时开窗通风,下雨自动关窗,以达到预防霉菌的产生的目的,同时还需要尽可能的降低成本和优化安装方式,在人们的需求及这样的大背景下,我的作品应运而生。1.2 国内外研究现状及发展趋势智能窗指的是在普通窗户的基础上增加带有远程控制开关窗、防盗、防水、防夹手等功能的新式窗户。目前窗户的开关方式只要有两种,一种是左右推拉式,一种是内外推拉式。这两种开关方式各有其优缺点,前者适合在纵向空间不是很足的地方,但是一次只能开一面窗户,后者适合在横向空间较为狭窄的地方,以节省纵向空间的浪费,但是向外推拉有个角度限制,且连接处容易生锈,导致窗户开关困难。当前国内外
13、的开关装置主要有以下两点:1. 针对左右推拉式,有不少厂家已经做出了使用导轨作为驱动力,将开窗装置使用螺丝固定在窗户的上沿,并将导轨的一头固定在一扇窗户上,当导轨运动时,对应的窗户也移动,达到电动开关窗的效果。2. 针对内外推拉式,厂家主要以钢链作为驱动,钢链置于一窗户与墙壁连接侧,当电机运动时,链条伸长或者缩短,带动窗户开关。虽然上述两种方案相对来说比较成熟,但是仍需要打孔等操作损伤窗户,而我的作品完全不需要打孔,放上去就能用,当然目前只是这个窗可以用。智能窗以后的发展必然朝着大数据、云服务的方向走,做到免打孔,安装方便。1.3 研究内容和论文结构1.3.1 研究内容本论文是对基于云的智能窗
14、设计的研究。该装置的模块主要包括主控模块,WIFI模块,电机驱动模块,雨水检测模块,温湿度检测模块。主控模块与WIFI模块通过串口通讯连接MQTT服务器。1.3.2 论文结构1. 绪论2. 硬件开发3. 软件设计4. 调试过程5. 实验结果 6. 总结与展望2 硬件开发2.1 信息处理模块2.1.1 STM32F103C8T6硬件介绍STM32F103C8T6系列属于中低端的32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,片内Flash为64K,片内RAM为20K,属于中等容量型MCU,片外供48个引脚,其内核是Cortex-M3,内核时钟最高72MHz,具有定时器、ADC、UA
15、RT和SPI、I2C总线等多种功能,供电电压为2.0-3.6V,本次使用的最小系统板使用USB 5V供电、,经AMS1117降压芯片降至3.3给MCU供电,具有四种模式,分别是工作、休眠、停止和待机模式,使用SWD 四线制下载及调试程序,内部有两个看门狗用于异常复位,防止程序跑飞。最下系统板如图2-1所示。图2-1 STM32F103C8T6单片机单片机芯片引脚分布如图2-2所示。 图2-2 STM32F103C8T6芯片引脚分布2.1.2 Keil开发环境与工具Keil是美国Keil Software公司出品的单片机C语言开发软件,本次使用的是基于ARM处理器的版本。该软件提供了C编译器、宏
16、编译、链接器和一个调试器等在内的完整解决方案。C语言作为所有硬件设备最底层的语言,重要性不可言喻,这次的毕业作品固件多为底层驱动编写,故使用C语言再适合不过。Keil软件界面如图2-3所示。图2-3 KEIL软件编程界面2.2 ESP8266 WIFI模块 2.2.1 ESP8266 模块介绍本文所用 ESP8266 是一种低成本的 Wi-Fi 芯片,由乐鑫公司出品。这个小模块有两种固件可被使用,分别是AT固件和LUA固件,前者可以通过串口发送AT指令连接无线网络,后者则使用内置的TCP/IP协议栈连接无线网络。LUA固件相比AT固件多了PWM调控、GPIO控制等新功能。但是由于本作品较为复杂
17、LUA固件难以满足要求,故使用AT固件配合MCU使用。串口通讯速率采用119200bps。ESP8266 WIFI模块如图2-4所示。 图2-4 ESP8266 WIFI模块2.2.2 ESP8266 硬件连接图2-5 ESP8266与STM32硬件连接2.2.3 ESP8266 软件开发ESP8266主要通过内置AT指令实现连接复位、设置工作模式和连接路由器等操作。本作品使用AT指令如下:AT 查询模块是否存在AT + RST 模块软复位AT + CIPSTART 返回网络连接状态AT + CWMODE = 1 将WIFI存储到FLASH里AT + CWAUTOCONN = 1 使能上电自动
18、连接AP热点AT + CWSTARTSMART = 3 ESP_TOUCH+WeChat配网AT + CIPSTATUS 返回网络连接状态AT + CWSTOPSMART 关闭SMARTP配网连云操作如下: 1. 连接IP地址任务。该任务主要包括以下四点:(1) 检测模块是否存在while(ESP_Sendcmd(u8*)AT,(u8*)OK);(2) 判断是否连接无线网络while(ESP_Sendcmd(u8*)RST,(u8*)WIFI_CONNECT);(3) 连接指定IP地址while(ESP_Sendcmd(u8*)CIPSTART,(u8*)OK);(4) 创建连接MQTT服务器
19、任务xTaskCreate(MQTT_CLOUD,MQTT_CLOUD,MQTT_CLOUD_size,NULL,MQTT_CLOUD_prio,&MQTT_CLOUD_handle);2. 连接MQTT服务器任务(1) 发送MQTT连接包 设备号为window_homeMQTT_CONNECT(window_home,); (2) 发送SUBSCRIBE包,订阅温湿度、开关窗等数据(括号中的1代表订阅,0代表取消订阅)MQTT_SUBSCRIBE(/W,1); /订阅 /W 消息(3) 发送PUBLISH包,与安卓同步窗户位置。MQTT_PUBLISH(/Wall,(char*)MOTOR.
20、position_all_buf);MQTT_PUBLISH(/Posi,(char*)MOTOR.position_now_buf);(4) 创建心跳响应任务和数据分析任务xTaskCreate(TCP_PING,TCP_PING,Ping_size,NULL,Ping_prio,&TCP_PING_handle);xTaskCreate(TCP_DATA,TCP_DATA,TCP_DATA_size,NULL,TCP_DATA_prio,&TCP_DATA_handle);3. 心跳响应任务(1) 设置响应标志位pWIFI-USART2_HEART_OKpWIFI-USART2_HEART
21、_OK = 2;(2) 发送心跳包至服务器len = mqtt_ping_message(mqtt_msg);ping:while(ESP_SendTcp(mqtt_msg,len); /发送心跳包(3) 判断服务器是否返回数据,根据标志位pWIFI-USART2_HEART_OKif(pWIFI-USART2_HEART_OK=2)(4) 若标志位等于2,表面服务器没有响应,重发心跳,并计数值加1j+;goto ping;ping:while(ESP_SendTcp(mqtt_msg,len); /发送心跳包(5) 连续三次未收到响应,即j=3时,创建服务器重连任务,并跳出循环,删除心跳任务
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 智能 设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内