Автоматизация дома с использованием GSM и Arduino


Мобильный телефон является революционным изобретением современности. Первоначально он был придуман для совершения голосовых вызовов и передачи/приема текстовых сообщений, но после появления смартфонов функции мобильных телефонов значительно расширились. В этом проекте мы разработаем систему автоматизации дома на основе платы Arduino, которая будет управлять включением/выключением домашних электронных устройств при помощи передачи SMS сообщений с мобильного телефона (не обязательно смартфона, подойдет и обычный мобильный телефон). Ранее на нашем сайте мы уже рассматривали проекты автоматизации дома под управлением персонального компьютера и с помощью пульта инфракрасной связи.

Автоматизация дома с использованием GSM и Arduino: внешний вид конструкции

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. GSM модуль (купить на AliExpress).
  4. Модуль драйвера двигателя ULN2003 (купить на AliExpress).
  5. Реле на 5 В.
  6. Электрические лампочки с держателями (патронами).
  7. Источник питания.
  8. Соединительные провода.
  9. Макетная плата.
  10. Мобильный телефон.

Общие принципы работы устройства

Структурная схема работы устройства приведена на следующем рисунке.

Структурная схема работы устройства

В нашем проекте мы в SMS сообщениях будем использовать префикс “#A.” чтобы идентифицировать начало команды, а в конце сообщения будем использовать суффикс (концевик) “*“ чтобы идентифицировать конец команды.

Когда мы передаем SMS с мобильного телефона, GSM модуль принимает его и передает на плату Arduino. Плата Arduino принимает это сообщение, извлекает из него значащую часть и сохраняет ее в строковой переменной. После этого Arduino сравнивает эту строку с заранее определенными строками (шаблонами) для управления электронными устройствами. Если строки совпадают, то Arduino выдает команду через реле на включение/выключение соответствующего устройства и высвечивает на ЖК дисплее результат операции.
В нашем проекте для демонстрации мы использовали 3 электрические лампочки, которые условно будут обозначать вентилятор, свет и телевизор.

В следующей таблице приведен список сообщений, передаваемых с помощью SMS, для включения/выключения вентилятора, света и телевизора.

S.no. Message Operation
1 #A.fan on* Fan ON
2 #A.fan off* Fan OFF
3 #A.light on* Light ON
4 #A.light off* Light OFF
5 #A.tv on* TV ON
6 #A.tv off* TV Off
7 #A.all on* All ON
8 #A.all off* All OFF

Принципы работы GSM модуля

GSM модуль используется во многих устройствах, которые ориентированы на взаимодействие с технологией GSM. Обычно он используется для взаимодействия компьютера с GSM сетью. Однако в роли компьютера может выступать и плата Arduino.

GSM модуль понимает только AT команды и может на них отвечать. На большинство AT команд модуль отвечает сообщением “OK“ если он выполнил ее успешно, и сообщением “ERROR” если во время выполнения команды произошли какие либо проблемы. Существуют различные AT команды, например, ATA – ответить на звонок, ATD – сделать звонок, AT+CMGR — прочесть сообщение, AT+CMGS – передать SMS сообщение и т.д. AT команды должны заканчиваться символом возврата каретки, то есть \r (0D в шестнадцатеричном формате), например, “AT+CMGS\r”. К примеру, в нашем проекте мы можем использовать следующие AT команды:

ATE0 For echo off
AT+CNMI=2,2,0,0,0 <ENTER> режим автоматического открытия принимаемых сообщений
ATD<Mobile Number>; <ENTER> осуществить вызов (например, ATD+919610126059;\r\n)
AT+CMGF=1 <ENTER> выбор текстового режима
AT+CMGS=”Mobile Number” <ENTER> назначение мобильного номера получателя
>>после этого мы можем написать наше сообщение
>>после написания сообщения
Ctrl+Z команда передачи сообщения (26 в десятичном коде).
ENTER=0x0d в шестнадцатеричном формате

SIM900 представляет собой четырех диапазонный GSM/GPRS модуль, способный функционировать в диапазонах 850/900/1800/1900 МГц в режимах передачи/приема голоса, SMS и данных. Отличается низким энергопотреблением. Внешний вид данного модуля показан на следующем рисунке.

Внешний вид GSM модуля SIM900

Работа схемы

Схема устройства представлена на следующем рисунке.

Схема автоматизации дома с использованием GSM и Arduino

ЖК дисплей используется для отображения статуса операций и подключен к плате Arduino в 4-битном режиме. Контакты ЖК дисплея RS, EN, D4, D5, D6, D7 подсоединены к цифровым контактам Arduino 6, 7, 8, 9, 10, 11. Контакты Rx и Tx GSM непосредственно подключены к контактам Tx и Rx Arduino. GSM запитывается с помощью 12-вольтового адаптера. Три реле на 5 Вольт типа SPDT используются для управления света, вентилятора и телевизора. Реле подсоединены к контактам Arduino 3, 4 и 5 через драйвер реле ULN2003.

Исходный код программы

В программе первым делом необходимо подключить библиотеку для работы с ЖК дисплеем, сообщить Arduino к каким его контактам подключен ЖК дисплей, инициализировать необходимые контакты и переменные.

После этого необходимо инициализировать последовательный порт для работы со скоростью 9600 бод/с, задать направление работы для используемых контактов.

Для работы с последовательным портом мы будем использовать 2 функции: Serial.available, которая будет проверять поступили ли какие-нибудь данные по последовательному порту и Serial.read, которая будет считывать данные из последовательного порта.

После приема данных по последовательному порту мы значащую часть SMS сообщения сохраняем в строковой переменной.

Затем в программе происходит сравнение этой строки с образцами строк и если фиксируется совпадение, то выдается команда на включение/выключение соответствующего устройства.

Далее приведен полный текст программы.

Видео, демонстрирующее работу схемы

(1 голосов, оценка: 5,00 из 5)
Загрузка...
1 739 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *