2024年3月12日发(作者:)

软件开发

Software Development

基于Arduino和App Inventor2的空气温湿度检测系统设计

文/杨静

运用Arduino和App

Inventor2开发空气温湿度检测

系统,将传统交互设计教学中的

界面与硬件相联系,能够更好的

理解交互设计与如何增强用户体

验。该系统主要由温湿度传感器、

Arduino UNO开发板、蓝牙通信模

块、手机App等构成,具有结构

简单、成本低廉、综合能力要求

较高的特点,适合作为项目教学

案例应用于交互设计专业和创客

教育中。

【关键词】Arduino App Inventor2 温湿度

蓝牙通信 交互设计

智能家居作为物联技术在居住环境中的

综合体现,现今已被越来越多的中国消费者所

接受。环境监测作为其中的一项重要组成部

分,通常会通过各种传感器对空气温度、湿

度、燃气浓度、火焰探测等项目进行监测。其

中空气温湿度的智能检测常作为附加功能应用

于空调、加湿器、除湿器等家电,需要启动体

量较大的家电才能实现检测,成本较高;而传

统的简易物理温湿度测量仪不具备手机实时显

示的功能,便捷性较低。本文设计提出的基于

Arduino和APP Inventor2的空气温湿度检测系

统,具有通过手机APP远程控制并实时显示

空气温湿度讯息的功能,具备系统结构简易、

硬件连接简单、软件制作便捷、APP软件界面

用户体验顺畅、成本较低的优点,十分适合作

为项目教学案例应用于交互设计专业和创客教

育中的编程教育中。

图1:组件列表与实际手机APP初始化界面

可扩展、硬件成本低等特点,活跃于国内外的

交互设计教育中。Arduino UNO是Arduino硬

件家族中最为适宜初学者使用的开发板,主要

由处理器、电源接口、扩展插槽,三大部分组

成。DHT11温湿度传感器是一款可输出数字

信号的温湿度复合传感器,稳定性较强,它的

湿度精度为+-5%RH,量程为20%-90%,温

度精度为+-2℃ ,量程为0℃-50℃ 。由于本

文设计中使用的APP Inventor2平台支持的无

线通信连接方式仅支持蓝牙,所以选择HC-06

作为通信硬件。HC-06蓝牙模块是一个从机模

式无线蓝牙数据传输器件,具有低耗能、低

成本、传输速率高等优点,通电后可自动进入

AT模式,快速闪烁红色小灯,有蓝牙设备接

入时红灯一直亮,本设计中用于接收和传递来

自Arduino和手机APP的指令。

DHT11温湿度传感器与Arduino UNO的

接线方式为:VCC接Arduino的5V;GND接

Arduino的GND;NC为不连接空脚;DATA

接Arduino的数字I/O脚位2。

HC-06蓝牙模块与Arduino UNO的接

线方式为:VCC接Arduino的5V;GND接

Arduino的GND;TXD发送端接Arduino的数

字I/O脚位0(RX);RXD接收端接Arduino

的数字I/O脚位1(TX)。

本设计中有关于Arduino的编程使用

Arduino IDE进行开发,用于程序验证、上传、

调试和下载的操作,可在电脑端的串口监视器

中读取实时采集到的空气温湿度数值。程序主

要由定义变量及接口名称、设置通信波特率、

定义串口指令、获取数据、校对数据、处理数据、

空气温湿度数据显示等部分构成,在串口监视

器中输入“A”时开始检测温湿度,输入“B”

时停止检测,每隔1秒向串口监视器发送一次

温湿度数据,程序代码如下所示:

#include

#define pin 2

int temp;//温度

int humi;//湿度

int tol;//校对码

int j;

unsigned int loopCnt;

int chr[40] = {0};//创建数字数组存储数据

unsigned long time;

char flag_on =0;

void setup(){(9600);//设置波特

率为9600}

void loop()

{

while(ble()>0){

char c=();

if(c=='A'){flag_on =1;//设置开}

else if (c == 'B'){flag_on =0;//设置关}

}

if(flag_on)//设置温湿度检测{

bgn:

delay(2000);

pinMode(pin,OUTPUT); //设置2号接

口为输出模式

digitalWrite(pin,LOW); //输出低电平

delay(20);

digitalWrite(pin,HIGH);//输出高电平

delayMicroseconds(40);

digitalWrite(pin,LOW);

pinMode(pin,INPUT); //设置2号接口为

输入模式

//高电平响应信号

loopCnt=10000;

while(digitalRead(pin) != HIGH){

if(loopCnt-- == 0){

1 系统结构

本系统由检测对象、温湿度传感器、

Arduino开发板、无线通信模块、手机APP等

部分构成。检测对象为空气温湿度信息;传感

器把在空气中获取的温湿度信息转变为电信号

输出至Arduino开发板;开发板首先将接收到

的空气温湿度信息进行数据处理,通过比特与

数值的换算公式,输出可直接读取的温湿度数

字和符号信息,例如“32℃ 78%”;然后开

发板通过无线通信模块与控制手机相连接,手

机APP接收并显示开发板输出的温湿度信息。

2 Arduino的硬件连接与编程

本文设计中使用的电路硬件有Arduino

UNO板、DHT11温湿度传感器以及HC-06无

线蓝牙通信模块。Arduino是一个集合开发板

硬件、Arduino IDE程序开发环境、Arduino编

程语言,三个部分的开源工作平台,拥有适合

编程零基础的学生学习的编程语言和强大的控

制器,因其跨平台、开源性、易学性、灵活性、

●项目编号2015JB03;浙江安防职业技术学院院级精品资源共享课程《智能安防产品设计开发》。

52 •

电子技术与软件工程