Оглавление:
- Шаг 1: SMS-команды
- Шаг 2: Сборка SMS-контроллера
- Шаг 3: Программирование ATMEGA328p
- Шаг 4: Использование SMS-контроллера
- Шаг 5. Приложение для Android
Видео: Домашняя автоматизация на базе Android и Arduino с помощью SMS: 5 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
! ! ! УВЕДОМЛЕНИЕ ! ! !
Из-за того, что в моем районе модернизируется вышка сотовой связи, я больше не могу использовать этот модуль GSM. Более новая башня больше не поддерживает устройства 2G. Поэтому я больше не могу поддерживать этот проект
Недавно я получил относительно дешевый четырехдиапазонный модуль GSM / GPRS для игры. Это модуль SIM800L, который связывается с любым микроконтроллером через последовательный порт. Он поставлялся в комплекте с панельной антенной.
Я решил создать простую систему SMS-контроллера, которая использует команды службы коротких сообщений (SMS) для управления устройствами и индикации сигналов тревоги.
Шаг 1: 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 должно включать статус всех контактов ввода / вывода.
Команды ответа контроллера SMS:
i1: x i2: x i3: x i4: x o1: x o2: x o3: x o4: x
где x - состояние ввода / вывода, 1 - включено, 0 - выключено.
Шаг 2: Сборка SMS-контроллера
Необходимое оборудование:
Любой Arduino или автономный ATMEGA328p на макетной плате
Модуль SIM800L GSM / GPRS с сим-картой, способной отправлять и получать SMS
Понижающий преобразователь постоянного тока в постоянный
ПРИМЕЧАНИЕ !
Преобразователь постоянного тока в постоянный требуется для питания модуля SIM800L. Этот модуль работает в диапазоне от 3,7 В до 5 В, в зависимости от вашей версии. Для этого модуля также требуется источник питания, который может выдавать до 2 А при передаче данных модулем. Его нельзя запитать напрямую от Arduino Uno !
Схема довольно простая. Собрал и протестировал на макетной плате.
Питание схемы осуществляется через преобразователь постоянного тока в постоянный с выходным напряжением, установленным на 4,5 В. Есть четыре светодиода для имитации цифровых выходов и четыре кнопки для цифровых входов. SIM800L подключается к контактам Rx / Tx ATMEGA328p.
Пятый светодиод используется для индикации того, что система занята отправкой SMS.
Шаг 3: Программирование ATMEGA328p
Перед программированием откройте файл INO и отредактируйте номер телефона. Замените xxxxxxxxxx на свой собственный номер сотового телефона в строке 46. Перекомпилируйте и загрузите файл.
Также прочтите инструкции по настройке программного последовательного порта в INO-файле.
//=============================================================================//
//! ! ! ПРИМЕЧАНИЕ ! ! !
// ================
//
// БУФЕР В ПОСЛЕДОВАТЕЛЬНОЙ БИБЛИОТЕКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МЕНЯЕТСЯ ДО 200
//
// Чтобы использовать Software Serial, пользователь также должен изменить Software Serial BUFFER на 200.
// Это необходимо отредактировать в следующем файле:
//
// C: / Program Files / Arduino x.x.x / Hardware / Arduino / AVR / Libraries / SoftwareSerial / src / SoftWareSerial.h
//
// Изменяем буфер, как показано ниже:
//
// #ifndef _SS_MAX_RX_BUFF
// #define _SS_MAX_RX_BUFF 200
// Размер буфера приема
// #endif
//
//=============================================================================
Обратитесь к этой инструкции, чтобы запрограммировать ATMEGA328p на макетной плате с использованием Arduino UNO.
www.instructables.com/id/Arduino-UNO-as-AtM…
Шаг 4: Использование SMS-контроллера
Использование SMS-контроллера
Контроллер SMS автоматически отправит SMS на ваш телефон при срабатывании любого из четырех входов. Детали триггера будут содержаться в тексте SMS.
SMS-сообщения и команды могут быть отредактированы в соответствии с вашими потребностями в файле INO.
Тестирование выходов SMS-контроллера
Отправьте со своего сотового телефона следующие команды на номер вашей SIM-карты SIM800L:
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
Обновления статуса
Вы также можете запросить статус в любое время, отправив следующую команду:
????, это запросит обновление статуса входов / выходов.
На свой телефон вы получите следующее SMS:
i1: x i2: x i3: x i4: x o1: x o2: x 03: x o4: x
где x указывает состояние, 1 - включено, 0 - выключено.
Шаг 5. Приложение для Android
Используя MIT App Inventor 2 (https://ai2.appinventor.mit.edu/), я создал простой пользовательский интерфейс для своего сотового телефона Android. Это приложение позволяет настраивать описание каждого ввода / вывода. Он также позволяет вводить телефонный номер.
Четыре кнопки используются для управления выходами, а флажки указывают состояние входа.
Чтобы отредактировать приложение, создайте учетную запись MIT App Inventor 2 и импортируйте файл AIA.
Чтобы установить приложение на свой телефон, скопируйте файл APK на свой телефон и установите его. Вам нужно будет включить установку приложений из «Неизвестных источников» в настройках безопасности вашего телефона.
Рекомендуемые:
Бесконтактная домашняя автоматизация сотового телефона на базе Arduino-bluetooth: 5 шагов
Сотовый телефон с управлением через Arduino-bluetooth Бесконтактная домашняя автоматизация: приветствую во времена пандемии covid-19, необходимо избегать контактов и поддерживать социальное дистанцирование, но включать и выключать приборы, которые вам нужно касаться коммутаторов, но не ждите больше, представляя бесконтактную систему для управления
Автомобильный GPS-трекер с SMS-уведомлением и загрузкой данных Thingspeak, на основе Arduino, домашняя автоматизация: 5 шагов (с изображениями)
Автомобильный GPS-трекер с SMS-уведомлением и загрузкой данных Thingspeak, на основе Arduino, домашняя автоматизация: я сделал этот GPS-трекер в прошлом году, и, поскольку он хорошо работает, я публикую его сейчас на Instructable. Он подключен к разъему для аксессуаров в моем багажнике. GPS-трекер загружает данные о местоположении, скорости, направлении и измеренной температуре автомобиля через мобильный телефон
Простейшая домашняя автоматизация с использованием Bluetooth, смартфона Android и Arduino: 8 шагов (с изображениями)
Простейшая домашняя автоматизация с использованием Bluetooth, Android-смартфона и Arduino. Привет всем, этот проект посвящен созданию самого упрощенного устройства домашней автоматизации с использованием Arduino и модуля Bluetooth. Его очень легко построить, и его можно построить за несколько часов. В моей версии, которую я объясняю прямо здесь, я могу
Домашняя автоматизация с помощью приложения BLYNK: 7 шагов (с изображениями)
Домашняя автоматизация с помощью приложения BLYNK: в этом проекте я показал, как каждый может удаленно управлять своей бытовой техникой с помощью своего мобильного телефона. Для этого на вашем мобильном телефоне должно быть установлено приложение. Название этого приложения - BLYNK App (ссылка для скачивания приведена в описании
Простая домашняя автоматизация с использованием Raspberry Pi3 и Android Things: 5 шагов (с изображениями)
Простая домашняя автоматизация с использованием Raspberry Pi3 и Android. Идея состоит в том, чтобы создать «умный ДОМ». при этом управлять бытовыми устройствами можно с помощью Android Things и Raspberry Pi. Проект состоит из управления домашними устройствами, такими как свет, вентилятор, двигатель и т. Д. Необходимые материалы: Raspberry Pi 3HDMI Ca