Подключение Raspberry Pi к сети интернет с помощью GSM модуля SIM800L


Все вы наверняка знаете, что платы Raspberry Pi имеют возможность подключения в сети Интернет с помощью технологии Wi-Fi. Но как быть, если технология Wi-Fi недоступна в данный момент? В этом случае обеспечить выход платы Raspberry Pi в сеть интернет можно с помощью GSM модуля, использующего для соединения с сетью интернет технологию GPRS.

Внешний вид проекта подключения Raspberry Pi к сети интернет с помощью GSM модуля SIM800L

В данной статье мы рассмотрим подключение платы Raspberry Pi к сети интернет с помощью GSM модуля SIM800L. Для соединения с интернетом мы будем использовать протокол PPP (Point to Point Protocol, протокол передачи от точки к точке) и будем передавать данные последовательно с помощью технологии GPRS.

Ранее на нашем сайте мы также рассматривали проект автоответчика на основе платы Raspberry Pi, в котором подключали к плате GSM модуль.

Необходимые компоненты

  1. Плата Raspberry Pi 3 (или любая другая подходящая модель платы) (купить на AliExpress).
  2. GSM модуль SIM800L (купить на AliExpress).
  3. SIM карта.
  4. Преобразователь постоянного тока (buck converter) 2596 (купить на AliExpress) и адаптер питания.
  5. Соединительные провода.

В данном проекте мы используем преобразователь постоянного тока (buck converter) 2596 для обеспечения постоянного напряжения 4.2 Вольта поскольку GSM модуль SIM800L отличается достаточно большим энергопотреблением, кроме того, в режиме GPRS потребляемый им ток возрастает. Вместо модуля 2596 вы можете использовать любой другой аналогичный модуль.

Схема проекта

Схема подключения GSM модуля SIM800L к плате Raspberry Pi представлена на следующем рисунке.

Схема подключения GSM модуля SIM800L к плате Raspberry PiСхема соединений между GSM модулем SIM800L и платой Raspberry Pi приведена в следующей таблице.

GSM модуль SIM800L Плата Raspberry Pi
Rx Tx of the Raspberry Pi
Tx RX of the Raspberry Pi
GND GND of the Raspberry Pi, GND of the Buck
VCO 4.2 V (2596 Ic output)

Внешний вид собранной конструкции проекта приведен на следующем рисунке.

Внешний вид собранной конструкции проекта

Объяснение программы для Raspberry Pi

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Перед началом написания программы нам необходимо проверить корректно ли GSM модуль обрабатывает AT команды. Для этого необходимо выполнить следующую последовательность действий:

  • активировать (Enable) последовательный порт;
  • проверить последовательный порт;
  • запустить на выполнение ниже приведенный скрипт check_commands.py;
  • во время выполнения данного скрипта GSM модуль должен ответить вам ‘OK’. Если этого не происходит, проверьте соединения в схеме.

Примечание: поскольку автор проекта (ссылка на оригинал приведена в конце статьи) использовал язык python 3 на плате Raspberry Pi, то перед ним также стояла проблема кодирования и декодирования данных из формата “utf-8”.

Представленный фрагмент кода будет передавать команду из вашего терминала и показывать ответ модуля в терминале. Вначале напишите “AT”, после чего нажмите ‘Enter’, в ответ вы должны увидеть сообщение “OK”. Вы можете попробовать передавать модулю и другие AT команды.

Теперь мы должны установить библиотеку для работы с протоколом PPP, которая поможет нам в доступе в сеть интернет с использованием GSM модуля. Но перед установкой данной библиотеки обновим программное обеспечение платы Raspberry Pi до последней версии.

С помощью представленной команды вы скачаете и установите библиотеку ppp. После этого введите в терминале команду sudo -i. Далее необходимо перейти в каталог peers с помощью следующей команды:

Затем напечатайте “nano rnet” чтобы создать файл с именем ‘rnet’ в каталоге ‘peers’. Далее необходимо ввести следующие строки кода (можете просто скопировать и вставить их).

Поскольку автор проекта использовал sim карту оператора Airtel ему необходимо было знать APN (Access Point Name, имя точки доступа) данной сети. В его случае оно было равно “airtelgprs.com”. Для своего оператора связи вы можете найти APN с помощью Яндекса или Google.

Внешний вид программы для нашего проекта

Вам необходимо изменить APN на свой в строке ‘connect’. В нашем случае это “airtelgprs.com”. Последовательный порт мы используем “ttyS0”. Бодовую скорость передачи можно не изменять. После этого можно сохранить и закрыть окно нажав “Ctrl+X”.

Затем необходимо перезапустить терминал, напечатать в нем “ifconfig” и нажать enter.

Результат выполнения команды ifconfig

После этого можно приступить к тестированию работы проекта. Например, введем команду “sudo pon rnet”. На экране при этом ничего не изменится, но состояние светодиода на GSM модуле должно измениться – частота его включения/выключения должна увеличиться. Остановить доступ к сети интернет можно введя команду “sudo poff rnet”. Таким образом, вы можете наслаждаться доступом к интернету с помощью технологии GPRS. Конечно, скорость соединения будет не очень высокой, но для многих проектов тематики интернета вещей она будет вполне достаточной.

Тестирование работы проекта

Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы на Python

Видео, демонстрирующее работу проекта

Источник статьи

(Проголосуй первым!)
Загрузка...
2 080 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *