基于Arduino硬件平台的微环境监测系统设计

2016-08-15 09:21刘仲玺
安徽冶金科技职业学院学报 2016年1期
关键词:环境监测

刘仲玺

(安徽冶金科技职业学院 马钢技师学院 安徽马鞍山 243041)



基于Arduino硬件平台的微环境监测系统设计

刘仲玺

(安徽冶金科技职业学院 马钢技师学院安徽马鞍山243041)

摘要:通过基于Arduino硬件平台以及Android软件平台实现对环境的温度、湿度、气压、海拔、空气质量等参数的采集,传输和显示。

关键词:环境监测;Arduino;Android

1 概述

物联网技术方兴未艾,智能家居、智慧农业的发展使得对微环境监测的需求日益增加,在智慧农业中的精细化操作、工厂化管理对温度、湿度、光照等微环境监测数据有着广泛的需求。随着人们的生活水平日益提高,大气污染日趋严重,人们对环境污染的监测数据也日益关注,根据空气污染程度安排日常活动已成为一种生活方式。在智能家居、学校、厂矿、商业区、智能小区等领域微环境监测系统也有着广阔的前景。随着传感器技术的发展,传感器的微型化、芯片化、模块化和智能化使得环境监测设备的价格大幅下降,硬件搭建更为简便。

2 系统构建

微环境监测系统设计分为硬件系统和软件系统两个部分。硬件系统基于Arduino硬件设计平台及其兼容的各类传感器与无线传输模组构成。软件系统基于Android系统平台,以适应在手机终端和智能电视上的应用展示。

2.1Arduino硬件设计平台简介

Arduino源于意大利,以其简单易学、开源、开放以及功能可堆叠的特点风靡世界。Arduino包括一个硬件平台——Arduino Board,和一个开发工具——Arduino IDE。两者都是开放的,既可以获得Arduino开发板的电路图,也可以获得Arduino IDE的源代码。除了购买Arduino电路板外,不需要支付额外的费用。Arduino Board基于简单的微控制器,如ATmega328,提供了基本的接口和USB转串口模块。使用者只需要用一个USB线就可以连接电脑和Arduino Board,完成编程和调试,而不需要专门的下载器。Arduino使用一种简单的专用编程语言,使用者不必掌握汇编语言和C语言等复杂技术就可以进行开发。复杂的底层软件设计事先封装并可通过开源社区免费下载,并开放源代码,跨平台,极为便利,尤其适用于具备基础编程技能的非资深工程师。

2.2Android软件设计平台简介

Android系统的应用已经很广泛了,这里就不再赘述。之所以选择android系统,除了其应用广泛,从设计的角度考虑利用其完整的GUI界面,以方便提供图形化系统界面。

2.3Arduino硬件模块选用

a)Arduino UNO R3

Arduino UNO R3采用的微处理器是ATmega328. 该版本包括14个数字输入输出IO,6个模拟输入IO,16MHz的晶体,USB接口,电源接口,烧录头,复位按钮等。

b)IO传感器扩展板

IO传感器扩展板,能使大部分传感器轻松地和Arduino控制板连接。包括:

☆扩展14个数字IO口(12个舵机接口)及电源;

☆6个模拟IO口及电源;

☆1个数字端口外接电源接线柱,外部供电和内部供电自动切换;

图1 Arduino UNO R3开发板

☆数字端口外部供电和板载电源自动切换;

☆1个外接电源输入接线柱和1个输入插针;

☆RS485接口;

☆复位按钮;

☆xbee/Bluetooh Bee蓝牙无线数传接口;

☆APC220/Bluetooh V3蓝牙无线数传接口;

☆IIC/I2C/TWI接口;

☆3.3V输出端口;

☆SD卡模块接口;

c)Zigbee模块

d)Wifi模块

e)温湿度传感器

f)空气质量传感器及转接模块

i)大气压力传感器

2.4系统方案框图

图2 系统方案框图

2.5设备选型列表(图3)

图3 设备选型列表图

本系统的硬件方案每个数据采集点独立设计,成本相对比较昂贵,但优点是每个模组可以独立工作并放置在不同位置,由本单元Zigbee组网实现数据的汇聚传输;本系统的低成本替代方案如下:

图4 替代方案框图

该替代方案显著降低了系统采购成本。从方案框图可知,取消了所有的Zigbee模块以及四组UNO主控板和IO传感器扩展板;

但是,正如对原系统的特点说明,本替代方案只能测量一个固定位置的相关环境数据。

2.6Arduino软件设计

每个Arduino节点单独采集相应传感器数据,通过Zigbee传输模块将数据传输给Zigbee主节点,再通过Arduino之间的串口传输给WIFI节点,上位机通过WIFI接收数据,在Android系统的智能手机或智能电视显示数据和图表。每个Arduino节点单独编程,程序相对简单,可靠性高。

例程:pm2.5模块数据采集

#include SoftwareSerial mySerial(9, 10); // RX, TX

double pm25()

{delay(1000);

//pm2.5变量

int income[7];

int data;

int i = 0;

int sum; //校验和

double dst = 0.0;

delay(1000);

while (mySerial.available() > 0) {

data = mySerial.read();

if (data == 170) {

i= 0;

income[i] = data;

} else {

i++;

incomeByte[i] = data;

}

if (i== 6)

{

sum = incomeByte[1] + incomeByte[2] + incomeByte[3] + incomeByte[4];

if (incomeByte[5] == sum && incomeByte[6] == 255 )

{ //Serial. println("ok");

double vo = (incomeByte[1] * 256.0 + incomeByte[2]) / 1024.0 * 5.00;

dst = vo * 200;

return dst;

}

else

{

mySerial.flush();//清空缓存

for (int a = 0; a < 6; a++)

income[a] = 0;

return 0;

} //清空接收数组

}

}

}

void setup()

{

Serial.begin(9600);

mySerial.begin(2400);

Serial.println("Ready");

}

void loop()

{

double pm=pm25();

delay(1000);

Serial.print("cmd=upload&device_name=pm25&data=");

delay(1000);

Serial.print(pm);

delay(1000);

Serial.println("&uid=liuzx&key=18b74fe13ea150d644af4cc4d6cd3");

}

2.7上位机程序界面展示

WIFI传输的数据可通过智能手机、智能电视的Android程序显示数据和曲线。

图5 替代方案框图

3 结语

本系统结构清晰,程序简单,易于实现,可用于单片机,Android编程的教学例程,并有一定的实用性。可用在机关、学校室内室外的微环境数据采集。

参 考 文 献

[1]程晨.Arduino开发实战指南[M].北京:机械工业出版社,2012

[2]郑希,周金语,康春香.基于嵌入式Web服务器的无线空气质量监测系统[J].电子技术应用,2015,5

收稿日期:2016-01-19

作者简介:刘仲玺(1972-),男,安徽冶金科技职业学院、马钢技师学院计算机系,教师。

中图分类号:TP277.2:TP311.521

文献标识码:A

文章编号:1672-9994(2016)01-0023-04

Design of Micro Environmental Monitoring System Based on Arduino Hardware Platform

LIU Zhong-xi

Abstract:This design method by Arduino hardware platform and Android software platform to realize the environmental temperature, humidity, air pressure, altitude, air quality and other parameters based on the collection, transmission and display.

Key words:Environmental monitor;Arduino;Android

猜你喜欢
环境监测
环境监测系统的数据分析与处理
大气污染问题的环境监测
对环境监测数据造假必须零容忍
便携式GC-MS在环境监测中的应用