查看: 1534|回复: 1

[使用文档] 【快速接入】使用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设备端支持

    该用户从未签到

    发表于 2020-5-24 13:40 | 显示全部楼层
    不明白既然都通过蓝牙控制了,为什么还要多此一举的数据要走云端绕一圈再响应到组件上
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    用 PyQt GUI 界面下的旋钮控制舵机角度
    用 PyQt GUI 界面下的旋钮
    新人报道, 我想用 PyQt 下的 Dial 旋钮模块来控制舵机的角度。如果一切正常,这个 G
    blinker连接树莓派失败
    blinker连接树莓派失败
    错误原因如下图,想问一下大家这个该怎么解决?
    Python3接入Blinker失败
    Python3接入Blinker失败
    运行示例程序,只把auth换成真实的auth,就出现报错。 大佬们看一下这个是啥情况
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表