Программа предназначена для работы на компьютере Raspberry Pi. Программа принимает входящие СМС и звонки и передаёт их в мессенджер.
Программа разрабатывалась на Raspberry Pi 2B и модуле для Arduino SIM900.
На модуль SIM900 найти даташит не удалось. Главное, что нужно для работы:
- запаять перемычку JP для возможности автоматического управления питанием;
- установить тумблер выбора источника питания на Xduino;
- установить джамперы RX, TX в положение D7, D8;
- установить SIM-карту в модуль;
- соединить модуль с платой Raspberry Pi по схеме:
Raspberry PI | Net | SIM900 |
---|---|---|
4 | 5V | 5V (Out) |
6 | GND | GND |
8 | RPI-To-SIM | D8 |
10 | SIM-To-RPI | D7 |
12 (GPIO 18) | SIM Power | D9 |
На Raspberry Pi контакт 8 - TX, контакт 10 - RX. На Sim900 контакт D7 - RX, D8 - TX. Вероятно, в каком-то из даташитов ошибка, так как схема работает при соединении TX-TX, RX-RX. Обычно правильный вариант соединения должен быть TX-RX, RX-TX. Но здесь я несколько раз всё перепроверил, оно работает именно так, как написано в таблице.
На модуль SIM900 нет нормального даташита с распиновкой. Но известно, что он подходит для сборки "пирогом" с Arduino Uno. Поэтому приведу здесь картинку расположения выводов Arduino Uno.
Источник: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html
Истоник: https://docs.arduino.cc/hardware/uno-rev3
Документация на AT-команды SIM900
Документация на функцию отправки сообщений в ВК
Перед запуском программы необходимо установить дополнительные библиотеки для Python:
pip install pyserial
pip install pyserial-asyncio
pip install vk_api
Для установки программы достаточно клонировать или скачать репозиторий из Гитхаба. Чтобы запустить, нужно проделать ещё несколько действий. Прежде всего, нужно создать группу в ВК, от которой будут отправляться сообщения. Затем получить токен доступа для этой группы с правом на отправку сообщения. Заметим, что получатель сообщений должен разрешить отправку сообщений от сообщества.
В операционной системе Raspberry OS необходимо создать переменные окружения, в которых будут храниться настройки приложения: токен доступа и идентификатор пользователя, которому будут посылаться сообщения. Например, так:
export TOKEN=ВАШ_ТОКЕН_ДОСТУПА
export VK_USER_ID=ВАШ_ИДЕНТИФИКАТОР_ПОЛЬЗОВАТЕЛЯ
После этого остаётся только запустить исполняемый файл:
python phone.py
Запустить можно и иначе. Например, такая команда запишет идентификатор созданного процесса в текстовый файл:
bash -c 'echo $$ > ./pid && exec python ./phone.py'
Тогда можно будет использовать его для завершения процесса:
read pid < ./pid
kill -2 $pid
rm ./pid
Этот скрипт отправит процессу сигнал KeyboardInterrupt, что говорит ему о том, что нужно завершить работу.