那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用M5Stick和M5Stamp觸發藍牙操作BLE通信

科技觀察員 ? 來源:Pradeep ? 作者:Pradeep ? 2022-05-11 15:52 ? 次閱讀

在本文中,我將向您展示如何使用 M5Stamp PICO 和 M5Stick C 觸發藍牙操作使用 BLE 通信,是非常便宜且高效的 ESP32 控制器

所需組件:

M5Stick C

M5Stamp PICO

什么是 M5Stick 和 M5Stamp?

M5Stack 是一家設計和制造開發包的技術公司,包含硬件、編程平臺和物聯網解決方案。它由 Jimmy Lai 于 2017 年舉辦,總部位于中國深圳。

M5Stack 創建了 M5Stick 和 M5Stamps,它們都是基于 ESP32 的 M5 電池。M5Stick C 內置了 TFT 對象和對象,而 M5Stamp 連接小圖標,可用于各種物產品

按照說明這些使用 Arduino IDE 設置 M5Stamp 和 M5Stick。

M5Stick C 將 M5Stamp 發送 BLE 發送,而 PICO 將 M5 Stamp 發送 BLE 接收器。當點擊按鈕上的按鈕 A 時,M5Stamp 的 LED 就會變成綠色。

發射機編碼:

#include
#include "BLEDevice.h"
#include "BLEUtils.h"
#include "BLEServer.h"
#include "BLEBeacon.h"

BLEAdvertising *pAdvertising; // BLE 廣告類型
struct timeval now;
#define GPIO_DEEP_SLEEP_DURATION 1 // 休眠 x 秒然后喚醒
RTC_DATA_ATTR static time_t last; // 記住 RTC 內存中的上次啟動
RTC_DATA_ATTR static uint32_t bootcount; // 記住 RTC 內存中的引導次數
#define BEACON_UUID "87b99b2c-90fd-11e9-bc42-526af7764f64" // UUID 1 128 位(可以使用 linux 工具 uuidgen 或通過 https://www.uuidgenerator.net/ 獲取隨機數)
無效 setBeacon()
{

BLEBeacon oBeacon = BLEBeacon();
oBeacon.setManufacturerId(0x4C00);
oBeacon.setProximityUUID(BLEUUID(BEACON_UUID));
oBeacon.setMajor((bootcount & 0xFFFF0000) >> 16);
oBeacon.setMinor(bootcount & 0xFFFF);
BLEAdvertisementData oAdvertisementData = BLEAdvertisementData();
BLEAdvertisementData oScanResponseData = BLEAdvertisementData();

oAdvertisementData.setFlags(0x04); // BR_EDR_NOT_SUPPORTED 0x04

std::string strServiceData = "";

strServiceData += (char)26; // Len
strServiceData += (char)0xFF; //
輸入 strServiceData += oBeacon.getData();
oAdvertisementData.addData(strServiceData);

pAdvertising->setAdvertisementData(oAdvertisementData);
pAdvertising->setScanResponseData(oScanResponseData);
}

無效設置(){
M5.begin();
序列號.開始(115200);
M5.Lcd.setTextColor(黃色); //設置字體顏色為黃色。字體設置顏色為
M5.Lcd.setRotation(3);
M5.Axp.ScreenBreath(10);
M5.Lcd.setTextColor(紅色);
M5.Lcd.setCursor(3, 10);
M5.Lcd.setTextSize(2);
}

無效循環(){

M5.update();
M5.Lcd.setCursor(3, 10);
if (M5.BtnA.wasReleased()) {
M5.Lcd.setTextColor(GREEN);
M5.Lcd.println("觸發");
Serial.println("觸發方式");
// 創建 BLE 設備
BLEDevice::init("BLE Receiver 01");
// 創建 BLE 服務器
BLEServer *pServer = BLEDevice::createServer(); // <-- 不再需要實例化 BLEServer,更少的閃存和內存使用
pAdvertising = BLEDevice::getAdvertising();
BLEDevice::startAdvertising();
設置信標();
// 開始廣告
pAdvertising->start();
Serial.println("廣告開始...");
延遲(1000);
pAdvertising->stop();
M5.Lcd.fillScreen(黑色);
M5.Lcd.setCursor(3, 10);
}
}

將上述代碼上傳到您的 M5Stick C 控制器。

pYYBAGJ7am6ATkYfAAD_FePQAM0623.png

接收器編碼:

#include "Arduino.h"
#include
#include
#include
#include
#include

// 你的燈帶中有多少個 LED?
#define NUM_LEDS 1
#define DATA_PIN 27

// 定義 LED 的數組
CRGB leds[NUM_LEDS];

