APP下载

基于Arduino Uno和STM32智能家居安防控制系统的设计*

2018-11-09贾宗维杨鹏飞吴小强

山西电子技术 2018年5期
关键词:开发板云端串口

贾宗维,杨鹏飞 ,吴小强

(山西农业大学信息科学与工程学院,山西 太谷 030801)

智能家居安防系统是以家居环境为背景,通过检测环境中不同的参数,综合判断当前环境的状态并做出预判处理,以达到安防的作用。

当下人们对家居安全的需求,已经从有限物理距离转变为远程获知实时信息。因此,提高智能家居安防系统的高性能兼顾低成本符合当前人们需求[1-3]。

智能家居的核心在于用户体验。文献设计模型中采用Arduino配合W5100扩展板网络或者蓝牙模块,实现用户对控制系统的“有限距离”控制[4-7];另一设计中采用ZigBee组网作为智能家居系统通信方式,但总体成本较为昂贵,不便于普及[8-10]。

1 智能家居安防控制系统总体设计

本设计提出基于Arduino和STM32智能家居安防系统。设计利用Arduino和STM32多处理器分布式处理数据,并设定情景判别功能和采集数据上传功能,利用基于ESP8266模块的WiFi技术同云端存储技术相结合,实现用户对居住环境的远程监控。

通过需求分析,本设计将实现以下几个功能:

1) 对家庭环境进行检测和报警,对防火、防盗和调光实施远程布控。

2) 手机APP或者云端界面实现对智能家居安防系统的检测数据监察和指令控制。

3) 系统利用串口接入新的处理器及设备,便于系统设备扩展。

智能家居安防控制系统的总体方案设计如图1所示。

图1 系统方案总体设计

主控电路上面搭建四个部分:可通过数据处理获取传感器采集的数据做出情景判决,也可通过数据上传实现上传数据到云端和远程服务器;指令控制用于用户发送的指令实时控制执行模块,并执行相应用户指定动作。

2 智能家居安防控制系统硬件设计

智能家居安防控制系统功能模块共分五部分:数据处理模块、智能安防控制模块、家居环境检测模块、数据通信模块和上位机模块。

2.1 安防控制模块

在安防控制模块中,主要是对居室环境中可燃气泄漏、出现火情和家中进入不明人物“防火”、“防盗”功能进行实现。

2.1.1 烟雾传感器

系统采用MQ-2型烟雾传感器对可燃气或煤气浓度进行检测。当传感器所处环境中存在可燃气体时,传感器内部的SnO2 敏感层电导率会随可燃气体的浓度的增加而增大,从而使得传感器内部电路电压因外界的可燃气体浓度变化而变化。

2.1.2 火焰传感器

采用火焰传感器,利用传感器内部电路中的红外接收模块,当检测到外界有火焰时,红外管反向导通,拉低信号引脚的电压值,输出模拟量减小;反之增大对火情状态进行检测。

2.1.3 人体红外传感器模块

人体红外传感器,也叫做热释电传感器,利用热释电效应进行检测,当人出现在检测范围内时,因人同居室环境的温度存在明显温差,会引起热释电效应产生电压信号,继而可以检测到人。

2.2 环境感知模块

环境感知模块中,通过对室内环境的温湿度和光照情况进行感知,并对室内照明和楼道照明进行控制。

2.2.1 温湿度传感器

对家居环境温湿度的检测,本系统采用DHT11数字温湿度传感器。

传感器包括电阻式感湿元件和NTC测温元件,实现对温湿度的同步测量。

2.2.2 光敏和声音传感器

采用光敏和声音传感器对环境中的光线亮度和声音进行检测。

当光敏电阻被光线照射时,光敏传感器电阻率发生变化而影响到电路中的电压变化,从而检测环境中光线亮度变化情况。

声波使声音传感器电路内的驻极体薄膜振动,引起驻极体内可变电容振动而导致电容发送变化,产生微小电压,继而电路中三极管会发生导通。

2.3 数据通信模块

2.3.1 WiFi通信

采用ESP8266串口WiFi模块,同远程服务器建立通信,实现传感器采集数据上传到云端和服务器发送指令的接收。

