使用arduino编译上传
代码如下
#include "WiFi.h"
#include <stdio.h>
int dif_t= 0;
void(* resetFunc) (void) = 0;
void WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info)
{
Serial.printf("[WiFi-event] event: %d", 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[33] = { 0 };
uint8_t password[65] = { 0 };
uint8_t rvd_data[33] = { 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", ssid);
Serial.printf("PASSWORD:%s", 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[i]);
}
//Serial.printf("\n");
}
}
break;
case ARDUINO_EVENT_SC_SEND_ACK_DONE:
{
Serial.println("SC_EVENT_SEND_ACK_DONE");
}
break;
default:
{
if(event==5){
dif_t++;
Serial.printf("no case event: %d", event);
Serial.printf("time: %d", dif_t);
if(dif_t==5){
resetFunc();//尝试重启开发板进行重连
}
}
}
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:
}
手机内容编写如下,自定义数据随便写,AES密钥要对就行
然后可能回遇到编译不通过(我踩过的坑)
需要换一下开发板信息,最新版本应该是2.0.5,之前用的1.0.6一直不通过,耽搁了我半天...
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
https://dl.espressif.com/dl/package_esp32_index.json
https://raw.githubusercontent.com /espressif/arduino-esp32/gh-pages/package_esp32_index.json