APP下载

基于温度传感器和FPGA室内温度智能无线控制设计

2016-05-14丛子林

现代电子技术 2016年6期
关键词:温度传感器

丛子林

摘 要: 为了提高室内温度控制距离、实现手机无线控制以及温度智能调节,基于温度传感器和FPGA设计一个室内温度智能无线控制系统。通过Android Studio集成开发环境,编写手机应用程序,程序实现读取室内温度和窗子开关状态,同时还实现温度调节和最高预警温度设置的功能。通过温度传感器采集温度与串口WiFi模块组成无线温度测量网络,工作在AP模式的主串口WiFi模块通过RS 232串口与FPGA无线通信,FPGA作为主控中心处理数据并发送数据给手机终端和红外控制空调,并且通过电机控制窗帘和窗子。经测试,该系统运行稳定,操作简单﹑方便而且推广价值较高。

关键词: 温度传感器; FPGA; 无线控制; 温度智能调节

中图分类号: TN926?34; TP212.9 文献标识码: A 文章编号: 1004?373X(2016)06?0070?03

Design of indoor temperature intelligent wireless control based on

temperature sensor and FPGA

CONG Zilin

(School of Electronic and Information Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China)

Abstract: In order to prolong the indoor temperature control range, and attain the goal of mobile phone wireless control and intelligent temperature adjustment, a intelligent wireless indoor temperature control system was designed based on the temperature sensor and FPGA. A mobile phone application program was written in the Android Studio integrated development environment. Reading of the indoor temperature, open/close state of windows, temperature adjustment and setting of maximum warning temperature were realized. The wireless temperature measuring network is composed of the temperature acquisition sensor and a serial port WIFI module. Main serial WIFI module working in AP mode communicates with FPGA through RS232 serial port. The FPGA as the main control center processes the data, sends the data to the mobile phone terminal and infrared control air conditioner, and control the curtains and windows through motors. The testing result indicates that the system runs smoothly, and has simple operation and high promotion value.

Keywords: temperature sensor; FPGA; wireless control; intelligent temperature control

随着电子技术和信息科技的快速发展,温度控制从手动控制逐渐向着自动、智能、安卓终端无线控制方向发展。温湿度监测在工业、农业、化工等行业有着广泛的应用。在很多情况下温湿度监测需要对较大空间的多个点和不同空间的点进行监测,传统的有线方式极为不便。为了实时准确地监测多个观测点的温湿度情况,需要实现温湿度的分布测量和无线传输的功能[1]。

WiFi是近年来越来越流行的一种无线通信网络,目前大量学者将其应用在不同领域进行数据传输。虽然ZigBee的使用比其要早,但使用范围和热度不如WiFi,因为WiFi的传输带宽更宽,传输距离更长,抗干扰性更强[2]。针对家居中分布测量和无线传输特点,本文提供一种WiFi转串口与FPGA传输温度测量方法。终端不用在固定地点进行控制,利用WiFi覆盖广的特点,提高了温度数据传输和控制命令的距离。设计一种FPGA和WiFi模块利用串口传输数据自动或手动调节空调、窗帘和窗户的状态,调节智能室内温度的功能。

1 总体设计

系统框图如图1所示,首先开发一款空调控制和温度接收显示APP,包括空调控制,温度显示和温度设置功能。通过WiFi转串口模块透明传输数据,实现Android终端与FPGA芯片的无线通信,同时FPGA主处理器实时接收所有测量点温度,并对串口收到的数据进行处理,将相应的控制信号发送出去。最终红外控制空调,通过控制电机的正反转控制窗帘和窗户关和开,达到控制室内温度的目的。

FPGA串口接WiFi转串口模块。Android互动终端接收FPGA信号通过将它转换成WiFi信号方式进行,同时用户可以发出控制命令给FPGA。WiFi转RS 232串口服务器的无线网络类型设置为AP模式,AP模式提供无线接入服务,允许其他无线设备接入,其他WiFi模块为STA模式,本身并不接收无线的接入,它可以连接到AP模式WiFi。WiFi串口服务器支持串口透明传输模式,可以实现串口即插即用,从而最大程度地降低用户使用的复杂度。在此模式下,所有需要收发的数据都被在串口与WiFi之间做透明传输,不做任何解析。该模块传输距离最大400 m,满足家中任何地点控制和接收温度信息的要求,WiFi串口波特率设置为9 600 b/s。

2 FPGA软件实现

FAPG最小系统是最小工作系统,外部扩展必须有最小系统保证。一般可以把其组成分为7个部分:FPGA主芯片、PROM存储芯片、电源电路、外部时钟电路、复位电路、下载接口电路、下载模式选择电路及接口引出插针。本次选用48 MHz晶振电路作为外部时钟发生电路,设计选用Quartus Ⅱ集成环境和VHDL为FPGA编程语言。VHDL具有与具体硬件电路无关和与设计平台无关的特性,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。并且具有良好的电路行为描述和系统描述的能力,在语言易读性和层次化、结构化设计方面表现了强大的生命力和应用潜力。因此,VHDL支持各种模式的设计方法:自顶向下与自底向上或混合方法,在面对当今许多电子产品生命周期缩短,需要多次重新设计以融入最新技术、改变工艺等方面,VHDL都表现了良好的适应性[3]。

本设计采用模块化设计,主程序通过例化调用分频模块,串口收发模块,通过case语句对接收的温度值进行选择并且执行Andriod终端传输进来的命令。主程序流程图如图2所示。

2.1 分频模块

