基于WiFi物联网的温度监控系统设计与实现

陈敏敏+廉迎战+黄道燚
摘 要: 针对温度监控的区域局限性问题,设计了以单片机STC15F2K60S2与温度传感器DS18B20为核心的温度监控系统。通过ESP8266 WiFi芯片,以中国移动物联网开放平台为中继服务器,以App Inventor为开发软件,完成了硬件的程序设计、数据采集系统设计以及手机APP软件的开发,通过WiFi物联网实现了温度实时监测及汇报。实验结果表明,该系统运行稳定,可通过手机或其他手持移动终端随时随地监控温度,可广泛应用于家庭热水器、空调等家用电器的智能控制,也可应用于工业生产中需要随时监控的、人体不宜靠近的场合的温度监测。
关键词: 温度传感器; 物联网; APP; 云服务器; 智能控制
中图分类号: TN915?34; TN709 文献标识码: A 文章编号: 1004?373X(2017)18?0147?03
Design and realization of temperature monitoring system based on
WiFi Internet of Things
CHEN Minmin1, LIAN Yingzhan2, HUANG Daoyi1
(1.Shanwei Polytechnic, Shanwei 516600, China; 2.Guangdong University of Technology, Guangzhou 510009, China)
Abstract: According to the regional limitation of temperature monitoring, the temperature monitoring system was designed, in which MCU STC15F2K60S2 and temperature sensor DS18B20 are taken as its kernels. By means of ESP8266 WiFi chip, the open platform of China Mobile Internet of Things is taken as the relay server and App inventor is taken as the development software to achieve program design of the hardware, design of data acquisition system and development of APP software. Temperature real-time monitoring and reporting were realized through WiFi Internet of Things. The experimental results show that the system can run stably, monitor the temperature through mobile phone or other handheld mobile terminals whenever and wherever possible, can be widely used in intelligent control of household appliances (such as household water heater and air conditioning), and also can be applied to temperature monitoring of industrial production which needs to be monitored momentarily and is inappropriate for staff to close to.
Keywords: temperature sensor; Internet of Things; APP; cloud server; intelligent control
随着物联网技术的快速发展,传统的传感器焕发出新的光彩。本文以常见的温度传感器DS18B20为基础,结合单片机STC15F2K60S2,以及当前低价高性价比的热门芯片ESP8266 WiFi芯片,以中国移动设备云作为网络服务器,开发一个实时温度监控系统。单片机通过温度传感器对温度实施实时的采集,并通过WiFi芯片将温度数据采用HTTP协议上传到中国移动物联网开放平台;同时使用App Inventor软件开发手机APP,APP通过HTTP传输协议从中国移动设备云服务器获取温度数据,并展示到用户的手机屏幕上,实现远距离对温度的实时监控。本设计主要以测试功能为主,所以电路与APP都以最简的方式来进行设计。
1 系统硬件设计
温度监控系统的硬件电路主要由微控制器、温度数据采集模块、WiFi模块等组成。如图1所示,DS18B20主要是实现温度检测,并把测得的温度数据传送到单片机上;STC15F2K60S2单片机是整个硬件电路的核心,主要负责对DS18B20的温度数据的采集,同时与ESP8266实现通信,将温度数据传送到ESP8266上;ESP8266起到的作用则是把单片机传送过来的温度数据通过无线路由器上传到中国移动设备云服务器上。

圖1 硬件电路
(1) 微控制器。微控制器采用STC15F2K60S2[1]。该系列单片机是STC生产的单时钟/机器周期(1T)的单片机,是高速/高可靠/低功耗/超强抗干扰的新一代8051单片机,加密性强,指令代码完全兼容传统8051,但速度快8~12倍。内部集成R/C时钟,5~35 MHz宽范围可设置,可彻底省掉外部晶振和外部复位电路。
(2) 温度传感器。其采用DS18B20温度传感器。DS18B20是常用的温度传感器,其具有体积小、硬件开销低、抗干扰能力强、精度高的特点,还具有独特的单线接口方式,可用PVC电缆直接出线或德式球型接线盒出线。DS18B20在与微处理器连接时仅需要一条线即可实现微处理器与DS18B20的双向通信,其测温范围为-55~125 ℃,基本满足室温和机房温度的采集要求。工作电压低,只需要DC 3.3~5 V的电压即可运行,可与单片机共用一组电源,使用方便。它支持多点组网功能,多个DS18B20可以并联在惟一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。测量结果以9~12位数字量方式串行传送[2],适用于DN15~DN25, DN40~DN250各种介质工业管道和狭小空间设备测温。
(3) WiFi模块。其采用的是ESP8266芯片。ESP8266是乐鑫Espressif设计的WiFi芯片,其价格低廉,具备有高性价比,是目前市面上非常流行的一款WiFi芯片,它可以通过串口通信方式与单片机实现双向的通信,并能通过WiFi挂载到路由上去,与外网连接[3]。
ESP8266是一个完整且自成体系的WiFi网络解决方案,能够独立运行,也可以作为slave搭载于其他host运行。ESP8266 在搭载应用并作为设备中惟一的应用处理器时,能够直接从外接闪存中启动。内置的高速缓冲存储器有利于提高系统性能,并减少内存需求。另外一种情况是,无线上网接入承担WiFi适配器的任务时,可以将其添加到任何基于微控制器的设计中,连接简单易行,只需通过SPI/SDIO接口或中央处理器AHB桥接口即可[4]。ESP8266强大的片上处理和存储能力,使其可通过GPIO口集成传感器及其他应用的特定设备,实现了最低的前期开发和运行中最少的占用系统资源。
2 单片机软件系统设计
单片机的软件程序主要完成以下工作,软件主要设计总流程图[5]如图2所示。

