APP下载

基于物联网的家庭环境检测系统设计与实现

2017-09-09王方黄连丽陈帅曹鑫尧

软件导刊 2017年8期
关键词:物联网

王方+黄连丽+陈帅+曹鑫尧

摘 要:物联网技术是互联网的扩展,将人与物、物与物直接链接,促进了信息化发展。基于物联网的家庭环境检测系统可用于室内、养殖种植等环境指数的监测,满足环境的精准数据需求。采用ARM MCU+RTOS+传感器+安卓APP的设计方案,实现了一种低成本、易扩展、个性化的基于物联网的智能环境监测系统。

关键词:物联网;环境监测系统;安卓APP

DOIDOI:10.11907/rjdk.171294

中图分类号:TP319

文献标识码:A 文章编号文章编号:1672-7800(2017)008-0106-02

0 引言

物联网是国家战略性新兴产业[1],环境监测是物联网应用最广泛的领域之一,精准的环境数据对提高生活质量意义重大。为满足环境的精准测量要求,设计了基于物联网的家庭环境检测系统,采用ARM MCU+RTOS+传感器+安卓 APP的设计方案,实现了低成本高效率环境监测[2]。该系统可用于家居环境、办公室、超市和温室大棚等室内环境监测。

1 系统开发环境及关键技术

1.1 Android

Android是一种基于Linux的自由及开放源代码操作系统,采用分层架构,由应用程序层、应用程序框架层、系统运行库层和Linux内核层构成,是目前市场占有率最高的移动操作系统。

1.2 ARM Cortex-M3处理器

ARM Cortex-M3处理器具有高性能、低功耗、高实时性等诸多优点,采用thumb2指令,代码密度高,與C语言配合很好, C程序代码可以轻易地移植和重用。本系统选用意法半导体公司的STM32F103C8T6 ARM Cortex-M3 MCU作为硬件平台处理器[3]。ESP8266是专为移动设备、可穿戴电子产品和物联网应用设计的, SOC能够作为主控制器独立运行,也可作为从机搭载于其它主机MCU 运行。本系统选用ESP8266模块作为STM32-F103C8T6的从机,为系统提供网络连接功能与APP通信。

2 系统设计

基于物联网的家庭环境检测系统包括硬件系统和客户端APP两个部分。硬件部分由微处理器+WiFi模块+多种环境传感器+部分辅助装置构成。客户端APP利用Andorid系统提供的API实现人机交互[4]。

2.1 硬件系统

ARM微控制器采用意法半导体的STM32F-103C8 T6。该MCU芯片尺寸小、资源丰富,有I2C、USART、IrDA、SPI、CAN、USB等接口,方便连接常见传感器,满足传感器连接和通信方面的需要[5]。软件方面移植RT-Thread,能够方便模块化开发,提高代码的可阅读性。系统的配置信息写入EEPROM或FLASH,上电后读入SRAM,该配置信息可由用户在APP端进行配置,通过WiFi传输,最后由MCU完成写入。设置两路开关,确定系统的3种启动模式,LED及报警装置作为外围电路提供报警提示功能,系统架构见图1。

2.2 客户端APP

客户端APP分消息通知、场景设备、设置3个主功能界面。

消息通知界面可实时显示当前测得的环境参数。该界面由标题栏、搜索栏、消息列表栏、底部菜单栏4部分组成。标题栏用于指示当前界面功能,提供清空消息功能。搜索栏用于搜索设备,消息列表栏用于显示当前测得的环境参数、场景设备名称以及测得数据的时间。底部菜单栏可实现功能界面的切换,当前界面为彩色,非当前界面为灰色。

场景设备界面主要提供设备管理,实现一个APP连接控制多个设备,可以添加、删除、修改、查看设备场景,以及启用及关闭设备场景,打开界面显示当前已经启用的设备等。该界面由顶部的标题栏、搜索栏、工具栏、设备列表栏、菜单栏5个部分组成。

设置界面提供了IP地址设置、通知栏提醒、自动添加设备、传感器校正等功能。IP设置为APP与硬件平台通信的IP和端口设置,当接收到新的环境数据时通知栏提醒是否显示。自动添加设备用于收到未定义的传感器时是否自动添加一个匿名设备。传感器校正用于传感器设备的初始化,当设备出现异常可以使用该功能进行初始化,校正信息存放在EEPROM中。

3 系统实现

3.1 硬件系统

设计实现一个硬件系统,首先要设计出它的最小系统,让硬件系统能上电启动。最小系统包括MCU、晶振电路、复位电路、电源电路。

