Универсальный GSM модуль на ATmega328P и Sim800C

Часто возникает необходимость удаленно управлять различными устройствами. От некоторых важно получать обратную связь, информацию о сработавших зонах охраны, если речь идет о сигнализации; для некоторых устройств важен настраиваемый алгоритм работы выходов и входов, например в устройствах автозапуска двигателя автомобиля, управление климатом теплиц и овощехранилищ и т.д.

Для того, чтобы удовлетворить множество потенциальных потребностей мной было разработано универсальное устройство на связке  микроконтроллера ATmega328P и gsm-модуля Sim800C. Была создана базовая прошивка и приложение на Android для удобства пользователей, также в устройстве предусмотрены интерфейсы для расширения сфер применения: I2C, АЦП, UART2 (от Sim800C), Bluetooth — это для разработчиков.

mini123

Общие характеристики:

Размеры: 55х37мм
Питание: 12-14В; 3,7-4,5В.
Используется ШИМ стабилизатор питания на ST1S40
На разъемы выведены 8 портов ввода-вывода.
Есть возможность подключать внешние устройства через UART2 (от sim800C), I2C, Bluetooth.
При необходимости можно запрограммировать реакцию на глушение GSM канала (jumming detection) — все необходимые подключения на плате присутствуют.
Для программирования ATmega328 через ISP и Sim800C через USB интерфейс, используются SMD-контакты(площадки).
Установлен считыватель micro sim с торцевой загрузкой и автофиксацией.
Для уменьшения габаритов и удобства использованы SMD антенны GSM и Bluetooth, также возможно использовать внешнюю антенну с разъемом ipex для большей стабильности. (при использовании SMD GSM-антенны необходимо устанавливать экранирующий короб на цепь питания). 
Предусмотрена цепь микрофона и цепь усилителя звукового сигнала 1.4W на Tpa2005.
Плата подходит для корпуса K-7 (korpusplast). 
Установлены 2 кнопки и два светодиода для отражения состояния устройства.

На сим-карте gsm модуля нужно создать контакт с именем ADMIN. С других номеров устройство управляться не будет.

 

Схема устройства:

c[tvf

(sd3: ESDA5V3SC6)

Использован кварцевый резонатор частотой 7,3728мГц (8мГц не рекомендуется, при работе по uart с simcom возникают ошибки).

Питание устройства осуществляется от источника 12В (1A) через встроенный ШИМ преобразователь или напрямую от источника 3,7-4,5 Вольт.

Пример использования:

Задача: организовать автозапуск двигателя на автомобиле.

Логика настройки портов:

порт 1 — выход — (зажигание) — включить через секунду после прихода смс, выключить через 10 мин. после включения.

порт 2 — выход — (активация обходчика иммобилайзера) — включить через секунду после прихода смс, выключить через минуту после включения.  

порт 3 — выход — (имитация нажатия педали тормоза) — включить через 6 секунд после прихода смс, выключить через 4 сек. после включения.

порт 4 — выход — (стартер) — включить через 7 секунд после прихода смс, выключить через 1сек. после включения

порт 5 — вход — (от цифрового термометра) — при заданной температуре от термометра поступит сигнал на этот порт и процедура запуска сработает без прихода смс, отправив при этом оповещение о том что была сработка по этому порту. (базовая прошивка поддерживает эту функцию — при срабатывании портов, которые мы настроили на вход, отрабатывается алгоритм, заданный в смс сообщении).

остальные порты (6-8) в данном примере не нужны и мы настраиваем их на выход (для исключения ложных сработок.), но не выставляем задержки включения и выключения.

настройка алгоритма в приложении выглядит так:

скриншот

в итоге получается такое смс:

смс

где off означает, что данный порт будет в состоянии логического нуля после прихода конфигурационного смс. (выход в скриншоте должен быть 8-out-off-9s-2s  (забыл изменить прежнюю конфигурацию)).

(При необходимости можно полностью инвертировать алгоритм, чтобы по умолчанию на выходах была логическая 1 (вместо off будет стоять on, а во время отработки алгоритма включался логический 0 — для некоторых нужд это бывает очень кстати, например есть популярные релейные модули, которые управляются «нулями»

Примечание: Для реального включения модуля в цепь автозапуска, потребуется соединить его с релейным модулем управляемым слаботочными сигналами, а разъемы для прочной фиксации нужно использовать smaw200).

На приложенном видео вы сможете посмотреть как работает этот алгоритм. 

Также в базовой прошивке заложена возможность звонка на модуль — устройство автоматически «снимет трубку». 

Нажатие на кнопку SA1 повторно активирует алгоритм (удобно для корректировки алгоритма).

Фьюзы:
фьюзы

Плату в домашних условиях изготовить будет сложно, поэтому ее исходник не выложен, однако вы можете приобрести ее (в сборе или конcтруктор + приложение на android) на сайте exDIY, а также мобильное приложение отдельно или полностью проект с исходным кодом (atmel studio).

Надеюсь это устройство будет полезно радиолюбителям для реализации широкого круга задач. 

Если у вас возникли вопросы или предложения (по плате, мобильному приложению, прошивке…), вы можете их написать на форуме в одноименной теме.   

Коммерческое использование материалов статьи запрещено без согласования с автором. Все права защищены.