Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Учебное пособие по Arduino:JARVIS v1 | Как сделать домашнюю автоматизацию

Компоненты и расходные материалы

Arduino Nano R3
× 1
Модуль реле (общий)
× 4
Модуль Bluetooth с низким энергопотреблением (BLE) (общий)
× 1
Макет (общий)
× 1
Перемычки (общие)
× 10

Необходимые инструменты и машины

Паяльник (универсальный)

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Почему мы это построили?

Я фанат Железного человека, и меня очень вдохновил ДЖАРВИС личный помощник с голосовым управлением, и я очень хотел создать систему домашней автоматизации. Хотя существует множество существующих систем, я решил создать свою собственную систему домашней автоматизации с использованием 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

Схема


Производственный процесс

  1. МАЛИНОВАЯ АВТОМАТИЗАЦИЯ ДОМА
  2. Сделайте машинку для письма домашнего задания дома
  3. Найди меня
  4. Как создать настраиваемую перфорированную кнопку клавиатуры
  5. Джойстик Arduino
  6. Как создавать музыку с помощью Arduino
  7. Как сделать автоматическое открывание дверей на базе Arduino
  8. Домашний монитор
  9. Как сделать автомобиль с управлением по Bluetooth на Arduino
  10. Как использовать Modbus с Arduino