MUC选用意法半导体的STM32F103C8T6 MCU。该MCU为LQFP64封装, Proteus元件库中没有,需要自己画封装,画封装时要注意引脚方向,各项电器参数设置正确。参考STM32F103C8T6的数据手册给出复位电路,重新设计本硬件平台的复位电路,确定硬件系统从FLASH启动、FLASH烧写ROM从启动和开发调试SRAM从启动。STM32F103C8T6有多个时钟源,需要一个8MHz的外部晶振和一个32.768kHz的实时时钟晶振。为保证时钟的精准一般采用外部32.768kHz晶振提供时钟源,完成晶振电路、复位电路、电源电路的设计,也即完成最小系统设计,见图2。

最小系统设计成功后开始外围辅助电路设计。为使硬件平台有更好的扩展能力,设计了CAN收发器模块电路,可实现基于CAN协议的Bootloader给系统升级。同时,为了便于在开发应用程序时把运行的参数保存下来,添加了EEPROM模块。虽然增加了系统电路,但避免了使用FLASH保存时频繁擦写导致的产品寿命减少。添加一个LED和一个蜂鸣器作为报警装置。LED灯由PA1控制,蜂鸣器由PC13控制。

系统监测功能由多种传感器构成,主要包括温度、湿度、光照强度传感器。不同型号传感器的电路设计、驱动设计均不相同。温度传感器DS18B20提供9位二进制温度读数,通过单总线传输数据,主控与DS18B20之间的连接只需要一条数据线。每个DS18B20都拥有一个全球唯一的64位序列号,微处理器能够读取该64位序列号辨认总线上的器件,记录总线上的器件地址,所以多个DS18B20同时连接在一条单线总线上,可轻松地利用一个微处理器去控制分布在不同区域的DS18B20[6]。温湿度传感器DHT11是数字信号输出的复合传感器,传感元件与一个8位MCU相连,由MCU控制直接输出数字信息。光照强度监测采用光敏电阻,光敏电阻连接到STM32F-103C8T6的PB0引脚上,该引脚ADC1的通道8,用于测量光敏电路两端的电压进而计算出光照强度。endprint

ESP8266WiFi模块SOC主控制器独立运行,上电后自动启动,通过串口进行固件更新,通过AT指令进行设置[7],启动后可进行UDP或TCP通信。ESP8266一般都需要进行固件更新才能支持最新的功能及指令,使用USB串口改装连接电脑进行固件升级。

3.2 客户端APP

客户端启动后打开消息通知界面,该界面显示当前连接设备提供的实时环境参数,界面为一个Fragment控件。该界面在创建时先取得一个Application对象,该对象在APP中是唯一的。为保证Socket连接在整个APP都是唯一的,将socket连接放到Application对象中。

然后启动一个线程用于监视socket是否连接,完成UI设置、数据初始化、listadapter绑定。socket连接后开启一个新的线程用于接收数据,对接收到的数据进行解析,获取该数据包中的场景、设备、传感数据、校验等。将该数据包解析后写入数据库。由于数据包中的场景、设备是以数字的形式编码的,所以需要在事先添加场景设备,绑定场景名与场景号、设备名与设备号。从数据库中查询到场景号对应的场景名、设备号对应的设备名。如果在listview中查到该场景设备已存在,就不用创建新的listitem。否则在数据库中查询该场景设备是否存在,如果存在就创建新的listitem,并更新数据,否则就丢弃该数据包。

4 结语

本文设计并实现了基于物联网的家庭环境检测系统,对系统涉及的一些关键技术进行了介绍与分析。该系统使用时自行组建独立的局域网络,不依赖其它网络就能很好地完成环境参数监测。系统预留了升级接口,后期可根据需要添加传感器实现更多功能,或对系统进行升级优化,是一个开放的易于扩展的系统。

参考文献:

[1] 刘锦,顾加强. 我国物联网现状及发展策略[J].企业经济,2013(4):114-117.

[2] 钱志鸿,王义君. 面向物联网的无线传感器网络综述[J] .电子与信息学报,2013,35(1):215 -227.

[3] 吴子岳,张帅,侯瑀. 海洋工作平台的温湿度监控系统的设计[J].测控技术,2013(8):63-66.

[4] 卜晓晓. 基于Android和WiFi的智能家居系统的设计与实现[D].镇江:江苏大学,2016.

[5] 易诚,俞子荣,陈黎娟. 基于Cortex-M3与Android的智能家居控制系统设计[J].无线互联科技,2014(12):9-11.

[6] 潘勇,孟慶斌. 基于DS18B20的多点温度测量系统设计[J].电子测量技术,2008(9):91-93.

[7] 樊智一. 基于STM32的无线WiFi温湿度监测系统设计[J].电子世界,2016(18):35-36.endprint

猜你喜欢

物联网
基于无线组网的智慧公交站点信息系统研究与实践
基于LABVIEW的温室管理系统的研究与设计
论智能油田的发展趋势及必要性
中国或成“物联网”领军者