APP下载

基于Android的物联网温湿度监测系统的设计与实现

2022-05-20王文秀曹克涛王亓剑徐慧芳

物联网技术 2022年5期
关键词:调用温湿度蓝牙

王文秀,吴 慧,葛 琼,曹克涛,王亓剑,徐慧芳

(安徽新华学院,安徽 合肥 230088)

0 引 言

随着物联网技术的不断发展,与之相关的产品开始进入人们生活。物联网涉及众多的产业,如工业生产、智能家居、智能交通、环境监测、卫生管理等,其生产总值已经占据了相当一部分比重。相关研究表明,预计2025年全球物联网设备基数将达到754亿台;5G网络的普及将会给物联网行业带来一次质的飞跃。目前,国家高度重视物联网的发展,物联网产业受到了人们的广泛关注,在未来以物联网为基础的产业将会得到迅猛的发展。物联网的基础需要大量的传感器来搭建。传感器作为其中的重要组成部分,同样会得到发展。目前,传感器越来越多地被应用到人们生活中,降低了生活成本,也使生活更加方便。国内在传感器方面还有很大的上升空间,既是困难,也是机遇。

温湿度传感器作为一种基础传感器,将会得到更加广泛的应用。如今各个行业在进行现代化改造的过程中,对温湿度的监测和调节日趋严格,使得精密仪器的应用也越来越广泛。在日常工作和生活环境中,温湿度的可控性也越来越重要,比如计算机或服务器机房的温度、食品工业和农业生产中温度和湿度的控制都是运营维护工作的重中之重。因此,基于温湿度传感器和单片机的温湿度监测方法也将取代传统的温湿度监测方法。

物联网的发展离不开基于Android系统的设备的支持。考虑到Android系统是使用最广泛的操作系统之一,在移动端具有很好的兼容性,并且是一种开源系统,给了使用者良好的开发环境,本文设计了一款基于Android的物联网温湿度监测系统。

1 系统总体设计

主控芯片采用STC89C52,主要完成对数据的分析和处理。数据采集部分由DHT11温湿度传感器组成,DHT11是应用最为广泛的传感器之一,应用已经相当成熟。与主机的通信由蓝牙串口模块组成,完成数据的传输和接收,实现下位机与上位机之间的通信。上位机是一部Android手机,用以实现数据的接收。传感器收集周围环境的温度和湿度信息并发送到单片机,单片机在处理数据后通过蓝牙串口模块将数据发送到上位机,并在APP上显示出来。系统总体设计如图1所示,下位机整体电路如图2所示。

图1 系统总体设计

图2 下位机整体电路

2 硬件设计

2.1 蓝牙模块

蓝牙模块采用JDY-31蓝牙,其引脚如图3所示;同时使用跳频频谱扩展技术,将频带拆分几个跳频信道,可以使无线收发器完成在不同信道之间的跳跃。蓝牙技术门槛低、功耗小、安全性高,便于传播和应用。一台蓝牙设备可以与多个蓝牙设备相连接,通信极为方便。随着蓝牙通信技术的不断更新,蓝牙的传输速率也在不断提高,数据传输速率可达1 Mb/s;并且蓝牙可在一定范围内全方位进行通信,提高了通信效率。

图3 JDY-31引脚

2.2 温湿度模块

温湿度模块采用DHT11传感器,电路如图4所示。当连接上电源后,DHT11进入稳定状态,并发送指令进行工作,检测周围环境温度和湿度数据。此时在上拉电阻作用下DHT11和DATA数据线都处于高电平状态;DATA引脚处于输入状态,微控制器的I/O端口处于输出状态,将输出低电平,但在上拉电阻作用下微控制器的输入和输出端口电位将被拉高。工作开始时,微控制器的传感器发送一个启动信号,并向单片机发送一串40位的二进制数据,表示温湿度信号;接着输出一个50 μs的低电平,之后才能转化为输入状态。传感器保存温度和湿度信息后,将其发送到STC89C52。

图4 DHT11电路

2.3 降温模块

降温模块由L298N和电机组成。当温湿度达到报警值时,L298N驱动电机转动,从而达到降温目的。L298N的IN1和IN2引脚与单片机的P1.7和P1.6口相连接。L298N引脚如图5所示。

图5 L298n引脚

3 软件设计

3.1 主程序设计

Keil是Keil Software公司的可用于单片机的系统开发的软件,兼容C语言,且操作简单、易上手。本设计采用的是2009年发布的Keil μVision4版本。如图6所示为本设计的主程序流程。首先初始化各个模块;在完成初始化之后,DHT11模块的工作任务开启,采集温湿度,并将采集到的信号发送给STC89C52;最后STC89C52将数据通过JDY-31发送给Android 手机,由Android 实时显示温湿度的检测值。

图6 主程序流程

3.2 功能实现

本系统通过Android Studio软件进行开发。开发界面如图7所示。

图7 Android Studio开发界面

权限设置:在APP开发的过程中权限的赋予是非常重要的,如果不能赋予权限,则无法进行正常的程序开发。在蓝牙通信开发的过程中,APP需要获得Android系统的如下权限:BLUETOOTH—允许配对的设备进行连接;BLUETOOTH_ADMIN—允许搜索和配对设备;ACCESS_COARSE_LOCATION—广播接收器接收;BluetoothDevice.ACTION_FOUND—广播修改权限。

蓝牙开启:在建立蓝牙通信之前,需要验证是否有蓝牙设备以及蓝牙设备是否已打开。对于Android系统,只有一个蓝牙适配器,通过getDefaultAdapter()方法来检测设备是否支持蓝牙,并检测蓝牙是否开启,如图8所示。

图8 蓝牙开启代码

建立连接:在建立连接时需要一个UUID,用来标识不同设备的ID。手机端是作为客户端与蓝牙模块进行连接的。在蓝牙Socket进行连接之前,一定要调用BluetoothAdapter的cancelDiscovery()方法。连接的第一步是通过调用BluetoothDevice的createRfcommSocketToServiceRecord(UUID)获取BluetoothSocket;第二步是调用BluetoothSocket的connect()方法发起连接。由于connect()是一个阻塞调用,因此连接应该在主线程以外的线程中执行。调用connect()时,请始终确保设备未执行设备发现;如果正在进行发现操作,则连接尝试的速度将大大减缓,并且连接失败的可能性会增加。确保在建立连接之前始终调用cancelDiscovery(),并且在调用时无须实际检查其是否正在运行;如果确实想要执行检查,可以调用isDiscovering()。建立连接代码如图9所示。

图9 建立连接代码

4 仿真和测试

4.1 仿真

针对系统中各电路模块的设计,通过Proteus软件进行仿真。根据仿真结果可知,整体电路可实现设定的功能,包括温湿度的实时显示以及超过阈值后的降温模式。仿真结果如图10所示。

图10 仿真结果

4.2 测试

当下位机的准备完成之后,开始与上位机进行通信。给下位机通电并且打开上位机程序,打开蓝牙,建立连接,发送数据。显示界面(应用主界面和接收数据界面)如图11所示。

图11 显示界面

根据实际情况可以通过Android修改阈值,修改前后数据对比如图12所示。

图12 阈值调整数据

5 结 语

本设计通过DHT11、AT89C52、Android、JDY-31等构建温湿度监测系统,经过测试证明能够实现Android实时显示温湿度值,通过Android可以调整设定的阈值,若检测值超过阈值则进行降温处理,实现智能化。本设计具有一定的推广价值。

猜你喜欢

调用温湿度蓝牙
温湿度控制器在回收砂冷却系统中的应用
核电项目物项调用管理的应用研究
基于DSP的多路温湿度监测系统
LabWindows/CVI下基于ActiveX技术的Excel调用
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
基于温湿度控制的天气预测装置
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
蒸发冷却温湿度独立控制空调系统的应用
基于系统调用的恶意软件检测技术研究