Передача параметров Wi-Fi сети на микроконтроллер ESP32 по Wi-Fi (AP)
- Опубликовано 2 года назад
- Просмотры 7
- Закончить проект
0,00₽
Описание
Необходимо разработать прототип кода на С/С++ для ESP32 с использованием фреймворка arduino платформы espressif32 до версии 3.5.0 включительно (platformio),реализующий передачу параметров Wi-Fi сети (SSID и пароль) на микроконтроллер ESP32 по Wi-Fi (в режиме AP) с мобильного приложения.
Для пользователя процесс должен выглядеть следующим образом:
1. Запускает мобильное приложение.
2. Нажимает кнопку "Найти".
3. В мобильном приложении выбирает Wi-Fi точку доступа (SSID) к которой оборудование должно подсоединится. Вводит пароль для неё.
4. Если в сети несколько устройств подходящих по шаблону SSID выводит пользователю список для выбора.
5. Приложение получает IP адрес уже в локальной WiFi сети, либо открывает браузер с IP уже из локальной сети (не AP, а в STA) и выводит его на экране приложения.
Реализация алгоритма видится следующим образом (для обсуждения):
1. Пользователь активирует на ESP32 Wi-Fi в режиме AP (точка доступа). Реализовать как удобно, например, на кнопку повесить. Обсудить.
2. Имя точки доступа ESP32 уникальное: префикс (например, EXPERT_) + 4 последних символа MAC адреса в HEX без разделителей в верхнем регистре.
3. Пользователь запускает тестовое мобильное приложение, которое нужно написать на Android (Kotlin).
4. Пользователь нажимает кнопку "Найти".
5. Приложение получает список доступых Wi-Fi сетей, фильтрует имена точек доступа по префиксу EXPERT_, получает MAC адрес устройства и сравнивает полученное имя с именем Wi-Fi точки.
6. В сети могут быть несколько устройств с нужным префиксом. В этом случае приложение должно отобразить пользователю все устройства подходящие по шаблону.
7. В приложении пользователь выбирает из списка доступных Wi-Fi сетей точку доступа к которой ESP32 должен быть подключен уже в режиме STA. Вводит пароль к ней. Эти параметры сохраняются в приложении для передачи на микроконтроллер ESP32.
8. Запускается связывание при котором приложение обращается к ESP32 и по http передает запрос на спаривание. На ESP32 использовать стандартный web server (не асинхронный) из framework-arduinoespressif32@3.10006.210326 (espressif32@3.5.0) и библиотеку http из того-же фреймворка.
9. На экране устройства появляется 4-х значный пин-код, который пользователь должен ввести в соответствующее поле в мобильном приложении.
10. Приложение пересылает на ESP32 зашифрованный JSON файл (при шифровании используется MAC + salt + ПИН) с информацией о SSID точки доступа и пароль. Salt для прототипа произвольный.
11. Для передачи параметров нужно использовать HTTP POST запросы.
12. Приложение получает от ESP32 MAC адрес STA для однозначного поиска ESP32 в локальной сети.
13. После получения и расшифровки ESP32 параметров WiFi сети к которой нужно подключится, она перегружается и подключается к WiFi сети, используя переданные параметры SSID и пароль.
14. Приложение, потеряв AP ESP32, либо иным способом определив, что ESP32 перешло в режим подключения к WiFi сети, переподключается к локальной Wi-Fi сети (той-же, к которой подключали ESP32 в приложении).
15. Приложение сканирует локальную сеть (простой перебор по пулу IP адресов определяемому маской) и находит сетевое устройство с тем MAC адресом, который был у ESP32.
16. Мобильное приложение отображает IP адрес, назначенный ESP32 в Wi-Fi сети.
Для пользователя процесс должен выглядеть следующим образом:
1. Запускает мобильное приложение.
2. Нажимает кнопку "Найти".
3. В мобильном приложении выбирает Wi-Fi точку доступа (SSID) к которой оборудование должно подсоединится. Вводит пароль для неё.
4. Если в сети несколько устройств подходящих по шаблону SSID выводит пользователю список для выбора.
5. Приложение получает IP адрес уже в локальной WiFi сети, либо открывает браузер с IP уже из локальной сети (не AP, а в STA) и выводит его на экране приложения.
Реализация алгоритма видится следующим образом (для обсуждения):
1. Пользователь активирует на ESP32 Wi-Fi в режиме AP (точка доступа). Реализовать как удобно, например, на кнопку повесить. Обсудить.
2. Имя точки доступа ESP32 уникальное: префикс (например, EXPERT_) + 4 последних символа MAC адреса в HEX без разделителей в верхнем регистре.
3. Пользователь запускает тестовое мобильное приложение, которое нужно написать на Android (Kotlin).
4. Пользователь нажимает кнопку "Найти".
5. Приложение получает список доступых Wi-Fi сетей, фильтрует имена точек доступа по префиксу EXPERT_, получает MAC адрес устройства и сравнивает полученное имя с именем Wi-Fi точки.
6. В сети могут быть несколько устройств с нужным префиксом. В этом случае приложение должно отобразить пользователю все устройства подходящие по шаблону.
7. В приложении пользователь выбирает из списка доступных Wi-Fi сетей точку доступа к которой ESP32 должен быть подключен уже в режиме STA. Вводит пароль к ней. Эти параметры сохраняются в приложении для передачи на микроконтроллер ESP32.
8. Запускается связывание при котором приложение обращается к ESP32 и по http передает запрос на спаривание. На ESP32 использовать стандартный web server (не асинхронный) из framework-arduinoespressif32@3.10006.210326 (espressif32@3.5.0) и библиотеку http из того-же фреймворка.
9. На экране устройства появляется 4-х значный пин-код, который пользователь должен ввести в соответствующее поле в мобильном приложении.
10. Приложение пересылает на ESP32 зашифрованный JSON файл (при шифровании используется MAC + salt + ПИН) с информацией о SSID точки доступа и пароль. Salt для прототипа произвольный.
11. Для передачи параметров нужно использовать HTTP POST запросы.
12. Приложение получает от ESP32 MAC адрес STA для однозначного поиска ESP32 в локальной сети.
13. После получения и расшифровки ESP32 параметров WiFi сети к которой нужно подключится, она перегружается и подключается к WiFi сети, используя переданные параметры SSID и пароль.
14. Приложение, потеряв AP ESP32, либо иным способом определив, что ESP32 перешло в режим подключения к WiFi сети, переподключается к локальной Wi-Fi сети (той-же, к которой подключали ESP32 в приложении).
15. Приложение сканирует локальную сеть (простой перебор по пулу IP адресов определяемому маской) и находит сетевое устройство с тем MAC адресом, который был у ESP32.
16. Мобильное приложение отображает IP адрес, назначенный ESP32 в Wi-Fi сети.
Опубликовано 2 года назад
Информация
Посещаемость:
554
Дата регистрации:
11 лет назад