字符串 knownBLEAddresses[] = {"24:a1:60:53:06:3e"};
int RSSI_THRESHOLD = -100;
bool device_found;
整數掃描時間 = 1;//以秒為單位
BLEScan* pBLEScan;
類 MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
void onResult(BLEAdvertisedDevice advertisedDevice) {
for (int i = 0; i < (sizeof(knownBLEAddresses) / sizeof(knownBLEAddresses[0])); i++)
{
if (strcmp(advertisedDevice.getAddress(). toString().c_str(), knownBLEAddresses[i].c_str()) == 0)
{
device_found = true;
休息;
}
否則
device_found = false;
}
Serial.printf("廣告設備:%s \n", AdvertisementdDevice.toString().c_str());
}
};
無效設置() {
Serial.begin(115200);//在 ESP32 上啟用 UART
FastLED.addLeds(leds, NUM_LEDS); // GRB 排序是典型的
Serial.println("Scanning..."); // 打印掃描
BLEDevice::init("");
pBLEScan = BLEDevice::getScan(); //創建新的掃描
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks()); //初始化回調函數
pBLEScan->setActiveScan(true); //主動掃描消耗更多能量,但更快地得到結果
pBLEScan->setInterval(100); // 設置掃描間隔
pBLEScan->setWindow(99);

void loop()
{
BLEScanResults foundDevices = pBLEScan->start(scanTime, false);

for (int i = 0; i < foundDevices.getCount(); i++)
{
BLEAdvertisedDevice device = foundDevices.getDevice(i);
int rssi = device.getRSSI();
Serial.print("RSSI:");
序列號.println(rssi);
if (rssi > RSSI_THRESHOLD && device_found == true)
{
Serial.println("Triggred");
發光二極管 [0] = 0xf00000;
FastLED.show();
延遲(200);
}

}
// 現在關閉 LED,然后暫停
leds[0] = 0x00f000;
FastLED.show();
延遲(200);
pBLEScan->clearResults(); // 從BLEScan緩沖區中刪除結果以釋放內存
}

注意:在上面的代碼中,您必須更改 M5Stick C 的 BLE 地址。

pYYBAGJ7amKAR9KSAAA4q653iC8675.png

在這里,我添加了我的 M5Stick C 的 BLE 地址,你在做的時候需要根據你的具體情況改變這個地址。

將發射和接收器的結果代碼上傳到M5Stamp

上,將 M5Stamp 連接 PC 并隨后顯示到您,然后點擊 M5Stick C 上的 A,TFT 將繼續上載顯示。

pYYBAGJ7al6AQF9CAAMZTTejpnw425.png

每當您在 M5Stick C 看到消息時,請檢查中搜索結果。

poYBAGJ7aleAT8ULAAE-3dWcYPU889.png

M5Stamp 的 LED 指示燈也將顯示在 ESP 發送器中的名稱、RSS 和播放器中。

poYBAGJ7alKACG65AAOevOg7xvY832.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16445

    瀏覽量

    179441
  • BLE
    BLE
    +關注

    關注

    12

    文章

    670

    瀏覽量

    59593
  • Pico
    +關注

    關注

    0

    文章

    173

    瀏覽量

    17169
  • ESP32
    +關注

    關注

    18

    文章

    978

    瀏覽量

    17525