2.3.2 串口通信

通过将Arduino控制板与STM32控制板以串口通信的方式实现二者的信息交互。Arduino负责发送命令,STM32负责接收命令。当STM32接收到命令之后,执行相应动作:控制步进电机不同方向进行转动。

2.4 上位机模块

可以选择查看数据和实时控制两种功能:查看数据可实时获取当前环境的数据,获取家居环境的安全状态;实时控制可以实现对系统中执行模块的开启关闭控制,比如开启照明灯、开启电机顺时针转动等。

2.5 执行模块

执行模块包括LED电珠、LED指示灯、蜂鸣器和步进电机。LED电珠作为室内照明和楼道照明;LED信号灯用于指示不同情境下的信号指示;蜂鸣器作为警报提示装置;步进电机起到调节窗帘位置的作用。

3 智能家居安防控制系统软件设计

当系统上电后,Arduino开发板对设定的引脚和串口等硬件初始化,完成引脚的模式及串口的波特率设置。其次,各个传感器模块通电后同样初始化配置,以达到稳定测试状态。系统的软件总体设计如图2所示。

图2 系统软件总体设计

3.1 部分程序设计流程

基于上节软件的总体逻辑设计中情景判断的步骤,系统完成对各个传感器及同STM32开发板串口通信的程序设计。对室内光线调节如图3所示。

图3 室内调光设计

当Arduino检测到室内光线过于强的时候,会进行调光处理。Arduino开发板发出特定指令,直接以串口通信的方式发送到STM32开发板。STM32串口通信程序设计如图4所示。

图4 STM32串口通信程序设计

STM32开发板保持串口接收检测状态。当接收到命令后,对接收到的命令进行判断,并执行相应的动作。

3.2 WiFi模块配置

本文中,WiFi模块设置为:STA模式(客户端),通过设置接入路由器或者连接手机热点,从而实现入网通信。

WiFi通信采用TCP通信方式,开发板上的WiFi模块作为TCP 的Clien(客户端),与远程服务器进行通信。在配置中,需要设置WiFi模块的目的IP地址和端口号分别为:iot,doit,am和8810(远程服务器的IP地址和端口号)。

3.3 云端配置

在本文中使用深圳四博智联公司提供的云平台。通过http://iot.doit.am注册账号(Uid)和密码(password)。

注册完成后,需要在云端显示界面后期自己账号的API KEY值,便于在程序中订阅和上传数据到自己的云端平台。

通过将云端的帐户名和API KEY值写入程序中,完成WiFi模块上传数据到云端。

3.4 终端APP模块配置

终端APP中使用到按钮组件、标签组件、计时器和网络数据库,实现用户和系统的相互通信。

网络数据库负责请求远程服务器的传感器数据和发送用户指令到服务器。网络数据库在APP中的逻辑作用如图5所示。

图5 网络数据库的作用

按钮作为控制命令的执行部件,当按钮被按下时触发不同的指令。标签作为显示传感器的标记、数值及当前时间。

计时器负责计时和获取当前时间。

3.5 APP终端界面设计

APP终端界面设计分为两个部分,三个界面。手机终端显示界面如图6所示。

图6 手机终端显示界面

在查看数据界面,可查看不同传感器检测的相关数值,以便了解居室内环境状态,实现用户的远程监查;在实时控制界面,可根据用户个人需求,对不同执行部件进行远程控制。

通过点击相关选项,可进入相应的界面完成相关操作,即用户通过手机终端实现对智能家居安防系统的远程监控功能。

4 结论

本智能家居安防控制系统设计基于Arduino和STM32开发板,设定对家居环境的检测预警,实现基础安防功能;同时,利用WiFi网络通信和手机终端反馈的方式实现用户对家居环境的远程监控,满足用户的交互式体验同时兼顾低成本和高性能的特性,具有一定的经济价值和社会价值。

猜你喜欢

开发板云端串口
四海心连·云端汇聚
浅谈AB PLC串口跟RFID传感器的通讯应用
基于STM32H7的FDCAN通信系统设计与实现∗
云端之城
云端创意
浅析单片机开发板的设计与制作
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证