分频模块是系统软件设计中最重要的,温度测量要求微秒单位操作,需要分频得出微秒单位时序。串口模块正确传送与接收是在分频模块的基础上产生的。系统时钟=分频数×16×9 600,晶振为48 MHz,计算分频数等于312.5,取整等于312。分频因子是分频数的一半,所以分频数为156。分频模块就是156个系统时钟是高电平,之后156个低电平,之后根据时钟重复高低电平交替。如图3所示温度模块分频得出1 μs的时序仿真图,可以清晰地看到但服务信号由高电平跳变为低电平时,分频程序开始。经过24个系统时钟,输出保持低电平,又经过24个时钟,输出得到1 μs时钟。

2.2 串口收发模块

通信参数波特率是9 600 b/s,数据位8 b,一个起始位和一个停止位,无校验位。由于串口收发程序差不多,这里主要介绍串口发送数据程序设计。在传输前首先为收发两端规定参数,这样不会误码。发送时钟是16 b,所以发送1位也就需要持续16个发送时钟。收发两边空闲状态时,传送线为逻辑“1”状态。数据的传送总是以一个“起始位”(逻辑‘0)开始的,接着传送数据位(低位先行,即LSB),最后是一个“停止位”(逻辑‘1)。串口发送通过状态机实现串口的发送的过程,状态机很好的描述了串口发送的过程,为编程节省了时间。有复位信号和采样数少于16个逻辑‘1则回到空闲状态(idle),其他情况转移到发送起始位状态(start_bit),采样少于16个逻辑‘0则回到发送起始位状态。其他情况转移到发送数据位状态(data_bit),每个数据位采样16次,计数发送8位数据,少于采样数和发送数据位数,则回到发送数据位状态重新发送数据。发送完8位数据后转移到发送停止位状态(stop_bit),采样少于16个逻辑‘1回到发送停止位状态。发送完停止位后回到空闲状态等待继续发送数据。

2.3 温度测量模块

主处理芯片上通过DS18b20型号温度传感器进行温度测量,其他温度模块通过WiFi无线与FPGA温度信息传递。一线通信协议结构对时序要求非常严格,如总线复位,设置总线为低电平并保持至少480 μs,然后拉高电平,等待温度传感器拉低电平作为响应,则总线复位完成。根据温度的开发资料,运行状态机对温度在该时序完成动作对温度传感器进行编程。对DS18B20按照初始化、ROM 命令、功能命令三个步骤进行操作。

3 Android客户端软件设计

Android操作系统是应用分享率最高,而且还是应用最广泛的操作系统,扩展名为apk的文件是Android应用程序包,必须包含配置文件 (AndroidManifest.xml)、编译后的Java类和应用资源。

3.1 WiFi通信

WiFi通信主要通过TCP通信程序实现。Android客户端编程用到的是Android Studio[4] 开发环境,优点主要是开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子,提高了客户端在不同屏幕上的兼容性。串口转WiFi服务器IP地址是10.10.100.254,端口号是8899,Android控制端作为客户端,通过TCP的Socket套接字连接到WiFi服务器端后,发送控制命令到服务器端。对于客户端,实现TCP通信需要如下步骤:

(1) 创建客户端套接字,指定服务器端IP地址与端口号,服务器IP地址是10.10.100.254,端口号是8899, 代码如下:

Socket client_socket=new socket(“10.10.100.254”,8899)

(2) 与服务器端的通信同样使用输入输出流InputStream和OutputStream类对象。在对应的按钮被单击后,发送相应的命令数据。通过onclick()函数对按钮进行监听。为每个按钮分配一个十六进制数,如灯一开的按钮点击后发送8位十六进制0x01,如果有点击事件发生,把响应按钮的十六进制数给WiFi转串口模块,最终把数据传到FPGA芯片中进行处理。

(3) 关闭套接字通信完成后,同样需要将输入输出流以及Socket关闭,主动释放这些资源[5]。

3.2 布局文件

Android操作界面通过res/layout文件下activity_main.xml文件实现。Android中的线性布局管理器用LinearLayout表示,它是将放入其中的组件按照垂直或水平方向来布局,也就是控制放入其中的组件横向排列或纵向排列,这次设计选择横向排列。如图4所示,温度界面分为温度显示、温度设置、温度刷新、停止刷新和系统复位功能。通过Fragment和ViewPager一起实现动态切换功能,温度界面、空调控制界面、窗子和窗帘控制界面自由切换,方便操作。

4 结 语

本文介绍了一种以FPGA为主处理芯片,Android终端通过无线控制室内温度,同时FGPA自动控制温度。满足了人们对于温度智能化控制要求,同时设计还有很多可以提升的地方。例如可以实现语音控制,可以和智能手表连接通过测量体温自动控制温度。本设计在实验开发板上运行,经过测试,操作方便,成本低,适合大量推广使用智能温度控制和调节系统。

参考文献

[1] 刘军良.WiFi 技术在温湿度远程监测系统中的应用[J].自动化仪表,2014,35(6):79?82.

[2] 周皓东,黄燕,刘炜.基于WiFi无线传感器网络的水质监测系统设计[J].传感器与微系统,2015,34(5):99?101.

[3] 潘松,潘明.现代计算机组成原理[M].北京:科学出版社,2007:8.

[4] 陈甫.Android Studio 应用[J].电脑知识与技术,2014(8X):5659?5661.

[5] 李鸥.实战Android应用开发[M].北京:清华大学出版社,2012:187.

[6] 何步职,高惠芳,李小龙. 基于CAN总线的多点温度采集系统设计[J].物联网技术,2015,5(6):36?37.

猜你喜欢

温度传感器
气象用温度传感器检定结果的测量不确定度评定与应用
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
XTR105电流变送器在温度传感器中的应用
一种自组网分布式无线温度传感器的设计
温度传感器在笔记本电脑散热系统中的应用