Микроконтроллеры используются во всех сферах жизнедеятельности человека, устройствах, которые окружают его. Простота подключения и большие функциональные возможности. С помощью программирования микроконтроллера можно решить многие практические задачи аппаратной техники.
Arduino – это простая в использовании открытая электронная платформа, включающая так называемые стартовые наборы разработчика (starter kit) и открытое программное обеспечение и предназначенная для быстрого создания интерактивных электронных устройств. Она была создана группой энтузиастов, которые позиционировали свою разработку как платформу для быстрой реализации небольших проектов. Arduino строится на базе микроконтроллеров Atmel и используется для получения сигналов от аналоговых и цифровых датчиков, управления различными исполнительными устройствами и обмена информацией с компьютером при помощи различных интерфейсов.
Во многих приложениях необходимо оперативно передавать информацию о состоянии объекта мониторинга по беспроводным каналам связи. Одно из наиболее распространенных и удобных для этого средств – GSM-модуль, который встраивается в датчики, размещаемые на объекте.
В качестве датчика температуры выбран LM335, так как это один из самых надежных и не дорогих датчиков, которые могут быть легко откалиброваны.
Модуль для работы микроконтроллерных устройств Arduino и аналогичных в сетях сотовой связи по стандартам GSM и GPRS. Ориентирован на использование в системах автоматики и управления. Обмен данными с другими модулями происходит через интерфейс UART. Модуль собран на модуле SIM900, имеет антенну, слот для SIM карты и 2 гнезда 3,5 мм. GSM/GPRS shield представлен на рисунке 1.
Рисунок 1 – GSM/GPRS shield с антенной
Для разработки системы сбора данных о температуры был проведен анализ требований пользователя, в результате которого определены следующие требования:
сборка должна отправлять SMSсообщения на телефон;
сервис должен быть доступен на известных мобильных платформах;
сервис должен находиться в специальном облаке от разработчика;
приложение должно отображать уровень сигнала от модуля;
Разрабатываемое устройство должно удовлетворять следующим техническим требованиям:
иметь функцию регистрации температуры в диапазоне –40 °C до +100 °C;
иметь функцию обмена данными с использованием канала GSM по средствам AT-команд;
питаться от внешнего источника питания 5в 1 А.
Устройство GSM/GPRS shield, позволяющей Arduino работать в сетях сотовой связи по технологиям GSM/GPRS для приёма и передачи SMS с показанием изменения температуры.
Рекомендуемое номинально напряжение данного модуля лежит в диапазоне 4,8–5,2 В, было решено использовать преобразователь напряжения на основе LM, он запитывает схему постоянным напряжением 3,5 вольт. Так как потребление GSM-модуля в момент регистрации равна 2 Ампера, мы будем использовать адаптер 5 В 2 А. Ниже, на рисунке 2 представлена функциональная структура системы.
Рисунок 2 – Функциональная схема системы подключения
В соответствии с техническим заданием требуется разработать принципиальную схему системы. Основой системы является плата Arduino и модуль SIM900. Обмен данными между модулями происходит посредством интерфейса UART. Ниже приведены порты платы Arduino и модуля SIM900.
Таблица 1 – Порты Arduino
Обозначение порта |
Тип порта |
Значение |
Уровень напряжения |
5V |
Выход 5 В |
5 В |
|
3.3V |
Выход 3.3 В |
3.3 В |
|
Vin |
Внешнее напряжение |
От 6 до 20В |
|
Reset |
Сброс |
0 В |
|
GND |
Земля |
||
A0 |
Аналоговый вход |
Вход АЦП |
|
A1 |
Аналоговый вход |
Вход АЦП |
|
A2 |
Аналоговый вход |
Вход АЦП |
|
A3 |
Аналоговый вход |
Вход АЦП |
|
A4 |
Аналоговый вход |
Вход АЦП |
|
A5 |
Аналоговый вход |
Вход АЦП |
|
PIN0 |
Цифровой порт |
Вывод RX Serial порта |
5 В или 0 В |
PIN1 |
Цифровой порт |
Вывод TX Serial порта |
5 В или 0 В |
PIN2 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
PIN3 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
PIN4 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
PIN5 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
PIN6 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
PIN7 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
PIN8 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
PIN9 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
PIN10 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
PIN11 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
PIN12 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
PIN13 |
Цифровой порт |
Цифровой вход-выход |
5 В или 0 В |
Таблица 2 – Порты модуля SIM900
Обозначение порта |
Тип порта |
Значение |
Уровень напряжения |
V |
Порт питания |
Порт питания модуля |
От 4,8–5,2 В |
GND |
Земля |
Земля модуля |
Земля |
GND |
Земля |
Земля слота SIM |
Земля |
SIM_TXD |
Цифровой порт |
Вывод TX Serial порта |
От 2.5 – до 3 В |
SIM_RXD |
Цифровой порт |
Вывод RX Serial порта |
От 2.5 – до 3 В |
RST |
Сброс |
Перезагрузка модуля |
От 1 – до 4 В |
Принципиальная схема системы представлена ниже.
Рисунок 3– Принципиальная схема системы
На управляющей плате помимо микроконтроллера ATmega328 стоит модуль питания, выполненный на преобразователе LM, он запитывает схему постоянным напряжением 3,5 вольт. В принципе подойдет любой другой источник питания, главное, чтобы он был способен кратковременно вытянуть до 2 ампер.
Линия Control идущая от коллектора транзистора Q2 к выводу PortD.4 микроконтроллера добавлена для перестраховки и нужна за тем чтобы следить включен ли модуль. Так как порог выключения у SIM900 составляет 3,2 вольта то даже при незначительной просадке напряжения модуль автоматически выключится, тогда как микроконтроллер продолжит работать и выполнять программу (порог сброса у ATmega328 2,7 вольта). В рабочем состоянии на этой линии находится низкий уровень. Если микроконтроллер обнаружит что на этой линии высокий уровень, выполнится функция повторного запуска GSM модуля.
За измерение температуры отвечает датчик LM328, он подключается к выводу PortD.0 микроконтроллера.
Алгоритм, представляет собой бесконечный цикл, выполнение которого прекращается при вводе непредусмотренного значения.
Рисунок 3 - Алгоритм МПС
На блок- схеме показаны функции, которые помогают отправить SMS сообщение об изменении температуры окружающей среды:
в строке currStr хранится текущая строка, которую передает нам плата;
AT+CMGF – задаёт режим работы, 1-текстовый. Эта команда будет вызываться первой, от этого зависит формат последующих команд и ответов модема;
AT+IFC=1,1 – программный контроль передачи данных;
AT+CPBS=SM – выбор основной памяти сим-карты. Данный режим стоит по умолчанию;
AT+CNMI – разрешение индикационного содержимого SMS сообщений.
Скетч у нас выглядит таким образом, что Arduino отправляет sms-сообщение с данными температуры только при получении приходящего сообщения с текстом «temp». Результат работы показан на рисунке 5.
Рисунок 5 – Результат работы
Таким образом, в данной работе было произведено проектирование аппаратной части, разработана принципиальная схема устройства, разработан алгоритм программного обеспечения, реализация которого осуществлена на языке Arduino C++ (программный код опущен). В конечном итоге была разработана система сбора данных о температуре.
Список использованных источников:
Arduino gsm модуль: принцип работы, популярные модели [Электронный ресурс]. URL: https://bezopasnostin.ru/gsm-signalizatsiya/gsm-moduli-arduino.html#i-3
LMx35, LMx35A Precision Temperature Sensors [Электронныйресурс]. https://components101.com/asset/sites/default/files/component_datasheet/LM335-Temperature-Sensor.pdf
АРДУИНО - КИТ [Электронный ресурс]. URL: https://arduino-kit.ru/catalog/id/shield-gprs-gsm-sim900-s-antennoy