Учебное пособие по Arduino:JARVIS v1 | Как сделать домашнюю автоматизацию
Компоненты и расходные материалы
| × | 1 | ||||
| × | 4 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 10 |
Необходимые инструменты и машины
|
Приложения и онлайн-сервисы
|
Об этом проекте
Почему мы это построили?
Я фанат Железного человека, и меня очень вдохновил ДЖАРВИС личный помощник с голосовым управлением, и я очень хотел создать систему домашней автоматизации. Хотя существует множество существующих систем, я решил создать свою собственную систему домашней автоматизации с использованием Arduino.
Как это работает:
Этот проект направлен на управление электрическими и электронными устройствами, такими как свет, вентилятор, телевизор и т. Д. Это делается с помощью Arduino и релейной схемы, которая установлена в каждой комнате дома. Данные будут опубликованы в Arduino через модуль Bluetooth, и возможны дальнейшие реализации.
Основная задача - получить данные и опубликовать их в Arduino с помощью мобильного телефона. А позже, используя данные, можно управлять включением / выключением устройств.
Сборка оборудования
Схема очень простая. Общая стоимость этого продукта будет меньше 20 долларов США.
Шаг 1. Детали и материалы
Компоненты, необходимые для этого проекта:
- Ардуино
- Коммутационная плата реле
- Модуль Bluetooth - HC-05
- Кабели-перемычки
Шаг 2. Подключения
Следующие ниже подключения выполняются с помощью соединительных кабелей. В этой демонстрации я использовал четыре реле, что означает, что с помощью приложения можно управлять четырьмя устройствами.
* Arduino -> МОДУЛЬ BT *
- TX -> RX
- RX -> TX
- VCC -> 3,3 В
- GND -> GND
* Arduino -> Релейная плата *
- IN1 -> D2
- IN2 -> D3
- IN3 -> D4
- IN4 -> D5
- VCC -> VCC
- GND -> GND
Шаг 3. Код
Вы можете найти образец кода ниже.
String voice;
int
led1 =2, // Подключить светодиод 1 к контакту № 2
led2 =3, // Подключить светодиод 2 к контакту № 3
led3 =4, // Подключить светодиод 3 к контакту 4
led4 =5, // Подключить светодиод 4 к контакту 5
led5 =6; // Подключите светодиод 5 к контакту №6
// -------------------------- Вызов функции ------ ------------------------- //
void allon () {
digitalWrite (led1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (led3, HIGH);
digitalWrite (led4, HIGH);
digitalWrite (led5, HIGH);
}
void alloff () {
digitalWrite (led1, LOW);
digitalWrite (led2, LOW);
digitalWrite (led3, LOW);
digitalWrite (led4, LOW);
digitalWrite (led5, LOW);
}
// ----------------------------- ------------------------------------------ //
установка void () {
Serial.begin (9600);
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (led4, OUTPUT);
pinMode (led5, OUTPUT);
}
// -------------------- -------------------------------------------------- - //
void loop () {
while (Serial.available ()) {// Проверяем, есть ли доступный байт для чтения
delay (10); // Добавлена задержка для стабилизации
char c =Serial.read (); // Выполняем последовательное чтение
if (c =='#') {break;} // Выходим из цикла, когда после слова обнаруживается #
voice + =c; // Сокращение для voice =voice + c
}
if (voice.length ()> 0) {
Serial.println (voice);
// ---- -------------------------------------------------- ----------------- //
// ---------- Управление несколькими выводами / светодиодами ---------- //
if (voice =="* all on") {allon ();} // Отключить все контакты (функция вызова)
else if (voice =="* all off") { alloff ();} // Включаем все контакты (функция вызова)
// ---------- Включение по очереди -------- - //
иначе if (voice =="* TV on") {digitalWrite (led1, HIGH);}
else if (voice =="* fan on") {digitalWrite (led2, HIGH);}
else if (voice =="* компьютер включен") {digitalWrite (led3, HIGH);}
else if (voice =="* свет в спальне включен") {digitalWrite (led4 , HIGH);}
else if (voice =="* освещение в ванной включено") {digitalWrite (led5, HIGH);}
// ---------- Выключить один -By-One ---------- //
else if (voice =="* TV off") {digitalWrite (led1, LOW);}
else if (voice =="* вентилятор выключен") {digitalWrite (led2, LOW);}
иначе if (voice =="* вычислить r off ") {digitalWrite (led3, LOW);}
else if (voice ==" * свет в спальне выключен ") {digitalWrite (led4, LOW);}
else if (voice ==" * освещение в ванной выключено ") {digitalWrite (led5, LOW);}
// ----------------------------- ------------------------------------------ //
voice ="";}} // Сбрасываем переменную после запуска
Шаг 4. Заявка
А пока воспользуемся готовым приложением. В следующие дни я опубликую приложение один раз после обработки сертификатов.
Голосовое управление BT для Arduino создано SimpleLabsIN:https://apkpure.com/bt-voice-control-for-arduino/robotspace.simplelabs.amr_voice/download?from=details
Рабочее видео этого проекта:
В настоящее время функциональность ограничена включением и выключением устройств, но она может обрабатывать естественный язык на базовом уровне, что позволяет пользователю интегрировать обработку естественного языка в другие проекты.
Большое спасибо Hackster.io за то, что позволили мне и всем пользователям этой замечательной платформы участвовать.
Благодарим вас за проведение этих мероприятий, которые побуждают молодых людей и подростков творить и изобретать.
Поднимите палец вверх, если это действительно помогло вам, и обязательно подписывайтесь на мой канал, чтобы увидеть интересные проекты. :)
Поделитесь этим видео, если хотите.
Рад, что вы подписались:https://www.youtube.com/c/rahulkhanna24june?sub_confirmation=1
Спасибо за чтение!
Код
- Образец кода
Образец кода Arduino
// Кодировано:Анджело Казимиро (4/27/14) // Голосовая активация Arduino (Bluetooth + Android) // Не стесняйтесь изменять его, но не забудьте указать голос CreditString; intled1 =2, // Подключите светодиод 1 К контакту # 2led2 =3, // Подключите светодиод 2 к контакту # 3led3 =4, // Подключите светодиод 3 к контакту # 4led4 =5, // Подключите светодиод 4 к контакту # 5led5 =6; // Подключите светодиод 5 к контакту №6 // -------------------------- Вызов функции ---------- --------------------- // void allon () {digitalWrite (led1, HIGH); digitalWrite (led2, ВЫСОКИЙ); digitalWrite (led3, ВЫСОКИЙ); digitalWrite (led4, ВЫСОКИЙ); digitalWrite (led5, HIGH);} void alloff () {digitalWrite (led1, LOW); digitalWrite (led2, LOW); digitalWrite (led3, LOW); digitalWrite (led4, LOW); digitalWrite (led5, LOW);} // ---------------------------------------- ------------------------------- // void setup () {Serial.begin (9600); pinMode (led1, ВЫХОД); pinMode (led2, ВЫХОД); pinMode (led3, ВЫХОД); pinMode (led4, ВЫХОД); pinMode (led5, OUTPUT);} // ---------------------------------------- ------------------------------- // void loop () {while (Serial.available ()) {// Проверяем если есть доступный байт для задержки чтения (10); // Добавлена задержка для стабилизации работы char c =Serial.read (); // Выполняем последовательное чтение if (c =='#') {break;} // Выходим из цикла, когда обнаруживается # после слова voice + =c; // Сокращение для voice =voice + c} if (voice.length ()> 0) {Serial.println (voice); // -------------------- -------------------------------------------------- - // // ---------- Управление несколькими выводами / светодиодами ---------- // if (voice =="* all on") {allon ();} / / Отключить все контакты (функция вызова) else if (voice =="* all off") {alloff ();} // Включить все контакты (функция вызова) // ---------- Включить По одному ---------- // else if (voice =="* TV on") {digitalWrite (led1, HIGH);} else if (voice =="* fan on" ) {digitalWrite (led2, HIGH);} else if (voice =="* компьютер включен") {digitalWrite (led3, HIGH);} else if (voice =="* спальня светится") {digitalWrite (led4, HIGH );} else if (voice =="* освещение в ванной включено") {digitalWrite (led5, HIGH);} // ---------- Поочередное выключение ------ ---- // else if (voice =="* TV off") {digitalWrite (led1, LOW);} else if (voice =="* fan off") {digitalWrite (led2, LOW);} else if (voice =="* компьютер выключен") {digitalWrite (led3, LOW);} else if (voice =="* спальня выключена") {digitalWrite (led4, LOW);} else i f (voice =="* освещение в ванной выключено") {digitalWrite (led5, LOW);} // --------------------------- -------------------------------------------- // voice ="";}} // Сбрасываем переменную после запуска
Репозиторий проекта
https://github.com/Rahul24-06/Arduino-Tutorial-JARVIS-v1-How-to-make-a-Home-AutomationСхема
Производственный процесс
- МАЛИНОВАЯ АВТОМАТИЗАЦИЯ ДОМА
- Сделайте машинку для письма домашнего задания дома
- Найди меня
- Как создать настраиваемую перфорированную кнопку клавиатуры
- Джойстик Arduino
- Как создавать музыку с помощью Arduino
- Как сделать автоматическое открывание дверей на базе Arduino
- Домашний монитор
- Как сделать автомобиль с управлением по Bluetooth на Arduino
- Как использовать Modbus с Arduino