Android 手机对于Arduino蓝牙控制解决方案

1、Android系统概述

Arduino

Android 系统是 Google 公司基于 Linux 内核开发的移动端操作系统,适用于智能手机智能手表平板电脑等设备,最新的版本为 7.1。Android系统具有免费开源的优势,任何企业与个人都可以查阅公开的 API 文档,并在自己开发的应用中通过调用Android 系统所提供的接口来控制手机上的各类硬件。Android 系统采用了典型的分层架构,其基本原理是将 Linux 内核和 C/C++运行库结合在一起,通过应用程序框架为开发者提供服务。

Android 系统中的应用程序主要采用 Java 语言进行编程开发,包括四个主要组件:Activit(功能表示)、Service(后台服务) 、BroadcastReceiver(广播管理)和Content Provider(数据存储)。

2、Arduino平台概述

Arduino 是一款简单灵活、便于学习和掌握的开源电子原型平台,主要包含硬件设备(各种型号的Arduino开发电路板)和软件开发环境(ArduinoIDE)。它由意大利开发团队 Arduino 研发,并以免费授权的方式发布在互联网上,第三方开发者在使用该设计时仅需声明原始 Arduino团队的贡献后即可免费使用。

Arduino的开发环境被称为 Based on Process-ing,并拥有自己的编程语言 Wiring,其语法格式与Java 相近,这一特点非常便于那些拥有 Android 开发经验的程序员在短时间内掌握其开发技术Wiring 程序在 PC平台上的开发环境中编辑好之后,可以通过 USB 连线上传至相应的开发电路板即可直接控制电路板上的各类传感器和机械设备完成程序中设定的动作。

在此过程中,程序代码的编译工作由电路板上的微控制器负责进行,并将编译完成的二进制码烧录在微控制器中。基于 Arduino平台开发的软件项目可以通过编写支持类库的方式来实现与其他软件平台(如AndroidC++等)进行控制与通信。当前基于移动终端与 Arduino 平台的项目开发中,主要使用的有基于 Android 平台的ArduinoDroidJarduino类库基于iOS平台的 Arduino Simulator 2X FullPack v2.6 HDSimduino 等。

3、Android 对 Arduino的蓝牙控制功能的实现

Arduino蓝牙控制解决方案

基于当前移动终端操作系统市场以 Android 平台为主流的现状,本文主要对 Android+Arduino的蓝牙控制机制进行了研究。

3.1实现原理

在本文所设计的蓝牙控制方案中,数据通信的实现是基于蓝牙协议簇中的 SDP协议和 RFCOMM 协议来实现的,蓝牙协议主要包括两大类(控制栈协议与主机栈协议),分别用于管理和访问无线接口以及处理高级数据。SDP 是蓝牙协议体系的核心,是全部功能的基础。在蓝牙通信过程中客户端只能通过 SDP 协议才能获取到设备信息服务信息及服务特征。

在此基础上建立数据连接RFCOMM作为主机栈协议,开发者可以通过该协议所提供的数据流在各设备的蓝牙模块之间建立可靠的连接,并实现数据传输与控制功能。蓝牙设备的 MAC 地址(BD_ADDR)为 48 位的二进制代码并用十六进制数进行描述,BDADDR 分为三个部分,分别为 24 位的 LAP8 位的UAP和16 位的NAP。其中 LAP 部分为产品编号UAP 与NAP为制造商编号,它们一起共同构成了蓝牙硬件的全球唯一标识。

Android 平台上的应用程序是通过AndroidSDK 中提供的蓝牙API来实现用移动设备(手机或平板电脑)上的蓝牙设备模块的,这些 API的功能有:

1)搜索附近的牙设备

2)读取本机蓝牙设备的状态信息与连接记录

3)基于 SDP 协议,建立不同设备之间的连接;

4)基于 RFCOMM 协议,在设备间可靠的传输数;

5)对建立的蓝牙连接进行管理。

Android 蓝牙 API主要包括经典蓝牙(API17/系统版本 4.2及以下)和低功耗蓝牙(API18/系统版本 4.3 版本及以上)两大类,考虑到向下兼容性的问题,本文所选用的是经典 API。实现 Android 手机对 Around 平台的控制主要分为四个步骤,所调用的开发类名称有:

BluetoothAdapter;用于标识本地蓝牙设备,功能包括蓝牙的开启/关闭、搜索其他的蓝牙设备、获取本机蓝牙设备状态、曾经连接过的蓝牙信息等;Socket:是封装了 TCP/IP 编接口(API)用于实现网络应用程序间的数据通信;

BluetoothDevice;用于标识远程蓝牙设备,在设备间建立连接并获取对方设备的名称MAC等信息以及双方蓝牙设备的配对状态;

BluetoothSocket;用于标识蓝牙 Socket 接口,应用程序之间通过输入/输出流在蓝牙设备间传输各类数据;

BluetoothServerSocket;用于标识代开放的服务端网络端口,其功能是监听其他设备所发送的连接请求,当连接请求被响应并创建的时候,BluetoothServerSocket 会返回该连接的 BluetoothSock-et;

