天道酬勤,学无止境

如何使用基于HM-10蓝牙模块的BLE Shield?(How to use BLE Shield based on HM-10 bluetooth module?)

问题

我是arduino项目的新手。 我想请你帮忙。 我从 ( http://imall.iteadstudio.com/development-platform/arduino/shields/im130704001.html ) 为 Arduino 购买了 BLE Shield。 他们使用Hm-10蓝牙模块(http://www.jnhuamao.cn/bluetooth.asp?ID=1)制作了这个盾牌。 Itead Studio 没有使用此屏蔽的示例代码。 我不知道如何编程或从 Arduino 发送 AT 命令。

我阅读了数据表(ftp://imall.iteadstudio.com/Shield/IM130704001_ITEAD_BLE_Shield/DS_IM130704001_ITEAD_BLE_Shield.pdf)中的“AT命令”,并尝试使用此代码(http: //arduino.cc/en/Reference/SoftwareSerial )但我只收到了命令。

这里有人用过这个 HM-10 蓝牙模块吗?

我需要一些 arduino 草图来寻求帮助!

回答1
#include <SoftwareSerial.h>

  int led         = 13;
  int bluetoothTx = 2;
  int bluetoothRx = 3;
  SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); 
  int baudrate[8] ={4800,9600,14400,19200,28800,38400,57600,115200};
  int i = 1;

void setup() {
  Serial.begin(9600);
  bluetooth.begin(9600);
  while(!Serial){}

  Serial.write("AT sent");
  delay(500);
  bluetooth.write("AT+NAME?");
  delay(500);
  while (bluetooth.available()) {
     Serial.write(bluetooth.read());
   }
  delay(100);
  Serial.println("");

  bluetooth.write("AT+POWE3");
  delay(500);
  while(bluetooth.available()) 
  {
    Serial.write(bluetooth.read());
  }
  delay(100);
  Serial.println("");

  delay(500);
  bluetooth.write("AT+CHAR?");
  delay(500);
  while (bluetooth.available()) {
     Serial.write(bluetooth.read());
   }
  delay(100);
  Serial.println("");

  delay(500);
  bluetooth.write("AT+NAMEFlightline"); //Check Status
  delay(500);
  while (bluetooth.available()) {
      Serial.write((char)bluetooth.read());

    }

  Serial.println("");
  bluetooth.write("AT+CHAR0x2901"); //add charicteristic
  delay(500);
  while (bluetooth.available()) {
      Serial.write(bluetooth.read());

    }
  Serial.println("");
  bluetooth.write("AT+RELI0"); 
  delay(500);
  while (bluetooth.available()) {
      Serial.write(bluetooth.read());
    }
  Serial.println("");
  bluetooth.write("AT+SHOW1");
  delay(100);
  while (bluetooth.available()) {
      Serial.write(bluetooth.read());

    }
  Serial.println("");

  pinMode(led,OUTPUT);
  digitalWrite(led,HIGH);
}

void testAllBaudRates(){
  for(int j=0; j<8; j++)
   {
      bluetooth.begin(baudrate[j]);
      delay(100);
      Serial.println("boud rate " + String(baudrate[j],DEC) +" i-> "+String(j,DEC));
     // Serial.println("");
      bluetooth.write("AT");
      delay(500);
      while (bluetooth.available()) {
        Serial.write(bluetooth.read());
        Serial.println();
       }
       delay(100);
   }
}                                            

// and now a few blinks of the  LED, 
// so that we know the program is running

void loop()
{
  //Read from bluetooth and write to usb serial
  while(bluetooth.available())
  {
    char toSend = (char)bluetooth.read();
    if(toSend == 'x'){
       digitalWrite(led,HIGH);
       Serial.println("set high");
       bluetooth.write("RXOK");
    }else if(toSend == 'y'){
      digitalWrite(led,LOW);
      Serial.println("set low");
      bluetooth.write("RXOK");
    }
    Serial.print(toSend);

  }

  //Read from usb serial to bluetooth
  while(Serial.available())
  {
    char toSend = (char)Serial.read();
    bluetooth.write(toSend);
    Serial.print(toSend);
  }
}

看看我上面的草图,我有几件事要指出我浪费了时间。

确保你有线路

while(!Serial){}

或者您可能有一个工作屏蔽,但由于串行监视器没有准备好而错过响应。

请记住,如果蓝牙模块连接到设备,您将不会收到来自蓝牙模块的响应,以及来自串行监视器的命令。 当灯停止闪烁时,它已连接到设备。

如果你运行这个草图,你应该得到这个输出

AT sent
OK+Set:3
OK+Get:0x2901  <- this may be blank the first time you run it
OK+Set:Flightline
OK+Set:0x2901
OK+Set:0
OK+Set:1

可以在这里找到最全面的 AT 命令列表

[All the AT commands and a good explanation][1]

您将需要像我在这里所做的那样对设备进行特性

bluetooth.write("AT+CHAR?");

或者你会发现它可以连接到 iOS 和 Android

如果您连接到 Android,请使用 BluetoothLE 类而不是蓝牙类。

回答2

您可以使用带有波特率自动检测功能的草图来控制您的 HM-10。 这是 Apploader 项目的一部分,允许通过 BLE 上传到 Arduino 板。

回答3

这也有点晚了,但请尝试以下代码,如果您发送“AT”,它应该会给您一个“OK”:

#include <SoftwareSerial.h>  

int bluetoothTx = 2;  // TX-O pin of bluetooth mate, Arduino D2
int bluetoothRx = 3;  // RX-I pin of bluetooth mate, Arduino D3

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup()
{
  Serial.begin(9600);  // Begin the serial monitor at 9600bps

  bluetooth.begin(115200);  // The Bluetooth Mate defaults to 115200bps
  delay(100);  // Short delay, wait for the Mate to send back CMD
  bluetooth.println("U,9600,N");  // Temporarily Change the baudrate to 9600, no parity
  // 115200 can be too fast at times for NewSoftSerial to relay the data reliably
  bluetooth.begin(9600);  // Start bluetooth serial at 9600
}

void loop()
{
  if(bluetooth.available())  // If the bluetooth sent any characters
  {
    // Send any characters the bluetooth prints to the serial monitor
    Serial.print((char)bluetooth.read());  
  }
  if(Serial.available())  // If stuff was typed in the serial monitor
  {
    // Send any characters the Serial monitor prints to the bluetooth
    bluetooth.print((char)Serial.read());
  }
  // and loop forever and ever!
}

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • How to use BLE Shield based on HM-10 bluetooth module?
    I'm a new bie on arduino projects. I would like to ask you for some help. I bought a BLE Shield for Arduino from ( http://imall.iteadstudio.com/development-platform/arduino/shields/im130704001.html ). They made this shield using Hm-10 Bluetooth module(http://www.jnhuamao.cn/bluetooth.asp?ID=1). Itead Studio has no sample codes using this shield. I have no idea on how to program it or send AT commands from Arduino. I read the “AT commands” at the data sheet (ftp://imall.iteadstudio.com/Shield/IM130704001_ITEAD_BLE_Shield/DS_IM130704001_ITEAD_BLE_Shield.pdf) and I tried to send "AT commands”
  • 如何使用蓝牙信号(BLE)唤醒iOS应用(How to wake up iOS app with bluetooth signal (BLE))
    问题 将BLE与CoreBluetooth(no iBeacon)结合使用时,是否有一种方法可以在设备收到蓝牙信号时唤醒未运行的应用程序? 我正在使用RedBearlab的BLE Shield(http://redbearlab.com/bleshield/)模拟信标。 谢谢,丹 *更新03/05/14 * 看来Apple引入了iOS 7.1的重大更新:现在,iOS如果检测到与您的应用程序匹配的UUID,将会为您打开您的应用程序。 该应用程序仅需要安装,而不必运行(AppDelegate中的逻辑需要应答唤醒呼叫)。 回答1 如果该应用程序在后台运行,然后关闭(我的意思是此处已终止-双击主屏幕按钮后您不再在后台应用程序列表中看到它),则由于其他应用程序的内存压力,iOS将请注意在调用代理时再次唤醒它(假设您在.plist中列出了后台模式)。 如果该应用程序在后台运行,然后被用户关闭(同样,我的意思是此处已终止。因此,用户双击以获取在后台运行的应用程序的列表,然后在背景列表中单击您的应用程序,直到它摆动并然后按一下应用程式旁边的[x]即可杀死它),这明确表示使用者不希望该应用程式在背景上执行,而且该应用程式不会重新启动。 用户必须重新启动其代表的应用程序,才能在后台再次开始运行(iOS7中的新增功能)。 更新:我不确定这是否在文档中,但是否在CoreBluetooth WWDC
  • 如何在Windows 8桌面中扫描低功耗蓝牙设备?(How to scan for Bluetooth Low Energy devices in Windows 8 Desktop?)
    问题 如何在Windows-8桌面中扫描低功耗蓝牙设备? 我试图使用WinSock API,但我所得到的只是Bluetooth Classic设备。 我也尝试过使用蓝牙API,但是我得到的只是蓝牙经典设备。 我知道这是可能的,因为Windows正在这样做。 例如,我可以运行C:\ Windows \ System32 \ DevicePairingWizard.exe ,它将显示所有设备的列表(经典和低能耗)。 回答1 如果其他人正在寻找答案。 在Windows 8(Desktop&Metro App)中,没有用于BLE设备发现和配对的API。 这不是缺乏实现,而是设计使然。 Windows人士希望我们使用“收件箱体验”来搜索和配对BLE设备。 有关更多详细信息,请参见此MSDN论坛线程。 祝你好运! 回答2 您可以使用可以通过串行接口控制的BLE硬件模块。 根据您的用例,这可能不是您想要的,因为它没有利用Windows 8的内部BLE堆栈! 基本上,此解决方案用于修补/开发。 我知道这两个设备可以做到这一点,并且具有用于BLE发现的API: HM-10:http://imall.iteadstudio.com/im130614001.html BLE112:https://www.bluegiga.com/zh-CN/products/bluetooth-4.0-modules
  • 如何优雅地排查华为接触卫士—1错误码
    接触卫士(Contact Shield)是HMS Core提供的基于低功耗蓝牙(Bluetooth Low Energy,简称BLE)的接触诊断基础服务。各国政府组织可以使用接触卫士API开发新冠病毒接触跟踪的应用。在保护用户隐私的基础上,实现和其他手机的互通,帮助用户诊断是否接触了病毒感染者,从而减少新冠病毒的蔓延。 接触卫士的工作原理 1. B的手机会根据每天的周期性密钥(Periodic Key)生成动态共享码(Dynamic Sharing Code,简称DSC)集合,再通过BLE向周围广播DSC。 2. A的手机扫描到B的手机广播的DSC后,记录当前时间戳和蓝牙接收信号强度(Received Signal Strength Indicator,简称RSSI),并将这些数据存储至本地数据库中。 3. 假如B被确诊为COVID-19患者,App获取B的授权后将病毒潜伏期(默认14天)内的周期性密钥上传至App或公共卫生机构指定的服务器。此时,B的周期性密钥称为共享密钥(Shared Key)。 4. A的App定时从服务器下载确诊者的周期性密钥的压缩文件,并调用接触卫士(Contact Shield)进行接触诊断,并根据App提供的共享密钥推导出确诊者曾经广播的DSC集合。 5. 接触诊断过程中
  • 通过蓝牙在iOS和Android之间传输数据?(Transfer data between iOS and Android via Bluetooth?)
    问题 我一直在阅读如何使用GameKit通过蓝牙在iOS设备之间传输数据。 我本质上不是在写游戏,但是确实需要在两个设备之间传输少量的二进制数据。 在两个iOS设备之间,这很容易。 但是,我想知道是否可以通过相同的机制在iOS设备和Android设备之间传输数据。 有没有人遇到过说明如何做到这一点的文档/教程? 在技​​术上甚至可行吗? 还是苹果采取了某种限制措施来防止这种情况发生? 我发现的另一个选择是通过蓝牙的Bonjour。 对于这种类型的操作,这会是一个更合适的选择吗? 回答1 这个问题在这个网站上已经被问过很多次了,最终的答案是:不,您不能通过蓝牙将Android手机连接到iPhone ,是的苹果公司对此有限制。 一些可能的选择: 正如您所提到的,通过WiFi的Bonjour。 但是,我找不到适合它的全面教程。 一些基于Internet的同步服务,例如Dropbox,Google Drive,Amazon S3。 这些通常具有用于多个平台的库。 通过套接字直接进行TCP / IP通信。 (如何在iOS中编写小型(套接字)服务器) 解决Android方面的问题后,低功耗蓝牙将成为可能(iOS和Android之间通过Bluetooth LE进行通信) 最酷的选择:使用凹凸API。 它具有iOS和Android支持,并且非常易于集成。 对于较小的有效载荷
  • Corebluetooth,如何获得唯一的UUID?(Corebluetooth, How to get a unique UUID?)
    问题 我的问题是CBPeripheral的UUID似乎不是唯一的。 我有两个iPad2和一个Bluetooth4.0设备。 蓝牙设备的UUID与两个iPad不同。 如下图所示。 有什么方法可以在iOS设备上找到唯一的蓝牙设备的UUID? 我需要找到在不同设备之间不会更改的UUID或mac地址。 非常感谢您,请帮帮我!! 回答1 外设使用随机可解析的地址,该地址至少每15分钟更改一次,届时外设将显得很新。 要更改此行为,您需要与外围设备配对,然后您将看到UUID并将其保持不变。 回答2 我一直在寻找一种方法来部署与平台无关的BLE设备的静态配置。 我感到沮丧(Apple的UUID +/-毫无意义,并且无法从CoreBluetooth访问在大多数/所有其他平台上可以获得的MAC / BDADDR)。 幸运的是,我注意到“设备信息服务”配置文件(0x180A)包含一个“系统ID”属性(0x2A23),该属性对设备的唯一MAC / BDADDR地址进行了编码。 但是,我不知道BLE设备是否必须公开此服务。 回答3 为了回答您的问题,给定相同的iDevice-btDevice对,UUID是唯一的,但是如您在尝试中注意到的那样,如果您更改iOS设备,UUID也会更改。 不幸的是,要达到拥有唯一标识符的目标,您必须修改固件并添加应用程序标识符。 回答4 如果您开发和控制Bluetooth 4.0
  • 详解蓝牙空中升级(BLE OTA)原理与步骤
    如何实现BLE OTA?什么叫DFU?如何通过UART实现固件升级?又如何通过USB实现固件升级?怎么保证升级的安全性?什么叫双区(dual bank)DFU?什么叫单区(single bank)DFU?什么叫后台式(background)DFU?本文将对上述问题进行探讨。DFU过程中涉及的所有操作步骤所对应的脚本都放在百度云盘上,云盘链接如下所示:链接: https://pan.baidu.com/s/1FKTfY3Q_zBVvviO7KC7Gyg#list/path=%2Fblog 密码: y8fb脚本是按照SDK版本进行分类的,建议大家把自己SDK版本对应的脚本下载下来,然后跟着第3章的操作步骤一步一步去实现自己的DFU。 1.概述所谓DFU(Device Firmware Update),就是设备固件升级的意思,而OTA(Over The Air)是实现DFU的一种方式而已,准确说,OTA的全称应该是OTA DFU,即通过空中无线方式实现设备固件升级。只不过大家为了方便起见,直接用OTA来指代固件空中升级(有时候大家也将OTA称为FOTA,即Firmware OTA,这种称呼意思更明了一些)。只要是通过无线通信方式实现DFU的,都可以叫OTA,比如2G/3G/4G/WiFi/蓝牙/NFC/Zigbee,他们都支持OTA。DFU除了可以通过无线方式(OTA)进行升级
  • Bluetooth BR/EDR和BLE的区别
    Bluetooth BR/EDR和BLE的区别 Bluetooth BR / EDR(蓝牙基本速率/增强数据速率)和BLE是蓝牙核心规范中的两个主要蓝牙技术,它们之间存在以下几个主要区别。 物理通道 所有无线电通信均发生在预定义的频道上,并且BLE使用的信道与Bluetooth BR / EDR略有不同,特别是BLE 引入了广播信道。 BR / EDR:79个频道,频道索引为0〜78,覆盖范围2400〜2483.5MHz​ BLE:40个频道,频道索引为0〜39,覆盖范围为2400〜2483.5MHz,其中频道37、38和39为广播频道(ble 5.2 允许使用其他的频道进行第二广播) 能量消耗 低功耗是BLE的一大亮点。仅使用纽扣电池,BLE设备即可运行数月甚至数年。蓝牙智能的灵活配置还可以使应用程序更好地管理连接间隔(连接间隔),从而优化接收器的占空比。对于蓝牙BR / EDR,由于其较高的数据吞吐量,因此功耗会相应增加。 拓扑结构 BR / EDR支持星形拓扑的Piconet,也支持Scatternet的Piconet。在Scatternet中,每个微微网都有一个主设备,而从属设备可以基于时分复用参与不同的微微网。​ BLE 4.1版本支持“双模式”,该模式允许BLE设备同时扮演“中央”和“外围设备”两个角色。支持中心角色的设备可以启动与外围设备的连接
  • TB-02 Kit开发板及TB系列BLE蓝牙模块固件及天猫精灵三元组串口烧录工具操作方法说明及固件市场介绍(基于泰凌微TLSR8258芯片)
    摘要 这篇文章介绍如何通过烧录工具给TB系列蓝牙模块烧录固件及天猫精灵三元组,以及如何通过烧录工具的固件市场下载最新的固件及固件操作说明文档。 获取烧录工具 安信可团队针对TB系列蓝牙模块专门开发了烧录软件上位机工具,工具主要用python写成,可同时支持Windows,Linux,macOS平台,目前只提供Windows平台打包好的可执行文件,其他平台用户可下载源码自行打包。 1.5.0版本烧录工具下载地址:https://ai-thinker.oss-cn-shenzhen.aliyuncs.com/TB_Tool/Ai-Thinker_TB_Tools_V1.5.0.exe 烧录工具源码地址:https://github.com/Ai-Thinker-Open/TBXX_Flash_Tool 自动烧录接线方法 TB-02 Kit开发板已经包含了自动下载电路,如果你使用的是开发板,直接通过USB线将模块连接电脑安装CH340串口驱动即可实现烧录。如果你是用的是单个模块,可按照下面的方法接线实现自动烧录(USB转串口要有DTR和RTS引脚): TB-01模块接线方法: USB To TTLTB-01模块VccGndGndTxRxRxTxRTSVCCDTRSWS(背后圆点) TB-02/03/04模块接线方法: USB To TTLTB
  • nrf51822蓝牙学习笔记二
    目录 蓝牙协议简要图应用层控制层 主机主协议层:通用访问规范(GAP)角色广播扫描发起连接 通用属性配置文件(GATT)角色GATT规范层次属性特性描述符服务profile(数据配置文件) 代码讲解协议栈初始化初始化时钟协议栈使能设置回调 GAP初始化设置设备名称其他 广播服务初始化连接参数更新初始化开始广播主循环 目前手里面有几个项目用的是nrf51822这款蓝牙芯片。由于我从未接触过蓝牙协议,所以在很多地方磕磕绊绊的,所以最近准备系统学习一下该芯片。并做一下笔记放在我的博客里面。系统学习资料来源于B站青峰电子。视频名称为 蓝牙nrf51822视频教程资料 编程开发 协议栈开发 青峰电子例程。 蓝牙协议简要图 应用层 SIG官方网站已经发布了GATT规范列表,包括警告通知、血压测量、心率、电池等等。 在ble_services中有已经进行通用定义的一些服务。如ble_bas是电池服务等。 控制层 1,主机控制器(HCI) 也称设备管理器,是基带中的一个功能模块,控制一般的蓝牙设备行为。负责所有与数据无关的蓝牙系统操作,例如询问附件蓝牙设备是否存在,连接蓝牙设备或者让本地的蓝牙设备可以被其他设备发现和连接。 为了实现响应的功能,设备管理器要求通过基带的资源控制器访问传输媒介。同时,设备管理器还通过HCI命令提供本地设备行为的控制功能。 2,链路层(LL) 负责链路管理、链路控制
  • 物联网的智能世界–低功耗蓝牙
    蓝牙在通过PC和手机连接的无线人机接口设备和音频外围设备中找到了利基市场,从而刺激了市场。尽管低功耗Wi-Fi设备的进步为某些应用提供了替代性连接,但是对蓝牙的需求仍然强劲。另一方面,由于BLE的外形灵活性,手机易用性和超低功耗特性,BLE已发展成为瑞士军刀的连接工具。BLE正在取代ZigBee等专有协议,成为低功耗,低成本IoT设备中事实上的连接标准。 最近的更新BLE 5.0和BLE 5.1改进了BLE的规范,推动了这一增长。例如,改进后的范围可确保可以从房屋中的任何地方完美连接任何BLE设备(例如智能传感器,智能锁或灯泡)。这是实现真正的智能家居的关键一步。扩大范围还使诸如智能手表之类的设备受益,因此它们可以从位于不同房间的智能手机接收即时通知。 另一个重大改进是数据速率的显着提高,使信息传输更加丰富和智能。无连接服务(例如提供上下文感知的信标)将能够传输更多信息。例如,信标将能够传输实际内容,而不是仅通过URL指向内容。这有可能通过转向无连接物联网而不是当前的蓝牙配对设备模型来重新定义当今蓝牙设备传输信息的方式。这也可以使BLE应用程序(例如资产跟踪和智能废物管理)更智能地使用BLE Mesh网络。 但是,这些改进的功能在DMIP和内存方面也需要改进的处理器。基础硬件(即SoC或MCU)必须更改以支持这些功能。对于大多数物联网应用程序来说,安全性是不可或缺的不可或缺的功能
  • 蓝牙BLE详解
    一、什么是蓝牙? 蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙,而将蓝牙4.0规范下的LE蓝牙称为低功耗蓝牙。 很多人对蓝牙的认识还很局限于手机领域,其实蓝牙的应用已经远远不止于此。过去几年里,蓝牙的增长量就达到了80%,当然,低功耗蓝牙的出现也起到关键的作用,相信未来蓝牙会开创一个可交互的物联世界。 蓝牙4.0标准包括传统蓝牙模块部分和低功耗蓝牙模块部分,是一个双模标准。低功耗蓝牙也是建立在传统蓝牙基础之上发展起来的,并区别于传统模块,最大的特点就是成本和功耗降低,应用于实时性要求比较高。BLE(Bluetooh Low Energy)蓝牙低能耗技术是短距离、低成本、可互操作性的无线技术,它利用许多智能手段最大限度地降低功耗。BLE技术的工作模式非常适合用于从微型无线传感器(每半秒交换一次数据)或使用完全异步通信的遥控器等其它外设传送数据。这些设备发送的数据量非常少(通常几个字节),而且发送次数也很少(例如每秒几次到每分钟一次,甚至更少)。 二、BLE协议栈的结构和配置 1、协议有两个部分组成:Controller和Host2、Profiles和应用总是基于GAP和GATT之上3、在单芯片方案中,Controller和Host,profiles,和应用层都在同一片芯片中4、在网络控制器模式中
  • 如何实现扫码连接BLE 设备的功能(以nRF5 为例)?
    文章目录 前言一、nRF5 SDK 开发环境搭建1.1 nRF5 SDK和SoftDevice 版本选择1.2 IDE 和J-Link 版本选择 二、扫码连接功能开发2.1 ble_app_uart_c 工程简介2.2 GAP(目标设备发现和连接过程)2.2.1 设置并启用过滤器2.2.2 启用匹配即连接功能2.2.3 设置扫描与连接参数2.2.4 为扫描过程注册事件处理函数 2.3 GATT(NUS服务发现和交互过程)2.3.1 BLE 协议栈初始化2.3.2 配置MTU 交换过程2.3.3 NUS 服务发现过程2.3.4 NUS 服务访问过程 2.4 UART(串口外设初始化和访问过程)2.4.1 UART 模块初始化2.4.2 处理UART 接收到的地址信息 三、扫码连接功能验证3.1 扫码连接功能验证3.2 新增获取RSSI 功能 更多文章: 前言 现在大部分蓝牙设备都不具备输入输出功能,主要靠蓝牙主机扫描发现周围的蓝牙从机,蓝牙从机需要处于广播模式才能被主机发现。蓝牙主机会将扫描发现的从机设备展示在一个列表中,你可以根据设备名称、类型和图标等信息,选择要连接哪一个从机设备。 如果周围有多个设备名称、类型和图标等信息都相同的从机设备,该怎么区分彼此呢?这种情况在物联网设备普及的当下也是经常遇到的。如果多个从机设备与蓝牙主机的距离有明显差异
  • 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ② 如何实现 微信小程序蓝牙控制 Ble Mesh模组 安信可TB02,全部开源!
    本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。 1、小白也痴迷,如何在 Linux环境搭建编译烧录 安信可TB02,点亮一盏LED灯; 2、如何实现 微信小程序蓝牙控制 Ble Mesh模组 安信可TB02,全部开源! 文章目录 前言 一、材料准备二、实现过程三、蓝牙模块初始化四、微信小程序编程4.1 搜索设备4.2 连接设备4.3 获取服务列表4.4 获取服务下的特征列表4.5 如何接受设备发来的数据4.6 如何发送数据到设备另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈! 前言 接着上篇环境搭建,我们这篇玩下如何通过微信小程序蓝牙控制TB02开发板; 接触微信硬件生态已经有2年了,微信客户端如果能够实现以蓝牙控制设备,无非是从微信公众号或微信小程序入手,但微信公众号蓝牙控制设备,那么设备必须支持AirSync协议; AirSync协议已经很久很久没有维护了,个人认为官网已经不维护了!如果想要通过微信公众号蓝牙控制设备,那么设备必须支持AirSync协议,而且要经过微信硬件平台认证才可以发布!而安信可TB02开发板暂不开放支持AirSync协议! 微信AirSync协议介绍: https://iot
  • 蓝牙基础知识(一)
    原文首发于:http://kobe-onepiece.work/archives/5123 前言 最近刚好一直在研究蓝牙相关的内容,所以想来和大家一起分享。首先我们依然以基础概念开始,因为一头扎进代码,只会让你不知所措! BR/EDR和BLE 1)经典蓝牙(BR/EDR): 泛指支持蓝牙协议在 4.0 以下的模块,一般用于数据量比较大的传输,比如:语音、音乐等。所以像蓝牙音箱之类的,里面的芯片都支持经典蓝牙。 2)低功耗蓝牙(BLE): 指支持蓝牙协议 4.0 或更高的模块,也称为 BLE 模块,最大的特点是成本和功耗的降低,应用于实时性要求比较高的产品中,比如:手环,蓝牙灯等设备。目前在物联网应用中使用很广泛。 简单理解就是平时听音乐和打电话时用的就是经典蓝牙,像智能手环用的就是低功耗蓝牙(从一次电可以用很久)。 *注意: 分别工作在经典蓝牙模式和低功耗蓝牙模式的两个蓝牙模块是无法互相连接的。 下表是参数对比: 技术规范典型蓝牙低耗电蓝牙无线电频率2.4 GHz2.4 GHz距离10米/100米30米空中数据速率1-3 Mb/s1 Mb/s应用吞吐量0.7-2.1 Mb/s0.2 Mb/s节点/单元7-16,777,184未定义(理论最大值为2^32)安全64/128-bit及用户自定义的应用层128-bit AES及用户自定义的应用层强健性自动适应快速跳频,FEC
  • TB-02 Kit 开发板介绍 基于泰凌微TLSR8258国产BLE蓝牙芯片 可连接天猫精灵 安信可出品 史上最便宜的蓝牙开发板
    TB-02 Kit 开发板介绍 TB-02 Kit 开发板是安信可基于泰凌微TLSR8258芯片设计的一款低功耗蓝牙开发板,该开发板继承了安信可NodeMCU的一贯风格,板载串口,两个按键,双排针。 在某宝搜索“蓝牙开发板”,搜出来的商品价格基本都在一百元以上。 安信可推出的TB-02 Kit这款开发板的售价不到20元。如此低廉的价格可大大降低开发者的学习投入成本,加速低功耗蓝牙技术在国内的普及。 该开发板完全符合BLE5.0协议规范,拥有完整的SigMesh协议栈,可轻松对接天猫精灵。是学生学习蓝牙知识,制作毕业设计,企业开发智能产品的首选。 开发板渲染图 芯片性能 开发板采用的主芯片TLSR是由泰凌微电子设计的一款低功耗蓝牙芯片,该芯片主要性能如下: 32 Bit RISC-V 处理器,最高主频48MHz512 KBytes 片上可编程Flash64 KBytes 片上RAM内置32.768KHz RC时钟内置硬件AES加密单元丰富的外设:17路GPIO,一路SPI、IIC、UART六路PWM,支持红外信号生成6路14Bit高精度ADC,支持电池电量采集高达10dBm的发射功率,-96dBm接受灵敏度优秀的功耗管理,深度睡眠电流0.4uA,保持RAM数据睡眠电流1.4uA支持低功耗蓝牙5.0 (不支持经典蓝牙)支持SigMesh,可对接天猫精灵 整个芯片架构如下图所示:
  • 微信小程序 - 蓝牙BLE小程序开发
    1.前言 最近领导看我比较闲,安排我开发一个蓝牙BLE微信小程序,刚开始接到这个项目时,我第一反应时,"卧槽“”。老子在公司的岗位是做Windows和Android 软件开发的,看我闲,竟然让我去做小程序,我从来没有接触过。后面领导说给你一个星期,看不看能不能完成,实在没有办法,只能硬着头皮去学习小程序。 2.BLE蓝牙相关知识 2.1 经典蓝牙和蓝牙BLE的区别 蓝牙1.0~3.0都是经典蓝牙,有些人一直认为蓝牙4.0就是蓝牙BLE,是错误的。因为4.0是双模的,既包括经典蓝牙又包括低能耗蓝牙。蓝牙BLE相比于经典蓝牙的优点是搜索、连接的速度更快,关键就是BLE(Bluetooth Low Energy)低能耗,缺点呢就是传输的速度慢,传输的数据量也很小,每次只有20个字节。但是蓝牙BLE低能耗,在智能穿戴设备(手环和各种智能硬件)应用越来越广泛。 2.2 相关概念 (参考 通用属性配置文件(GATT)及其服务,特性与属性介绍 )和 (BLE4.0教程二 蓝牙协议之服务与特征值分析) 2.2.1 特性 一个特性至少包含2个属性:一个属性用于声明,一个属性用于存放特性的值。 所有通过GATT服务传输的数据必须映射成一系列的特性,可以把特性中的这些数据看成是一个个捆绑起来的数据,每个特性就是一个自我包容而独立的数据点。 例如,如果几块数据总是一起变化
  • 蓝牙 BLE 协议学习: 有关概念介绍
    背景在学校内就用过蓝牙技术参加过比赛(并拿了奖);而蓝牙作为物联网中比较常见的协议,有必要进行深入的学习。此后的文章会以 ble(v4.0) 进行学习。介绍蓝牙技术最初由电信巨头爱立信公司于 1994 年创制,当时是作为 RS232 数据线的替代方案。蓝牙可连接多个设备,克服了数据同步的难题。随着蓝牙耳机、蓝牙鼠标、蓝牙音箱等蓝牙设备渐渐充斥着我们的生活,蓝牙早已不单纯是数据线的替代方案。如今蓝牙由蓝牙技术联盟(Bluetooth Special Interest Group,简称 SIG)管理。蓝牙技术联盟在全球拥有超过 25,000 家成员公司,它们分布在电信、计算机、网络、和消费电子等多重领域。简单地说,蓝牙是一种短程宽带无线电技术,是实现语音和数据无线传输的全球开放性标准。它使用跳频扩谱(FHSS)、时分多址(TDMA)、码分多址(CDMA)等先进技术,在小范围内建立多种通信与信息系统之间的信息传输。蓝牙使用跳频技术,将传输的数据分割成数据包,通过79个指定的蓝牙频道分别传输数据包。每个频道的频宽为1 MHz。蓝牙4.0使用2 MHz 间距,可容纳40个频道。第一个频道始于2402 MHz,每1 MHz一个频道,至2480 MHz。有了适配跳频(Adaptive Frequency-Hopping,简称AFH)功能,通常每秒跳1600次。最初,高斯频移键控(Gaussian
  • iOS蓝牙双模; 同时将BLE(GATT)连接到已连接的BR / EDR(A2DP / HFP)立体声耳机(iOS Bluetooth dual-mode; connect BLE (GATT) to an already connected BR/EDR (A2DP/HFP) stereo headset simultaneously)
    问题 我正在使用经典配置文件(HFP,A2DP,AVRCP)开发带有蓝牙的立体声耳机,就像人们期望的Ina立体声耳机一样。 但是,我想为iOS部署一个远程控制应用程序,并同时将其用于其他经典链接,但是我在设计中使用的双模芯片组的行为却不符合我的预期; 耳机设置为外围设备,让iOS设备充当中央设备。 这样,外设就可以发布其BLE服务(使用我的特定128位UUID),一切都很好。 我可以从任何中心浏览外围设备,但是仅当我未连接经典配置文件时(例如,在不流音频的情况下)。 与HFP和/或A2DP连接时,我的设备似乎无法发布BLE! 但是,我看到了相同芯片组的演示,它们充当BLE中心,扫描并连接到其他BLE外设,同时通过A2DP传输音频。 但是,在该设置中,设备充当了连接到iPhone的A2DP接收器,同时通过BLE扫描/连接到了充当BLE外围设备的第三个单元。 因此,经典和智能蓝牙都不能点对点连接到同一设备。 是否存在双模约束,即在支持/连接到Bluetooth Classic配置文件时不能充当外围设备? 在这种情况下,仅支持中央模式? 仅供参考,我使用的是CSR的8670芯片组。 更新 添加了新答案。 很抱歉,直到现在还没有澄清/整理我以前的答案-时光飞逝! 回答1 好吧,在深入研究规格并试图更清楚地理解事物之后,我找到了所需的答案,尽管我宁愿选择更乐观的答案...;( 不过
  • 安信可博客导航一站式搜索(所有博客的汇总帖)
    安信可博客导航一站式搜索(所有博客的汇总帖) 文章目录 安信可博客导航一站式搜索(所有博客的汇总帖) 开源团队简介安信可优势ESP系列IDE开发环境搭建ESP8266模组专题ESP32模组专题蓝牙模组专题泰凌微方案洛达方案 LORA模组专题4G模组Ca-01专题UWB模组专题A9G专题瑞昱模组专题RTL871x系列 (PS:以上专题对外线上的一部分,更多的技术支持联系我) 开源团队简介 负责人: 徐宏 组员: 张鹏,黄方可,陈聪,向军,李晓呈 官网:传送门 样品:传送门 GitHub:传送门 公司成立年份: 2012.4 团队成立年份:2019.12 专业服务: 物联网模组,专注无线连接,始于开源 安信可优势 具有5年行业经验核心团队,成熟的软硬件,核心供应链资源,3000+客户服务经验 全品类无线模组 高性价比智能联网模块,内置MCU,友好的二次开发接口;高性能、高可靠性、高可扩展性的物联网云,可快速接入第三方智能云平台;可直接使用标准APP,开发0投入 快速反应,样品验证 多条标准化产线,助力快速打样,快速验证,快速出货;通过 ISO9001 国际质量体系认证,使时效和品质达到空前的平衡 技术服务 DOCS资料库、论坛、邮件等多平台提供技术服务,完整的API接口,多样的SDK包,极大缩短集成时间,助力产品批量生产、迅速落地 开放平台 基于安信可物联网平台服务开放产品丰富