| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

智能家居系统——网络结构搭建与算法研究

平***苏

贡献于2022-04-15

字数:69223






智家居系统设计
——网络结构搭建研究
智家居系统设计
——网络结构搭建研究


全球智化发展浪潮利先进网络技术控制技术布线技术计算机等技术智家居系统出现正浪潮想追求更高质量生活品质体现智家居系统体工程学原理仅融合消费者需求机结合日常家庭生活中安全防御温度调节湿度调节灯光调节气体检测等种功模块体种技术通网络化综合智控制理实现全新家居生活体验
次毕业设计针智家居系统中网络结构搭建研究系统硬件系统软件系统两部分组成硬件部分STM32嵌入式单片机位机STC89C52单片机位机ESP8266模块线通讯工具温度测试模块湿度测试模块AD转换模块等功模块Keil uVision4Keil MDK5软件开发台通串行通信技术实现位机ESP8266模块位机ESP8266模块间通讯具体说利ESP8266模块实现STM3252单片机通WIFI技术进行数通信实现STM32通线通信技术控制52单片机模块智家居系统利运行文详细描述次系统网络结构搭建研究功实现具体程

关键词:智家居系统STM32STC89C52RCWIFI串行通信


Intelligent home system design
network structure construction and research

Abstract
Under the tide of global intelligent development the quality of life pursued by people is getting higher and higher and more and more smart homes are gradually entering people's life Smart home system including computer technology network communication technology intelligent controlComprehensive wiring technology
Smart home is according to the principle of human engineering which is integration of consumer demand It makes the daily household system related together organically Such as security defense system temperature control system humidity control system lighting control system gas detection system Realize intelligent control and intelligent management through wireless communication so that people can feel the most comfortable and convenient new home life experience
This graduation project mainly aims at the construction and research of the network structure in the intelligent home system The system is mainly composed of two parts the hardware system and the software system About the hardware system the STM32 MCU is the principal computer and the AT89C52 MCU is the slave computer The ESP8266 wireless module is a tool which make them connection establishment In addition the hardware system is also include the temperature test module humidity test module ADDA converter module and so on About the software system we use the serial port communication technology make the MCU and the ESP8266 establish communication Using the Keil uVision4 and Keil MDK5 Software development platform to write programs In order to convey information between principal computer and the slave computer To be specificusing the WIFI technology to realize the electronic data interchange between the STM32 MCU and the STC52 MCU After that we can use the STM32 MCU to control all the parts of the STC52 MCU by using wireless communication technique and makes the smart home system operation This thesis not only describe about how to set up the wireless communication between principle computer and slave computer and also describe some arithmetic research for the programs
Key words Smart home system STM32 STC89C52RC MCU WIFISerial port communication
目 录
1 绪 1
11 智家居系统研究背景 1
12 智家居中网络结构搭建研究目意义 1
2 智家居系统设计原理方案 2
21网络结构搭建基原理 2
22 网络结构设计方案 4
23 位机功模块方案 5
3 硬件设计 6
31 位机具体功分析 6
311温度系统 6
312 湿度系统 6
313 烟雾系统 6
314 灯光系统 6
32 位机具体数接发收功分析 6
33 硬件选择 7
331 位机选型 7
332 位机选择 9
333 线模块选择 9
334 湿度采集模块 10
335 烟雾采集模块 11
336 ADDA转换器 12
337 温度采集模块 12
4 开发工具介绍 13
41 Keil编程软件 13
42 串口调试助手 14
43 STCISP 15
44 网络调试助手 15
45 FlyMCU 16
5 智家居系统位机功设计 17
51 智干湿度系统设计 17
511 湿度检测模块设计 18
512 智干湿度控制系统设计 19
52 智温度调节系统设计 21
521 温度测试模块设计 21
522 智温度系统设计 23
53 智灯光系统 23
531 ADDA转换器设计 24
532 灯光动控制模式 27
533 手动调灯光模式 29
54 烟雾报警系统 30
6 网络结构搭建 31
61 ESP8266模块初始化 31
62 位机串口通信搭建 32
63 位机串口通信搭建 34
64 位机位机网络结构搭建 38
641 位机网络结构搭建 38
642 位机程序设计 40
7 调试程 42
71 智干湿度动模式系统搭建调试 42
72 智温度系统动模式搭建调试 45
73 烟雾报警系统搭建调试 47
74 智灯光系统搭建调试 48
75 位机位机通信程调试 51
751 STC89C52RCESP8266通信程 51
752位机位机通信程 52
76 位机模块手动模式搭建调试 53
761 位机基功模块手动模式搭建调试 53
762 智灯光系统手动控制模式 56
8 结 60
81 总结 60
82 展 60
参考文献 61
致谢 62
附录 63
附录1 52单片机程序源码 63
附录2 STM32程序源码 82
附录3 英文文献 99
附录4 中文文献 105

1 绪
11 智家居系统研究背景
全球智化发展浪潮日常生活中家居品品质求越越高智家居出现仅满足家居智化便利化信息化等需求时应全球智化发展背景日家居行业种新发展趋势
智家居种家居指生活类日常家居设备智指利程序类家居设备进行动控制利网络家居设备进行远程理控制通日常生活中种生活惯设计思路通智化方式全新家居生活体验传统普通家居相传统普通家具够通工方式控制家居启动关闭离开电器启动事情屡见鲜法动关闭者远程监控控制智家居够完美解决类问题够做远程监控远程控制够动监测动检测动控制调节需操作控制甚够学前者惯做出满足需求调节控制
智家居系统日常居住场搭建环境通网络通信技术居住环境角落进行实时监测通房间家具设备进行动远程控制智家居系统说集安全便利舒适节美观体种高效住宅
12 智家居中网络结构搭建研究目意义
着第五代通信技术出现万物互联构想已步步走物联网技术飞速发展开始展拳脚智家居中重时基求做系统中位机位机间信息通信网络结构搭建优化实现数间信息交互成智家居系统中核心部分
前线通信技术方式种样流线通信技术蓝牙ZigBee射频识全球移动通信系统WiFi红外通信限载波通信等种线通信技术适频段调制方式作距离数率应相应应领域
通利网络线通信技术智家居系统中利通客户端登陆方式通网络数传输实现家连接着wifi智家居进行远程监控操控者智动控制实现种期命令
2 智家居系统设计原理方案
通ESP8266线模块作桥梁实现位机位机相互连接达位机数交互功实现者通位机触摸台连接位机智家居模块智干湿度调节系统温度动手动调节系统智灯光系统等远程控制时通位机电路中种数利线通信技术传位机种数者时家中系统进行控制真正做机手家居走(图2)
图2 智家居系统

21网络结构搭建基原理
WLAN线局域网络种利线技术进行数传输系统正常情况定范围方够接收网络信号WIFI作WLAN种标准采WLAN协议种线联网技术日常生活中常短距离线技术
TCP传输控制协议种面连接基字节流传输层通信协议TCP协议三次握手(图21)连接互连计算机通信网络计算机中成进程间TCP提供通信服务
WIFI通讯模式建立TCP server(TCP服务器)数根TCP协议进行发送接收数TCP传输协议图(图22):
图21 TCP三次握手


图22 TCPIP协议传输示意图

22 网络结构设计方案
次毕业设计智家居系统分位机位机两部分利WIFI通信技术作数传输桥梁STM32嵌入式单片机位机STC89C52RC单片机位机位机位机利串口通信技术建立ESP8266模块数交互数通ESP8266利TCPIP传输协议互相发送
首先STM3252单片机通串行通信技术(图23)实现STM32ESP826652单片机ESP8266串行通信次STM3252单片机利ESP8266线模块WIFI技术连接WIFISTM3252单片机传输信息数通串行通信传输ESP8266模块局域网利TCP传输控制协议进行线传输
ESP8266线模块接收信息数串行通信方式数发送52单片机STM32形成完整通信回路整体结构搭建框架图(图24):




接收设备
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
发送设备
D0
D1
D2
D3
D4
D5
D6
D7
图221 异步串行通信技术

串行通信
STM32
ESP8266
串行通信
STC89C52
ESP8266
TCP传输协议
路器
WIFI连接
WIFI连接
图24 整体网络结构框架
TCP传输协议



23 位机功模块方案
次毕业设计务中仅完成网络结构搭建时需完成智干湿度调节系统温度动调节系统智烟雾系统智灯光系统搭建数交互实现智系统实时数时传位机时位机通发送命令控制智系统运行
智干湿度调节系统中利DHT11模块前环境中干湿度进行数收集通判断前干湿度数值否舒适时环境中干湿度进行调节
温度动调节系统中利DS18B20模块前环境中温度进行检测通判断温度否舒适时环境中温度进行调节
智烟雾系统中通MQ135模块环境中氯化物浓度进行判断超设定值屋产生量燃烧气体启动灭火装置时发出警报
智灯光系统利PCF8591 ADDA转换器通判断前室外采光值屋灯光进行时调节
3 硬件设计
31 位机具体功分析
311温度系统
(1) 实时温度采集传温度数位机
(2) 动室温度进行时调节温度低增温温度高降温室保持体舒适温度
(3) 手动室温度进行调控
312 湿度系统
(1)实时湿度采集传湿度数位机
(2)动室干湿度进行调节湿度低动加湿湿度高动抽湿室保持体舒适湿度
(3)手动室干湿度进行调节
313 烟雾系统
(1)实时烟雾状况采集烟雾数传位机
(2)发生火灾烟雾异常状况动开启水泵抽风系统
(3)出现烟雾异常情况动发出警报报
314 灯光系统
(1)采集前光感数
(2)根前光感数动调节灯光亮度达眼舒适光亮
(3)手动调节灯光亮度

32 位机具体数接发收功分析
(1)接收位机发送温度数
(2)接收位机发送湿度数
(3)接收位机发送烟雾数
(4)够温度系统湿度系统烟雾系统灯光系统等系统进行远程操作

33 硬件选择
331 位机选型
STM32(图31)系列专求高性低成低功耗嵌入式应设计ARM CortexM系列核单片机根次设计位机实际功开发需求位机需编写完成种嵌入式应符合位机单片机选择需求仅STM32嵌入式单片机中含异步收发器够通串口实现ESP8266串口通信满足设计需求次设计决定选STM32F103ZET嵌入式单片机开发板作开发硬件板时次设计程中STM32F103C8T6单片机系统作开发硬件


图31(a) STM32单片机


图31(b) STM32F103ZET



图31(C) STM32F103C8T6


STM32具体优点:
(1) 价格低廉仅8位机价格购买32位STM32单片机
(2) 带种样外设功I2C总线AD转换器DA转换器等种外部设备
(3) 强性引脚作中断输入时设计等级中断优先级
(4) 低功耗STM32种外部设备关闭实现低功耗运行
(5) 开发方式样成低STM32开发简单时支持种代码载方式济简单方法仅串口实现

332 位机选择
STC89C52RC40引脚中32外部双输入输出IO口满足温度系统湿度系统灯光调节系统烟雾系统等智家居系统引脚接入时含全双工串行口ESP8266通串行口52单片机进行通信仅52单片机含定时计数器外部中断满足次设计需通讯求

图32 STC89C52RC

333 线模块选择
常见线通讯技术蓝牙WIFIZIGBEEZWave等通讯技术WIFI技术覆盖范围广覆盖半径高达百米蓝牙技术仅十米仅WIFI技术相ZIGBEE传输速度更快安全性更强时WIFI技术带宽更宽射频信号更强功耗更低特点重家种安装WIFI已成绝部分家庭选择次设计采WIFI技术进行网络结构搭建
ATKESP8266(图33)款兼容33V5V单片机系统高性串口线模块模块采串口MCU通信置TCPIP协议栈户需通配置相关指令通网络传输数综STC89C52RCSTM32单片机进行通信满足设计需求模块具体特性(表333):
表333 ATKESP8266基特性
项目
说明
网络标准
线标准 IEEE 802 11b1EEE 80211gIEEE 802 lIn
线传输速率
802 11b高达11Mbps
频率范围
2 412GHz2484GHz
发射功率
11 18dbm
通信接口
TTL电
天线
板载PCB天线
工作温度
40℃~ 85℃
工作湿度
10~ 90RHH
外形尺寸
19mm*29mmn

图33 ESP8266模块

334 湿度采集模块
湿度采集模块DHT11温湿度模块(图34)具体参数表334:
表334 DHT11温湿度模块参数
检测数
湿度温度
湿度测量范围
20%~95%(0℃~50℃范围)湿度测量误差±5%
温度测量范围
0℃~50℃范围温度测量误差±2℃
工作电压
33V~5V
输出形式
数字输出
尺寸
32*14mm

图34 DHT11模块
图35 MQ135模块

335 烟雾采集模块
烟雾采集模块采MQ135 空气质量模块(图35)家中产生火灾火灾中燃烧物产生硫化物空气中浓度会升高MQ135传感器输出电压会升高电压变化程度作时空气中污染气体浓度指数优点低成种害污染气体够进行监测时灵敏度高具体参数表335:

335 MQ135空气质量模块参数
产品类型
半导体气敏元件
检测气体
氨气硫化物苯系蒸汽
监测浓度
101000ppm(氨气甲苯氢气)
灵敏度
Rs(inair)Rs(100ppmNH3)≥5
336 ADDA转换器
烟雾传感系统调节智灯光系统等系统中输出仅仅电压变化肉眼见实际物理模拟量(Analog)需肉眼见模拟量转换肉眼见数字量(Digital)需通AD模数转换器者DA数模转换器模拟量数字量相互转换实现系统数值化控制
PCF8591模块具模拟输入端模拟输出端通输入端进行
AD模数转换输入(光采集烟雾采集等)通输出端进行DA数模转换输出(灯光亮度值)符合设计求选择PCF8591转换器


