Как отправить sms с pic16f628a и sim900a

Как отправить sms с pic16f628a и sim900a
Как отправить sms с pic16f628a и sim900a
Anonim

Как отправить SMS с помощью PIC16F628A и SIM900A

В этой статье я покажу вам один способ отправки SMS с помощью PIC 16F628A и SIMCOM SIM900A.

В предыдущей статье я обновил прошивку на своем GSM-модуле, чтобы зарегистрироваться в европейском сервис-провайдере. В этой статье я коротко поцарапал поверхность AT-командами и инструкциями.

В этой статье я сделаю это еще на один шаг. Я отправлю SMS с моим PIC 16F628A.

Image
Image

Полный макет

Требования

Чтобы получить максимальную отдачу от этой статьи, вам понадобится следующее:

  • SIMCOM SIM900A, обновленный, чтобы иметь возможность зарегистрироваться в европейском сервис-провайдере.
  • Компьютер с MPLAB X и компилятор XC8.
  • PIC 16F628A и MAX232.
  • Способ программирования вашего ПОС, я использую PICkit 3.
  • Макет, перемычки и ЖК-дисплей.
  • Детали из списка деталей.

Введение

Когда модуль SIM900A включен, многое происходит. Один из них заключается в том, что модуль пытается зарегистрироваться в сети. Когда он будет успешно зарегистрирован в сети, мы можем отправить SMS, получить SMS и получить имя поставщика услуг. Основная цель этой статьи - отправить SMS на предопределенный номер. Получить имя поставщика услуг - это бонус.

Модуль связывается с окружающей схемой с TTL или с встроенным IC MAX232. Я буду использовать интерфейс MAX232. Это означает, что вся связь осуществляется с помощью ПОС UART, и все наши команды из ПОС будут отправлены в порт UART с помощью printf.

аппаратные средства

Я подключил свой макет следующим образом:

Image
Image

Нажмите на изображение для полноразмерного разрешения

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

Image
Image

Подключение к компьютеру для устранения неполадок

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

Image
Image

Я не получаю ответа от модуля GSM, так как он не подключен

Список запчастей

Это скриншот bom.ulp от EagleCAD.

Image
Image

Программного обеспечения

Хотя программное обеспечение прокомментировано, я рассмотрю некоторые его части. Когда PIC включен, отображается короткое приветственное сообщение. Затем начинается отсчет 15 секунд. Я включил этот обратный отсчет по двум причинам:

  1. Разрешить регистрацию модуля GSM.
  2. Визуальный дисплей, который показывает пользователю, что что-то происходит, и ПИК работает.

Когда обратный отсчет завершен, PIC отправляет команду:

AT + CPOL? \ Г \ п

Важно добавить возврат каретки - новая строка, \ r \ n. Это сообщает модулю, что он выполняет текстовую строку, поступившую в буфер модулей.

Затем модуль возвращает строку:

+ CPOL: 1, 0, «N NetCom», 1, 0, 1

Это означает, что модуль зарегистрирован в NetCom. NetCom - это имя поставщика услуг. Это имя, которое мы хотим отобразить на ЖК-дисплее. Теперь нам нужно извлечь имя из строки. То, как я это делаю, состоит в том, чтобы прочитать всю строку в массив. Затем я буду искать «-знаки». Когда «-signs» найдены, я сохраняю их позицию в другом массиве. Это то, что я называю «началом и остановкой». Затем я использую значения от «start and stop», чтобы отображать символы между ними на ЖК-дисплее. Возможно, это не самый приятный способ сделать это, но это просто.

Image
Image

Чтобы отправить SMS, я должен отправить еще несколько AT-команд.

Во-первых, я посылаю команду:

AT + CMGF = 1 \ г \ п

Это формат «Выбрать SMS-сообщение». 1 указывает модулю перейти в текстовый режим.

Во-вторых, я посылаю команду:

AT + CMGS = "приемник" \ г \ п

«receiver» - это номер, на который я хочу отправить сообщение.

В-третьих, я посылаю команду:

Сообщение от PIC16F628A \ r \ n

Это фактическое сообщение. Поскольку сообщение имеет несколько символов, включая пробелы, есть отличный способ сообщить модулю, где находится конец сообщения. Мне нужно отправить знак EOF, который, как оказалось, будет CTRL-Z.

Е ("% С", 26);

Это символ EOF в обычной таблице ASCII. Теперь модуль отправит сообщение.

Используйте эту ссылку, чтобы найти документы, касающиеся модуля SIM900A.

Скачать

Вы можете загрузить c-исходный код из ссылки.

Скачать код

Вывод

Теперь вы сможете получить имя своего поставщика услуг и отправить SMS с модулем SIM900A в европейской сети.

Фотографии и видео

Image
Image
Image
Image
Image
Image
Image
Image

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