0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android设备通过蓝牙模块实现无线终端的设计

电子设计 来源:郭婷 作者:电子设计 2019-07-11 08:10 次阅读

Android操作系统是Google 基于开源的Linux 操作系统开发的移动操作平台,由操作系统、中间件、用户界面和应用软件组成,是专门为移动终端打造的开放和完整的移动操作系统。Android 软件平台包含Java Application、Application Framework、Libraries、Runtime 与LinuxOS 等层。用户可根据产品的不同需求对系统进行裁剪,从而适应多样的产品需求,Android 系统就如同积木一样通过组合不同的软硬件实现不同的应用产品。蓝牙的出现为移动设备的互联提供了一个方便快捷的选择,Android 设备和以单片机为处理器控制器联接使两者的功能得到了互补。

1 系统架构

基于蓝牙与Android 设备的控制系统由Android 设备和下位机组成。Android设备(Android 智能手机或Android 平板)安装有专门编制的软件。下位机采用ATMEL 公司高效的RISC 内核的ATMEGA 8 为核心,并集成蓝牙串行模块为通信信道。Android 设备通过蓝牙将数据发送至下位机,下位机根据接收到数据,完成相应的控制功能,并将处理结果上传,实现实时监测、实时控制功能。下位机只负责数据的采集和实现控制功能,数据的存储和处理在Android 设备上实现。

2 下位机设计

2.1 控制模块的设计

下位机由ATMEAG8、数字温度传感器电机驱动电路等组成,其中CPU 部分电路如图1 所示。下位机处理器串口连接蓝牙模块。数字温度传感器将当前温度直接转换成数字信号。蓝牙模块设置为从工作模式。

Android设备通过蓝牙模块实现无线终端的设计


图1 CPU 电路原理

系统上电后蓝牙模块处于等待连接状态, 当Android 设备第一次发出连接请求时需要输入蓝牙模块的内置密码,以后再连接时则不需要输入密码,只有密码匹配成功才能后成功建立蓝牙连接。蓝牙模块为Android 设备和ATMEAG8 的通信信道,实现Android 设备和下位机的双向数据连接。用户通过Android 设备向下位机发送命令,下位机接收到命令后,控制相应的执行模块,实现设定的控制功能。K1 和K2 为低电平,电机两端电压为0V,电机停止;K1 为高电平,K2为低电平电机两端为5V,电机正向转动;K1 为低电平,K2 为高电平电机两端为-5V,电机反向转动;K1 和K2 不能同时为高电平,电机驱动电路如图2 所示

Android设备通过蓝牙模块实现无线终端的设计


图2 电机驱动电路原理图

2.2 蓝牙模块

蓝牙模块型号为IDS-BM4A, 模块有主/ 从两种工作模式,通过PIO2 电平来选择模块的工作,PIO2 为高电平,模块工作在从模式。模块可以有两种应用方式,方式1 :从模块上电即开始工作,用户可以通过Android 设备查找模块,模块设备名称为”SPP”, 查到设备后选择连接,电脑端将提示输入密码,此时输入“0000”,电脑将与模块建立透明连接。方式2 :需要两个蓝牙模块,一个设置为主模式,一个设置为从模式,分别与两个MCU 连接,上电后主从模块会自动配对连接,连接成功后主从模块将建立透明数据传输,两个设备之间可以直接互发数据。

工作状态指示:模块PIO0 用来连接LED,指示当前工作方式。

主模式:未连接,LED 间隔1 秒钟快速闪烁2次;已连接,LED 常亮。

从模式:未连接,LED 快速闪烁;已连接,LED 常亮。

连接状态指示:模块PIO1 为连接状态指示,连接成功PIO1 为高电平,连接断开PIO1 为低电平。

波特率设定表:

Android设备通过蓝牙模块实现无线终端的设计

3 Android 设备软件设计

Android2.2 版本以上才能很好的支持蓝牙功能,Android 上的应用程序一般采用Java 语言开发,编程环境一般采用Eclipse。

Android 应用程序需要使用蓝牙功能, 必须在AndroidManifest.xml 中要申请两个权限:BLUETOOTH_ADMIN 和BLUETOOTH。具体格式如下:

me="android.permission.BLUETOOTH"/>

BLUETOOTH_ADMIN 权限允许Android 应用程序启动发现设备或者进行蓝牙功能的设置;BLUETOOTH 权限是Android 应用程序执行蓝牙通信必须具有的权限,例如接受连接和传送数据。大多数应用程序都需要这个权限,才能查找当地的蓝牙设备。

由于需要和下位机的蓝牙模块连接,在应用程序中需要实现主设备功能。具体的连接流程是:

(1)在应用程序中检查设备的蓝牙功能是否开启,如果未开启,则打开蓝牙功能;

(2)查找设备附近等待连接的蓝牙设备,显示查找到的蓝牙设备的物理地址(以前没有连接过的设备)或蓝牙设备的名称;

(3)选择想要连接的蓝牙设备,如果是第一次连接这个目标设备系统会自动发起一个配对过程,弹出输入连接密码的对话框,输入“0000”,等待对方校验密码,完成配对,然后进行连接。

(4)应用程序接收到连接成功,就可以通过生成的BluetoothServerSocke 和下位机进行数据传输。需要连接的蓝牙模块是蓝牙串口,因此应用程序中定义的UUID 必须符合蓝牙串口的UUID,这样连接才会被接受。因为accept() 调用是一个阻塞的调用,应用程序所有响应在调用返回之前会被阻塞,因此一定不能在主线程中进行调用, 通常是在一个新的线程中做所有的工作从而避免应用程序主线程的阻塞。主要代码如下;

(5)关闭server socket,释放serversocket 和它占用的资源,结束应用程序。

4 结束语

