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

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

3天内不再提示

关于蓝牙的开源应用分析

贸泽电子 来源:djl 作者:贸泽电子 2019-08-20 16:28 次阅读

得益于开源软件的成功经验,Arduino开创了开源硬件(OSHW)模型,鼓励业余和专业工程师去学习、修改、宣传、制作和销售其设计的公开可用硬件产品。开源硬件在个人和商业应用中的作用借助其内置(或现成)的蓝牙互连不断扩大,虽然蓝牙5.0规范和随后推出的网格网络是非常重要的里程碑,但是蓝牙的低功耗特性将继续帮助开源硬件获得更广泛的应用,更重要的是配置蓝牙和云访问都是目前可行的技术方案,对于爱好者和工程师来说开源硬件和蓝牙无线连接将是一种潜在的强大工具。

开源硬件的作用

多年以来开源硬件(OSHW)一直没有引起人们的注意,主要的用户就是一些极客和爱好者,早期的产品主要是基于成熟的不复杂的处理器芯片,比如Atmel公司的ATmega3228 八位微控制器MCU)系列,这也使得开源硬价格便宜,更加亲民。然而最近几年内,创业公司和成熟的公司发现开源硬件能够帮助缩短硬件(和软件)的开发时间,从而让用户更加专注于产品差异化的设计,此外使用开源硬件能够降低风险,刺激创新。

开源硬件表现出的优势很快就吸引了一些老牌的和初创的芯片供应商,这涉及到几十亿美元的业务,对于每个芯片巨头如IntelTI等这都是一个全新的领域,比如开源硬件厂商Seeed Studio和SparkFun正在对外出售的单板计算机(SBC)就是符合开源模型的硬件产品。

当然成熟且稳定的开源硬件对于消费者来说也是受益的,工程师有一系列的单板计算机(SBC)产品可供选择,对于售价低于100美元(通常是低于50美元)的开源硬件,一般在校学生到大部分的电子工程师都可以负担的起,比如下面BeagleBoard开源硬件公司推出的BeagleBone Black单板计算机(如图1所示)。

图1:这款产品集成了足够大的Flash存储空间来存储GestIC库

这款单板计算机(SBC)采用的是Sitara ARM Cortex-A8 32位RISC微处理器,集成了512MB DDR3L 400MHz的SDRAM4GB Flash、USB2.0主从接口、网口等等,BeagleBone Black单板计算机足够的强大,能够运行操作系统,比如Linux、安卓,控制复杂的机器人或者管理一个家庭的安全系统。

为了完善更多的功能,最新版本的开源硬件单板计算机开始集成了高级的RF无线芯片,支持物联网IoT)和工业物联网(IIoT)的互联,IoT或者IIoT是一个全局的互联网络,智能计算机、软件、设备、机器、执行器、传感器等互相交换数据和指令,形成一个具有成千上万个应用的平台。

借助基于Web的集成开发环境(IDE)(一般兼容Arduino),一名具备基本编程技能但是没有RF经验的工程师都可以利用开源硬件开放的无线互联功能,这些应用可以是简单的数据记录(湿度、温度等),使用智能手机连接到云服务器更具测量结果出发一定的动作(比如发送一条消息或者触发警报)。

对于物联网(IoT)无线互联的作用

尽管我们知道智能手机连接到互联网看起来非常的简单,但是它的作用绝不是微不足道的。复杂(因此价格昂贵)的调制解调器执行高级的网络协议并且集成到智能手机(还包括计算机、平板电脑、路由等)中来保持各种连接。目前虽然在装备简单、资源限制传感器方面取得了一定的进展,但是在实现廉价、常规、可靠的IoT/IIoT连接之前还有一些不可避免的工程挑战要解决。

一些短距离和长距离的RF技术是建立常规连接的基础,但是低功耗蓝牙(蓝牙无线连接低功耗形式)具有一些关键的优势,这些优势包括低功耗(确保更长的电池寿命、较少的维护)、可以修订优化的开源标准以及多家供应商的支持,更多的优势则来自于更多的智能手机、平板电脑和可穿戴设备制造商的认可和采用。

低功耗蓝牙规范包括物理层(PHY)和固件栈,芯片供应商通常都会提供一个兼容标准的固件,让用户能够专注于自己应用程序代码的开发,经过开发工具的编译形成一个堆栈式的系统分层(如图2)。举个例子,工程师可以向固件中添加一些代码来实现处理、格式化数据,并周期性发送数据给智能手机端来显示温度趋势,处理过程听起来简单,即使使用非常便捷的开发工具,无线应用代码的开发也会让那些缺乏经验的人感到吃力。

关于蓝牙的开源应用分析

图2:低功耗蓝牙应用代码编译后放在蓝色部分执行,灰色部分为系统固件(来源:TI)

开源硬件单板计算机供应商已经在尝试解决应用层程序开发的问题,比如将对蓝牙的配置操作集成到用户熟悉的集成开发工具(IDE)中,工程师可以通过以太网或USB进行通信来配置单板计算机,可以说很容易就可以建立与智能手机或者其他集成蓝牙功能设备之间的无线连接。