BluetoothClass:用来获取蓝牙设备的通用特性和功能,可以用来判断蓝牙的类别。此外,由于Android 系统对各类硬件的访问操作都需要相应的授权,在开发过程中需要在文件中加 android,permission.BLUETOOTH 和 an-droid.permission,BLUETOOTH-ADMIN以获取权限。

出处:太原学院学报

原标题:Android 手机对Arduino电子原型平台的蓝牙控制机制研究

作者:杨 寅 苏 彬

参考资料

https://www.hooketech.com/arduino-bluetooth-control-solution.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/300134.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频音频转换:Movavi Video Converter 2022 Premium

Movavi Video Converter 2022 Premium是一款功能强大的视频转换软件,由知名的Movavi公司开发。这款软件的主要特点是可以将视频文件转换成多种不同的格式,如AVI、MP4、MKV、FLV、3GP等,以满足用户在不同设备和平台上的需求。 除了转换功能&a…

基于STM32和MQ-2传感器的无线烟雾检测系统设计

随着科技的不断发展,人们对生活安全的要求也越来越高。其中,烟雾检测系统在预防火灾方面起着至关重要的作用。本文将介绍一种基于STM32和MQ-2传感器的无线烟雾检测系统设计,旨在实时检测环境中的烟雾,并及时发出警报,以…

分布式面试题-理论部分(十二道)

文章目录 分布式面试题(十二道)分布式理论1. 说说CAP原理2. 为什么CAP不可兼得呢?3. CAP对应的模型和应用?4. BASE理论了解吗? 分布式锁5. 有哪些分布式锁的实现方案呢?**5.1 MySQL分布式锁如何实现呢&…

SICP : The Elements of Programming

好的计算机编程语言应具备的三个特性 基础单元表达式,计算机编程语言最最最基础单元,理应具备的表达式组合的能力,能够通过基础单元表达式组合成更复杂的元素抽象的能力,能通过复杂的元素抽象成更高层的单元 基础单元表达式 加 …

Hazel macOS自动化清理

Hazel是一款在Mac平台上的自动化文件管理工具,它可以帮助用户自动化处理文件,从而提高工作效率和减少重复性任务的时间和精力。以下是Hazel软件的功能特色: 强大的自动化处理功能:Hazel可以根据用户设定的规则,自动执…

助力打造清洁环境,基于轻量级YOLOv8开发构建公共场景下垃圾堆放垃圾桶溢出检测识别系统

公共社区环境生活垃圾基本上是我们每个人每天几乎都无法避免的一个问题,公共环境下垃圾投放点都会有固定的值班时间,但是考虑到实际扔垃圾的无规律性,往往会出现在无人值守的时段内垃圾堆放垃圾桶溢出等问题,有些容易扩散的垃圾比…

正则表达式:元字符

一、什么事元字符 正则是由一系列的元字符组成的,所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,元字符是构成正则表达式的基本元件。 二、元字符的分类 1.特殊单字符 效果: ①.任意字符(换行符除外)&…

Flink电商实时数仓(六)

交易域支付成功事务事实表 从topic_db业务数据中筛选支付成功的数据从dwd_trade_order_detail主题中读取订单事实数据、LookUp字典表关联三张表形成支付成功宽表写入 Kafka 支付成功主题 执行步骤 设置ttl,通过Interval join实现左右流的状态管理获取下单明细数据…

[内功修炼]函数栈帧的创建与销毁

文章目录 1:什么是函数栈帧2:理解函数栈帧能解决什么问题呢3:函数栈帧的创建与销毁的解析3.1:什么是栈3.2:认识相关寄存器与汇编指令相关寄存器相关汇编指令 3.3 解析函数栈帧的创建和销毁3.3.1 预备知识3.3.2 详细解析一:调用main函数,为main函数开辟函数栈帧First:push前push…

麦肯锡产品经理问题解决流程终极指南

您是否想知道世界上最成功的产品经理如何始终如一地提供不仅满足而且超出预期的解决方案?秘密可能就在于世界上最负盛名的咨询公司之一麦肯锡公司所磨练的方法论。本文深入探讨了麦肯锡的问题解决流程,该流程专为希望提升水平的产品经理量身定制。 01. 麦…

NET中使用SQLSugar操作sqlserver数据库

目录 一、SqlSugar是什么? 二、迁移和建表 1.建立实体 2.创建上下文类 3.在Program中添加SqlSugar服务 4.在控制器中注入上下文类 三、简单实现CURD功能 总结 一、SqlSugar是什么? SqlSugar是一款老牌 .NET 开源ORM框架。 主要特点&#xff1a…

致远互联FE协作办公平台 editflow_manager.jsp SQL注入漏洞

漏洞描述 致远互联FE协作办公平台是一款为企业提供全方位协同办公解决方案的产品。它集成了多个功能模块,旨在帮助企业实现高效的团队协作、信息共享和文档管理。致远互联FE协作办公平台editflow_manager存在sql注入漏洞,攻击者可以获得敏感信息。 资产…