Arduino Android的蓝牙通信设计与电火花监测的应用

2017-12-20 21:37李昌泽王军民
科学与财富 2017年29期

李昌泽+王军民

摘要:本文以Arduino开发板和Android系统手机为研究方向,设计Arduino开发板硬件设计与板载程序,以及编写基于Android系统手机的APK,用手机端程序通过蓝牙模块对Arduino 开发板进行控制,对电火花震源工作中的高压进行监测,开发板端采集数据回显到Android手机终端,以便工作人员对电火花震源工作电压情况进行了解。

关键词:Android;Arduino;藍牙

引言

近年来物联网产品发展迅速,而手机的普及与Android系统的广泛使用更是为智能家居提供了支持。利用蓝牙通讯10米的通讯距离与低功耗、低成本等优势是两者相互通讯的一个极为简单的方法。通过这个方法,可以使安全便捷的对电火花震源的充放电各个模块的电压进行监测,及早的发现设备内部存在的电压异常。

系统硬件设计

Arduino[1]是一块基于开放源代码的USB接口SimpleI/O接口板。Arduino UNO是Arduino USB接口系列的最新版本,作为Arduino平台的参考标准模板。UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。该系统的硬件主要由Arduino UNO主控板、蓝牙串口模块和Voltage Sensor电压传感器模块组成。

1.Arduino开发板

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它构建于开放原始码simpleI/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。该平台的特点是具有跨平台性、简单清晰、开放性和发展迅速。

Arduino UNO可以通过3种方式供电,而且能自动选择供电方式。1)外部直流电源通过电源插座供电。2)电池连接电源连接器的GND和VIN引脚。3)USB接口直接供电。

Arduino具有14路数字输入输出口:工作电压为5V,每一路能输出和接入最大电流为40mA。每一路配置了20-50K欧姆内部上拉电阻(默认不连接)。除此之外,有些引脚有特定的功能串口信号RX、TX:与内部 ATmega8U2 USB-to-TTL芯片相连,提供TTL电压水平的串口接收信号。

2.HC-06蓝牙串口模块

核心模块使用HC-06从模块,引出接口包括VCC,GND,TXD,RXD。红色led灯指示蓝牙连接状态,闪烁表示蓝牙未连接,常亮表示蓝牙已连接并打开了端口。底板为3.3V LDO,接口电平为3.3V,输入电压3.6-6V,未配对时电流约30mA,配对后约10mA。空旷地有效距离超过10米。配对以后当全双工串口使用,无需了解任何蓝牙协议,但仅支持8位数据位、1位停止位、无奇偶校验的通信格式。在未建立蓝牙连接时支持通过AT指令设置波特率、名称、配对密码,设置的参数掉电保存。蓝牙连接以后自动切换为透传模式。

3.Voltage Sensor 电压传感器模块

Voltage Sensor 电压传感器模块主要参数:电压检测范围:DC0.02445V-25V,电压模拟分辨率:0.00489V,DC输入接口:端子正接VCC,负接GND,输出接口:“+”接5V,“-”接GND,“s”接Arduino的AD引脚。该模块的电压监测范围只有0-25V,需要通过不同的分压电阻配合才能完成对不同模块的电压的监测。

系统软件设计与通信

1.Android控制采集软件设计

Android[2]是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑。本文通过工具软件E4A完成在移动端软件的设计,个性化定制了界面与所需功能。完成了GUI设计与询问打开手机蓝牙、搜索可配对蓝牙从机、配对蓝牙从机、发送测距指令、接受回传数据、保存数据等功能。

2.Arduino采集传输软件设计

Arduino端的软件是通过Arduino IDE[3]完成,主要的功能为通过轮询方式等待接受Android端的采集指令、驱动测压模块完成测量、对采集数据进行处理和驱动蓝牙模块回显数据至手机端。再通过数字引脚控制一颗黄色led等,做连接测试与检测用。

3.通信过程与结果

将硬件部分组装完毕后,接通电源,蓝牙模块红色指示灯开始闪烁,检测灯黄色led灯持续亮灯;打开Android手机端测距APP,打开手机蓝牙,搜索设备,连接硬件组件中蓝牙模块,显示连接成果,蓝牙模块红色led灯常亮;点击测试1按钮,黄色led灯熄灭,点击测试2按钮,黄色led灯点亮;证明系统连接正常后,点击接受数据按钮,测压模块开始测压,在经过Arduino处理后将被测电压通过蓝牙模块回显至手机APP中的数据显示框中,单击一次完成一次测量,得到各个模块工作中的电压,多次结果可同时显示在显示框中,APP可以完成清空显示框与保存显示框中数据至手机SD卡。

结 语

本文中的数据采集与蓝牙通信系统是基于Android系统与Arduino平台的一套软硬件配套操作系统。本系统通过手机APP控制硬件部分完成数据采集与处理,并通过蓝牙回显至手机APP中。传输过程简单稳定,采集精度受环境与采集模块影响,数据精度可由软件控制。该套方案成本低廉、功耗极低、可移植性强,通过Arduino平台丰富强大的功能,结合电火花震源的工作,可以安全有效的完成对设备内部各个器件模块的电压监测,但是由于电火花内部高压设备复杂,对于蓝牙的传输有一定的影响,通信有效范围不能达到10米以上,对野外实时操作与监控有一定的距离限制。

参考文献:

[1]蔡睿妍.Arduino的原理及应用[J].电子设计工程,2012,20(16):155-157.

[2]詹成国,朱伟,徐敏.基于Android的测控装置人机界面的设计与开发[J].电力自动化设备,2012,32(01):119-122.

[3]杨继志,郭敬.Arduino的互动产品平台创新设计[J].单片机与嵌入式系统应用,2012,12(04):39-41.endprint