图36 PCF8591模块
图37 DS18B20模块


337 温度采集模块
次设计温度采集电路中采DS18B20模块(图37)模块检测范围55℃~+125℃误差±05℃~2℃间检测范围精度远高DHT11温湿度检测模块仅DHT11温度测试接工作范围均0~50℃间发生火灾结冰情况时DHT11法时检测前温度数值法时报报警减少安全隐患增加检测精度次设计采DS18B20温度测试模块进行设计
4 开发工具介绍
41 Keil编程软件
次设计Keil uVision4Keil MDK5两种编程软件Keil 系列编程软件(图41)单片机设计C语言软件开发系统Keil软件提供包括C编译器宏汇编链接器库理仿真调试器等功组合起软件
keil uVision4款非常适调试51类单片机C语言单片机调试软件Keil MDK5支持新版ARM CortexM核嵌入式单片机调试软件次毕业设计时STC89C52RCSTM32单片机Keil uVision4 Keil MDK5两款软件
图41(a) Keil uVision4

图41(b) Keil MDK5

42 串口调试助手
串口调试助手(图42)串口调试相关工具STC89C52ESP8266STM32ESP8266进行数传递时串行通信技术仅需通串口调试助手调试52单片机STM32需通串口调试助手ESP8266进行wifi连接波特率设置工作模式初始化等前期工作准备
图42 串口调试助手

43 STCISP
STCISP(图43)针STC系列单片机设计款单片机载编程烧录软件STC89C52RC单片机完成编程务通STCISPkeil uVision4生成HEX单片机执行格式文件通串口载该类文件载入52单片机中

图43 STCISP

44 网络调试助手
网络调试助手(图44)款支持TCPUDP网络调试台通Keil uVision4Keil MDK5编写完成STC89C52STM32分ESP8266串行通信验证52单片机ESP8266否正常串行通信实现通建立TCP server服务器完成通TCPIP协议进行位机数交互STM32否ESP8266正常串行通信实现加入52单片机创建TCP server服务器进行正常数交互问题网络调试助手进行验证数收发校验
图44 网络调试助手

45 FlyMCU
FlyMCU(图45)针STM32设计款单片机载编程烧录软件STM32程序编写完成通FlyMCUKeil MDK5生成HEX文件单片机执行文件载入STM32单片机中
图45 FlyMCU

5 智家居系统位机功设计
51 智干湿度系统设计
智干湿度系统针家庭干湿度环境进行动调节手动调节智系统检测环境湿度低体舒适湿度环境时智湿度系统会动变成加湿模式处环境进行加湿处理检测环境湿度高体舒适湿度环境时智湿度系统会动转变成湿模式处环境进行湿处理具体工作流程:(图51)
开始
湿度检测
手动调节
工作模式
动调节
否舒适
调节类型
加湿
湿
图51 智干湿度系统工作流程图



511 湿度检测模块设计
次设计湿度检测系统中DHT11模块采单总线传输技术52单片机建立通信输出8位整数湿度值8位温度整数值DHT11具体通讯程(图52):
(1) 初始化程
52单片机拉低总线约18ms低电2040us高电DHT11会发出占空50间隔周期120us脉信号作响应时DHT11已接收52单片机指令准备开始传输数
(2) 数传输程
初始化完成DHT11通总线52单片机发送温湿度数位数50us低电时隙开始高电时间长短决定输出值高电时长26us28us时数0’高电时常70us时数1’
(3) 数接收完成通读取接收8位湿度整数数读取出前湿度值


图52(a) DHT11数0’信号

图52(b)DHT11数1’信号

512 智干湿度控制系统设计
根中国气象报科学研究显示环境温度18℃25℃相湿度4070时体感觉舒适动模式通判断前室湿度值确定工作模式动调控前室湿度值根图51干湿度控制系统工作流程图设计智干湿度系统模式思路
设置默认模式智干湿度系统动模式动模式中环境湿度处45~70间时器件工作环境湿度低45环境湿度高70时智干湿度系统动启动加湿功湿功环境湿度重新处50~60间时器件停止工作
手动模式中户位机通TCP传输协议利WIFI位机进行控制信号传输控制应湿度器件进行工作改变工作模式具体方式:位机通ESP8266接收位机数时判断位机发送前两位数RA时(RH Auto)智干湿度系统设置动模式前两位数RM时(RH Manual)智干湿度系统设置手动模式继续判断接收第三位数确定智干湿度系统中需工作功模块部分程序:
#include 引DHT11湿度模块头相关文件
uint RHMode0 默认干湿度模块动模式
uchar ReceiveBuf[20]接收函数长接收10字符(前9~10特定数)

sbit jiashiP2^3 定义加湿功IO口
sbit qushiP2^4 定义湿功IO口

void IO() interrupt 4 判断接收位机工作模式
{
……
switch(ReceiveBuf[9]) 数接收前8位数
{
case R’ if(ReceiveBuf[10]’A’)RHMode0 变动模式
else if(ReceiveBuf[10]’M’)
{
RHMode1 变手动模式
if(ReceiveBuf[11]’1’)jiashi0
else if(ReceiveBuf[11]’2’)jiashi1
else if(ReceiveBuf[11]’3’)qushi0
else if(ReceiveBuf[11]’4’)qushi1
}
break
}
}

void AutoControl()
{
Swtich(RHMode)
{
case 0 if (DHT()<45) jiashi 1 加湿启动
*中DHT()湿度读取函数*
else if(DHT()>70) qushi 1 湿启动
else if(DHT()>50 && DHT()<60) 达适宜值停止工作
{
jiashi 0
qushi 0
}break
case 1 break 手动模式(中断中判断执行)
}
}
52 智温度调节系统设计
智温度调节系统针屋前温度智动调节系统温度略低体舒适温度时动启动加热系统温度高时动启动降温系统室温度够控制体舒适温度范围具体流程程智干湿度调节程相似流程参图51
521 温度测试模块设计
DS18B20模块DHT11结构相似样采单总线技术进行52单片机通讯步次输出十六位温度数值模块通运算转换十六位温度数值转换位五位温度数值具体流程(图53):
①初始化:
(1) 总线置低电
(2) 延时500us(范围480us~960us)
(3) 总线高电
(4) 延时500us期间果模块接入接收初始化信号会80us返回60us~240us低电作应答信号

图53(a) DS18B20初始化程

②写时序DS18B20发送ROM指令RAM指令
(1) 总线置低电
(2) 延时15us
(3) 发送1位数
(4) 延时60us
(5) 总线高电
(6) 次发送1位字节重复前五步直指令发送完成
(7) 发送完成拉高数线

图53(b) DS18B20时序


③写入ROM指令RAM指令(表521)
(1) 查ROM指令表次芯片单片工作需引ROM址DS18B20发送0xcc时序指令
(2) 先DS18B20写入0x44指令转换读取温度
(3) DS18B20写入0xbe指令读取部RAM9位温度数
(4) 接收读取数进行9位变5位转换输出五位温度数值

表521(a) DS18B20 ROM指令表
读ROM
33H
读取DS18B20中ROM编码(64位)
符合ROM
55H
发出命令紧接着发送64位ROM编码寻找应DS18B20做出读写准备
跳ROM
0CCH
忽略64位ROM编码适合单片工作


表521(b) DS18B20 RAM指令表
温度变换
44H
启动DS18B20部温度转换模式12位转换时长750ms结果存入部9位RAM中
写暂存器
4EH
发出部RAM 34字节写限温度数命令传送两字节数
读暂存器
0BEH
读部RAM中9位字节


④读数
(1) 总线低电
(2) 总线高电读取DS18B20返回电
(3) DS18B20返回低电数0返回高电1
(4) 读取电延迟40us~45us
执行完DS18B20基程序利转化函数十六位温度数值进行温度转化5位温度数值通读取5位温度数值获前温度值
522 智温度系统设计
智干湿度系统相环境温度处18℃25℃时体感觉舒适动模式通判断前室温度值确定工作模式动调控前室温度值智温度系统模式设计
智温度系统默认模式设置动模式前环境温度处18℃25℃时处体舒适温度器件工作环境温度18℃时系统会进入增温模式温度25℃时系统会进入降温模式果器件工作环境温度达20℃23℃时温度回体舒适值器件停止工作
手动模式中户位机通TCP 传输协议利WIFI位机进行控制命令传输控制应器件工作改变工作模式具体方式:位机通ESP8266接收位机数时判断位机发送前两位数TA时(TP Auto)智温度系统设置动模式前两位数TM时(TP Manual)智温度系统设置手动模式继续判断接收第三位数确定智温度系统需工作功模块具体程序智干湿度系统相似详见附录

53 智灯光系统
智灯光系统针室种情况需求设计灯光智调节模式动模式智灯光系统会根前室采光数值灯光进行智调控室采光低时灯光会动亮起会根采光度灯光亮度进行调节时户根实际需求设置动进入模式时间时手动模式支持娱乐模式养生模式等智灯光模式具体流程图图54:
图54 智灯光系统流程图
4


531 ADDA转换器设计
PCF8591采I2C总线包含四输入通道1输出通道ADDA转换模块模块包含光敏电阻通AD转换AD数值进行判断根前光敏电阻采光值控制DA输出电压控制灯光亮度开发灯光控制系统
PCF8591具体配置方式:
①SDASCL高电时SDA高变低跳变视开始信号
②接收开始信号时钟线1时数线0结束接收数0数线1时结束接收数1时接收完节数等4us开始接收字节写SendByte函数时候需0x80进行判断数0时SDA0数1时SDA输出1(发送8位数)
③发送次字节器件会发出接收反馈信号ACK应答通判断ACK应答判断否接收数
④接收完成SCL高电SDA低电SDA高低跳变视停止信号
设置完I2C总线时序发送接收函数需转换模块接入PCF8591AD模数转换接口(AIN0~AIN3)时写入应接口值通读取接收函数接入模块实时AD模数转换数值
通计算利I2C发送数函数写入需DA模数转换输出电压
通AOUT接口输出DA模数转换电压控制接入AOUT接口模块电压值
根飞利浦公司提供DATA SHEETPCF8591模块设置方式:
ADC:
①通I2C总线发送数函数写入PCF8591址(0x90)
②写入需读取AIN口址(图55)
③根I2C传输协议利发送数函数选择工作模式(图56)
③利I2C数接收函数接收需读取AIN口AD模数转换数值
DAC:
①通I2C总线发送数函数写入PCF8591址(0x90)
②利发送数函数进行工作模式选择
③利发送数函数发送DAC需输出电压值
时DAC输出电压计算方法:
设需电压X总电压N发送值Y
Y(XN)*256
Y通进制转换十进制(OCT)转换成十六进制(HEX)输出DA数值十六进制数通I2C总线发送数函数发送十六进制数PCF8591AOUT接口输出应电压
解析:通输出电压总电压率十六进制值(256)输出电压值十六进制数通I2C总线发送函数发送十六进制数通DAC转换输出应电压
图55 PCF8591 ADDA转换器


图56(a) 写入工作模式DA模式


图56(b) 写入工作模式位AD模式


532 灯光动控制模式
灯光动控制系统设计设置默认模式动控制模式接收位机通TCP传输协议利WIFI位机发送灯光控制命令接收位机发送前两位数LA时灯光系统设置动模式利PCF8591模块通AD转换模块光敏电阻电压模拟量进行实时采集转化实时数字量通读取实时光敏电阻(着光强度增加电阻增)电压数值判断前光值利采集光值DA转换器控制LED灯两端电压输入进行控制控制LED灯光亮度部分程序:
#include 引PCF8591相关文件
#include 引I2C相关文件
#include 引灯光模式相关文件

uint LTMode
uint light
sbit LEDP2^0
void AutoControl
void IO() interrupt 4 判断接收位机工作模式
{
……
switch(ReceiveBuf[9]) 数接收前8位数
{ 判断工作模块
case L’ if(ReceiveBuf[10]’A’)LTMode0
else if{……}break
}
}

void AutoControl()
{
……
switch(LTMode)
{
case 0 lightADC_OUT(0x40) 赋值采光值进行判断
if(light>240) 判断前采光值控制电压输出
{
DAC_OUT(0x99)
}
else if(light<100) 判断前采光值控制电压输出
{
DAC_OUT(0x00)
}
else if(light>220&&light<240) 判断前采光值控制电压输出
{
DAC_OUT(0x95)
}
else if(light>200&&light<220) 判断前采光值控制电压输出
{
DAC_OUT(0x90)
}
else if(light>180&&light<200) 判断前采光值控制电压输出
{
DAC_OUT(0x88)
}
else if(light>160&&light<180) 判断前采光值控制电压输出
{
DAC_OUT(0x86)
}
else if(light>140&&light<160) 判断前采光值控制电压输出
{
DAC_OUT(0x84)
}
else if(light>120&&light<140) 判断前采光值控制电压输出
{
DAC_OUT(0x82)
}
break
……
}
533 手动调灯光模式
手动调灯光模式设计接收位机通TCP传输协议利WIFI位机发送灯光控制命令时读取位机发送灯光值输出应灯光亮度具体程:接收位机发送前两位数LM时灯光系统设置手动模式读取第三第六位数确定需输出电压值(灯光亮度)部分程序:
#include 引PCF8591相关文件
#include 引I2C相关文件
#include 引灯光系统相关文件
uchar Reslight

void IO() interrupt 4 判断接收位机工作模式
{
……
switch(ReceiveBuf[9]) 数接收前8位数
{ 判断工作模块
case L’ if{……}
else if(ReceiveBuf[10]’M’)
{
{
LTMode1
Reslight((10*(ReceiveBuf[11]'0')+(ReceiveBuf[12]'0')))
*数字字符变成数字*
}
}
break
}
}
void AutoControl()
{
switch(LTMode)
{ case 0……
case 1 DAC_OUT2(0x80+Reslight)
break
}
}
54 烟雾报警系统
次烟雾报警系统采MQ135模块空气中含定量燃烧产生氯化物时MQ135模块电压会迅速升高通PCF8591模块利AD转换MQ135电压模拟量成数字量通判断数值出否火灾火灾发生时动控制排风机水泵报警蜂鸣器启动
烟雾报警系统模式设计设置默认模式动模式位机通TCP 传输协议利WIFI位机进行控制命令传输改变工作模式具体方式:位机通ESP8266接收位机数时判断位机发送前两位数SA时(SMK Auto)烟雾报警系统系统设置动模式前两位数SM时(SMK Manual)烟雾报警系统设置手动模式继续判断接收第三位数确定烟雾报警系统需工作功模块具体程序智温度系统智干湿度系统相似程序详见附录1

6 网络结构搭建
61 ESP8266模块初始化
次网络结构搭建模块时ESP8266模块
ESP8266模块默认波特率115200bpsSTC89C52RC单片机性增强型单片机选晶振部定时器落原产生115200波特率波特率误差然非常稳定先ESP8266模块进行初始化设置具体步骤:
利USB转TTL数线ESP8266连接电脑通串口通信助手ESP8266发送初始化数:
①重新配置波特率:
通USB转TTL串口线ESP8266模块发送:AT+UART96008100
引指令:AT+UART
解析:设置ESP8266波特率9600bps8位数位1位停止位校验位需流控
②设置工作模式
通USB转TTL串口线ESP8266模块发送:AT+CWMODE3
引指令:AT+CWMODE
解析:ESP8266三种工作方式:
mode1时ESP8266station模式staion模式中ESP8266wifi连入模式通接入wifi进行通讯
mode2时ESP8266AP模式AP模式ESP8266作AP接入点外发出热点接入AP接入点ESP8266外部发送WIFI信号仅设备连接ESP8266发出WIFI进行通信
mode3时ESP8266station+AP模式ESP8266作station作AP接入点连接wifi作wifi源
③位机ESP8266开WIFI位机ESP8266连入位机WIFI
④更改位机APIP址位机够准确找位机IP址
通USB转TTL串口线ESP8266模块发送:AT+CIPAP19216888
引指令:AP+CIPAP
解析:位机IP址更改19216888
⑤查ESP8266IPMAC址
通USB转TTL串口线ESP8266模块发送:AT+CIFSR
引指令:AT+CIFSR
时ESP8266返回APIP址已改19216888STAIP址1921682102
62 位机串口通信搭建
利串口通信技术STC89C52ESP8266进行通信
硬件设计:
ESP8266RX接收端接52单片机TX输出端ESP8266TX发送端接52单片机RX接收端ESP826652单片机进行串口通信
程序设计:
①设置52单片机波特率9600bps通信模块波特率致设置TMOD0x20(工作方式1)SMOD0(波特率加倍)利波特率计算工具计算出TH1TL1初值0xFD
②SCON设置0x50串口工作方式1单片机发送指定数时数通写入发送缓器SBUF52单片机TX端口输出发送完成开启发送完成中断置位REN允许接收数数写入单片机时数通RX端口输入存入SBUF写入完成申请中断单片机SBUF取走收数
③开启中断允许开启接收允许开启定时器T1
④编写串口发送函数发送字节写入发送缓器SBUF中
⑤编写串口中断服务函数读取接受数值串口接收数接收寄存器SBUF会动RI接收中断动置1需通程序解RI中断时需接收接收寄存器SBUF中数存入接收缓区读取接收数
具体程序:
****************
* 波特率设置 *
****************
void Init_UART() 串行口波特率设置
{
SCON 0x50 设置串行口控制寄存器0x50
TMOD 0x20 设定定时器工作方式1
TH1 0xFD
TL1 0xFD
ET1 0 禁止定时器1中断
EA 1 总开
TR1 1 开启定时器T1
}
******************
*单字节发送函数*
******************
void sendChar(uchar byte) 发送字符
{
SBUF byte 字节写入发送缓器SBUF中
while(TI0) 等串口发送中断(等发送完成)
TI0 重置串口发送完成中断
}
****************
*字符串发送函数*
****************
void sendString(uchar *s) 发送字符串
{
while(*s'\0') 判断字符串否发送完成空继续发送
{
sendChar(*s) 字节写入发送字节函数中
s++ 装载字符
}
}
需注意ESP8266模块处透传模式程中接收数时候接收数前面数会默认+IPDidlength通串数告诉接入机ESP8266接收数时报告数源id址数长度52单片机通串口通信接收ESP8266接收数时需接收数进行处理接收第位+’号时接收数进行读取否便丢弃该接收数
void IO() interrupt 4
{
if(RI 1)
{
ES 0
RI 0 清串口接收标志位
ReceiveBuf[count]SBUF
if(ReceiveBuf[0]'+') 果接收信息会受+IPDidlength
{ count++ }
else
{ count0 }
if(count >11)
{ count0
Switch(ReceiveBuf[9])
{ …… }
}
ES 1
}
}
63 位机串口通信搭建
利串口通信技术STM32ESP8266进行通信
硬件设计:
STM32USARTUART烧录程序需通USART1STM32PAIOPIN9PIN10端方便烧录选择ESP8266插口时量避免接入PAIO口PIN9PIN10脚选STM32USART3作通信IO口ESP8266RX接收端接STM32单片机PBIO口PIN10ESP8266TX发送端接STM32单片机PBIO口PIN11STM32ESP8266串口通信
程序设计:
①52单片机时STM32需初始化脚需GPIO口时钟应PIN脚STM32先GPIOB时钟PB10PB11脚时根STM32手册(表631)外设GPIO配置设置TX端输出方式推挽复输出RX端输入方式浮空输入GPIO口输出驱动电路响应速度10MHz

表631 外设GPIO配置USART
USART引脚
配置
GPIO配置
USARTx_TX
全双工模式
推挽复输出
半双工步模式
推挽复输出
USARTx_RX
全双工模式
浮空输入带拉输入
半双工步模式
未作通IO
USARTx_CK
步模式
推挽复输出
USARTx_RTS
硬件流量控制
推挽复输出
USARTx_CTS
硬件流量控制
浮空输入带拉输入

②脚激活需USART3串口通信串口时初始化USART3串口配置包含设置波特率设置硬件流控制设置工作模式奇偶校验位设置停止位设置串口通信中数位长度设置等
③面设置设置USART3允许USART3工作
④USART3USART3中断
⑤STM32包含串口通信USART口UART口设置USART3中断优先级包括选择中断口抢断优先级子优先级紧急事件中断等
⑥USART3接收数会触发串口中断服务函数需编写程序读取接收数值
具体程序:
******************
*串口3收发缓存区*
******************
u8 USART3_RX_BUF[USART3_MAX_RECEIEVE_LEN] 储存接收数
u8 USART3_TX_BUF[USART3_MAX_SEND_LEN] 储存发送数
vu16 USART3_RX_STA0 设置接收状态位0
*接收状态位:前14位数接收位15位数否正确位接收0x0d时ASCII回车键代表数接收完成第16位数处理位第15位接收完成数接收数放入接收缓区中接收完成数处理数处理位置1表示完成*

********************
*串口3中断服务函数*
********************
void USART3_IRQHandler(void)
{ u8 res
if(USART_GetITStatus(USART3 USART_IT_RXNE) RESET)
接收数判断接收缓区否空查否接收完成
{ res USART_ReceiveData(USART3)
USART_SendData(USART1res)
if((USART3_RX_STA & 0x8000) 0)数处理未完成
{
if(USART3_RX_STA&0x4000)
*表示接收0x0d意第15位接收回车数已接收完成*
{
if(res0x0a)USART3_RX_STA0
*判断res数值果res接收数0x0aASCII值位\n换行符表示接收数错误重新开始*
else USART3_RX_STA|0x8000
*果接收res\n表示接收数完成STA设置0x8000表示数处理完成 *
}
else
*表示数没接收0x0d继续接收数直接收0x0d\r止*
{
if(res0x0d)USART3_RX_STA|0x4000
*果接收数0x0d代表置STA0x4000代表已接收回车次接收换行*
else
{
USART3_RX_BUF[USART3_RX_STA&0X3FFF]res
*果没接收0x0d换行继续接收数接收数放入接收数缓区中*
USART3_RX_STA++
*STA0开始加接收14位数*
if(USART3_RX_STA>(USART3_MAX_RECEIEVE_LEN1)) \USART3_RX_STA0
*果接收数接收长度接收数错误重新开始接收*
}
}
}
}
}
******************
*串口3初始化函数*
******************
void USART3_Init(u32 bound2) bound波特率
{ *变量声明*
NVIC_InitTypeDef NVIC_InitStructure
GPIO_InitTypeDef GPIO_InitStructure
USART_InitTypeDef USART_InitStructure

**************
* GPIO口配置*
**************
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE)
GPIOB时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3ENABLE)
串口3时钟
USART_DeInit(USART3) 复位串口3
*USART3_TX PB10*
GPIO_InitStructureGPIO_Pin GPIO_Pin_10 PB10
GPIO_InitStructureGPIO_Speed GPIO_Speed_50MHz
GPIO_InitStructureGPIO_Mode GPIO_Mode_AF_PP 复推挽输出
GPIO_Init(GPIOB &GPIO_InitStructure) 初始化PB10
*USART3_RX PB11*
GPIO_InitStructureGPIO_Pin GPIO_Pin_11
GPIO_InitStructureGPIO_Mode GPIO_Mode_IN_FLOATING浮空输入
GPIO_Init(GPIOB &GPIO_InitStructure) 初始化PB11
USART_InitStructureUSART_BaudRate bound2波特率般设置9600
USART_InitStructureUSART_WordLength USART_WordLength_8b
字长8位数格式
USART_InitStructureUSART_StopBits USART_StopBits_1停止位
USART_InitStructureUSART_Parity USART_Parity_No奇偶校验位
USART_InitStructureUSART_HardwareFlowControl USART_HardwareFlowControl_None硬件数流控制
USART_InitStructureUSART_Mode USART_Mode_Rx | USART_Mode_Tx 收发模式
USART_Init(USART3 &USART_InitStructure) 初始化串口 3
USART_Cmd(USART3 ENABLE) 串口
接收中断
USART_ITConfig(USART3 USART_IT_RXNE ENABLE)开启中断
设置中断优先级
NVIC_InitStructureNVIC_IRQChannel USART3_IRQn
NVIC_InitStructureNVIC_IRQChannelPreemptionPriority2 抢占优先级2
NVIC_InitStructureNVIC_IRQChannelSubPriority 2 子优先级2
NVIC_InitStructureNVIC_IRQChannelCmd ENABLE IRQ通道
NVIC_Init(&NVIC_InitStructure) 根指定参数初始化VIC寄存器
}
64 位机位机网络结构搭建
641 位机网络结构搭建
通单片机ESP8266发送创建TCP server指令ESP8266开启TCP server服务TCP server服务ESP8266通TCP传输控制协议限连接设备进行端端面连接全双工数传输时传输程性高传输速率快具体开启步骤:
⑤设置server服务通道数
利52单片机串口通信方式通程序ESP8266发送指令:AT+CIPMUX1
引指令:AT+CIPMUX
解析:mode1时ESP8266TCP server开启路连接模式连入五设备进行server服务mode0时仅单路连接模式单设备进行通信
⑥开启ESP8266TCP server服务
利52单片机串口通信方式通程序ESP8266发送指令:AT+CIPSERVER18080
引指令:AT+CIPSERVER
解析:mode1时开启TCP server服务port端口号server服务门牌号接入端通查找应端口号接入正确服务器处指令含义开启TCP server服务端口号8080
⑤⑥指令ESP8266重启便生效(指令断电消)法ESP8266初始化步骤中设定指令通52单片机串口通信通已编写①④串口发送函数ESP8266发送⑤⑥指令具体程序:
void Init_ESP8266()
{
for (X0X<10000X++) ESP8266接收处理数时间约1015ms
sendString(AT+CIPMUX1\r\n) 发送设置连接模式指令
for (X0X<10000X++)
sendString(AT+CIPSERVER18080\r\n) 发送开启TCPserver服务指令 设置端口号8080
RI 0 发送完成清空接收中断位准备开始接收
ES 1 总开
}
设置完成ESP8266TCP server服务52单片机通ESP8266利TCP server服务外部连接设备(位机)发送收集数位机够实时监控52单片机功模块(家中处)实时情况具体步骤:
⑦52单片机通TCP server服务外部设备发送收集种数值通串口通信方式利程序ESP8266发送指令:AT+CIPSEND018
引指令:AT+CIPSENDidsize
解析:id通道号size字节ESP8266设置路连接需发出指令设置具体发送通道号发送数字节具体处设置通通道0发送18位字节数
具体程序:
*****************************
*函数(断发送18位数)*
*****************************
uchar Send[20] 定义发送数函数
uchar SendCombine() 声明发送数合函数
void main
{
Init_UART()
Init_ESP8266()
while(1)
{
SendCommbine() 数进行合
for (X0X<10000X++) 延时段时间等数发送完成
sendString(AT+CIPSEND018\r\n)
for (X0X<10000X++) 延时段时间等数发送完成
sendString(Send) 数储存数组
Delay1ms(500)
}
}

******************
*发送数合函数*
******************
void SendCommbine()
{
Send[0] 'T'
Send[1] 'P'
Send[2] sendNumb[TrueTemp(Ds18b20ReadTemp()) 10000 1000]
Send[3] sendNumb[TrueTemp(Ds18b20ReadTemp()) 1000 100]
Send[4] sendNumb[TrueTemp(Ds18b20ReadTemp()) 100 10]
Send[5] sendNumb[TrueTemp(Ds18b20ReadTemp()) 10 1]
Send[6] 'R'
Send[7] 'H'
Send[8] sendNumb[DHT() 10]
Send[9] sendNumb[DHT() 10 1]
Send[10] '0'
Send[11] '0'
Send[12] 'S'
Send[13] 'M'
Send[14] sendNumb[ADC_OUT(0x42) 1000]
Send[15] sendNumb[ADC_OUT(0x42) 1000 100]
Send[16] sendNumb[ADC_OUT(0x42) 100 10]
Send[17] sendNumb[ADC_OUT(0x42) 10 1]
Send[18] '\0'
}
642 位机程序设计
通STM32ESP8266发送连接TCP server指令连接步骤:
⑦建立TCP server连接:
利STM32串口通信方式通程序ESP8266发送指令:
AT+CIPSTARTTCP19216821028080
引指令:AT+CIPSTART
解析:id指连入通道号type连入方式addr连入址port连入端口(门牌号)该发送指令指0号通道连入TCP服务器连入址1921682102(位机ESP8266 STAIP址)连入端口8080(位机TCP server设置路连接端口8080)
具体程序:
********************************
*位机连入位机ISP服务器程*
********************************
u8 Esp8266Init[] {AT+CIPSTART\TCP\\19216888\8080\r\n}
STM3252单片机连接
if(KEY71)
{
delay_ms(100) 防抖动
if(KEY71)
{
while(KEY7) 模拟手指等抬起
for(i0i<41i++)
{ while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)Ⅰ
USART_SendData(USART3Esp8266Init[i]) Ⅱ
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)Ⅲ
}
delay_ms(1000) 延时1s防止次重复发送
}
*Ⅰ:通GetFlagStatus库函数检查串口3发送数寄存器否空发送数寄存器空代表数已发送移位寄存器移走开始次数发送进行数读取开启连接TCP指令发送*
*Ⅱ:通串口3发送连接指令*
*Ⅲ:通GetFlagStatus库函数检查串口3发送移位寄存器发送移位寄存器空代表数已发送完成*

7 调试程
次调试程中实物搭建位机控制界面组员完成抗力影响法合汇总调试程中部分系统搭建调试中关实物输出界面输入部分均二极开关代
二极代部分包括:增温系统降温系统湿系统加湿系统水泵排风机报警蜂鸣器等
开关代部分包括:位机连接钮位机部分手动控制系统钮位机动控制钮类控制开关等

71 智干湿度动模式系统搭建调试
通STCISP烧录工具利Keil uVision4编写智干湿度系统动模式程序烧录进入52单片机利网络调试助手接收52单片机发送实时湿度数值进行智干湿度系统动模式搭建调试
智干湿度系统动模式湿度低时系统加湿模块发送指令开启加湿功湿度高时系统湿模块发出指令开启湿功湿度达体舒适湿度时停止前运行中湿度功模块
次智干湿度系统动模式中湿度高70时开启湿功湿度低45时开启加湿功工作环境湿度处50~60时停止湿度器件工作
图71环境中湿度升高70时湿模式启动利燃烧木棍燃烧检测模块周围模拟湿度降低场景湿度低45时加湿模式启动器件工作湿度处50~60时湿度器件停止工作
综智干湿度系统动模式搭建成功
图71(a) 湿度高舒适值

图71(b) 湿模式启动

图71(c) 湿度低舒适值

图71(d) 加湿模式启动

72 智温度系统动模式搭建调试
通STCISP烧录工具利Keil uVision4编写智温度系统动模式程序烧录进入52单片机利网络调试助手接收52单片机发送实时温度数值进行智温度系统动模式搭建调试
智温度系统动模式温度低时系统增温模块发送指令开启增温功温度高时系统降温系统发出指令开启降温功温度达体舒适温度时停止运行中温度功模块
次智温度系统动模式中温度高25℃时开启降温功温度低18℃时开启增温功(处冰袋模拟低温环境)工作环境温度处20℃~23℃时停止温度器件工作
图72环境中温度升高25℃时降温模式启动温度低18℃时增温模式启动
综智温度系统动模式搭建成功
图72(a) 温度高舒适值

图72(b) 降温模式启动

图72(c) 温度低舒适值

图72(d) 增温模式启动

73 烟雾报警系统搭建调试
烟雾报警系统动模式搭建调试程智干湿度系统智温度系统相似搭建程详细说明图73烟雾传感值高设定值80时烟雾报警系统启动开启水泵开启排风机开启蜂鸣器报警
综烟雾报警系统动模式搭建成功
图73(b) 检测烟雾报警
图73(a) 检测烟雾

74 智灯光系统搭建调试
通STCISP烧录工具Keil uVision4编写灯光控制系统设计程序烧录进入52单片机利数码显示光敏电阻数值进行光值采集测试利PCF8591 ADDA模数数模转换器连入模块中光敏电阻进行电压采集采集电压值转换实时光值
利采光值进行智灯光系统程序编写光值低某数值时灯光亮起光值高某数值时灯光熄灭图74采光值低140时灯光熄灭采光值处140~255间时灯光点亮时等级灯光亮度适应采光值采光值处140~180区间时灯光1级亮度采光值处180~200区间时二级亮度200~220区间时三级亮度高220时四级亮度灯光亮综智灯光系统动模式动模式搭建完成
图74(a) 灯光熄灭

图74(b) 二级灯光亮度

图74(c) 三级灯光亮度亮度


75 位机位机通信程调试
751 STC89C52RCESP8266通信程
通STCISP烧录工具Keil uVision4编写灯光控制系统设计程序烧录进入52单片机利网络调试助手观察52单片机ESP8266模块否开启TCP server服务数否够正常收发ESP8266设置AT+CWMODE3AP+Station模式先电脑连入发射WIFI通网络调试助手中TCP Client方式连入52单片机通串口通信开启 IP址19216888端口号8080TCP server服务器中图75TCP Client连入指定TCP server服务器停接收单片机模块实时数出结52单片机ESP8266通信正常外部连接设备接收发送数
图75 网络调试助手接收52单片机信息

752位机位机通信程
通fly mcu烧录工具Keil MDK5编写STM32ESP8266通信程序烧录进入STM32利USART1串口通串口调试助手观测STM32ESP8266连接USART3串口数确定STM32否STC89C52RC连接进行数传输
图76果52单片机ESP8266TCP server服务器未开果KEY0钮(连接钮)STM32ESP8266发送连接TCP server指令连接钮显示CONNECT FAIL开启52单片机ESP8266TCP serverSTM32KEY1钮STM32接入52单片机ESP8266创建TCP server服务器显示CONNECT持续收52单片机发出模块实时数
STM32STC89C52RC网络结构搭建完成TCP server服务器位机位机全双工方式彼互发数

图76 STM3252单片机通信

76 位机模块手动模式搭建调试
761 位机基功模块手动模式搭建调试
图77STM32蜂鸣器钮松开(模拟手指触摸屏接触松开)STM32ESP8266发送手动控制指令52单片机烟雾模块进入手动模式蜂鸣器灯亮起(蜂鸣器启动)次蜂鸣器钮松开STM32ESP8266发送手动控制指令52单片机蜂鸣器灯光熄灭(蜂鸣器关闭)
理排风机水泵加湿湿降温增温等钮样成功控制52单片机模块进入手动模式进行手动控制
仅图77(f)控制水泵属烟雾模块然降温系统动运行受影响时52单片机断STM32传输实时模块数
综位机模块手动模式搭建完成

图77(a) 蜂鸣器钮等松开


图77(b) 蜂鸣器手动模式启动


图77(c) 蜂鸣器钮等松开


图77(d) 蜂鸣器手动关闭
图77(e) 水泵系统钮


图77(f) 水泵手动开启

762 智灯光系统手动控制模式
智灯光系统手动控制模式中利网络调试助手模拟STM32STC89C52RC发送数(STM32需发送样代码利网络调试助手更加直观方便)
智灯光手动模式中设置设置0~20等级灯光亮度者通位机拖动相应灯光亮度条发送应灯光亮度代码进行位机智灯光系统手动控制模式控制图78次调试通网络调试助手STC89C52RC发送LM00LM05LM15三命令控制灯光发出0级5级15级灯光亮度灯光根灯光亮度指令完成相应灯光亮度调整智灯光系统手动模式设计完成
图78(a) 发送灯光亮度指令

图78(b) 0级亮度

图78(c) 5级亮度

图78(d) 15级亮度

8 结
81 总结
综次毕业设计成功搭建系统:
(1) 搭建完成智干湿度系统
(2) 搭建完成智温度系统
(3) 搭建完成烟雾报警系统
(4) 搭建完成智灯光系统
(5) 完成位机位机网络结构搭建
次设计设计目标设计套智家居系统利STM32单片机STC89C52RC单片机分作位机位机组成整系统控制单元ESP8266模块作位机位机网络结构搭建桥梁建立位机位机间数传输功实现智家居系统中模块实时监控实时监测实时控制
户仅位机发送指令1s左右时间位机便接收信息进行处理执行相应指令动作时位机中观察位机模块实时数值做实时监测房间里种数仅位机动功安防功房间舒适度种突发状况进行时调控时报时防御等功

82 展
次毕业设计程中仅式样单片机类型功技术发展程度进步解学STC5152系列单片机STM32系列单片机等更加深刻认识理解仅线网络网络传输协议初步认识动学动尝试中获益良
次毕业设计深刻认识知识永止境需断学断探索断钻研够创造出更加更加产品未越越新更加优秀单片机渐露头角越越落单片机需淘汰断学淘汰着更加优秀美未断前进

参考文献
[1]竺春祥 夏彬 穆爽 陈泽杰 邱婷婷 孙嘉悦 基WIFI网络实验室智电理系统[J] 信息技术信息化 2019(05)151154
[2]汪思德 陈乙鑫 基物联网智环境监测系统设计实现[J] 现代计算机(专业版) 2019(10)8790
[3]永明 张琴 张伟彬 龙馨宇 张新贺 智门锁设计[J] 科技创新导报 2019(11)106106
[4]郭桂绵 钟志浮 侯斌 刘雪锋 陈少锋 王丽媛 罗中良 WiFi控制智空气净化器设计[J] 日电器 2018(8)44
[5]洪烁彬 张冰 海区公明灯智保护系统设计[J] 信息电脑(理版) 2019(10)5758
[6]姚刚 毛江 熊学琴 温度传感器智水杯设计中应[J] 山西煤炭理干部学院学报 2013(03)136137
[7]吴沛 张珣 种基ZigBee家居环境质量评测系统设计[J] 硅谷 2014(13)4042
[8]张玲莉 基STC12C5A60S2调光台灯设计[J] 南方农机 2019(12)3031
[9]张海龙 基SPCE061 A线环境监控系统设计[J] 单片机嵌入式系统应 2014(10)44
[10]王云亮 蒋斌 线交通灯远程监控系统设计实现[J] 计算机测量控制 2014(06)128130
[11]路士兵 面智网络信息安全技术研发实践[J] 电子世界 2018(7)22
[12]温娟娟 王溢琴 基51单片机嵌入式核心板设计[J] 山西学学报:然科学版 2016(2)44
[13]刚 梁丰研 俞巧君 潘瑾 古林馨 动态监测智物流贴[J] 物联网技术 2016(1)55
[14]杜振宁 种基线传感器温室环境监测系统实现方法[J] 价值工程 2014(34)252254
致谢
次毕业设计程中指导老师曹彦玲老师悉心指导尤刚刚开始毫头绪时候曹老师时沟通时许理知识帮助明确方工作效率明显提高疫情期间老师早网课晚回家时沟通线开会督促设计进度终完成系统设计曹老师表示衷心感谢老师您辛苦
时感谢组员作组长时候没办法时沟通导致进度致程度样样默默支持鼓励时予程度帮助意见谢谢家
学四年转瞬逝感谢工业动化学院全体老师悉心教导耐心授业学校栽培掌握种专业知识专业技收获颇丰
感谢答辩老师百忙中抽出时间阅读文祝全体老师身体健康工作利
附录
附录1 52单片机程序源码
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

sbit LED1 P2^0
sbit LED2 P2^1


sbit La P0^0
sbit Lb P0^1
sbit Lc P0^2
sbit Ld P0^3
sbit Le P0^4
sbit Lf P0^5
sbit Lg P0^6
sbit Ldp P0^7

sbit fan P2^6

sbit L1 P1^0 第位
sbit L2 P1^1 第二位
sbit L3 P1^2 第三位
sbit L4 P1^3 第四位


uchar LEDNumb[10]{0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f}
uchar sendNumb[10]{'0''1''2''3''4''5''6''7''8''9'}
uchar Send[20]
uchar ReceiveBuf[10]
uchar DisplayData[4]
uint X
uint count

uint a



