Android и Arduino SMS базирана домашна автоматизация: 5 стъпки (със снимки)
Android и Arduino SMS базирана домашна автоматизация: 5 стъпки (със снимки)
Anonim
Android и Arduino SMS базирана домашна автоматизация
Android и Arduino SMS базирана домашна автоматизация
Android и Arduino SMS базирана домашна автоматизация
Android и Arduino SMS базирана домашна автоматизация

! ! ! Н О Т И К Е! ! !

Поради обновяването на локалната кула за мобилни телефони в моя район, вече не мога да използвам този GSM модул. По -новата кула вече не поддържа 2G устройства. Затова вече не мога да давам никаква подкрепа за този проект

Наскоро получих сравнително евтин Quad Band GSM/GPRS модул, с който да играя. Това е модул SIM800L и комуникира с всеки микро чрез сериен порт. Той идва в комплект с антена за монтаж на панел.

Реших да създам проста система за SMS контролер, която използва команди за кратки съобщения (SMS) за управление на устройства и индикация на аларми.

Стъпка 1: SMS команди

SMS команди
SMS команди

Както при всяка комуникационна система, трябва да се изпратят конкретни команди до отдалечено устройство, за да му се каже какво да прави. По същия начин отдалеченото устройство трябва да отговори или да реагира на тези команди. Този проект се състои от две части, SMS контролер и стандартен мобилен телефон.

Идеята беше да се създаде прост SMS контролер с четири цифрови изхода. В зависимост от получения SMS, устройството трябва да може да контролира отделните изходи.

Реших също да включа четири цифрови входа. Това може да се използва за индикация на аларми или друга информация.

Преди да започна изграждането, реших да създам специфични команди за конкретни функции. Тези „команди“ще бъдат изпратени чрез SMS от мобилен телефон.

Команди за получаване на SMS контролер:

o1: 1 - включете изхода 1

o1: 0 - завъртете изхода 1 Изкл

o1: p - импулсен изход 1 Включете, след това изключете

o2: 1 - включете изхода 2

o2: 0 - изключете изхода 2

o2: p - импулсен изход 2 Включете, след това изключете

o3: 1 - включете изхода 3

o3: 0 - завъртете изхода 3 Изкл

o3: p - импулсен изход 3 Включете, след това изключете

o4: 1 - включете изхода 4

o4: 0 - включете изхода 4 Изкл

o4: p - импулсен изход 4 Включете, след това изключете

???? - Статус на заявка за входове и изходи

#### - Нулиране на системата

За обратна връзка, SMS контролерът трябва да отговори на получените команди и да отговори със SMS. Реших, че този SMS с отговор трябва да включва състоянието на всички I/O пинове.

Команди за отговор на SMS контролер:

i1: x i2: x i3: x i4: x o1: x o2: x o3: x o4: x

където x е състоянието на I/O, 1 за On, 0 за Off.

Стъпка 2: Изграждане на SMS контролер

Изграждане на SMS контролер
Изграждане на SMS контролер
Изграждане на SMS контролер
Изграждане на SMS контролер
Изграждане на SMS контролер
Изграждане на SMS контролер

Необходимо оборудване:

Всеки Arduino или самостоятелен ATMEGA328p на макет

SIM800L GSM/GPRS модул със сим карта, способна да изпраща и получава SMS

Стъпка надолу DC/DC преобразувател

ЗАБЕЛЕЖКА !

За захранването на модула SIM800L е необходим DC/DC конвертор. Този модул работи между 3.7V и 5V, в зависимост от версията, която имате. Този модул също изисква захранване, което може да достави до 2A, когато модулът предава данни. Не може да се захранва директно от Arduino Uno !

Схемата е доста проста. Събрах го и го тествах на макет.

Захранването на веригата се осъществява чрез DC/DC преобразувател, с изходно напрежение, зададено на 4.5V. Има четири светодиода за симулиране на цифровите изходи и четири бутона за цифровите входове. SIM800L е свързан към Rx/Tx щифтовете на ATMEGA328p.

Петият светодиод се използва, за да покаже, когато системата е заета с изпращане на SMS.

Стъпка 3: Програмиране на ATMEGA328p

Програмиране на ATMEGA328p
Програмиране на ATMEGA328p
Програмиране на ATMEGA328p
Програмиране на ATMEGA328p

