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