函数声明
void delay(uchar i)
void Init_UART() 串行口通信
void sendChar(uchar byte) 发送字符
void sendString(uchar *s) 发送字符串
void datapros(int Number) 数码显示赋值
void Display() 数码显示
void Autocontrol()
void Init() 单片机IO口初始化
void Init_ESP8266() ESP8266初始化
void SendCommbine()
void main()
{
uint Y
Init_UART()
Delay1s(1)
Init_ESP8266()
Delay1s(1)
Init()
Delay1s(1) 等wifi进入工作
for(Y0Y<500Y++) 概循环300次实现稳定
{
ADC_OUT(0x42)形参部分通道选择位存返回值(smoke)
TrueTemp(Ds18b20ReadTemp()) DS18B20温度模块稳定
DHT() 湿度模块稳定
}
while(1)
{
*************
TrueTemp(Ds18b20ReadTemp()) DS18B20温度模块
DHT() DHT11湿度模块
ADC_OUT(0x42) ADC模数转换通道0
*************
AutoControl()
SendCommbine()
if(a1)
{
for (X0X<10000X++)
sendString(AT+CIPSEND03\r\n)
for (X0X<10000X++)
sendString(OK1)
a0
}
for (X0X<10000X++) 发送温度数值
sendString(AT+CIPSEND018\r\n)
for (X0X<10000X++)
sendString(Send)
Delay1ms(100)
}
}

void delay(uchar i)
{
while(i)
}

void Init_UART() 串行口通信
{
SCON 0x50
TMOD 0x20
TH1 0xFD
TL1 0xFD
ET1 0 禁止定时器1中断
EA 1
TR1 1
}

void sendChar(uchar byte) 发送字符
{
SBUF byte
while(TI0)
TI0
}

void sendString(uchar *s) 发送字符串
{
while(*s'\0')
{
sendChar(*s)
s++
}
}

void Init()
{
La0
Lb0
Lc0
Ld0
Le0
Lf0
Lg0
Ldp0
L10
L20
L30
L40
}

void Init_ESP8266()
{
for (X0X<10000X++)
sendString(AT+CIPMUX1\r\n)
for (X0X<10000X++)
sendString(AT+CIPSERVER18080\r\n)
RI 0
ES 1
}


void SendCommbine()
{
Send[0] 'T'
Send[1] 'P'
Send[2] sendNumb[TrueTemp(Ds18b20ReadTemp()) 10000 1000]
Send[3] sendNumb[TrueTemp(Ds18b20ReadTemp()) 1000 100]
Send[4] sendNumb[TrueTemp(Ds18b20ReadTemp()) 100 10]
Send[5] sendNumb[TrueTemp(Ds18b20ReadTemp()) 10 1]
Send[6] 'R'
Send[7] 'H'
Send[8] sendNumb[DHT() 10]
Send[9] sendNumb[DHT() 10 1]
Send[10] '0'
Send[11] '0'
Send[12] 'S'
Send[13] 'M'
Send[14] sendNumb[ADC_OUT(0x42) 1000]
Send[15] sendNumb[ADC_OUT(0x42) 1000 100]
Send[16] sendNumb[ADC_OUT(0x42) 100 10]
Send[17] sendNumb[ADC_OUT(0x42) 10 1]
Send[18] '\0'
}

void IO() interrupt 4
{
if(RI 1)
{
ES 0
RI 0 清串口接收标志位
ReceiveBuf[count]SBUF
if(ReceiveBuf[0]'+') 果接收信息会受+IPDidlength
{
count++
}
else
{
count0
}

if(count>12)
{
count0
switch(ReceiveBuf[9])
{
case 'R' if(ReceiveBuf[10]'A') RHMode0
else if(ReceiveBuf[10]'M') RHMode1
{
if(ReceiveBuf[11]'1') jiashi0
else if(ReceiveBuf[11]'2') jiashi1
else if(ReceiveBuf[11]'3') qushi0
else if(ReceiveBuf[11]'4') qushi1
}
break


case 'T' if(ReceiveBuf[10]'A') TPMode0
else if(ReceiveBuf[10]'M') TPMode1
{
if(ReceiveBuf[11]'1') jiangwen0
else if(ReceiveBuf[11]'2') jiangwen1
else if(ReceiveBuf[11]'3') zengwen0
else if(ReceiveBuf[11]'4') zengwen1
}
break


case 'S' if(ReceiveBuf[10]'A') SMMode0
else if(ReceiveBuf[10]'M') SMMode1
{
if(ReceiveBuf[11]'1') shuibeng0
else if(ReceiveBuf[11]'2') shuibeng1
else if(ReceiveBuf[11]'3') paifeng0
else if(ReceiveBuf[11]'4') paifeng1
else if(ReceiveBuf[11]'5') beep0
else if(ReceiveBuf[11]'6') beep1
}
break


case 'L' if(ReceiveBuf[10]'A') LTMode0
else if(ReceiveBuf[10]'M')
{
LTMode1
Reslight((10*(ReceiveBuf[11]'0')+(ReceiveBuf[12]'0')))

}
break


}
}

ES 1
}

}

****************************
* PCF8591 *
****************************
#include
#include
#include

#define uchar unsigned char
#define PCF8591 0x90 PCF8591 址
uchar x1

****************************
* ADC *
****************************
uchar adc()
{
uchar z
Start_I2c()
SendByte(0x91)
Ack_Check()

zRecieveByte()

Ack_Check()
Stop_I2c()
return(z)
}


void dacc(uchar cl) 通道选择位
{
Start_I2c()
SendByte(0x90)
Ack_Check()
SendByte(cl)
Ack_Check()
Stop_I2c()

}

uchar ADC_OUT(uchar dac) 模拟量转数字量输出dac通道选择位smoke返回值
{ 0x40位通道041通道12通道23通道3
dacc(dac)
x1adc()
return x1
}
****************************
* DAC *
****************************

* 需电压x总电压(5v)相出率x5率256(十六进制值)x5*256
值换算成十六进制*

void DAC_OUT(unsigned char DAT) DAT输出模拟电压(电压应十六进制数)
{
Start_I2c()
if(SendByte(PCF8591) 1)
{
Stop_I2c()
return
}
SendByte(0x40)
SendByte(DAT)
Stop_I2c()

}


***部分I2C总线驱动程序*****

#include
#include
#include

#define NOP() _nop_() * 定义空指令 *
#define _Nop() _nop_() *定义空指令*
#define delay_5t { _nop_() _nop_() _nop_()\
_nop_() _nop_()}


sbit SCLP3^6 I2C 时钟
sbit SDAP3^7 I2C 数
bit ack *应答标志位*


*******************************************************************
起动总线函数
函数原型 void Start_I2c()
功 启动I2C总线发送I2C起始条件
********************************************************************
void Start_I2c()
{
SDA1 *发送起始条件数信号*
_Nop()
SCL1
delay_5t
SDA0 *发送起始信号*
delay_5t
SCL0 *钳住I2C总线准备发送接收数 *
_Nop()
_Nop()
}

*******************************************************************
结束总线函数
函数原型 void Stop_I2c()
功 结束I2C总线发送I2C结束条件
********************************************************************
void Stop_I2c()
{
SDA0 *发送结束条件数信号*
_Nop() *发送结束条件时钟信号*
SCL1 *结束条件建立时间4μs*
delay_5t
SDA1 *发送I2C总线结束信号*
delay_5t
}

*******************************************************************
字节数发送函数
函数原型 void SendByte(UCHAR c)
功 数c发送出址数发完等应答
状态位进行操作(应答非应答ack0)
发送数正常ack1 ack0表示控器应答损坏
********************************************************************
uchar SendByte(uchar DAT)
{
uchar itemp
temp DAT
for(i0i<8i++) *传送数长度8位*
{
SCL 0 先拉低判断SDA值
if((temp&0x80)0x80) *判断发送位*
SDA1
else
SDA0
delay_5t
SCL1 *置时钟线高通知控器开始接收数位*
temp temp <<1
}
SCL0
ack Ack_Check() 判断否应答
return ack
}

*******************************************************************
字节数接收函数
函数原型 UCHAR RcvByte()
功 接收器件传数判断总线错误(发应答信号)
发完请应答函数应答机
********************************************************************
uchar RecieveByte()
{
uchar retc
uchar i

retc0
SDA1 *置数线输入方式*
for(i0i<8i++)
{
_Nop()
SCL0 *置时钟线低准备接收数位*
delay_5t
SCL1 *置时钟线高数线数效*
delay_5t
retcretc<<1
if(SDA1)retcretc+1 *读数位接收数位放入retc中 *
_Nop()
_Nop()
}
SCL0
_Nop()
_Nop()
return(retc)
}

********************************************************************
应答子函数
函数原型 void Ack_I2c(bit a)
功 控器进行应答信号(应答非应答信号位参数a决定)
********************************************************************
uchar Ack_Check(void)
{
bit check
SDA1
delay_5t
SCL1
delay_5t

check SDA

SCL0 *清时钟线钳住I2C总线便继续接收*
_Nop()
_Nop()
return check
}

***********************
* DHT11 *
***********************
#include
#include
#include
sbit DHT11P3^4
uchar U8FLAGU8comdata
uchar Data_THData_TLData_RHData_RL
uchar THTLRHRL
uchar ComData0
uchar checktemp

void DHT11_delay_us(uchar n)
{
while(n)
}

uchar DHT()
{
初始化
DHT110
Delay1ms(20) 机总线拉低18ms
DHT111
DHT11_delay_us(30) 机拉高2040us
if(DHT11)
{
U8FLAG2
while((DHT11)&&U8FLAG++) 等返回80us低电 (U8FLAG++指加溢出
uchar值256溢出0约机器周期
U8FLAG2
while((DHT11)&&U8FLAG++) 等电重新拉高
COM()
Data_RH U8comdata
COM()
Data_RL U8comdata
COM()
Data_TH U8comdata
COM()
Data_TL U8comdata
COM()
check U8comdata
DHT111
Delay10us(3)
}
return Data_RH
}

void COM()
{
uchar idat0
for(i0i<8i++) 高低次接收8位数
{
U8FLAG2
while((DHT11)&&U8FLAG++) 等50us低电
DHT11_delay_us(8) 延时60us果高数1否0
dat0
if(DHT11)dat1 数1时dat加1接收数1
U8FLAG2
while(DHT11&&U8FLAG++)
if(U8FLAG1)break
移位正确接收8位数数0时直接移位

U8comdata<<1
U8comdata|dat 等数线拉低
}
}

****************************
* 动控制 *
****************************
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
uint TPMode0
uint SMMode0
uint RHMode0
uint LTMode0

void AutoControl()
{
switch(TPMode)
{
case 0 if (TrueTemp(Ds18b20ReadTemp())>2500) jiangwen 0 降温启动
else if(TrueTemp(Ds18b20ReadTemp())<1800) zengwen 0 增温启动
else if(TrueTemp(Ds18b20ReadTemp())>2000&&TrueTemp(Ds18b20ReadTemp()<2300)) 达适宜值停止工作
{
jiangwen 1
zengwen 1
}
break

case 1 break
}

switch(SMMode)
{
case 0 if (ADC_OUT(0x42)>100)
{
beep 0 降温启动
paifeng 0
shuibeng 0
}
else
{
beep 1
paifeng 1
shuibeng 1
}
break

case 1 break

}

switch(RHMode)
{
case 0 if (DHT()>70) qushi 1 降温启动
else if(DHT()<45) jiashi 1
else if(DHT()>50 && DHT()<60)
{
qushi 0
jiashi 0
}
break

case 1 break
}

switch(LTMode)
{
case 0 LED_Out()
break
case 1 DAC_OUT2(0x80+Reslight)
break
}
}

*************************
* 延时 *
*************************
#include
#include
#include
#include
void Delay1ms(uint y) 1ms延时
{
uint x
for(yy>0y)
{
for(x110x>0x)
}
}

void Delay1s(int d) 误差 0us
{
unsigned char abc
for(dd>0d)
for(c13c>0c)
for(b247b>0b)
for(a142a>0a)
_nop_() if Keilrequire use intrinsh
}

void Delay10us(int c) 误差 0234375us
{
unsigned char a
for(cc>0c)
for(a3a>0a)
}


************************
* LED *
************************

#include
#include
#include
#include
#include
uint light
void LED_Out()
{
lightADC_OUT2(0x40)
if(light>240)
{
DAC_OUT2(0x99)
}
else if(light<100)
{
DAC_OUT2(0x00)
}
else if(light>220&&light<240)
{
DAC_OUT2(0x95)

}
else if(light>200&&light<220)
{
DAC_OUT2(0x90)

}
else if(light>180&&light<200)
{
DAC_OUT2(0x88)
}
else if(light>160&&light<180)
{
DAC_OUT2(0x86)
}
else if(light>140&&light<160)
{
DAC_OUT2(0x84)
}
else if(light>120&&light<140)
{
DAC_OUT2(0x82)
}
}

*******************
* DS18B20 *
*******************
#include
#include
#include
char temperature
sbit DS P3^5 数线

uchar Ds18b20Init() 初始化成功返回1 否0
{
uchar i 0
DS 0 数线拉低
i 70
while(i) 延时642us
DS 1 延时数线拉高DS初始化成功会返回低电
i 0
while(DS) 初始化成功 DS 会动低电
{
Delay1ms(1)
i++
if(i>5)
{
return 0
}
}

return 1
}
void Ds18b20WriteByte(uchar dat) DS18B20时序(DS发送字节)
{
uchar ij
for(j0j<8j++)
{
DS 0
i++ 稍微延时(>1us)
DS dat&0x01
i 6
while(i)
DS 1
dat >> 1
}

}
uchar Ds18b20ReadByte() Ds18B20读数
{
uchar byte bi
uint i j
for(j0 j<8 j++)
{
DS 0 先总线拉低1us
i++
DS 1 然释放总线
i++
i++ 约延时10us
bi DS 读取数低位开始读取
byte (byte >> 1) | (bi << 7)
假设bi接收0000 0001第次循环1000 0000
第二次循环0100 0000
第8次byte0000 0001
i 4
while(i) 读取完等48us接着读取数
}
return byte
}
void Ds18b20ChangTemp() 温度转换命令
{
Ds18b20Init()
Delay1ms(1)
Ds18b20WriteByte(0xcc) 跳ROM操作命令(单片工作需DS18B20时应访问Ram址)
Ds18b20WriteByte(0x44) 温度转换命令
Delay1ms(100) 等转换成功果直刷着话延时
}
void Ds18b20ReadTempCom() 读取温度命令
{
Ds18b20Init()
Delay1ms(1)
Ds18b20WriteByte(0xcc) 跳ROM操作命令
Ds18b20WriteByte(0xbe) 发送读取温度命令
}
int Ds18b20ReadTemp() 读取温度值命令
{
int temp 0
uchar tmh tml
Ds18b20ChangTemp() 先写入转换命令
Ds18b20ReadTempCom() 然等转换完发送读取温度命令
tml Ds18b20ReadByte() 读取温度值16位先读低字节
tmh Ds18b20ReadByte() 读高字节(继续读取前8位左移操作已覆盖0)
temp tmh
temp << 8 高八位放前头实现表达
temp | tml 通运算第八位数放入temp中
return (temp)
}
int TrueTemp(int temp) 五位温度数值
{
float tp
if(temp< 0) 温度值负数
{
temptemp1
temp~temp
tptemp
temptp*00625*100+05
temp 0temp
}
else
{
tptemp
temptp*00625*100+05
}
return temp
}

附录2 STM32程序源码
#include delayh
#include usart3h
#include stdargh
#include stdioh
#include stringh
#include timerh

*****************
* 串口收发缓存区 *
*****************
u8 USART3_RX_BUF[USART3_MAX_RECEIEVE_LEN]
储存接收数
u8 USART3_TX_BUF[USART3_MAX_SEND_LEN]
储存发送数
vu16 USART3_RX_STA0 设置接收状态位0
u8 i0
*接收状态位:前14位数接收位15位数否正确位接收0x0d时ASCII回车键代表数接收完成
第16位数处理位第15位接收完成数接收数放入接收缓区中接收完成数处理数处理位置1表示完成*


********************
* 串口3中断服务函数 *
********************
void USART3_IRQHandler(void)
{
u8 res

if(USART_GetITStatus(USART3 USART_IT_RXNE) RESET)接收数判断接收缓区否空查否接收完成
{
res USART_ReceiveData(USART3)
USART_SendData(USART1res)

if((USART3_RX_STA & 0x8000) 0)数处理未完成
{
if(USART3_RX_STA&0x4000)表示接收0x0d表示0100 0000 0000 0000第15位接收回车数已接收完成
{
if(res0x0a)USART3_RX_STA0判断res数值果res接收数0x0aASCII值位\n换行符表示接收数错误重新开始
else
{
USART3_RX_STA|0x8000 果接收res\n表示接收数完成STA设置0x8000表示数处理完成
i0
}
}
else 表示数没接收0x0d继续接收数直接收0x0d\r止
{
if(res0x0d)USART3_RX_STA|0x4000 果接收数0x0d代表置STA0x4000代表已接收回车次接收换行
else if(res''|i>0)
{
i++
USART3_RX_BUF[USART3_RX_STA&0X3FFF]res 果没接收0x0d换行继续接收数接收数放入接收数缓区中
USART3_RX_STA++ STA0开始加接收14位数
if(USART3_RX_STA>(USART3_MAX_RECEIEVE_LEN1))USART3_RX_STA0果接收数接收长度接收数错误重新开始接收
}
}
}

}
}

******************
* 串口3初始化函数 *
******************
void USART3_Init(u32 bound2) bound波特率
{

NVIC_InitTypeDef NVIC_InitStructure
GPIO_InitTypeDef GPIO_InitStructure
USART_InitTypeDef USART_InitStructure

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE) GPIOB时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3ENABLE) 串口3时钟