Преди да програмирате, отворете INO файла и редактирайте телефонния номер. Заменете xxxxxxxxxx със собствения си номер на мобилен телефон в ред 46. Прекомпилирайте и качете файла.

Също така прочетете инструкциите как да конфигурирате софтуерния сериен порт във файла INO.

//=============================================================================//

//! ! ! ЗАБЕЛЕЖКА ! ! !

// ================

//

// БУФЕР В СЕРФИЙНА БИБЛИОТЕКА НА СОФТУЕРА ДА СЕ ПРОМЕНИ НА 200

//

// За да използва софтуерен сериал, потребителят трябва също да промени софтуерния сериен буфер на 200.

// Това трябва да бъде редактирано в следния файл:

//

// C:/Програмни файлове/Arduino x.x.x/Хардуер/Arduino/AVR/Библиотеки/SoftwareSerial/src/SoftWareSerial.h

//

// Промяна на буфера както е показано по -долу:

//

// #ifndef _SS_MAX_RX_BUFF

// #дефинирам _SS_MAX_RX_BUFF 200

// Размер на RX буфера

// #endif

//

//=============================================================================

Вижте тази инструкция, за да програмирате ATMEGA328p на макета с помощта на Arduino UNO.

www.instructables.com/id/Arduino-UNO-as-AtM…

Стъпка 4: Използване на SMS контролера

Използване на SMS контролера
Използване на SMS контролера

Използване на SMS контролера

SMS контролерът автоматично ще изпрати SMS на вашия телефон, ако някой от четирите входа се задейства. Подробностите за задействането ще се съдържат в текста на SMS.

SMS съобщенията и командите могат да бъдат редактирани според вашите нужди във файла INO.

Тестване на изходите на SMS контролера

От мобилния си телефон изпратете следните команди към номера на вашата SIM800L SIMcard:

o1: 1, това ще включи изход 1.

На телефона си ще получите следния SMS:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 1 o2: 0 03: 0 o4: 0

01: 0, това ще изключи изход 1.

На телефона си ще получите следния SMS:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

01: p, това ще включи изход 1 за 1 секунда, след което ще изключи изход 1 отново (импулсно).

На телефона си ще получите следния SMS:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

Тестване на входовете на SMS контролера

На SMS контролера натиснете кратко бутон 1

На телефона си автоматично ще получите следния SMS:

i1: 1 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

На SMS контролера натиснете кратко бутон 2

На телефона си автоматично ще получите следния SMS:

i1: 1 i2: 1 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

На SMS контролера натиснете кратко бутон 3

На телефона си автоматично ще получите следния SMS:

i1: 1 i2: 1i3: 1 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

Както може да се види на получения SMS, изходите се променят според получените команди. Въпреки това, входовете не се променят от 1 до 0 след натискане на бутоните. Тъй като исках да мога да видя всякакви промени по входовете, реших да запечатам състоянието на входа, докато команда за нулиране бъде изпратена до SMS контролера.

Нулиране на алармите

За да нулирате състоянието на входа, изпратете следната команда:

####, това ще нулира състоянието на входа.

На телефона си ще получите следния SMS:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

Актуализации на състоянието

Можете също така да поискате статуса по всяко време, като изпратите следната команда:

????, това ще изисква актуализация на състоянието на I/Os.

На телефона си ще получите следния SMS:

i1: x i2: x i3: x i4: x o1: x o2: x 03: x o4: x

където x показва състоянието, 1 за включване, 0 за изключване.

Стъпка 5: Приложение за Android

Приложение за Android
Приложение за Android
Приложение за Android
Приложение за Android
Приложение за Android
Приложение за Android

Използвайки MIT App Inventor 2 (https://ai2.appinventor.mit.edu/), създадох прост потребителски интерфейс за моя мобилен телефон с Android. Това приложение ви позволява да персонализирате описанието на всеки I/O. Той също така позволява въвеждане на телефонния номер.

Четирите бутона се използват за управление на изходите, докато квадратчетата за отметка показват състоянието на входа.

За да редактирате приложението, създайте MIT App Inventor 2 акаунт и импортирайте AIA файла.

За да инсталирате приложението на телефона си, копирайте APK файла на телефона си и го инсталирайте. Ще трябва да активирате инсталирането на приложения от „Неизвестни източници“в настройките за сигурност на телефона си.

Препоръчано: