基于单片机和 WiFi 的智能室内环境监控系统设计
扫描二维码
随时随地手机看文章
引 言
智能家居系统的概念在 20 世纪就被提出,但其产业化近年才逐步开始,目前处于初期形成与长期发展的临界点。智能家居可以通俗地理解为以住宅为平台,利用物联网技术将家中的音视频设备、照明系统、窗帘控制及空调控制等多种设备连接起来,提供多种多样的功能,如手机或电脑远程电器控制功能、温湿度参数检测功能、光照强度检测功能等 [1]。智能家居的控制方式丰富多样,如本地控制、手机远程控制、网络控制、定时控制等,多样的控制方式可以避免繁琐的过程从而提高效率。其目标是为用户提供舒适安全及高效便利的生活环境,提升生活品质。一个完整的智能家居环境监控系统主要包括环境信息采集、通信模块及控制与执行机构三部分,其设计方案与实现方法多种多样。
与智能家居类似,工农业生产中(如独立工业生产车间、农业蔬菜大棚)与室内工作场合也提出了类似的智能室内环境监控要求。本文设计一种基于单片机技术与 WiFi 技术的智能室内环境监控系统,该系统是智能化监控需求的实现方式和应用设计,能够实现室内环境参数检测与设备控制功能, 具有一定的应用价值。
1 系统总体结构设计
本文系统由三部分组成 :负责采集数据的控制节点,以STC89C52 单片机为控制核心,并选配相应的温湿度传感器、光照传感器及继电器模块 ;负责广播信息的 AP 节点,构建WiFi 网络,实现单片机与手机 APP 之间的信息交互 ;安装有应用软件的手机移动终端,既可接收显示传感器数据,也可发送指令至单片机,控制电器设备通断 [2-3]。系统结构框图如图 1 所示。
系统主要有两个功能 :一是客户端功能,用户接入 WiFi 网关后可通过 APP 客户端实时了解室内环境信息(传感器检测到的温湿度、光照强度等);二是设备控制功能,用户打开手机 APP,通过点击操作按钮即可控制电器设备通断。
2 单片机系统硬件设计
单片机部分主要负责检测室内的环境参数,如检测温湿度、光照强度及执行电器通断控制。该部分以 STC89C52 单片机为核心,温湿度传感器选用 DHT11 模块,光照传感器选用数字光强强度传感器 GY-30 模块 [4]。
DHT11 温湿度传感器可测量相对湿度与温度,采用数字输出方式,具有超长的信号传输距离、超低能耗等特点。该传感器采用单总线通信协议,与 STC89C52 单片机之间的数据交换由此单总线(DATA)完成。本文设计中,以 1 路信号为例,单总线外接一个 4.7 kΩ 的上拉电阻,与单片机 P1.2口连接,当总线空闲时,被上拉电阻拉高为高电平。
光照传感器 GY-30 的光谱灵敏度特性接近视觉灵敏度, 对应广泛的输入光范围,且功耗低。该传感器支持 I2C 总线接口,输出对应亮度的数字值。STC89C52 单片机通过 I2C 接口向传感器发送控制命令并读取环境光照数据。本文设计中,以 1 路信号为例,光照传感器的 I2C 总线时钟线 SCL、数据线 SDA 分别与单片机 P1.0,P1.1 端口连接。
电器设备通断控制选用松乐 SRD-05VDC-SL-C 电磁继电器模块。该继电器有 5 个引脚,2 个引脚为继电器线圈端子,3 个引脚为继电器的触点引出端,其中一个是公共端, 与另外两个触点分别构成一对常闭触点(NC)与一对常开触点(NO)。本文设计中,扩展 3 个电磁继电器控制 3 台电器设备,单片机接收来自手机的电器设备通断控制信号,经P2.0 ~ P2.2 端口输出到继电器线圈,实现电器设备通断。单片机系统接线关系如图 2 所示。
3 无线数据传输设计
数据传输采用 WiFi 网络实现, 选用海凌科电子公司设计生产的嵌入式 UART-WiFi(串口 - 无线网)模块HLK-M35。该模块使用 IEEE 802.11 协议栈网络标准, 无线传输速率高达 150 Mbit/s,信道可达 14 个,频率范围为
2.4G~2.4835GHz,发射功率为 14~18dbm,有串口及GPIO接口,串口波特率最高为 115200bit/s,传输距离可达100~300 m,TCP最大连接数为 4,工作温度为 -20~70 ℃。它基于通用串行接口,内置 TCP/IP协议栈,可实现用户串口 - 无线网(WiFi)之间的转换。HLK-M35模块可以配置为无线STA或 AP,以便实现串口转 WiFi STA或串口转 WiFiAP。
HLK-M35 模块支持串口透明传输模式,其优点是串口可即插即用。当模块以透明传输模式运行时,用户只需配置必要的参数。得电后,该模块可自动连接到设置的无线网络与服务器。
本文设计中,HLK-M35 模块设置为 AP 热点模式,手机可直接连接该模块,方便对用户设备进行监控 [5-6]。HLK-M35 模块的 RX 及 TX 端与单片机收发端 P3.0,P3.1交叉连接。
4 软件设计
软件设计包括单片机系统程序设计与手机控制中心 APP软件开发两部分,两者协同工作,共同实现环境信息的采集、处理、传输、显示与设备操控。
4.1 数据采集与处理单片机主控程序设计
单片机系统上电后,单片机以及各模块初始化,开串口中断进入无限循环,后续依次为温湿度数据采集、光照数据采集、判断手机控制信号等。温湿度传感器和光照传感器均为每隔 1 ms 采集一次环境参数数据并发送至串口,串口按照湿度数据、温度数据、光照数据依次调用子函数发送,发送完毕后软件将 TI 清零。在串口发送数据的同时等待串口接收中断,当有手机发来控制指令信息时,串口接收并解析数据,控制继电器动作,通断电器设备 [7]。单片机系统主程序流程如图 3 所示。
4.2 手机 APP 软件设计
本文采用安卓系统手机作为上位机,开发的手机 APP 具备三种功能 :建立与服务器连接,在手机界面查看室内温湿度和光照强度信息,点击手机界面按钮控制电器设备通断。
程序设计主流程如图 4 所示。
手机 APP 在 Android Studio 环境下采用 Java 语言开发。程序开发采用多线程技术,为避免主线程被阻塞,监听服务器消息放于子线程中运行,使用 Runnable 接口的方式定义子线程。
由于 Android 不允许在子线程中进行 UI 操作,故采用异步消息处理 Handler,在子线程中监控服务器,然后根据what 值在 Handler 中进行判断,处理 message 中的信息,刷新 UI 中的温湿度和光照强度数据。部分关键 Java 程序如下 :
当利用手机按钮控制电器设备通断时,在 MainActivity中为每个按钮的点击事件注册监听器。每当点击按钮时,就会执行 OnClickListener()。此类功能主要用到 UI、服务、提示、Socket 等技术 [8-10]。
实验结果表明,本文系统很好地实现了环境参数的获取、显示及电器控制。手机 APP 实验界面如图 5 所示。
5 结 语
本文设计了一种基于单片机与 WiFi 的智能室内环境监控系统,利用手机即可实现对室内环境参数的检测与设备控制。该系统包括以 STC89C52 单片机为核心的数据采集与电器控制节点、由 HLK-M35 通信模块构建的负责广播信息的WiFi AP 节点及安装有应用软件的手机移动终端三部分。实验结果表明,三者协同工作,能够完成室内环境智能监控系统要求的温湿度、光照强度自动检测、电器设备控制等功能,具有高可靠性、良好的适用性及扩展性,是一种较好的智能室内参数检测与设备控制的实现方式。