蓝牙(BLE)的配置

UDOO Neo是一款信用卡大小的单板计算机,采用的是飞思卡尔(FreeScale)iMX6SoloX应用处理器,集成的是嵌入式ARM Cortex A9和M4内核,这款产品同样集成了SAM3X8E微控制器(MCU),支持安卓和Linux操作系统,此外集成的无线芯片(TI WiLink芯片)同时支持低功耗蓝牙和WiFi(IEEE 802.11 B/g/n)的无线连接。

一名相关专业的学生就可以利用Arduino IDE、教学材料、Arduino Sketch(Arduino公司对于代码块的命名)以及一些功能库来实现SAM3X8E MCU的功能代码,当然经验丰富的工程师可以使用C/C++PythonJava或者其他编程语言来实现MCU和i.MX应用处理器的应用程序。

用户可以利用Arduino IDE熟悉的开发环境来配置Neo板卡的无线功能,借助USB将单板计算机(SBC)与PC连接起来,然后打开网页控制面板进行相关设置(如图3)。网页控制面板包括NEO BLE蓝牙连接状态(此外还有WiFi、网络、USB的连接指示状态)。该网页控制面板还能够直接打开Arduino Web IDE开发环境方便程序开发,从网页控制面板板我们可以打开蓝牙,将该硬件设置为可搜寻的。从可用设备列表中选择一个设备激活与Neo板卡的无线连接,这个过程本质上与集成蓝牙功能的智能手机与蓝牙音箱建立连接一样简单。

关于蓝牙的开源应用分析

图3:UDOO的网页控制面板能够很容易的激活Neo板卡的无线连接(来源:UDOO)

然而将开源硬件单板计算机与智能手机进行配对,借助无线连接做一些有用的功能是两种完全不同的事情,控制链路上的数据传输需要一些基础的编码技能但是也不会难住一个熟悉Arduino IDE开发环境的工程师,比如烧写单板计算机的Flash实现板卡上一排led灯的闪烁。

当然我们还可以设计扩展板卡来实现单板计算机的无线连接功能,这在开源硬件社区里面很普遍,通过两块板卡上设计配对的连接器将两块板卡无缝的对接在一起,比如ST微电子的Nucleo板卡,它也是一款开源标准的单板计算机,采用的是STM32 MCU处理器(ARM Cortex M4内核),它与X-NUCLEO-IDB05A1扩展对接使其具备蓝牙(BLE)功能(如图4)。

图4:IDB05A1扩展板卡能够为Nucleo SBC板卡扩展蓝牙无线连接功能(来源:ST微电子)

Nucleo/IDB05A1另一个额外的优势来自于ST微电子参与 ARM mbed操作系统的开发,它是基于ARM MCU面向物联网低功耗设备的操作系统,部分开源提供一定的代码库资源,能够直接实现对Nudeo板卡的配置,支持一系列常见的应用,如心率监测应用程序,引入mbed代码库后经过编译后生成镜像文件,通过mbed IDE工具就可以下载到Nucleo SBC板卡中运行。

从智能手机上的STM32 BLE应用程序app中可以选择心率监测传感器(比如Nucleo),建立连接和数据通信后会将心率数据显示在智能手机的显示屏上。

接入云服务

在这些实例应用中,开源硬件单板计算机作为一种外设,将数据(比如从旋转编码器接收的数据)发送给智能手机设备,当然开发者们也正在研究使用UDOO、Intel、STM微电子SBC板卡作为中央设备开发更复杂的无线应用工程,采集多个无线外设传感器的数据,比如第三方蓝牙温度和湿度传感器。采集的数据会暂时保存在SBC板卡的Flash存储其中,稍后会发送给智能手机端App(SBC板卡相当于外围设备,智能手机充当中央单元)。

这个项目可以扩展更多丰富的功能,比如根据温度和湿度数据触发一些动作或者操作等,首先将采集的相关数据从同智能手机上传到云服务器,然后部署一定的触发服务,比如ThingSpeak.com,ThingSpeak类似的服务遵循条件判定的规则,数据输出完全依赖于输入的数据。比如一栋房子的三个房间的湿度超过70%就会向智能手机发送一个通知来提示打开除湿器。

使用蓝牙实现单板计算机(SBC)互联网的连接具有一定的挑战性,今天很多蓝牙固件包含因特网协议(IPv4或IPv6)与蓝牙协议的转换技术,但是实际上没有兼容性的商业无线路由设备来充当它们之间转换的中继站。一个解决方案就是选择第二块开源硬件单板计算机来充当中继设备,但是这无疑很简陋,而且需要对蓝牙固件开发和IPv6等网络协议和开发工具有深入的了解和开发经验。

对于一个没有RF相关经验的工程师来说,一个更简单的解决方案就是借助一个集成了无线通信功能的单板计算机(比如Arduino 101),这样就可以使用蓝牙来采集传感器的数据,转换后通过WiFi方式将数据上传到云服务器(WiFi路由器在我们的生活中无处不在)。

