查看: 384|回复: 0

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

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

    [LV.5]常住居民I

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

    使用esp32 & WiFi接入

    自blinker App 2.1.1起,原WiFi接入和MQTT已经合并为新WiFi接入  

    使用WiFi接入,当设备和手机在同一个局域网中,为局域网通信
    其余情况,使用MQTT远程通信  

    准备工作

    硬件准备

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

    软件准备

    Arduino IDE需安装好esp32扩展

    Arduino IDE 1.8.7或更新版本
    扩展安装方法1:
    使用IDE板卡管理器安装 1.0.2 及以上release版本的 ESP32 Arduino package
    扩展安装方法2:
    通过github安装  

    下载并安装blinker APP

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

    下载并安装blinker Arduino库

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

    在app中添加设备,获取Secret Key

    1. 进入App,点击右上角的“+”号,然后选择 添加设备   
    2. 点击选择==Arduino== > ==WiFi接入==  
    3. 选择要接入的服务商  
    4. 复制申请到的==Secret Key==  

    DIY界面

    1. 在设备列表页,点击设备图标,进入设备控制面板  
    2. 首次进入设备控制面板,会弹出向导页
    3. 在向导页点击 载入示例,即可载入示例组件

    编译并上传示例程序

    打开Arduino IDE,通过 文件>示例>Blinker>Blinker_Hello/Hello_WiFi 打开例程
    在程序中找到保存Secret Key、WiFi名称和密码的变量,填入你要连接的WiFi名和密码,如:

    char auth[] = "abcdefghijkl"; //上一步中在app中获取到的Secret Key
    char ssid[] = "abcdefg"; //你的WiFi热点名称
    char pswd[] = "123456789"; //你的WiFi密码

    ==例程中宏LED_BUILTIN为开发板厂家定义的连接板载LED的引脚,如果你选择的开发板没有定义LED_BUILTIN,可以自行修改为你要使用的引脚==
    编译并上传程序到esp32开发板,打开串口调试器
    当看到提示“MQTT Connected!”,说明设备已经成功连接到MQTT服务器  

    恭喜!一切就绪

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

    进一步使用blinker

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

    看看添加设备  

    想深入理解以上例程?

    看看Arduino开发入门  

    更多实例?

    看看Arduino实例教程  

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

    看看自定义界面Arduino 支持库  

    完整示例程序

    
    #define BLINKER_PRINT Serial
    #define BLINKER_WIFI
    
    #include <Blinker.h>
    
    char auth[] = "Your Device Secret Key";
    char ssid[] = "Your WiFi network SSID or name";
    char pswd[] = "Your WiFi network WPA password or WEP key";
    
    // 新建组件对象
    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(auth, ssid, pswd);
        Blinker.attachData(dataRead);
        Button1.attach(button1_callback);
    }
    
    void loop() {
        Blinker.run();
    }

    为什么设备显示不在线?

    1. 程序没有成功上传到开发板
      解决办法:重新上传,上传后打开串口监视器,确认程序正确运行  

    2. 程序中没有设置正确的ssid和密码,导致没有连接上网络
      解决办法:设置后再重新上传程序,上传后打开串口监视器,确认程序正确运行  

    3. 程序错误,导致程序运行不正确
      解决办法:先使用并理解blinker例程,再自由发挥  

    4. 开发板供电不足
      解决办法:换电源 或 换USB口  

    为什么无法切换到局域网通信?

    1. 路由器开启了AP隔离功能或禁止了UDP通信,从而阻止了局域网中设备的发现和通信
      解决办法:关闭路由器AP隔离功能 或 允许UDP通信;如果找不到相关设置,通常可重置路由器解决  
    2. mdns没有及时发现设备
      解决办法:在首页下拉刷新,可以重新搜索局域网中的设备
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    [限时福利]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!   
    快速回复 返回顶部 返回列表