Как передать переменные с телефона в ардуино через блютуз без установки софта

Сразу озвучу цель - нужно чтобы любой пользователь мог подключить мою ардуину к своему Wi-Fi роутеру, используя свой телефон без всякого софта, т.е. передать ssid/pass роутера через блютуз, например.

В ардуино делаю первые шаги.

Сделал веб-сервер - отсюда. Работает. Но.

Для подключения ардуины к Wi-Fi роутеру надо указать ssid/pass ещё до стадии прошивки.

Вопрос: Как передать ssid/pass на уже прошитую ардуину? Блютузом же можно подключиться с любого телефона. А дальше как?


Ответы (1 шт):

Автор решения: Roman Konoval

Довольно простой способ сделать конфигурацию параметров wifi через режим точки доступа, как уже порекомендовали в комментариях.

Можно делать вручную или, что проще, воспользоваться библиотекой AutoConnect. Она хранит ssid и пароль и при включении пробует их использовать чтобы присоединиться к точке wifi. Если это не удается, то ESP32 переходит в режим точки доступа и тогда можно присоединиться с телефона и там настроить ssid и пароль. После этого они запоминаются и ESP32 их использует в дальнейшем.

Код выглядит так:

#include <WiFi.h>
#include <WebServer.h>
#include <AutoConnect.h>

WebServer Server;
AutoConnect      Portal(Server);

void rootPage() {
  char content[] = "Hello, world";
  Server.send(200, "text/plain", content);
}

void setup() {
  delay(1000);
  Serial.begin(115200);
  Serial.println();

  Server.on("/", rootPage);
  if (Portal.begin()) {
    Serial.println("WiFi connected: " + WiFi.localIP().toString());
  }
}

void loop() {
    Portal.handleClient();
}
→ Ссылка