В
уроке мы использовали стороннее
приложения для Android телефона или планшета.
Сегодня мы напишем свое приложение в
mit app inventor. Подправим скетч из Arduino урока11, для работы с низкоуровневым реле. С
высоко уровненным рее работать будет
без изменения скетча. Чем отличаются
высоко уровневые реле от низко уровневых.
Низко уровневые включается, когда на
сигнальны Пин реле подается LOW. Высоко
уровневый включается, когда подадим
HIGH. Конструктивные особенности и более
подробную информацию ищите в
интернете.
Приступим к приложению
для Андроида
, для этого воспользуемся
самым простым решением
app inventor 2. Если у
вас возникли сложности с данной средой
разработки у меня на сайте есть боле
простые примеры написания
приложений
в данной среде разработки
: Wi-Fi реле на NodeMCU. Управление Android приложением
Интерфейс
программы будет выглядеть вот так.
В
приложение нужно добавить:
BluetoothClient1 и
Clock1 с интервалом обновления 100.
Кнопка
«Bluetooth»
осуществляет подключение к
hc-06 модулю.
Копка «Disconnect» разрывает
соединение.
Кнопки «On» и «Off» включают
и выключают реле.
Блоки программы
для подключения и отключения
модулю
HC-06
:
Блок управления и вывода
информации на дисплей.
Копка
включения отправляет по
блютуз каналу
значение равное 1. Кнопка отключения
отправляет 0.
Cloc1 это часы, проверяют
информацию которая пришла по
Bluetooth и
выводит ее в текстовое поле Info.
Приложение
на Android
устройстве выгладить вот
так.
После нажатия на кнопку «Bluetooth».
У вас откроется окно выбора устройства.
Выбираете ваше устройство. После чего
можно управлять реле. При нажатии на
кнопку «On».
В поле Info выведется информация
«Rele On — Portal-Pk.ru». При выключении реле на
экран телефона будет строка «Rele Off —
Portal-Pk.ru»
Подключаем к Arduino UNO реле и
модуль
по схеме.
Если у вас Arduino
NANO, то реле и bluetooth модуль hc 06 подключить
по схеме.
Скетч bluetooth реле ардуино
будет вот таким.
int LED = 5;
int val = 0;
void setup() {
Serial.begin(9600); //Инициирует последовательное
//соединение и задает скорость передачи данных в бит/c (бод)
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
}
void loop() {
if (Serial.available() > 0) // пришли данные
{
val = Serial.read();
if (val=='1') // если 1 то включаем светодиод
{
digitalWrite(LED,LOW);
Serial.print("Rele On - "); // вывод данных
Serial.println("Portal-Pk.ru"); // вывод данных с переносом строки
}
if (val=='0') // если 0 то выключаем светодиод
{
digitalWrite(LED,HIGH);
Serial.print("Rele Off - "); // вывод данных
Serial.println("Portal-Pk.ru"); // вывод данных с переносом строки
}
}
}
Если вы сделали
все правильно, то у вас получиться вот
такой результат.
Подскажите пожалуйста. А можно ли сделать так, чтобы модуль постоянно опрашивал есть ли в зоне действия смартфон, и если смартфон находится в зоне досягаемости, то модуль включал реле, а как только смартфон вышел из зоны, модуль отключал реле?
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.