Как отправить SMS с помощью PIC16F628A и SIM900A
В этой статье я покажу вам один способ отправки SMS с помощью PIC 16F628A и SIMCOM SIM900A.
В предыдущей статье я обновил прошивку на своем GSM-модуле, чтобы зарегистрироваться в европейском сервис-провайдере. В этой статье я коротко поцарапал поверхность AT-командами и инструкциями.
В этой статье я сделаю это еще на один шаг. Я отправлю SMS с моим PIC 16F628A.

Полный макет
Требования
Чтобы получить максимальную отдачу от этой статьи, вам понадобится следующее:
- SIMCOM SIM900A, обновленный, чтобы иметь возможность зарегистрироваться в европейском сервис-провайдере.
- Компьютер с MPLAB X и компилятор XC8.
- PIC 16F628A и MAX232.
- Способ программирования вашего ПОС, я использую PICkit 3.
- Макет, перемычки и ЖК-дисплей.
- Детали из списка деталей.
Введение
Когда модуль SIM900A включен, многое происходит. Один из них заключается в том, что модуль пытается зарегистрироваться в сети. Когда он будет успешно зарегистрирован в сети, мы можем отправить SMS, получить SMS и получить имя поставщика услуг. Основная цель этой статьи - отправить SMS на предопределенный номер. Получить имя поставщика услуг - это бонус.
Модуль связывается с окружающей схемой с TTL или с встроенным IC MAX232. Я буду использовать интерфейс MAX232. Это означает, что вся связь осуществляется с помощью ПОС UART, и все наши команды из ПОС будут отправлены в порт UART с помощью printf.
аппаратные средства
Я подключил свой макет следующим образом:

Нажмите на изображение для полноразмерного разрешения
Поскольку я использую MAX232, я могу использовать это для просмотра и устранения неполадок, которые микроконтроллер посылает в модуль GSM. Для этого я отключу модуль GSM и подключу свой последовательный кабель и откройте GtkTerm. Бод: 9600-8-N-1.

Подключение к компьютеру для устранения неполадок
Это то, что микроконтроллер посылает в модуль GSM. Первые три строки предназначены только для проверки работы последовательной связи и просмотра того, что я отправляю. Последние две строки являются инструкциями для модуля GSM.

Я не получаю ответа от модуля GSM, так как он не подключен
Список запчастей
Это скриншот bom.ulp от EagleCAD.

Программного обеспечения
Хотя программное обеспечение прокомментировано, я рассмотрю некоторые его части. Когда PIC включен, отображается короткое приветственное сообщение. Затем начинается отсчет 15 секунд. Я включил этот обратный отсчет по двум причинам:
- Разрешить регистрацию модуля GSM.
- Визуальный дисплей, который показывает пользователю, что что-то происходит, и ПИК работает.
Когда обратный отсчет завершен, PIC отправляет команду:
AT + CPOL? \ Г \ п
Важно добавить возврат каретки - новая строка, \ r \ n. Это сообщает модулю, что он выполняет текстовую строку, поступившую в буфер модулей.
Затем модуль возвращает строку:
+ CPOL: 1, 0, «N NetCom», 1, 0, 1
Это означает, что модуль зарегистрирован в NetCom. NetCom - это имя поставщика услуг. Это имя, которое мы хотим отобразить на ЖК-дисплее. Теперь нам нужно извлечь имя из строки. То, как я это делаю, состоит в том, чтобы прочитать всю строку в массив. Затем я буду искать «-знаки». Когда «-signs» найдены, я сохраняю их позицию в другом массиве. Это то, что я называю «началом и остановкой». Затем я использую значения от «start and stop», чтобы отображать символы между ними на ЖК-дисплее. Возможно, это не самый приятный способ сделать это, но это просто.

Чтобы отправить SMS, я должен отправить еще несколько AT-команд.
Во-первых, я посылаю команду:
AT + CMGF = 1 \ г \ п
Это формат «Выбрать SMS-сообщение». 1 указывает модулю перейти в текстовый режим.
Во-вторых, я посылаю команду:
AT + CMGS = "приемник" \ г \ п
«receiver» - это номер, на который я хочу отправить сообщение.
В-третьих, я посылаю команду:
Сообщение от PIC16F628A \ r \ n
Это фактическое сообщение. Поскольку сообщение имеет несколько символов, включая пробелы, есть отличный способ сообщить модулю, где находится конец сообщения. Мне нужно отправить знак EOF, который, как оказалось, будет CTRL-Z.
Е ("% С", 26);
Это символ EOF в обычной таблице ASCII. Теперь модуль отправит сообщение.
Используйте эту ссылку, чтобы найти документы, касающиеся модуля SIM900A.
Скачать
Вы можете загрузить c-исходный код из ссылки.
Скачать код
Вывод
Теперь вы сможете получить имя своего поставщика услуг и отправить SMS с модулем SIM900A в европейской сети.
Фотографии и видео




Попробуйте этот проект сами! Получить спецификацию.