Написать пост

Ретранслятор СМС-сообщений для релокантов – конкурс пет-проектов

Аватарка пользователя Sergey

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

Обложка поста Ретранслятор СМС-сообщений для релокантов – конкурс пет-проектов

В этом году я уехал учиться в другую страну, но у меня есть аккаунты в российских банках, на госуслугах и других интернет-порталах, требующих аутентификацию по СМС-коду. Как мне зайти на госуслуги, но не платить при этом за роуминг? Решение теперь есть – собрать устройство, которое будет принимать мои СМС-сообщения и ретранслировать их в мессенджер.

Привет! Я инженер-железячник, который любит, когда умные железки целиком и полностью ему подчиняются. Сегодня я расскажу, как я сделал себе пепелац, который получает смски и пересылает их мне через Интернет.

Я выбрал Raspberry Pi 2B и модуль SIM900 для Arduino – просто потому, что смог быстро купить их на Авито. Трудности начались ещё на этапе сборки устройства, потому что для модуля SIM900 нет нормального даташита, и очень сложно было понять, куда подавать питание, где находятся выводы последовательного порта, выводы управления. Вдобавок оказалось, что на одном из устройств перепутаны выводы RX и TX, и, не имея осциллографа, я очень долго не понимал, почему я не получаю ответов от модуля SIM900.

Но в итоге я собрал устройство и приступил к построению логики кода. Я написал код на языке Python, реализовал процесс ожидания получения новых СМС-сообщений как путём периодического опроса, так и путём реагирования на событие. В процессе получения сообщений я столкнулся с ещё одной проблемой, которую решить не смог. Дело в том, что очень длинные СМС разбиваются на несколько коротких, и каждое из них отсылается отдельно. Но как собрать их воедино? В описании команды CMGL я не нашёл признаков, которые позволили бы понять, что сообщение является частью более длинного сообщения.

Следующий вопрос – выбор такого мессенджера, через который можно пропихнуть сообщения через великий китайский файрвол. Whatsapp, Telegram сразу не подходят. Китайский WeChat даже не рассматривал – наслышан о его техподдержке и глюках вроде “операция не разрешена для этого аккаунта”. В итоге выбор пал на ВК. Я получил токен VK API и задействовал функцию отправки сообщений от имени сообщества.

Всё заработало. Я оставил устройство у моего друга, где оно лежит возле роутера. Код проекта доступен по ссылке:

Есть ещё одна проблема, которую я не смог решить, и сейчас прошу совета. Система стабильно работала с симкой Мотив, но когда я её заменил на МТС, то всё сломалось. После включения модуля SIM900 (неважно, кнопкой или пином), я получаю по UART такие сообщения:

			b'RDY' 
b'+CFUN: 1' 
b'+CPIN: READY'
		

Сообщения говорят об успешной инициализации SIM-карты. Но после этого устройство сразу отключается, красный светодиод гаснет. Иногда бывает, что после полного отключения питания устройство включается и некоторое время работает, но потом снова отключается, чаще всего после получения СМС.

Я подозреваю, что не хватает мощности источника питания. Устройство питается от одного источника на 5 вольт 2,4 ампера. Питание подаётся на Raspberry, а оттуда проводами на SIM900. Подавать питание напрямую на SIM900 не пробовал, так как нет подходящего адаптера. Как считаете, есть ли смысл его приобрести? Или могут быть другие причины?

Следите за новыми постами
Следите за новыми постами по любимым темам
1К открытий2К показов