Метки
amd bittorrent bug centos debian enlightenment fedora fedora 8 fedora 9 fedora 10 fedora 11 fedora 12 fedora 13 fedora 15 fedora 16 FedoraMD fglrx firefox flash player gnome google intel interview java kde kernel linux livecd migrate moldova nvidia openoffice OpenStreetMap opera Orange ovirt radeon red hat rpmfusion Sandel skype video virtualisation vmware wine
Работа с модулем SIM800C на Pine64
2021-04-07 01:58 | Автор: jekader | Filed under: FedoraMD
Интернет - штука удобная, но телефонию пока никто не отменял. Поэтому взял поиграться Pi-совместимый GSM модуль SIM800C от Waveshare и в этой статье документирую свой вполне удачный опыт.
После включения устройства в розетку, индикатор питания на плате загорелся, а затем начал весело мигать и индикатор сети. По появившимся помехам в колонках стало понятно, что авторизация на базовой станции прошла успешно.
Осталось понять, как говорить с этим модулем чтобы использовать его на практике - например для приёма или отправки SMS.
Согласно инструкции по ссылке выше, общаться с платой надо по UART и делается это например утилитой minicom
. Устанавливаем её:
apt install minicom
Теперь запускаем согласно инструкции для Raspberry PI:
minicom -D /dev/ttyS0
Увы, в моём случае ответа не последовало. Выхожу по Ctrl+A .. Q
и начинаю думать и изучать отличия между платами.
Для уверенности проверил на Raspberry PI 4 - после ритуалов по отключению tty console и активации UART контакт есть, значит плата живая.
К счастью, имеется таблица соответствия ног на гребёнках Raspberry PI и Pine64. Согласно ей, UART на ногах 6 и 8 соответствующий /dev/ttyS0 на Raspberry PI на плате Pine64 обозначен как UART2, а этот порт по умолчанию не активирован.
Решается это в Armbian довольно просто - нужно включить соответствующий overlay в загрузчике, а именно - добавить строку overlays=uart2
в файл /boot/armbianEnv.txt
и перезагрузиться.
Теперь подключаемся уже к правильному порту:
minicom -D /dev/ttyS2
Для проверки - вводим буквы AT
и жмём Enter - должен появиться ответ OK
. Есть контакт!
Зная правильное имя устройства можно общаться с модемом из любого удобного языка программирования, а для примера можно глянуть вот это видео:
https://www.youtube.com/watch?v=J4QoeTLoL4U
Разжёвано всё довольно подробно, есть даже пример скрипта на python для получения и отображения SMS:
https://github.com/Sean-Bradley/SMS-Scripts
Ещё из полезного для Pine64 - в инструкции производителя упомянут "колдунский скрипт" pi_gpio_init.sh
без объяснения его функций. Вкратце - он дёргает GPIO4 (7 нога гребёнки), тем самым включая модем.
Согласно таблице соответствия, для Pine64 это будет делать GPIO362 и активируется он следующими тремя командами:
echo "362" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio362/direction
echo "0" > /sys/class/gpio/gpio362/value
Здесь мы активируем GPIO362 в качестве вывода и подаём на него логический ноль. В данном состоянии модем включится. Если отправить единицу - выключится.
Это можно проверить, подключившись в одном терминале к модулю с помощью minicom, а в другом отправить 1 на GPIO362:
echo "1" > /sys/class/gpio/gpio362/value
В консоли модема увидим следующее сообщение:
NORMAL POWER DOWN
Одновременно, индикатор статуса перестанет мигать.
В моём случае модем и так включается, но чтобы уж наверняка модем включался при загрузке три строки вверху можно сохранить в /etc/rc.local
и спать спокойно. Перезагрузить модем удалённо можно в любой момент, дёрнув GPIO.
Ну а дальше уже каждый сам горазд настраивать автоматизацию на основе этого модуля. Он умеет не только SMS но и GPRS и даже Bluetooth, так что применений ему масса.
Надеюсь, данная заметка окажется полезной и упростит работу с подобными платами расширения людям, не знакомым с работой UART на экзотических одноплатных компьютерах.
Метки: armbian, pine64, sim800c, waveshare
26, 2023 15:37
Для MangoPI MQ-Pro следующие изменения:
1) высвобождаем порт ttyS0 от системного мусора — убираем console=ttyS0 из загрузчика и отключаем getty на этом порту:
systemctl stop serial-getty@ttyS0.service
systemctl disable serial-getty@ttyS0.service
2) подключаемся через minicom для отладки
minicom -D /dev/ttyS0
3) 7 нога гребёнки — это gpio39, соответственно для перезагрузки модуля:
echo «39» > /sys/class/gpio/export
echo «out» > /sys/class/gpio/gpio39/direction
echo «0» > /sys/class/gpio/gpio39/value