Бесплатно зарегистрируйся и получай уведомления о новых проектах по работе

Передача параметров Wi-Fi сети на микроконтроллер ESP32 по Wi-Fi (AP)

W
Заказчик
Отзывы фрилансеров: + 5 - 0
Зарегистрирован на сайте 10 лет и 9 месяцев
Бюджет: ожидает предложений
Срок: по договоренности
Исполнитель определен: Александр Кравченко  
Необходимо разработать прототип кода на С/С++ для 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 сети.
Разделы:
Опубликован:
07.02.2023 | 07:30 [поднят: 07.02.2023 | 07:30] [последние изменения: 06.02.2023 | 13:58]

Теги: нужен программист, ищу программиста, резюме программиста

Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».