GSMout – приём SMS и звонков «как дома»


    Рисунок 1


    Сегодня практически отсутствуют Интернет-ресурсы, которым бы был не нужен Ваш номер телефона. Верификация номера проходит обычно путём получения SMS с кодом или звонком, где последние цифры номера являются аргументом для подтверждения. Если Вы занимаетесь бизнесом, то наверняка сталкивались с тем, что для совершения тех или иных банковских операций необходимо подписывать их с помощью кода из SMS. Всё хорошо, когда находитесь в домашнем регионе и получить код не составит труда, гораздо сложней ситуация обстоит, если Вы находитесь в другом регионе, где роуминг не работает, т. к. Ваш телефон или SIM-карта не поддерживается местными сотовыми операторами. Одним из элегантных решений является данный проект (рисунок 1). В домашнем регионе Вы оставляете M5Stack с установленной SIM-картой, получаете белый IP у оператора, открываете порт и получаете доступ к журналу входящих SMS и звонков онлайн с любой точки мира, где есть Интернет.


    Модемов нет, но Вы держитесь!


    Из коробки в Базовом устройстве 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", расположенной здесь.


    Видео с демонстрацией работы можно посмотреть здесь

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 17

      +4
      Имхо, это недостаточно элегантно. Я думал, будет виртуальный маломощный эмулятор сотовой сети, который пробрасывается из одного региона в другой.
      Но в данном случае, тк коробочке все равно нужен интернет, проще будет купить дешёвый android телефон, и написать простейшую прогу которая будет читать все входящие смс, и отправлять их содержимое по какому нибудь wifi/3g тебе в телеграм.

      Пс: не понял по статье в итоге, зачем нужен и мобильный интернет с белым ip, и wifi? Не слишком ли это расточительно?
        –2
        :)
          0

          Если руки растут откуда надо — конечно не проблема, и аппликуху написать, и телефон купить, и в зарядке его держать (а лучше сразу умную сделать, если уже начали писать софт).

          0

          Интересная разработка, но для цели озвученной выше избыточная, проще воткнуть симку в старый смартфон и программу пересылки смс поставить. а также настроить безусловную пере адресацию звонков.

            0

            Не знаю как в РФ с роумингом, но, зачастую, входящие в роуминге платные, смс иногда не доходят, если заниматься пересылкой — увеличивается количество точек отказа, т.к. доставка СМС происходит по остаточному принципу.
            Конечно, и предложенный подход — такое себе, надёжность под сомнением.

            0

            Можно смс на электронную почту пересылать, а звонки в asterisk а в нём уже рулить куда дальше звонок пойдет хоть на местный телефон.

              0

              не туда выше писал

              +4

              Есть простое и проверенное многими годами решение — USB GSM модем + Asterisk. В качестве модема я использую Huawei e1550 — таких полно на барахолках за $15-20, единственое, на что нужно обратить внимание — это отсутствие залочки на оператора и блокировки голосовых функций. Обычно продавцы в курсе и пишут, что модем готов для Astetisk. В качестве сервера у меня SBC типа Nano Pi Neo от FriendlyArm (12$+доставка). Подойдет в принципе любая платка на ARM под Linux, например Малинка. Вставляем модем в плату, устанавливаем Astrtisk, собираем chan_dongle — это драйвер модема для Astrtisk. Осталось написать конфиги Asterisk и у нас полноценный GSM-VoIP Gate. SMS/USSD можно отдавать внешней программе или отправлять на email. Естественно, нужен белый IP и проброс портов для протокола IAX2 для нашего серверка. Для ленивых в сети существует готовый имидж для Raspberry с FreePBX — Raspbx. На смартфоне-планшете-ноутбуке запускается софт-телефон Zoiper или аналогичный. Теперь, находясь за границей, нужен лишь доступ в Интернет и никаких расходов на роуминг. Пользуюсь такой связкой уже много лет, тк за границей провожу времени больше, чем дома.
              Настройка Asterisk достойна не одной статьи, но материалов в сети достаточно много, в том числе и на русском. Я потратил пару вечеров на чтение, но результат того стоит.

                0

                Годное решение, но костыль.
                Когда еду далеко, sim-карту пихаю в терминал Globalstar — и проблем нет!

                  0
                  Это спутниковый терминал?
                    0
                    Да. Жутко дорогой.
                    Правда, не всегда помогает — где-то может не быть охвата связи. И тогда у тебя уже 2 трубки без связи
                  0
                  1) у микротика есть возможность отсылать смс на почту скриптом.
                  2) было несколько приложений на андроид, которые пересылали смс на почту или складывали в дропбокс. Последний раз использовал это в 6м андроиде, сейчас может что поменялось.
                    +1
                    Не надо было резать кабель, модем в среднем потребляет 200...300 мА во время передачи, 2 А — это пиковые значения длительностью 1/8. Вам же понятным языком написали — просто добавить Low ESR конденсатор, и он сгладит пики потребления. Можно выпаять 1000 мкФ*6,3В с ненужной материнки, если нет магазина рядом…
                      0
                      А у мегафона есть самый простой вариант (может и у других есть, но я мегафоном пользуюсь).
                      Ставите приложение eMotion и получаете SIP софтофон со своим номером. И все.
                        0
                        Как то все сложно, есть же messages.google.com
                          0
                          При вылете авторизации, надо иметь физический доступ к телефону. При дальних поездках — может не прокатить.
                          +2
                          Вы оставляете M5Stack с установленной SIM-картой, получаете белый IP у оператора, открываете порт и получаете доступ к журналу входящих SMS и звонков онлайн с любой точки мира, где есть Интернет.

                          и к вашему банковскому счёту получают доступ все кому не лень…
                          я бы предложил хотя бы не вытаскивать ЭТО в голый интернет, а оставить в локалке, к которой организовать доступ через VPN.

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое