Arduio HM-10 BLE 扫描仪开发

用户3279291

我正在使用带有 HM-10 模块的 Ardunio uno。我正在尝试扫描我周围的所有信标,然后存储信标名称

#include <SPI.h>
#include <SoftwareSerial.h>

String inputTXT;

SoftwareSerial mySerial(10, 11); // RX, TX  


void setup() {  
  Serial.begin(9600);

  mySerial.begin(9600);

  //setup
  mySerial.write("AT");
  delay(100);
  mySerial.write("AT+ROLE1"); // Master mode
  delay(100);
  mySerial.write("AT+IMME1"); //wait for a connection command before connecting 
  delay(100);
  mySerial.write("AT+RESET");
  delay(50);

}

void loop() {  

  delay(3000);


  mySerial.write("AT+DISI?");

  if (mySerial.available()) {
    inputTXT = mySerial.readString();

    Serial.println(inputTXT);

    inputTXT = ""; 
  }
}

我在每个循环中都会重复此输出

OK+DISISOK+DISC:00000000:00000000000000000000000000000000:00000OK+DISISOK+DISCEOK+DISC:00000000:00000000000000000000000000000000:0000000000:38F9D379C9E5:-065OK+DISC:00000000:00000000000000000000000000000000:0000000000:4CAA0DE091B7:-066OK+DISC:00000000:00000000000000000000000000000000:0000000000:72363EC2C661:-084OK+DISC:4C000C0E:008D37DBECB6B76115D006C9B3FA1005:1B1C1E7B5B:76854777DBD7:-072OK+DISC:00000000:00000000000000000000000000000000:0000000000:38F55DEDE396:-079OK+DISC:00000000:00000000000000000000000000000000:0000000000:4D023B8ED54D:-083OK+DISC:00000000:00000000000000000000000000000000:0000000000:6B5DB3EB2

所以我现在想在每次迭代的最后一个冒号之前保存 12 位字符串,例如“4CAA0DE091B7”,有人可以告诉我或建议我如何去做吗?

马苏德·拉希米

不幸的是,Arduino 没有正则表达式,因此您需要手动执行。

#include <SPI.h>
#include <SoftwareSerial.h>

String inputTXT;

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()
{
    //setup
    Serial.begin(9600);
    mySerial.begin(9600);
    mySerial.write("AT");
    delay(100);
    mySerial.write("AT+ROLE1"); // Master mode
    delay(100);
    mySerial.write("AT+IMME1"); //wait for a connection command before connecting
    delay(100);
    mySerial.write("AT+RESET");
    delay(50);
}

void loop()
{

    delay(3000);
    mySerial.write("AT+DISI?");
    if (mySerial.available())
    {
        inputTXT = mySerial.readString();
        int pos = 0;
        String result = "";
        const String regx = "00000000:00000000000000000000000000000000:0000000000:";
        const int regx_len = regx.length();
        while ((pos = inputTXT.indexOf(regx, pos)) != -1)
        {
            // substring from <starting point> to >starting point + 12>
            result = inputTXT.substring(pos + regx_len, pos + regx_len + 12);
            Serial.println(result);
            // move starter point to end of last result
            pos = pos + regx_len + 12;
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift 3 arduino Uno HM-10 Ble - iphone 通知

来自分类Dev

HM-10 BLE模块自动重连

来自分类Dev

是否可以将HM-10或HM-11 BLE模块与Arduino一起与iOS设备(ANCS)通信?

来自分类Dev

iPhone hm-10通信。ble设备未在iPhone中列出

来自分类Dev

HM10 与 Arduino 和 Android BLE 之间的低功耗蓝牙大数据传输

来自分类Dev

BLE扫描间隔Windows 10

来自分类Dev

如何与HM-19 BLE模块通讯并使用超声波传感器进行扫描

来自分类Dev

是否可以将HM-10或HM-11 BLE模块与Arduino一起使用以与iOS设备(ANCS)通信?

来自分类Dev

HM-10 蓝牙与 iPhone 配对

来自分类Dev

如何使用Android Mobile与CT10蓝牙条形码扫描仪连接?

来自分类Dev

在Windows 10移动版中访问IR /虹膜扫描仪/ Windows Hello设备

来自分类Dev

如何从Phonegap中的CT10蓝牙条形码扫描仪读取数据?

来自分类Dev

在Windows 10移动版中访问IR /虹膜扫描仪/ Windows Hello设备

来自分类Dev

检查Windows-10上的RAM插槽:wmic和Crucial扫描仪之间的差异

来自分类Dev

扫描仪插件中的内存泄漏仅在iOS 10中

来自分类Dev

如何在Windows 10中设置HP无线扫描仪?

来自分类Dev

扫描仪调试

来自分类Dev

结束扫描仪

来自分类Dev

扫描仪问题

来自分类Dev

扫描仪InputMismatchException

来自分类Dev

扫描仪16.04

来自分类Dev

扫描仪调试

来自分类Dev

扫描仪+ TesterClass?

来自分类Dev

扫描仪不扫描

来自分类Dev

扫描仪不扫描

来自分类Dev

HM-10:也许某些AT命令没有执行?

来自分类Dev

Android BLE信标扫描

来自分类Dev

Android BLE被动扫描

来自分类Dev

快速后台扫描BLE