ESP TOUCH V2测试-Arduino中文社区 - Powered by Discuz! Archiver

跑龙套的保 发表于 2022-4-14 16:32

ESP TOUCH V2测试

本帖最后由 跑龙套的保 于 2022-4-14 16:32 编辑

# 简介
看到blinker增加esp touch v2支持,但arduino中没有相关示例,分享测试记录给大家参考下。
esp touch v2是乐鑫的esp8266 esp32 samrtconfig配网工具,v2版本支持加密和自定义数据
ps:加密秘钥长度16字节
# code


#include "WiFi.h"

void WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info)
{
    Serial.printf(" event: %d\n", event);

    switch (event) {

      case ARDUINO_EVENT_SC_SCAN_DONE:
      {
            Serial.println("Scan done");
      }
      break;

      case ARDUINO_EVENT_SC_FOUND_CHANNEL:
      {
            Serial.println("Found channel");

      }
      break;

      case ARDUINO_EVENT_SC_GOT_SSID_PSWD:
      {
            Serial.println("Got SSID and password");

            uint8_t ssid = { 0 };
            uint8_t password = { 0 };

            uint8_t rvd_data = { 0 };

            memcpy(ssid, info.sc_got_ssid_pswd.ssid, sizeof(info.sc_got_ssid_pswd.ssid));
            memcpy(password, info.sc_got_ssid_pswd.password, sizeof(info.sc_got_ssid_pswd.password));

            Serial.printf("SSID:%s\n", ssid);
            Serial.printf("PASSWORD:%s\n", password);

            if (info.sc_got_ssid_pswd.type == SC_TYPE_ESPTOUCH_V2) {
                ESP_ERROR_CHECK( esp_smartconfig_get_rvd_data(rvd_data, sizeof(rvd_data)) );

                Serial.println("RVD_DATA");
                Serial.write(rvd_data, 33);
                Serial.printf("\n");

                for (int i = 0; i < 33; i++) {
                  Serial.printf("%02x ", rvd_data);
                }
                Serial.printf("\n");
            }
      }
      break;

      case ARDUINO_EVENT_SC_SEND_ACK_DONE:
      {
            Serial.println("SC_EVENT_SEND_ACK_DONE");
      }
      break;

      default:
      {
            Serial.printf("no case event: %d\n", event);
      }
      break;
    }
}

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

    Serial.println("ESP32 START");

    WiFi.mode(WIFI_AP_STA);
    WiFi.onEvent(WiFiEvent);
    WiFi.beginSmartConfig(SC_TYPE_ESPTOUCH_V2, "1234567890123456");

    Serial.println("SmartConfig...");

}

void loop() {
    // put your main code here, to run repeatedly:

}


# app
打开ESP Touch app选择ESP Touch v2

配对完成后可以收到wifi名称和密码和自定义数据

奈何col 发表于 2022-4-14 19:31

补充下,自定义数据长度限制127

奈何col 发表于 2022-4-24 22:38

blinker app 2.6.5已添加esptouch V2支持,sdk等esp32 package release后更新。

Herman_gao 发表于 2022-7-8 09:08

楼主,我想使用你的例程,我想请教一下,我现在是用你的例程编译出错,没有找到定义的文件,请问是什么问题?
'ARDUINO_EVENT_SC_SCAN_DONE' was not declared in this scope

跑龙套的保 发表于 2022-7-8 19:24

Herman_gao 发表于 2022-7-8 09:08
楼主,我想使用你的例程,我想请教一下,我现在是用你的例程编译出错,没有找到定义的文件,请问是什么问题 ...

esp32 sdk更新到最新,我用的是esp32

Herman_gao 发表于 2022-7-9 17:24

跑龙套的保 发表于 2022-7-8 19:24
esp32 sdk更新到最新,我用的是esp32

你好,我是在这个网址加载的https://dl.espressif.com/dl/package_esp32_index.json
添加esp32开发版管理,这应该是最新的了吧,但是编译是有问题,或者我加载的不对?求大佬帮忙一下

跑龙套的保 发表于 2022-7-19 18:48

Herman_gao 发表于 2022-7-9 17:24
你好,我是在这个网址加载的https://dl.espressif.com/dl/package_esp32_index.json
添加esp32开发版管理 ...

不是最新,这个只到1.0.6,最新的2.0.4了,可以使用社区最新的包
https://www.arduino.cn/thread-81194-1-1.html

Herman_gao 发表于 2022-8-16 17:19

本帖最后由 Herman_gao 于 2022-8-16 17:37 编辑

我想问一下自定义数据在在那个文件可以知道限定长度?就是可以看到自定义数据的长度的声明在那个文件,可以获取返回字节长度?求指导一下

跑龙套的保 发表于 2022-8-16 23:45

Herman_gao 发表于 2022-8-16 17:19
我想问一下自定义数据在在那个文件可以知道限定长度?就是可以看到自定义数据的长度的声明在那个文件,可以 ...

看了下函数,没有长度返回,最长127字节,都是ascii数据,可以通过strlen来计算
页: [1]
查看完整版本: ESP TOUCH V2测试