查看: 251|回复: 0

[使用文档] 【快速接入】使用esp32 & 蓝牙接入

[复制链接]
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2019-11-18 10:50 | 显示全部楼层 |阅读模式

    esp32蓝牙接入,会将esp32作为一个BLE外围设备与手机建立连接  

    1.准备工作

    硬件准备

    esp32开发板(查看支持的设备)  

    软件准备

    Arduino IDE需安装好esp32扩展

    Arduino IDE 1.8.7或更新版本
    使用IDE板卡管理器安装 1.0.2 及以上版本的 ESP32 package
    esp32扩展安装方法  

    下载并安装blinker APP

    Android下载:
    点击下载
    或 在android应用商店搜索“blinker”下载安装
    IOS下载:
    点击下载
    或 在app store中搜索“blinker”下载  

    下载并安装blinker Arduino库

    点击下载
    Windows:将下载好的blinker库解压到 我的电脑>文档>Arduino>libraries 文件夹中
    Mac OS:将下载好的blinker库解压到 文稿>Arduino>libraries 文件夹中  

    编译并上传示例程序

    打开Arduino IDE,通过 文件>示例>Blinker>Blinker_Hello/Hello_BLE 打开例程
    编译并下载程序到esp32,打开串口调试器  

    例程中宏LED_BUILTIN为开发板厂家定义的连接板载LED的引脚,如果你选择的开发板没有定义LED_BUILTIN,可以自行修改为你要使用的引脚  

    特别提醒: ESP32使用蓝牙接入时推荐使用 开发板: ESP32 Dev Module/ Partition Scheme: NO OTA(Large APP) 否则容易因BLE固件过大而编译失败  

    在app中添加设备

    1. 确保蓝牙模块已通电   
    2. 进入App,点击右上角的“+”号,然后选择 添加设备   
    3. 点击选择Arduino > 蓝牙接入  
    4. 等待搜索设备  
    5. 点击选择要接入的设备  

    恭喜!一切就绪

    在APP中点击刚才你添加的设备,即可进入控制界面,点点按钮就可以控制Arduino上的LED灯开关
    另一个按钮也点下试试,放心,你的手机不会爆炸~  

    进一步使用blinker

    想了解各接入方式的区别?

    看看添加设备  

    想深入理解以上例程?

    看看Arduino开发入门  

    更多实例?

    看看Arduino实例教程  

    想制作与众不同的物联网设备?

    看看自定义界面Arduino 支持库  

    完整示例程序

    #define BLINKER_PRINT Serial
    #define BLINKER_BLE
    
    #include <Blinker.h>
    
    // 新建组件对象
    BlinkerButton Button1("btn-abc");
    BlinkerNumber Number1("num-abc");
    
    int counter = 0;
    
    // 按下按键即会执行该函数
    void button1_callback(const String & state) {
        BLINKER_LOG("get button state: ", state);
        digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    }
    
    // 如果未绑定的组件被触发,则会执行其中内容
    void dataRead(const String & data)
    {
        BLINKER_LOG("Blinker readString: ", data);
        counter++;
        Number1.print(counter);
    }
    
    void setup() {
        // 初始化串口
        Serial.begin(115200);
    
        #if defined(BLINKER_PRINT)
            BLINKER_DEBUG.stream(BLINKER_PRINT);
        #endif
    
        // 初始化有LED的IO
        pinMode(LED_BUILTIN, OUTPUT);
        digitalWrite(LED_BUILTIN, HIGH);
        // 初始化blinker
        Blinker.begin();
        Blinker.attachData(dataRead);
        Button1.attach(button1_callback);
    }
    
    void loop() {
        Blinker.run();
    }

    为什么没有搜索到设备?

    1. android系统要求搜索蓝牙必须开启手机定位服务,个别系统(如华为)不会提示用户打开定位服务
      解决办法:开启手机定位服务  

    2. 使用了蓝牙2.0设备或者其他blinker不支持的蓝牙设备
      解决办法:点击查看blinker设备端支持

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
    一块扩展板完成Arduino的1
    实验目录(动手做): 一、LED 实验 01 Blink:D13蓝色 LED 闪烁 02 Blink2:D12、D
    OLED 128*64自制可达10000000个选项的菜单(已更新)
    OLED 128*64自制可达10000
    OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
    【Arduino】u8g2中文字库制作教程 小白请进
    【Arduino】u8g2中文字库
    我知道对于这个话题许多大佬们都会,发这个贴子也算是炒冷饭了,所以一开始我也十分纠
    ESP8266 AT指令固件已更新至V1.7.2
    ESP8266 AT指令固件已更新
    ESP8266在乐鑫官网的AT指令固件已更新至V1.7.2,有兴趣的同学自行至官网下载。 官网链
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表