- PVSM.RU - https://www.pvsm.ru -
Да, это еще одно интернет-радио. Их уже сотни. Но в этой статье я хочу рассказать не только о самом устройстве, но и о одном из наших подходов, который мы применяем в IoT-разработке. Эти решения помогут вам упростить взаимодействие конечных пользователей с вашими устройствами.

Мы разработали и внедрили множество IoT-проектов. Один из самых частых вопросов, с которым мы сталкивались: “Как сообщить клиенту локальный IP устройства?”
После подключения к роутеру устройство получает динамический IP-адрес, который сложно определить без доступа к настройкам роутера. Это создает неудобства, особенно для конечных пользователей, далеких от технических деталей. Мы долго искали универсальное решение, которое не требует сложных настроек и подходит для большенства IoT-устройств.
В результате мы пришли к подходу, который теперь используем во многих проектах. И, конечно, мы внедрили его в это интернет-радио.
Процесс для пользователя:
1. Первое включение:
Радио создает Wi-Fi точку доступа с именем Radio.
2. Подключение к устройству:
Пользователь подключается к этой точке доступа, открывает браузер и вводит http://192.168.4.1 [1]. Обычно страница автоматически открывается через Captive Portal.
3. Настройка сети:
Пользователь вводит имя и пароль своей Wi-Fi сети. Радио подключается к роутеру, после чего точка доступа отключается.
4. Поиск устройства и смена радио станций:
Пользователь заходит на https://onclick.lv/radio [2] и сразу видит локальный IP-адрес устройства и его MAC . Всё, что нужно — выбрать станцию из списка и нажать "Сохранить". Никаких сложных действий, всё интуитивно понятно и удобно.
Каждый раз при включение, когда устройство подключается к роутеру, оно выполняет GET-запрос на сервер:
http://www.onclick.lv/esp/?mac=<MAC_адрес>&ip=<локальный_IP>
Передается:
• MAC-адрес устройства,
• локальный IP,
Сервер так же сам сохраняет:
• время запроса,
• Глобальный IP, с которого был сделан запрос.
Данные хранятся 24 часа.
И сейчас самое интересное. Когда пользователь заходит на https://onclick.lv/radio [2], браузер отправляет AJAX-запрос на тот же сервер. И если глобальный IP клиента который зашел на сайт совпадает с записанным на сервере (который отправило устройство), пользователь получает локальными IP, MAC и время запуска. Таким образом, устройство "находит само себя".
Мы сделали этот подход универсальным и открыли API, чтобы мы и вы могли использовать его в своих проектах. Подробнее о нем можно узнать в GitHub репозитории [3].
Принцип работы прост:
1. Устройство отправляет GET-запрос на сервер с данными о своем MAC-адресе и локальном IP.
2. Когда вы заходите на https://onclick.lv/esp/ [4] или https://onclick.lv [5], система автоматически перенаправляет вас на http://локальный IP устройства.
А теперь давайте обратно вернемся к радио проету.
К NodeMCU можно напрямую подключать небольшие устройства, такие как проводные наушники или другие аудиовыходы компактных размеров. Для подключения более крупных аудиосистем или колонок потребуется использовать усилитель, чтобы обеспечить достаточный уровень громкости и качество звука.

Мы так же часто в своих проектах используем прошивание через браузер. Подключите NodeMCU или Wemos к компьютеру через USB. Откройте страницу прошивания и нажмите кнопку Connect. Это удобный и простой подход, чтобы клиент мог загрузить и протестировать ваш код.
Автор: Ramzies
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/esp8266/407032
Ссылки в тексте:
[1] http://192.168.4.1: http://192.168.4.1
[2] https://onclick.lv/radio: https://onclick.lv/radio
[3] GitHub репозитории: https://github.com/renat2985/what_is_my_esp_ip
[4] https://onclick.lv/esp/: https://onclick.lv/esp/
[5] https://onclick.lv: https://onclick.lv
[6] Источник: https://habr.com/ru/articles/871884/?utm_campaign=871884&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.