Часто возникает необходимость удаленно управлять различными устройствами. От некоторых важно получать обратную связь, информацию о сработавших зонах охраны, если речь идет о сигнализации; для некоторых устройств важен настраиваемый алгоритм работы выходов и входов, например в устройствах автозапуска двигателя автомобиля, управление климатом теплиц и овощехранилищ и т.д.
Для того, чтобы удовлетворить множество потенциальных потребностей мной было разработано универсальное устройство на связке микроконтроллера ATmega328P и gsm-модуля Sim800C. Была создана базовая прошивка и приложение на Android для удобства пользователей, также в устройстве предусмотрены интерфейсы для расширения сфер применения: I2C, АЦП, UART2 (от Sim800C), Bluetooth — это для разработчиков.
Общие характеристики:
Размеры: 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. С других номеров устройство управляться не будет.
Схема устройства:
(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).
Надеюсь это устройство будет полезно радиолюбителям для реализации широкого круга задач.
Если у вас возникли вопросы или предложения (по плате, мобильному приложению, прошивке…), вы можете их написать на форуме в одноименной теме.
Коммерческое использование материалов статьи запрещено без согласования с автором. Все права защищены.