图2 软件流程图
2.1 初始化
系统启动之后,开始进行一些初始化,初始化内容包括:
(1) 定时器的初始化,开启中断,定时器0工作方式设置为方式1等设置。
(2) 串口初始化,波特率设置为115 200 b/s,使其与ESP8266的波特率匹配。
2.2 配置ESP8266的工作模式和参数
单片机通过串口与ESP8266进行通信,利用AT指令对ESP8266的工作模式和参数进行配置。
(1) 设置ESP8266为station模式,并复位重启芯片。
(2) 开始DHCP,并设置要连接的路由器的热点SSID和热点密码。
(3) 开启mux多路连接,开启服务器模式,设置HTTP协议所用的端口。
2.3 设置定时中断,启动DS18B20温度转化和采集
(1) 初始化定时器:设置定时器初始值,设置定时时间为10 s(多次短定时的累加达到10 s),设定中断服务程序,服务程序中置位温度采集标志位。
(2) 每当10 s定时时间到,温度采集标志位被置位时,单片机与 DS18B20进行通信,启动DS18B20温度转化,并采集DS18B20温度值。
2.4 温度值上传云服务器
单片机通过串口与ESP8266进行通信[6],并通过ESP8266将获取到的温度值采用POST的方式上传到中国移动物联网开放平台服务器。上传之前要在中国移动物联网开放平台服务器上创建设备、创建数据流、获取上传网址和获取设备ID,ApiKey等,文章后面再进行阐述。
3 物联网平台数据采集
为了实现物联网把温度值共享到网上,必须搭建一个中继服务器。开发者可在中国移动物联网开放平台免费创建云平台服务器,让数据进行中转,既可以接收单片机通过ESP8266与TCP协议发送过来的温度传感器数据,也可以向手机APP或者PC发送温度数据[7]。
物联网开放平台温度采集数的上传和读取,服务器数据的上传和下载采用get和post的方式,格式如下:
数据流上传:
POST /devices/680869/datapoints HTTP/1.1
api?key: bryNFvy6sbj9Isu5mHXp3fwIvtc=
Host:api.heclouds.com
Connection:close
Content?Length:59
{"datastreams":[{"id":" temperature ","datapoints":[{"value":50}]}]}
读取数据流:
GET /devices/680872/datastreams/temperature HTTP/1.1
api?key: vUAoLurFOH=xkqr9s7w4dXuXBGY=
Host:api.heclouds.com
Connection:close
返回數据:
Date: Wed, 04 May 2016 04:54:26 GMT
Content?Type: application/json
Content?Length: 138
Connection: close
Server: Apache?Coyote/1.1
Pragma: no?cache
{"errno":0,"data":{"create_time":"2016?01?14 09:34:17","update_at":"2016?05?04 12:45:28","id":"temperature ","current_value":23},"error":"succ"}
4 手机APP软件设计
为了方便随时随地查询监控温度数据,不采用中国移动物联网开放平台提供的PC页面应用显示方式,而是采用制作手机APP来进行查询和显示。本文采用App Inventor来制作手机APP,如图3所示。
为了进行显示温度和温度的符号,首先使用到了文本组件,其中一个文本组件固定显示温度符号,另外一个随着读取到的温度数据进行改变。
温度数据需要通过HTTP协议连接中国移动物联网开放平台进行读取,需要使用到Web客户端,读取数据流必须按照中国移动物联网开放平台的要求先发送读取请求,格式如上面介绍所示,然后平台再返回温度数据[8]。定时器组件,使用定时器进行定时,设定的一个周期时间为10 s,当定时时间到的时候对中国移动物联网开放平台进行读取温度数据。此处时间不宜太长,太长有可能导致监控室的温度与远程终端的温度不一致,时间也不宜太短,太短数据交换频繁,一方面增加服务器和手机的负担,当网络不佳时可能出错,另一方面,消耗手机电量严重。
按钮组件和输入框组件,输入框组件完成对监控报警温度上限进行设置,按钮组件为对设置的温度值进行确认。接收到的数据不能直接显示,必须进行提取显示,把返回数据与“temperature”,“current_value”比较,如果相等则把后面的数据提取出来到大括号结束,然后把它显示到文本上。
5 结 语
针对温度监控系统的功能需要,通过总体设计、硬件设计、软件设计和软硬件调试,最终完成了基于温度传感器DS18B20与物联网的温度监控系统构建。该系统运行稳定,温度数据采集功能正常执行,结合云服务器和App Inventor制作的手机APP,有效地解决了对温度监控的地域局限性,能随时随地通过手机或其他手持移动终端监控温度。
参考文献
[1] 王伟,李树荣.基于8051单片机温度采集及无线发送[J].现代电子技术,2011,34(1):146?149.
[2] 李华.MCS?51系列单片机实用接口技术[M].北京:北京航天航空大学出版社,2007:45?60.
[3] 焦尚彬,宋丹,张青,等.基于ZigBee无線传感器网络的煤矿监测系统[J].电子测量与仪器学报,2013,27(5):436?442.
(上接第149页)
[4] 杨黎.基于C语言的单片机应用技术与Proteus仿真[M].长沙:中南大学出版社,2012:161?174.
[5] 阎石.数字电子技术[M].北京:高等教育出版社,2006:117?123.
[6] 王福泉,万频,冯孔淼,等.DS18B20在空调检测系统温度采集模块中的应用[J].电子技术应用,2011,37(8):46?48.
[7] 周月霞,孙传友.DS18B20硬件连接及软件编程[J].传感器世界,2001(12):25?29.
[8] 李朝青.PC机与单片机数据通信技术[M].北京:北京航空航天大学出版社,2012:100?106.