本文提出了基于蓝牙与Android 设备的无线控制系统模型,分析了蓝牙网络的一般结构, 采用通用的蓝牙模块实现了无线终端设计,给出了Android 设备的蓝牙串行通讯软件框架。凭借蓝牙的传输高效并且快速等特点,该系统具有很好的灵活性,能广泛应用于工业现场控制等多个领域,尤其是一些需要数据传输又不能很方便的布设通讯电缆的场合,具有广阔的发展空间。

主要代码

Android设备通过蓝牙模块实现无线终端的设计

Android设备通过蓝牙模块实现无线终端的设计

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3851

    浏览量

    125642
  • 蓝牙
    +关注

    关注

    112

    文章

    5430

    浏览量

    165668
  • 无线
    +关注

    关注

    31

    文章

    5304

    浏览量

    171469
收藏 人收藏

    评论

    相关推荐

    采用蓝牙技术的北斗终端通信模块的设计

    系统以STM32F103RBT单片机为核心,在北斗射频信号处理模块和北斗信息处理模块之间加入蓝牙通信的模块实现这两部分的
    发表于 01-17 13:56 1760次阅读
    采用<b class='flag-5'>蓝牙</b>技术的北斗<b class='flag-5'>终端</b>通信<b class='flag-5'>模块</b>的设计

    蓝牙4.0发展真的要靠Android吗?

    之间隔着“一颗牙”,伴随Android设备Android设备之间,Android设备
    发表于 07-05 15:14

    Android蓝牙串口调试助手源码 蓝牙通信源码+蓝牙串口模块

    功能跟传统的、电脑上的串口调试助手功能一样,只要配合“蓝牙串口模块”,就可以让串口调试这一工作在你的Android只能设备上进行!软件的具体功能可以免费下载试用:[url=]http
    发表于 11-18 23:07

    NORDIC低功耗蓝牙4.0模块2.4G模块无线解决方案

    4.0无线鼠标方案随着蓝牙4.0的发展,IOS7, Android4.3,Windows 8均已实现蓝牙4.0的支持,你的计算机或笔记本上
    发表于 05-27 10:49

    如何通过蓝牙适配器实现ARM Linux开发板与Android智能终端数据互传?

    最近在做一个项目,有ARM+Linux开发板完成视频采集,并将视频实时传输到Android终端上。硬件设备:ARM CortexA8开发板,Android智能手机,USB
    发表于 04-20 15:36

    蓝牙无线温度传感中的应用

    抗干扰性能,采用外加电源方式对传感器供电。  2.3 无线传愉控制单元  随着蓝牙芯片单芯片的集成度越来越高和集成了芯片、Balun、晶振等各种蓝牙模块的面世,将
    发表于 11-13 10:46

    一个基于Android智能终端及FPGA的智能家居系统设计

    控制终端将成为未来智能家居系统发展的趋势。本系统以Android智能设备作为遥控终端,以FPGA作为主控中心处理器,通过
    发表于 07-02 07:55

    Android系统终端实现3G WIFI无线漫游

    本文提出了一种基于Android系统终端控制上实现3G到WIFI以及WIFI到3G 的无线漫游机制,分析了3G到WIFI的连接、认证、得到AP信息的过程。
    发表于 12-24 00:36 1726次阅读
    <b class='flag-5'>Android</b>系统<b class='flag-5'>终端</b><b class='flag-5'>实现</b>3G WIFI<b class='flag-5'>无线</b>漫游

    基于Android健康服务终端蓝牙传输软件的设计

    本文在一款基于Android操作系统的健康服务终端设计基础上,介绍了一种基于Android蓝牙应用程序的设计方法。通过分析
    发表于 05-25 14:34 95次下载
    基于<b class='flag-5'>Android</b>健康服务<b class='flag-5'>终端</b><b class='flag-5'>蓝牙</b>传输软件的设计

    基于Android系统终端实现3G WIFI无线漫游

    基于Android系统终端实现3G WIFI无线漫游
    发表于 01-13 22:02 3次下载

    基于蓝牙Android设备控制系统的架构及其下位机设计详解

    ATMEL 公司高效的RISC 内核的ATMEGA8 为核心,并集成蓝牙串行模块为通信信道。Android 设备通过
    发表于 10-21 09:44 4次下载
    基于<b class='flag-5'>蓝牙</b>与<b class='flag-5'>Android</b><b class='flag-5'>设备</b>控制系统的架构及其下位机设计详解

    一文讲透蓝牙、WiFi、ZigBee无线通信模块

    到一个 PCB 上,开发出所需的内置程序实现蓝牙功能的设备。可以通过相关接口和 MCU 控制设备进行数据传输、可
    发表于 11-19 14:21 29次下载
    一文讲透<b class='flag-5'>蓝牙</b>、WiFi、ZigBee<b class='flag-5'>无线</b>通信<b class='flag-5'>模块</b>

    一文讲透蓝牙、WiFi、ZigBee无线通信模块

    蓝牙是一种低成本、近距离无线技术标准。蓝牙模块将芯片和外围硬件电路集成到一个 PCB 上,开发出所需的内置程序实现
    发表于 05-30 10:46 0次下载
    一文讲透<b class='flag-5'>蓝牙</b>、WiFi、ZigBee<b class='flag-5'>无线</b>通信<b class='flag-5'>模块</b>

    蓝牙模块的作用是什么?

    蓝牙模块的作用是什么? 蓝牙模块是一种用于无线通信的设备,它
    的头像 发表于 09-08 11:47 2804次阅读

    蓝牙POS机无线数传方案

    蓝牙BLE低功耗数据传输技术的使用加持在POS机新应用技术。 可以与移动终端智能设备通过蓝牙配对功能,进行数据传输,
    发表于 08-19 15:31 1次下载