GSMout – приём SMS и звонков "как дома"
-
Рисунок 1Сегодня практически отсутствуют Интернет-ресурсы, которым бы был не нужен Ваш номер телефона. Верификация номера проходит обычно путём получения SMS с кодом или звонком, где последние цифры номера являются аргументом для подтверждения. Если Вы занимаетесь бизнесом, то наверняка сталкивались с тем, что для совершения тех или иных банковских операций необходимо подписывать их с помощью кода из SMS. Всё хорошо, когда находитесь в домашнем регионе и получить код не составит труда, гораздо сложней ситуация обстоит, если Вы находитесь в другом регионе, где роуминг не работает, т. к. Ваш телефон или SIM-карта не поддерживается местными сотовыми операторами. Одним из элегантных решений является данный проект (рисунок 1). В домашнем регионе Вы оставляете M5Stack с установленной SIM-картой, получаете белый IP у оператора, открываете порт и получаете доступ к журналу входящих SMS и звонков онлайн с любой точки мира, где есть Интернет.
<cut />
Модемов нет, но Вы держитесь!
Из коробки в Базовом устройстве M5Stack нет встроенного модема и вставлять SIM-карту некуда, поэтому необходимо дополнительно приобрести GSM модуль (выбрать можно по ссылке).
Пожалуйста, при выборе
убедитесь, что у Вас нет грехов за спинойбудьте особенно избирательны... Если посмотреть datasheet на SIM800L, то там сказано так:4.1. Power Supply
The power supply range of SIM800L is from 3.4V to 4.4V. Recommended voltage is 4.0V. The transmitting burst will cause voltage drop and the power supply must be able to provide sufficient current up to 2A. For the VBAT input, a bypass capacitor (low ESR) such as a 100 μF is strongly recommended.
Понимаете о чём я? "Капельница". Мой Air, на котором я пишу код, не отдает ток до 2 А. Вскрываем оплётку USB-C кабеля, перерезаем какой провод? Красный. Подключаем внешний блок питания на 5 Вольт 3 Ампера
чтоб уж навернякав место надреза. Теперь питание Базового устройства будет идти от внешнего источника питания (и всё станет хорошо - подумал я). Но модем так не думал. Для него было слишком много ~4,8 Вольт и он всячески "кричал" своим единственным светодиодом.Надо было искать решение дальше. У стандартного Завершающего модуля есть привлекательный контакт BAT. Класс! Всё! Вот оно решение! Ведь литий-полимерный аккумулятор как раз на 3,7 Вольта. ESP32 надо 3.3 В. Запитываем Базовое устройство через этот контакт. Раз, два, три, мультиметр напряжение говори! Бах! Напряжение опять ~4,8 Вольт. В Базовом устройстве схема питания его повысила. Способ два ушёл в историю.
Способ третий оказался самым успешным. Термофен и понижающий преобразователь LM2596 сделали своё дело (рисунок 2).
Рисунок 2За что дёрнуть, капитан?
Когда аппаратные проблемы нас миновали, создадим программные! Скачиваем исходник проекта с GitHub-репозитория.
В начале кода проекта есть пара строчек, которые Вы можете отредактировать, если захотите изменить порт сервера
int web_port = 80;
и адрес веб-страницы журнала
String web_mainPage = "GSMout";
Обратите внимание на папку data – файлы из этой папки необходимо загрузить в SPIFFS-память с помощью плагина для Arduino IDE, который называется ESP32 Sketch Data Upload (плагин находится в этом репозитории), но перед этим Вы должны добавить туда файл(ы) типа myHomeHotspot.wifi, где myHomeHotspot - имя Wi-Fi-сети, а содержимое файла – пароль. Это необходимо для автоматического подключения Базового устройства к Wi-Fi.
Это работает.
При запуске устройство подключается к Wi-Fi-сети, затем проверяет наличие доступа к Интернет, обновляет время и дату по NTP, настраивает модем. На дисплее отображаются соответсвующие иконки, за иконки отвечает watchCat и адрес веб-страницы журнала. Когда приходят новые сообщения или звонки иконки становятся цветными и справа отображается их число, счётчик обнуляется после запроса веб-страницы журнала. На этом всё.
При открытии адреса, указанного на экране M5Stack, в браузере отображается журнал (рисунок 3).
Рисунок 3Надеюсь, Вас данный проект выручит когда-нибудь. Особая благодарность автору статьи "at-команды gsm модема sim900", расположенной здесь.
Видео с демонстрацией работы можно посмотреть здесь
-
У меня сервер не поднимается. Modem fail пишет. Беда. Если у автора есть вариант решения или у читателей, буду вам признателен.