Подключение GSM-модуля AiThinker A6 к Orange Pi Zero через UART
Введение
В данной статье рассмотрим подключение GSM/GPRS-модуля AiThinker A6 к одноплатному компьютеру Orange Pi Zero через последовательный интерфейс UART. Также проверим работу COM-порта из Linux, отправим несколько AT-команд в модуль и напишем простую программу на языке C для взаимодействия с устройством.
Используемое оборудование
Для эксперимента понадобятся:
- Orange Pi Zero (в видео используется Orange Pi R1 с аналогичной GPIO-гребёнкой);
- GSM-модуль AiThinker A6;
- Антенна GSM;
- Соединительные провода Dupont;
- Блок питания для Orange Pi;
- SIM-карта.
Подключение модуля
Модуль A6 подключается к UART-интерфейсу Orange Pi. Для обмена данными используются линии TX, RX и общий провод GND.
Распиновка Orange Pi
На изображении ниже показано расположение UART-пинов на GPIO-разъёме.
В примере используется второй UART:
| Orange Pi | Назначение |
|---|---|
| Pin 11 | UART2_RX |
| Pin 13 | UART2_TX |
| Pin 6 или 14 | GND |
Схема соединения
UART подключается перекрёстно:
| Orange Pi | AiThinker A6 |
|---|---|
| TX | RX |
| RX | TX |
| GND | GND |
После подключения схема выглядит следующим образом:
Запуск системы
После подачи питания GSM-модуль начинает регистрацию в сети оператора.
В ролике используется два терминала:
- левое окно — подключение к Orange Pi;
- правое окно — мониторинг обмена по UART.
В правом окне можно наблюдать загрузку GSM-модуля и ответы на команды.
Полезные команды Linux
Проверка свободного места
df -h
Команда показывает размер подключённых файловых систем и свободное место.
Просмотр процессов
ps aux
Выводит список запущенных процессов.
Мониторинг системы
htop
Отображает:
- загрузку процессора;
- использование памяти;
- температуру;
- частоту процессора;
- системные процессы.
Проверка доступных UART-портов
Устройства UART находятся в каталоге /dev.
Для просмотра доступных устройств можно использовать:
ls /dev/tty*
Список портов в моём устройстве:
/dev/ttyS0 /dev/ttyS1 /dev/ttyS2
UART2 выведен на GPIO-разъём и используется для подключения GSM-модуля.
Настройка COM-порта
Параметры порта задаются командой stty.
Пример настройки скорости:
stty -F /dev/ttyS2 115200
После настройки можно отправлять команды напрямую в устройство.
Отправка AT-команд из Linux
Для проверки связи отправим команду идентификации модуля:
echo -e "ATI\r\n" > /dev/ttyS2
Здесь:
ATI— команда идентификации устройства;\r\n— перевод строки, обязательный для обработки команды модулем.
Ответ модуля:
AiThinker A6 OK
Для чтения данных из COM-порта можно использовать:
cat /dev/ttyS2
Работа через терминальную программу Minicom
Для более удобного взаимодействия можно использовать терминальную программу:
minicom
После подключения отправляем команду:
AT
Ответ:
OK
Проверяем модель:
ATI
Модуль возвращает своё имя и версию прошивки.
Анализ данных в шестнадцатеричном виде
При разработке программ полезно видеть каждый полученный байт.
Для этого данные можно выводить в HEX-представлении.
Пример ответа:
4F 4B 0D 0A
Расшифровка:
| HEX | Символ |
|---|---|
| 4F | O |
| 4B | K |
| 0D | CR |
| 0A | LF |
Последовательность 0D 0A обозначает конец строки и позволяет программе определить завершение ответа устройства.
Создание первой программы на C
Создадим каталог проекта:
mkdir hello cd hello
Создадим файл:
nano hello.c
Содержимое программы:
#include <stdio.h> int main() { printf("Hello World\n"); return 0; }
Компиляция:
gcc hello.c
Запуск:
./a.out
Результат:
Hello World
Отправка AT-команд из программы
Следующим шагом создадим программу для взаимодействия с COM-портом.
Логика работы:
- Открыть UART.
- Отправить команду
AT. - Закрыть порт.
- Завершить программу.
Пример:
FILE *port; port = fopen("/dev/ttyS2", "w"); fprintf(port, "AT\r\n"); fclose(port);
Компиляция:
gcc lesson1.c -o lesson1
Запуск:
./lesson1
В окне мониторинга UART появляется отправленная команда и ответ модуля:
AT OK
Это означает, что программа успешно взаимодействует с GSM-модулем через последовательный интерфейс.
Возможности дальнейшего развития проекта
Развитие проекта до полноценной системы управления по SMS.
Идея заключается в следующем:
- Программа постоянно контролирует COM-порт.
- При получении SMS анализирует текст сообщения.
- Выполняет требуемую команду.
- Отправляет ответное SMS.
Например:
Температура?
После получения команды устройство может:
- считать показания датчиков;
- сформировать отчёт;
- отправить ответное SMS владельцу.
Таким образом можно реализовать систему удалённого мониторинга объекта через GSM-сеть.
Заключение
В ходе эксперимента были выполнены следующие задачи:
- подключён GSM-модуль AiThinker A6 к Orange Pi через UART;
- настроен COM-порт Linux;
- отправлены тестовые AT-команды;
- рассмотрена работа терминальной программы Minicom;
- изучён обмен данными в шестнадцатеричном формате;
- написана первая программа на C для взаимодействия с GSM-модулем.
Такой подход является хорошей основой для создания GSM-шлюзов, систем удалённого мониторинга и устройств управления по SMS.