USART_DeInit(USART3) 复位串口3
USART3_TX PB10
GPIO_InitStructureGPIO_Pin GPIO_Pin_10 PB10
GPIO_InitStructureGPIO_Speed GPIO_Speed_50MHz
GPIO_InitStructureGPIO_Mode GPIO_Mode_AF_PP 复推挽输出
GPIO_Init(GPIOB &GPIO_InitStructure) 初始化PB10

USART3_RX PB11
GPIO_InitStructureGPIO_Pin GPIO_Pin_11
GPIO_InitStructureGPIO_Mode GPIO_Mode_IN_FLOATING浮空输入
GPIO_Init(GPIOB &GPIO_InitStructure) 初始化PB11

USART_InitStructureUSART_BaudRate bound2波特率般设置9600
USART_InitStructureUSART_WordLength USART_WordLength_8b字长8位数格式
USART_InitStructureUSART_StopBits USART_StopBits_1停止位
USART_InitStructureUSART_Parity USART_Parity_No奇偶校验位
USART_InitStructureUSART_HardwareFlowControl USART_HardwareFlowControl_None硬件数流控制
USART_InitStructureUSART_Mode USART_Mode_Rx | USART_Mode_Tx 收发模式

USART_Init(USART3 &USART_InitStructure) 初始化串口 3
USART_Cmd(USART3 ENABLE) 串口
接收中断
USART_ITConfig(USART3 USART_IT_RXNE ENABLE)开启中断

设置中断优先级
NVIC_InitStructureNVIC_IRQChannel USART3_IRQn
NVIC_InitStructureNVIC_IRQChannelPreemptionPriority2 抢占优先级2
NVIC_InitStructureNVIC_IRQChannelSubPriority 2 子优先级2
NVIC_InitStructureNVIC_IRQChannelCmd ENABLE IRQ通道
NVIC_Init(&NVIC_InitStructure) 根指定参数初始化VIC寄存器


}

********************
* 串口3发送数函数 *
********************
*
void UART3_Send(char* fmt)
{
u16 ij
va_list ap
va_start(apfmt)
vsprintf((char*)USART3_TX_BUFfmtap)
va_end(ap)
istrlen((const char*)USART3_TX_BUF) 次发送数长度
for(j0j {
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET) 循环发送直发送完毕
USART_SendData(USART3USART3_TX_BUF[j])
}
}
*

#include stm32f10xh
#include keyh
#include sysh
#include delayh

键初始化函数
void KEY_Init(void) IO初始化
{
GPIO_InitTypeDef GPIO_InitStructure

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOAENABLE)PORTA时钟

GPIO_InitStructureGPIO_Pin GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3KEY123
GPIO_InitStructureGPIO_Mode GPIO_Mode_IPD 设置成xia拉输入
GPIO_Init(GPIOA &GPIO_InitStructure)初始化GPIOAPin123
}


************
* 函数 *
************
#include stm32f10xh
#include delayh
#include sysh
#include LEDh
#include usart1h
#include usart3h
#include keyh

u8 Esp8266Init[] {AT+CIPSTART\TCP\\19216888\8080\r\n}
u8 Esp8266RST[] {AT+RST\r\n}
u8 Send[] {AT+CIPSEND3\r\n}


u8 jiashiclose[] {RM1}
u8 jiashiopen[] {RM2}
u8 qushiclose[] {RM3}
u8 qushiopen[] {RM4}

u8 jiangwenclose[] {TM1}
u8 jiangwenopen[] {TM2}
u8 zengwenclose[] {TM3}
u8 zengwenopen[] {TM4}

u8 shuibengclose[] {SM1}
u8 shuibengopen[] {SM2}
u8 paifengclose[] {SM3}
u8 paifengopen[] {SM4}
u8 beepclose[] {SM5}
u8 beepopen[] {SM6}

u8 tpauto[] {TA}
u8 rhauto[] {RA}
u8 smauto[] {SA}




int main(void)
{
u16 t
u16 i
unsigned int a0b0c0d0e0f0g0

u16 len
delay_init()
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2) 系统优先级设置2
USART1_Init(115200)
USART3_Init(9600)
LED_Init()
delay_init()
delay_ms(3000)
KEY_Init()

while(1)
{
if(KEY71)
{
delay_ms(100)
if(KEY71)
{
while(KEY7)
for(i0i<39i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3Esp8266Init[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
delay_ms(1000)
}
}

if(KEY01)
{
delay_ms(100)
if(KEY01)
{
while(KEY0)
delay_ms(50)
for(i0i<15i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3Send[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

if(a0)
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3beepopen[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

else
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3beepclose[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

delay_ms(50)
for(i0i<3i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3smauto[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

a~a
}
}


if(KEY11)
{
delay_ms(100)
if(KEY11)
{
while(KEY1)
delay_ms(50)
for(i0i<15i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3Send[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

if(b0)
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3paifengopen[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

else
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3paifengclose[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

delay_ms(50)
for(i0i<3i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3smauto[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}



b~b
}
}

if(KEY21)
{
delay_ms(100)
if(KEY21)
{
while(KEY2)
delay_ms(50)
for(i0i<15i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3Send[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

if(c0)
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3shuibengopen[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

else
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3shuibengclose[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

delay_ms(50)
for(i0i<3i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3smauto[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

c~c
}
}


if(KEY31)
{
delay_ms(100)
if(KEY31)
{
while(KEY3)
delay_ms(50)
for(i0i<15i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3Send[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

if(d0)
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3jiashiopen[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

else
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3jiashiclose[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

delay_ms(50)
for(i0i<3i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3rhauto[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

d~d
}
}


if(KEY41)
{
delay_ms(100)
if(KEY41)
{
while(KEY4)
delay_ms(50)
for(i0i<15i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3Send[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

if(e0)
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3qushiopen[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}


}

else
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3qushiclose[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

delay_ms(50)
for(i0i<3i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3rhauto[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

e~e
}
}


if(KEY51)
{
delay_ms(100)
if(KEY51)
{
while(KEY5)
delay_ms(50)
for(i0i<15i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3Send[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

if(f0)
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3jiangwenopen[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

else
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3jiangwenclose[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

delay_ms(50)
for(i0i<3i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3tpauto[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

f~f
}
}


if(KEY61)
{
delay_ms(100)
if(KEY61)
{
while(KEY6)
delay_ms(50)
for(i0i<15i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3Send[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

if(g0)
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3zengwenopen[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

else
{
delay_ms(50)
for(i0i<4i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3zengwenclose[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}

delay_ms(50)
for(i0i<3i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3tpauto[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
}

g~g
}
}
}
}

*
for(i0i<9i++)
{
while(USART_GetFlagStatus(USART3USART_FLAG_TXE)RESET)
USART_SendData(USART3Esp8266RST[i])
while(USART_GetFlagStatus(USART3USART_FLAG_TC)RESET)
}
delay_ms(3000)*
*
if(USART1_RX_STA&0x8000)
{
lenUSART1_RX_STA&0x3fff次接收数长度
printf(\r\n您发送消息\r\n\r\n)
for(t0t {
USART_SendData(USART3 USART_RX_BUF[t])串口1发送数
while(USART_GetFlagStatus(USART1USART_FLAG_TC)SET)等发送结束
}
printf(\r\n\r\n)插入换行
USART1_RX_STA0
}
if((USART3_RX_STA&0x8000))
{
lenUSART3_RX_STA&0x3fff次接收数长度
printf(\r\n您发送消息\r\n\r\n)
for(t0t {
USART_SendData(USART1 USART3_RX_BUF[t])串口1发送数 while(USART_GetFlagStatus(USART3USART_FLAG_TC)SET)等发送结束
}
printf(\r\n\r\n)插入换行
USART3_RX_STA0
}
if(USART3_RX_STA&0x8000)
{
lenUSART3_RX_STA&0x3FFF 判断字节长度
for(t0t { while(USART_GetFlagStatus(USART1USART_FLAG_TC)RESET) 等发送完成
USART_SendData(USART1USART3_RX_BUF[t])
}
USART3_RX_STA0
}
*


附录3 英文文献
A System Design of Smart Home Based on Wireless Communication Technology
LUO Fanglei YANG Houjun FAN Yanbin ZHAO Yufeng
(College of Information Engineering Qingdao University Qingdao 266071 China)
Abstract To solve the problem of high cost and low performance of communication network in Smart Home system based on ZigBee and WiFi wireless communication technology a new smart home network solution is designed This solution can save costs and improve the efficiency of data transmission The ZigBee module and WiFi module are expanded to achieve the construction of Smart Home wireless network Meanwhile the structure composition and design concept of the Smart Home system are shown The new smart home network solution is feasible effective and stable
Keywords Smart Homewireless communication technologyZigBee WiFi
1 Introduction
With the rapid development of technology and the improvement of living standards more and more people hope to have a convenient and highquality life As a result the technology of smart home turns out and develops quickly as the network progresses[1]
Research on smart home began in the late 1980’s with the intent on making homes more intelligent to alleviate the occupant(s) of daily tasks to handling emergency situations By the mid 1990’s the focus had turned to incorporating these innovations into the lives of the elderly[23]
Since the concept of smart home is proposed and introduced into the domestic it gradually becomes one of the symbols of high quality life which people are eager to pursue During the last two years the middle class in China has grown in a large scale which drives the sale volume and gross sales of smart home systems to rise continuously The smart home market also continues to develop in the coastal areas that are mostly advanced regions and further expands to the large and mediumsized cities in the inland areas which are slightly languished behind The statistics from Ministry of Housing and UrbanRural Development shows that the gross sales of smart home market are 42 billion yuan in 2009 and the high rate of growth in this market sometimes above 20 a year It suggest the gross sales are expected to reach 124 billion yuan in 2015
However there are still some challenges in designing wireless sensor network systems and applications First the sensors operate using a limited power resource such as a battery Thus the network lifetime is greatly influenced by the battery lifetime Second sensors have limited hardware capabilities (e g limited communication storage and processing capabilities) Thus each sensor is not able to have the whole softwaremiddleware component and is not able to provide complex services Third the wireless link bandwidth is scarce in WSN(wireless sensor network) and needs to be managed carefully[4]
In this paper in order to create a lowenergy wireless Smart Home system the WiFi and ZigBee are integrated The ZigBee (IEEE 802 15 4 standard) technology for networking and communication is used because of his lowpower and lowcost characteristics which enable ZigBee to be widely used in home and building environments
2 Related Work
The existing systems about smart home systems and applications based on the wireless communication technology are briefly discussed
Han designs a home energy management system (HEMS) using a ZigBee technology to reduce the standby power[5] The system contains a power cutoff outlet a ZigBee hub and a management server The proposed HEMS provides easy way to add delete and move home devices to other power outlets When a home device is moved to the different outlet the energy information of the home device is kept consistently and seamlessly regardless of location change
Gaddam proposes a smart home monitoring system for elders[6] The smart system consists of an optimum number of cognitive wireless sensors which are used to detect usage of electrical devices bed usage pattern flow of water etc and also incorporates a panic button The cognitive sensors provide information that can be used for monitoring the elderly by detecting any abnormality pattern in their daily activities around the house
Gill designs a flexible home automation architecture[7] A ZigBee based home automation system and WiFi network are integrated through a common home gateway The home gateway provides network interoperability a simple and flexible user interface and remote access to the system A dedicated virtual home is implemented to cater for the system's security and safety needs
Large amounts of researches have been done on many different aspects of WSN sensor placement security and many other aspects of WSNs[89] Compared to the existing related research this paper focus on wireless and lowenergy sensor to be effectively deployed in home environments and effectively applied to the smart home services
3 Experiments
All of the experiments took place in a controlled lab environment in order to determine the usefulness of integrating ZigBee and WiFi A smart home system is designed The smart home system consists of a home server several home networking terminal nodes and remote monitoring software
In the system home server is the core part of the system which is responsible for controlling the entire smart home environment As the core part of the smart home system the home server is a bridge that connects all parts in the system
Remote monitoring software can be realized through rj45 WiFi or 3G4G Our system uses WiFi to transmit control signals can achieve controlled easily and lowcost Users can obtain the realtime information of home environment through the remote monitoring software and then perform corresponding operations to control the home environment
In the system Wireless Sensor Networks are networks made up of relatively low power motes which are connected wirelessly The wireless sensor network includes a ZigBee coordinator node with sensors control function and several terminal nodes of sensor with wireless communication capability like smoke detection sensor digital temperature sensor and hydropower data acquisition In this star topology sensor network all the terminal nodes can only communicate with the ZigBee coordinator If a terminal node needs to transmit data to the other one it first sends the data to coordinator node and then this coordinator node retransmits the data to the aiming terminal node in return They are responsible to collect different kinds of home environment indicators and control various home furnishing devicesBecause the information types that home environment involved are diverse the potential networking terminals need to collect information are too many Besides there are many parts in the smart home system need to transmit data So a welldesigned communication protocol is very important It should not only improve the efficiency of smart home system but also ensure the scalability of the system which can add or remove networking terminals easily
Based on the design of smart home system above the home environment information transmission mode can be divided into two different types One is used by terminals to collect all kinds of environment information and transmit them to the home server The size of information collected by an environmental sensor is small which the frequency is high and the physical device is responsible for transmission The other one is used by the communication between home server and monitoring software The home server packs the overall home environment information and sends to monitoring software through Internet The size of transmitted environmental information is realtime and pretty large while the frequency is low considering the access pattern of users
The first type of information transmission occurs between all information acquisition terminals and home server Since each networking terminal works independently and communicates with home server in a realtime manner the wireless energy saving and selfnetworking ZigBee devices are selected to be the information acquisition terminals The home server in our prototype is an ARM development board that carries an Android platform[1011] Therefore the first transmission type in the communication system should take into account both the two different hardware environments
Since the home server does not support ZigBee protocol it cannot directly accept and resolve the information from the devices Thus a conversion module is needed to translate the information between the ZigBee protocol and the TCPIP protocol (see Figure 1) The details of information communication mechanism are depicted as follows

(1) Each terminal packs the environment information collected by itself and sends the data to the ZigBee coordinator using ZigBee wireless protocol The coordinator will send out the home environment information uniformly
(2 ) The ZigBee coordinator sends data to the protocol converting module through the serial ports and the conversion module unpacks data and repacks it in TCPIP package format Then the coordinator transmits the information to the home server using TCP/IP protocol through home wireless LAN
(3)Home server receives and unpacks the information from the conversion module from the network packet protocol conversion device Then the server analyzes classifies and processes these data to depict overall home environment status and stores the status
The second type of information transmission occurs between home server and monitoring software Because the monitoring software is portable and its communication demand is uncertain so its communication pattern is designed to be based on the Internet When monitoring software is to obtain the home environment information or to control the home environment it first sends a service request to the home server through the Internet» and then the home server sends the environmental information to the monitoring software or directs corresponding terminals to perform control instructions
The monitoring software is implemented both for PC and for mobile terminal The monitoring software for PC is installed on the home computers that are in the same WiFibased LAN with home server The software for mobile terminals is installed on the smart phones or other mobile devices Since these two kinds of software runs in different network environment we design different communication modes for them
Because the monitoring software for PC and the home server are in the same WiFibased LAN all the communication can be accomplished directly through the home network The home server and PCs can be assigned with fixed IP address which is convenient for them to communicate with each other Alternatively only the IP address of the home server is prefixed and the monitoring software establishes connection with home server by broadcasting a specific message in the home network Obviously the second way is more flexible and the system is more scalable
Due to the mobility of monitoring software on mobile terminals the software is able to be anywhere so it cannot directly communicate with home server through home WLAN However the smart mobile devices nowadays generally have the ability to access the Internet so the Internet is utilized to communicate with home server in our design Specifically home server is equipped with a global IP address that is accessible from external The monitoring software mobile sends access requests to this IP address thought the Internet and it will get responses from the home server once the server verifies the legitimacy of this software
In order to verify the system in the simulated home scenario was built in the laboratory for the smart home system and perform functional was tested on theory and model The lab environment and prototype system in the experiments were showed in Figure2

4 Conclusions
There are some researches on Smart Home services especially the methods to relieve constraints of WSNs Recently the wireless technologies have been applied to home automation system in order to provide the residents with smart home services However due to the fixed system architecture) existing sensor systems are not wellsuited in dynamic environments such as a smart home system Therefore this paper proposes a situation based wireless scheme and a lowenergy sensor network in order to make consumer devices more energy efficient and wireless This paper designs and implements the corresponding hardware and software The system is implemented in the test environment and an experiment which is used to verify the efficiency of the proposed system is conducted The experimental results show that our lowenergy and wireless smart home system is efficient stable and reliable

Reference
[1] Liang Lili Huang Lianfen Jiang Xueyuanet al Design and implementation of wireless smarthome sensor network based on ZigBee protocol[C] Proceedings of Communications Circuits and Systems IEEE 2008434 438
[2] Hussain S Schaffner S Moseychuck D Applications of wireless sensor networks and RFID in a smart home environment[C] Proceedings of Communication Networks and Services Research Conference IEEE 2009153 157
[3] Alam M R Reaz M B I Ali M A M A Review of Smart HomesPast Present and Future[J] IEEE Transcation on System Man and Cybernetics Part C Applications and Reviews 2012 42 (6) 1190 1203
[4] Byun J Jeon B Noh J et al An intelligent selfadjusting sensor for smart home services based on ZigBee communications [J] IEEE Trans Consumer Electronics 2012 58(3) 794 802
[5] Han J Choi C S Lee I More efficient home energy management system based on ZigBee communication and infrared remote controls[JJ IEEE Trans Consumer Electron 2012 57(1) 85 89
[6] Gaddam A Mukhopadhyay S C Gupta G S Elder Care Based on Cognitive Sensor Network[J] IEEE Sensors Journal 2011» 11(3) 574 581
[7] Gill K» Yang S H Yao Fet al A zigbeebased home automation system[J] IEEE Trans Consumer Electron 2009 55(2) 422 430
[8] Dhillon S S Chakrabarty K Sensor placement for effective coverage and surveillance in distributed sensor networks[D] Durham: Duke University 2003
[9] Du Wenliang Deng Jing Han Y Set al A key management scheme for wireless sensor networks using deployment knowledge[C] Proceedings of Annualjoint Conference of the IEEE Computer and Communications Societies IEEE 2004 572 597
[10] Wu Yi Liu Pai Wu Tong Smart Home System Based on ZigBee and ARM[C] Proceedings of Electronic Measurement and Instruments IEEE 2013 : 754 759
[11] Feng Jianfeng Design of Smart Home System Based on ARM and ZigBee Technology[j] Chengdu University of Electronic Science And Technology Of China 2014
附录4 中文文献
基线通信技术智家居系统设计
骆方磊杨厚俊范延滨赵玉凤
(青岛学信息工程学院青岛266071)
摘:针智家居系统中组建通信网络成高性低问题釆ZigBeeWiFi结 合线通信技术设计种新型智家居网络搭建方案该方案节约成提高数 传输效率通WiFiZigBee技术融合建立家居部线网络提出基线通 信技术智家居系统组成结构系统设计思想实验结果表明新型智家庭网络 搭建方案行高效稳定
关键词:智家居线通信技术ZigBee WiFi

1 介绍
着科技快速发展生活水提高越越希方便高质量生活智家居技术应运生着网络[1]发展迅速发展智家居研究始20世纪80年代末目家居更智减轻者处理紧急情况时日常工作负担
20世纪90年代中期重点已转创新融入老年生活[23]
智家居概念提出引入家庭逐渐成渴追求高品质生活象征两年中国中产阶级规模增长带动智家居系统销量总销量持续增长智家居市场断发展海区 发达区中城市进步扩住房城乡建设部统计数显示2009年智家居市场销售总额420亿元增速快时甚超20预计2015年总销售额达1240亿元
然线传感器网络系统应设计方面存挑战首先传感器限电力资源电池网络寿命程度受电池寿命影响次传感器硬件力限(例限通信存储处理力)传感器拥整软件中间件组件提供复杂服务第三线传感器网络中线链路带宽足需谨慎理
文WiFiZigBee相结合构建低耗线智家居系统ZigBee (IEEE 80215 )低功耗低成特点ZigBee技术广泛应家庭建筑环境


2相关工作
简介绍现基线通信技术智家居系统应
Han设计家庭源理系统(HEMS)ZigBee技术降低备电源[5]该系统包含电源切断插座ZigBee集线器理服务器建议边缘提供简单方式添加删家庭设备移动电源插座家庭设备移动出口时位置变化家庭设备源信息保持致缝
Gaddam提出针老年智家居监控系统[6]该智系统包括佳数量认知线传感器检测电子设备情况床模式水流等包括紧急钮认知传感器提供信息监测老年异常模式日常活动房子周围
吉尔设计灵活家庭动化架构[7]基ZigBee家庭动化系统WiFi网络通通家庭网关集成家庭网关提供网络互操作性简单灵活户界面系统远程访问满足系统安全性安全性需求实现专虚拟家庭量研究已WSN传感器布置安全等诸方面进行[89]已相关研究相文研究重点线低耗传感器效部署家居环境中效应智家居服务中
量研究已WSN传感器布置安全等诸方面进行[89]已相关研究相文研究重点线低耗传感器效部署家居环境中效应智家居服务中

3 实验程
实验受控实验室环境中进行确定集成ZigBeeWiFi效性设计智家居系统智家居系统家庭服务器家庭网络终端节点远程监控软件组成
系统中家庭服务器系统核心部分负责控制整智家居系统环境家庭服务器作智家居系统核心部分连接系统部分桥梁
远程监控软件通rj45 WiFi 3G4G实现系统采WiFi传输控制信号实现简单低成控制者通远程监控软件获取实时家庭环境数然执行相应操作控制家庭环境
该系统中线传感器网络相低功耗微尘通线方式连接成网络该线传感器网络包括具传感器控制功ZigBee协调节点具线通信力传感器终端节点烟雾探测传感器数字温度传感器水电数采集等星形拓扑传感器网络中终端节点ZigBee协调器进行通信果终端节点需节点传输数首先数发送协调节点然协调节点数重新发送目标终端节点负责收集种类家居环境指标控制种家居设备家庭环境涉信息类型样潜网络终端需收集信息太外智家居系统中部分需传输数设计良通信协议非常重仅够提升智家居系统效率时保障系统扩展性方便户增加移网络终端
基智家居系统设计家居环境信息传递模式分两种类型终端收集种环境信息传输家庭服务器环境传感器采集信息量频率高物理设备负责传输种家庭服务器监控软件间通信家庭服务器整家庭环境信息包通网络发送监控软件考虑户访问方式环境信息传输规模实时较频率较低
第种类型信息传输发生信息采集终端家庭服务器间网络服务器间独立工作时ZigBee设备限实时节终端采集设备原型中家庭服务器ARM开发板携带Android台[1011]通信系统中第种传输类型应该时考虑两种硬件环境通信系统中第种传输类型应该时考虑两种硬件环境服务器支持ZigBee协议直接接受解析设备信息需转换模块转换ZigBee协议TCPIP协议间信息(见图1)

(1) 环境终端包身进行信息收集时节点ZigBee线协议利ZigBee进行数发送节点发送格式家庭环境信息
(2) ZigBee协调器通串口数发送协议转换模块转换模块TCPIP包格式数进行解包重新包然协调器通家庭线局域网TCPIP协议信息传输家庭服务器
(3)服务器网络包协议转换设备接收解压转换模块信息然服务器数进行分析分类处理描述整家庭环境状态存储状态
第二种类型信息传输发生家庭服务器监控软件间监控软件便携性通信需求确定性通信模式基互联网监控软件获取家庭环境信息控制家庭环境时首先通网络家庭服务器发送服务请求然家庭服务器环境信息发送监控软件指示相应终端执行控制指令
利已连入WIFI基础端口服务器监控软件已安装家电脑中监控软件PC机移动终端进行监测移动终端监测软件安装智手机移动设备两种软件网络环境运行设计通信模式
PC机监控软件家庭服务器基WiFi局域网中通信通家庭网络直接完成家庭服务器pc机分配固定IP址方便间通信
种选择服务器IP址监控软件建立连接连入家庭网络发送特定消息时建立连接显然第二种方法更灵活系统伸缩性更强
监控软件移动终端移动性软件方运行法通家庭WLAN家庭服务器直接通信时 现智移动设备通常访问网络力设计外部设备连入网络进行连接具体说服务器配备外部访问全局IP址移动监控软件通互联网IP址发送访问请求旦服务器验证该软件合法性会收家庭服务器响应
验证该系统仿真家居场景中行性实验室中搭建针智家居系统功测试系统进行理模型测试实验实验室环境原型系统图2示


4结
关智家居服务特解线传感器网络约束方法已定研究前线技术已应家庭动化系统中提高智家居服务环境然固定系统架构现传感器系统适合动态环境智家居系统篇文章提出该线网络方案拥低耗传感器网络 整线设备更节篇文章设计实现相应硬件软件该系统已测试环境中实现通实验验证该系统效性实验结果表明低功耗线智家居系统高效稳定信赖


参考文献
[1] Liang Lili Huang Lianfen Jiang Xueyuanet al 基ZigBee协议线智家居传感器网络设计实现[C] 通信电路系统学报 IEEE 2008434 438
[2] Hussain S Schaffner S Moseychuck D 线传感器网络RFID智家居环境中应[C] 通信网络服务研究会议文集 IEEE 2009153 157
[3] Alam M R Reaz M B I Ali M A M A 回顾智家居——现未[J] IEEE 系统控制超越第三部分应评 2012 42 (6) 1190 1203
[4] Byun J Jeon B Noh J et al 种基ZigBee通信智调整智家居服务传感器[J] IEEE 反式消费电子 2012 58(3) 794 802
[5] Han J Choi C S Lee I 更高效基ZigBee通信红外遥控家庭源理系统[J] IEEE 反式消费电子 2012 57(1) 85 89
[6] Gaddam A Mukhopadhyay S C Gupta G S 基认知传感器网络老年护理[J] IEEE 传感器杂志 2011» 11(3) 574 581
[7] Gill K» Yang S H Yao Fet al 基zigbee家庭动化系统[J] IEEE 反式消费电子 2009 55(2) 422 430
[8] Dhillon S S Chakrabarty K 分布式传感器网络中放置传感器实现效覆盖监视[D] 达勒姆杜克学 2003
[9] Du Wenliang Deng Jing Han Y Set al种基部署知识线传感器网络密钥理方案[C] 计算机通信协会年度联席会议记录 2004 572 597
[10] Wu Yi Liu Pai Wu Tong 基ZigBeeARM智家居系统[C] 计算机通信协会年度联席会议记录 IEEE 2013 : 754 759
[11] Feng Jianfeng 基ARMZigBee技术智家居系统设计[j]成中国电子科技学 2014


文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 20 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

智能家居系统设计

智能家居系统设计—家用智能照明系统设计智能家居系统设计—家用智能照明系统设计摘要从“电力”的出现,到人们使用白炽灯作为照明工具,再到如今普遍的LED照明,说明着人们不断在追求更高的生活。科技是无止境的,人们对生活的追求也不会满足于现状。由于现在生活水平的不断提高,人们的生活节奏越来越快,不少人学习、工作完后希望回到家中有一个更方便、更舒适的居住环境。因此,智能家居走进了人们的生

平***苏 2年前 上传500   0

智能家居系统

山西大学本科毕业论文(设计)开题报告选题的目的和意义: 由于技术革新、经济发展,人们对生活质量提出了越来越高的要求,各种人性化、智能化的家居产品被不断推出,智能家居系统能够给人提供更加轻松、有序、高效的现代化生活,是未来居住模式的必然发展趋势。因此,智能家居系统逐渐成为一个新兴的研究领域。目前市场上的智能家居产品多为有线组网,其在布线美观性和灵活扩展性方面都达不到要求。

平***苏 2年前 上传708   0

基于内点法的电力系统最优潮流算法研究毕业论文

 本科毕业设计 题 目 基于内点法的电力系统最优潮流算法研究 XX大 学 毕 业 设 计(论文) 题目: 基于内点法的电力系统最优潮流算法研究   XX大学电气工程学院 20XX年X月X

z***u 5年前 上传2045   0

基于模糊PID算法的双闭环直流调速系统仿真研究

XX学院毕业设计(论文) 基于模糊PID算法的双闭环直流调速系统仿真研究 学 生:学 号:专 业:电气工程及其自动化班 级:指导教师: XX学院自动化与电子信息学院摘 要 直流双闭环调速系统具有调速范围广、精度高、动态性能好和易于控制等优点,所以在电气传动系统中得到了

z***u 3年前 上传892   0

智能家居系统的设计与实现

几年前,美国、欧洲和东南亚等国家先后提出了“智能家居”(smart Home)的概念•其目标是:“将家庭中各种与信息相关的通讯设备、家用电器、家庭安防装置等通过家庭总线技术连接到一个家庭智能化平台上进行集中或远程监视,并保持这些家庭设施与生活需求和住宅环境的和谐协调”•通过家庭智能化平台 人们可以通过电话或者浏览器在任何时候、任何地点对家中的电器(比如:空调、电视、热水器、电饭煲、灯光、报警器等)进行远程控制一一在下班途中,预先将家中的空调打开、让热水器提前烧好热水、电饭煲煮好香喷喷的米饭等;

🚶***1 5年前 上传2083   0

智能家居系统设计与实现66

论文关键词:智能家居 嵌入式系统 Windows CE Visual C++ Delphi  论文摘要:本文讨论了基于Windows CE.net 5.0嵌入式操作系统,以使用Intel XScale270为CPU的ARM10嵌入式实验箱为硬件根底,以Visual Studio 2005和Delphi为软件开发平台的智能家居系统的设计与实现。通过详细的系统设计过程,开发了相应的软件程序,包括嵌

静***雅 2年前 上传504   0

某中学网络结构化布线系统方案

某中学网络结构化布线系统方案目录第一章 结构化布线系统概述 2第1节 综合布线目标 3第2节 综合布线系统设计依据 4第二章 中国建筑电气化设计规范 5第1节 安装与设计环境 5第2节 总体设计达到的技术要求 6第3节 辅助材料要求 6第4节 线缆及布线装置的总体要求 7第三章 ST模块 10第1节 结构化布线包括的方面 11第2节 结构化布线系统方案设计 16某中学

文***享 3年前 上传639   0

基于视觉的车道线识别算法研究毕业论文

毕业设计基于视觉的车道线识别算法研究Research on Algorithms of Vision-basedLane Recognition 2009 届 电气与电子工程 分院 专 业 自动化 学 号 学生姓名

知***享 4年前 上传998   0

Bezier和B-样条曲线的算法研究

 毕业论文 题 目: Bezier和B-样条曲线的算法研究 系 别: 数学与计算机科学系 班 级: 学 号: 姓 名:

山***1 5年前 上传1098   0

关于无刷电机FOC驱动算法的研究

近些年来,高新技术产业得到了迅速发展,很多技术产品也随着成产,但是,人们对产品性能的要求也愈加高。无刷直流电机是很多技术产品的核心部分,遍及于交通工具和工业设备等各个高新技术领域,相对于传统的控制方法,FOC具有效率高,噪声小,响应快等特点,因此近年来FOC算法发展非常迅速。

爱***享 3年前 上传1434   0

关联规则挖掘算法研究与应用

关联规则挖掘算法研究   [人口·资源与环境学院 地理信息系统0501 任雄伟 200501440108]   摘要:本文介绍了数据挖掘的概念、发展现状以及研究方向,重点介绍了数据仓库的核心技术关联规则挖掘的一些基本概念、一般步骤、常用的算法。在算法中只介绍了经典的Apriori算法以及几种改进方法。并对数据挖掘的发展方向提出了自己的看法。 关键词:数据挖掘;关联规则挖掘;Aprior

g***n 5年前 上传1402   0

大数据处理算法研究与实现

因为要适应不同的人的上网要求,提供一些企业的一些网络地址,是网上比较重要的一部分、成套动力设备中起主要作用的机器、寄件系统、系统控制在内的完整的网络平台服务。我们有一个自己的平台,现如今数据发展越来越快速了,而且在很多领域也发生了根本的变化。近年来,中

王***朝 4年前 上传863   0

激光器电源的高精度温度控制器系统与算法的研究

激光器是二十世纪最重要的发明之一,激光器的使用极大地改变了人们的生活方式。但是在实际生产生活中,在稳定性、耐用性等方面对激光器要求极为苛刻,特别是在温度控制系统方面。

爱***享 3年前 上传399   0

电力系统线路参数辨识算法的研究毕业论文(设计)任务书

青  岛  大  学 毕业论文(设计)任务书             院    系: 自动化工程学院电气工程系               专    业:   电气工程及其自动化               班    级:       08级电气02班                   学生姓名:       孙逢麟                         指导教师

猴***奇 11年前 上传11014   0

基于智能家居供应链管理的智能合约设计研究

科技在发展,时代在进步,随着物联网、大数据、5G技术等信息技术的飞速发展,智能家居等以柔性化生产为主的产业发展尤为迅速,但是其供应链的上下游结构变得日益复杂,因此将会导致的供应链上出现首尾信息难以一致、关键决策延迟等情况,长此以往便带来了难以预估的蝴蝶效应。

爱***享 3年前 上传671   0

操作系统实验四主存空间的分配与回收首次适应算法和循环首次适应算法

实验报告【实验名称】 首次适应算法和循环首次适应算法 【实验目的】理解在连续分区动态的存储管理方式下,如何实现主存空间的分配与回收。【实验原理】首次适应(first fit,FF)算法FF算法要求空闲分区链以地址递增的次序链接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区即可。然后再按照作业的大小,从该分区中划出一块内存空间,分配给请求者,

文***品 3年前 上传1047   0

智能家居语音控制系统

智能家居语音控制系统Intelligent home voice control system摘要近年来,随着信息技术的发展,智能产品得到了快速发展,并深入到人们生活的方方面面,人们对智能产品的依赖程度越来越高;同时,人们的居家模式也正在由传统模式向智能家居模式转变。智能家居主要是以自家房屋为平台,可在该系统平台上进行自动化设计、互联网统一管理;亦可对家电进行控制,智能家居方案设计

平***苏 2年前 上传1108   0

基于Zigbee的智能家居系统毕业设计

学 号_______ ___ henhuangmahenshuang毕 业 论 文 课 题基于Zigbee的智能家居系统设计 学生姓名 基于Zigbee的智能家居系统设计 系 别基于Zigbee的智能家居系统设计

文***品 3年前 上传866   0

基于51单片机的智能家居报警系统

随着网络和信息技术的飞速发展以及生活水平的提高,现在的社会有了很大的发展,信息化的概念已经越来越贴近我们的生活。伴随着社会的发展,家庭安全问题也被更加重视了。

爱***享 3年前 上传866   0

基于物联网的智能家居控制系统设计与实现

物联网是在信息社会发达的今所衍生的产品,他是基于互联网的模块上,利用射频识别技术、无线网等技术,打造一个联系世界不同物体,不同模块的“Internet of Things”。在这个模块网络中,人们所需要的或不需要的物品等等能够相互的进行“沟通”,机械化,不需要人类去操作。其根本是使用射频自动识别(RFID)这种技术,通过信息网络(互联网)来实现物品的互相识别和不同 信息的互通与共享。

z***u 5年前 上传6147   0

基于语音识别技术的智能家居控制系统的设计

21世纪经济快速发展,人们对物质文化的需求也越来越高。在信息科技的支持下,事物在朝着简单化、便捷化、智能化的方向发展。在此背景下应运而生而生的智能家居,正是信息时代的典型产物。

王***朝 4年前 上传1202   0

Est智能家居系统解决方案-解决方案

Est智能家居系统解决方案-解决方案   1.1背景    随着全球信息化时代的不断升温,社会不断发展,物质生活水平不断提高,人们的生活方式、工作习惯也开始悄然飞跃。人们对千百年来赖以生存的住宅,也已不再满足于地理位置、交通绿化、周边环境以及房屋结构等传统条件。个性化与智能化成为新的需求,更健康、更安全、更方便、更舒适的生活,成为21世纪家居生活方式的发展方向。目前国家正高调宣扬提倡“绿

l***b 12年前 上传563   0

高中全九科网络结构图

高中全九科网络结构图数学语文英语语法知识树1.中学英语语法知识体系2.英语能力树3. 英语学习习惯4. 单词记忆通用工具5. 英语整体建构课堂教学模式6. “和谐教育整

小***库 2年前 上传460   0

3-001网络结构图

表3-001 网络结构图 公司: 日期: 文档号: 说明:

s***n 15年前 上传30587   0

首次适应算法最佳适应算法

姓名:学号:实验名称:进程调度模拟实验 实验目的:了解动态分区存储管理方式中的数据结构和分配算法,加深对动态分区存储管理方式及其实现技术的理解。实验内容:#include<iostream.h>#include <malloc.h>typedef struct Spare{ int SA; int size;}spare;void init(spare *S,in

文***享 3年前 上传1630   0