收藏 人收藏

    評論

    相關推薦

    M5Stack學習Arduino(五)BLE-MIDI

    ``M5Stack支持藍牙,本節就利用BLE功能來做一個藍牙MIDI外設,通過M5Stack的按鍵觸發
    發表于 09-02 16:00

    低功耗藍牙的協議與BLE外設如何與BLE中心進行通信

    本視頻中,我們深入了解低功耗藍牙(BLE)技術中采用的協議,特別是通用屬性協議,即GATT。我們也考察BLE外設如何與BLE中心通信
    的頭像 發表于 10-12 04:09 ?6064次閱讀

    BLE5.0藍牙協議棧LE 2M PHY功能介紹

    BLE5.0藍牙協議棧LE 2M PHY功能介紹
    發表于 10-18 09:44 ?33次下載

    使用megawin Cortex-M0 MCU的BLE藍牙低能量)訪問

    使用megawin Cortex-M0 MCU的BLE藍牙低能量)訪問
    發表于 07-01 09:26 ?3次下載
    使用megawin Cortex-<b class='flag-5'>M</b>0 MCU的<b class='flag-5'>BLE</b>(<b class='flag-5'>藍牙</b>低能量)訪問

    如何使用M5Stamp PICO和Qubitro構建物聯網門鎖監控系統

    在這篇文章中,我將向您展示如何使用小型M5Stamp PICO控制器和Qubitro構建DIY物聯網門鎖監控系統。
    的頭像 發表于 06-04 17:38 ?1877次閱讀
    如何使用<b class='flag-5'>M5Stamp</b> PICO和Qubitro構建物聯網門鎖監控系統

    M5Stick C開源分享

    電子發燒友網站提供《M5Stick C開源分享.zip》資料免費下載
    發表于 06-19 14:12 ?0次下載
    <b class='flag-5'>M5Stick</b> C開源分享

    Stamp系列上新|StampTimerPower來啦

    年度開發板推薦榜單中,M5旗下的StampC3U,StampPico和StickCplus名列榜上。其中,StampC3U更是被評為新秀之星(newandnota
    的頭像 發表于 04-06 15:32 ?915次閱讀
    <b class='flag-5'>Stamp</b>系列上新|StampTimerPower來啦

    帶步進器和IMU的M5Stick-C

    電子發燒友網站提供《帶步進器和IMU的M5Stick-C.zip》資料免費下載
    發表于 06-20 11:08 ?0次下載
    帶步進器和IMU的<b class='flag-5'>M5Stick</b>-C

    RTLapseCAM:樹脂打印延時攝影 - M5Stick-C Plus&GoPro

    電子發燒友網站提供《RTLapseCAM:樹脂打印延時攝影 - M5Stick-C Plus&GoPro.zip》資料免費下載
    發表于 06-27 11:36 ?0次下載
    RTLapseCAM:樹脂打印延時攝影 - <b class='flag-5'>M5Stick</b>-C Plus&GoPro

    基于M5Stick-V和M5Stack的辦公桌機器人助手

    電子發燒友網站提供《基于M5Stick-V和M5Stack的辦公桌機器人助手.zip》資料免費下載
    發表于 07-10 15:13 ?0次下載
    基于<b class='flag-5'>M5Stick</b>-V和<b class='flag-5'>M5</b>Stack的辦公桌機器人助手

    STM32WBx5藍牙低功耗(BLE)無線接口

    電子發燒友網站提供《STM32WBx5藍牙低功耗(BLE)無線接口.pdf》資料免費下載
    發表于 09-20 11:21 ?1次下載
    STM32WBx<b class='flag-5'>5</b><b class='flag-5'>藍牙</b>低功耗(<b class='flag-5'>BLE</b>)無線接口

    M5Stack M5Dial:一款 WiFi 和藍牙連接的智能旋鈕

    M5Stack M5Dial 是一款 WiFi 和藍牙連接的智能旋鈕,帶有由 ESP32-S3 板供電的圓形 1.28 英寸觸摸屏 TFT 顯示屏,更準確地說,是 M5Stamp S3
    的頭像 發表于 10-12 15:47 ?2288次閱讀
    <b class='flag-5'>M5</b>Stack <b class='flag-5'>M5</b>Dial:一款 WiFi 和<b class='flag-5'>藍牙</b>連接的智能旋鈕

    M5Stack Cardputer:基于ESP32-S3的無線模塊便攜式計算機

    M5Stack Cardputer 是一款基于 ESP32-S3 驅動的 M5Stamp S3 無線模塊的卡大小的便攜式計算機,配備 56 鍵鍵盤和 1.14 英寸 TFT 顯示屏,以及一些傳感器
    的頭像 發表于 10-17 14:19 ?2354次閱讀

    【新品】通信距離500m!多主多從共存,低功耗BLE5.0藍牙模塊

    億佰特近期推出了一款遠距離的藍牙模塊——E104-BT5032B,理想條件下最遠通信距離可達500m。基于藍牙協議5.0版本的串口轉BLE
    的頭像 發表于 08-30 12:35 ?514次閱讀
    【新品】<b class='flag-5'>通信</b>距離500<b class='flag-5'>m</b>!多主多從共存,低功耗<b class='flag-5'>BLE</b>5.0<b class='flag-5'>藍牙</b>模塊

    M5CoreS3 和 M5AtomS3R 支持小智AI啦!

    M5Stack支持小智AI啦!現已適配M5CoreS3和AtomS3R(需搭配AtomicEchoBase)。只需簡單操作,即可將設備轉化為智能AI助手。體驗全新語音交互功能,讓智能助手觸手可及
    的頭像 發表于 01-23 18:19 ?254次閱讀
    <b class='flag-5'>M5</b>CoreS3 和 <b class='flag-5'>M5</b>AtomS3R 支持小智AI啦!
    百家乐官网破解| 老虎机控制器| 百家乐官网连线游戏下载| 视频百家乐赢钱| 百家乐官网洗码软件| 云鼎百家乐程序开发有限公司| 双城市| 缅甸百家乐网站是多少| 百家乐官网庄闲出现几率| 百家乐14克粘土筹码| 百家乐官网投注庄闲法| 沙龙百家乐官网代理| 金寨县| 百家乐qq游戏| 百家乐官网赌博程序| 现金网注册| 网络百家乐可信吗| 平泉县| 678百家乐博彩赌场娱乐网规则 | 大发888总结经验| 百家乐官网平注常赢玩法技巧| 皇廷国际| 百家乐赌场公司| 赌博百家乐官网玩法| 德州扑克下载| 百家乐足球投注网哪个平台网址测速最好 | 丰禾国际娱乐| 电子百家乐作假| 免费百家乐官网的玩法技巧和规则 | 韦德娱乐| 百家乐视频打牌| 澳门百家乐官网下注最低| 大发888下载大发888娱乐城| 百家乐官网平台| 百家乐官网闲拉长龙| 大发888客户端下载| 百家乐视频多开器| 现场百家乐官网电话投注| 青岛棋牌室| 百家乐娱乐真人娱乐| 百家百家乐官网视频游戏世界|