一些可用的开源资源如ThingSpeak推出的Arduino库文件大大简化了开发过程,能够轻松的实现单板计算机加入WiFi网络并且周期性将数据上传到ThingSpeak云服务器上等功能。

双向的无线连接能够接收传感器的数据,向网络网关(或者借助WiFi连接到云服务器)发送数据,此外还可以接收来自其他计算设备的数据或者指令,随着快速发展的物联网领域,无线连接将开源硬件单板计算机与“智能”密切的联系在一起,而且借助这些链接还可以进行操作系统、芯片固件的更新,通过软件补丁来维护系统的安全性。

总结

开源硬件单板计算机的无线互连需求越来越广泛,强大的开发工具的支持、适当的开发板卡价格使得几乎没有RF专业知识的工程师来说都可以很快的上手,这极大的增加了这些开源硬件产品所适用的范围和数量。集成无线功能的开源硬件单板计算机正在推动创新和资源共享潮流,这也是开源标准的源动力。

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

    关注

    112

    文章

    5430

    浏览量

    165664
  • 云服务
    +关注

    关注

    0

    文章

    751

    浏览量

    38628
收藏 人收藏

    评论

    相关推荐

    求助,关于蓝牙mac地址的批量写入问题求解

    在批量生产中,我需要每一个产品都有唯一的MAC地址。 我在调试的时候配置蓝牙组件的时候MAC地址都是一样的。 1.请问关于蓝牙的名称,MAC地址等信息,在批量生产的时候如何更改?是不是都写在了特定
    发表于 02-21 06:30

    关于蓝牙和wifi的学习资料

    求助:大家有没有关于蓝牙和wifi的学习资料呢?求分享。
    发表于 01-12 23:05

    关于蓝牙协议栈的应用

    新手刚学蓝牙,想问开源蓝牙协议栈是对于所有的蓝牙芯片通用吗?比如我有 ATSAMB11XR/ZR蓝牙芯片,我能使用Btstack协议吗?还
    发表于 08-01 10:34

    关于蓝牙安全机制的研究,不看肯定后悔

    关于蓝牙安全机制的研究,不看肯定后悔
    发表于 05-26 06:24

    关于蓝牙与WiFi共处技术的介绍

    关于蓝牙与WiFi共处技术的介绍
    发表于 05-28 07:21

    关于蓝牙核心模块CC2541的知识点总结的太棒了

    关于蓝牙核心模块CC2541的知识点总结的太棒了
    发表于 06-15 07:03

    你听过蓝牙的知识产权吗?关于蓝牙的知识产权你了解多少?

    你听过蓝牙的知识产权吗?关于蓝牙的知识产权你了解多少?蓝牙的测试认证可以分为哪几个方向?
    发表于 06-17 08:04

    关于蓝牙模块基础知识点介绍的太详细了

    关于蓝牙模块基础知识点介绍的太详细了
    发表于 10-08 06:56

    讲述关于蓝牙的基础知识和蓝牙模块的选型介绍

    的HC-053.HC蓝牙模块选型结语前言本文将讲述关于蓝牙的基础知识和蓝牙模块的选型介绍。对于开始学习蓝牙或者要用蓝牙做项目的你有一定的帮助
    发表于 01-18 07:40

    HarmonyOS关于蓝牙的相关资料下载

    版本3.0以下的蓝牙,低功耗蓝牙指的是蓝牙版本4.0以上的蓝牙。如果你对蓝牙感兴趣,可以看看 HarmonyOS
    发表于 04-01 10:21

    关于蓝牙技术的详细讲述

    关于蓝牙技术的详细讲述的主要内容:第1章 概述第2章 基带层协议第3章 链路管理器协议第4章 逻辑链路控制和适配协议第5章 服务搜索协议(SDP)第6章
    发表于 07-20 08:54 0次下载

    关于蓝牙无线通信资料下载

    关于蓝牙无线通信资料下载
    发表于 05-21 11:24 2次下载

    关于蓝牙的那些真真假假传说

    蓝牙技术联盟微信公众号开通以来,受到各位的的厚爱与支持,小编在此谢过~~!也有很多热心用户通过微信平台向我们发问,和我们沟通关于蓝牙(Bluetooth)开发的一些想法或建议。随着大量新用户的加入,问题也一波波来了。小编每天就在你们的提问里奋战,因为我的天职就是把你们的疑
    的头像 发表于 08-04 09:33 3653次阅读

    关于蓝牙的一些小知识你知道哪些

    蓝牙技术在耳机、手机、手表及汽车领域的普及为人们带来了许多便利,却也引发了人们对于蓝牙的一些误解。目前
    发表于 03-07 09:08 5305次阅读

    关于蓝牙模块的简易小车(基于51单片机)

    关于蓝牙模块的简易小车(基于51单片机)文章目录关于蓝牙模块的简易小车(基于51单片机)一、HC-05蓝牙模块及其引脚连接二、使用步骤1.蓝牙模块配对2.设置串口3.小车驱动部分代码4
    发表于 11-23 16:20 26次下载
    <b class='flag-5'>关于蓝牙</b>模块的简易小车(基于51单片机)