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

Сборка домашней автоматизации JARVIS v1 на Arduino Nano — пошаговое руководство

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

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

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

О проекте

Зачем мы это сделали?

Буду фанатом «Железного человека», я вдохновился JARVIS — голосовым помощником. Очень хотел построить свою систему умного дома. Несмотря на множество готовых решений, решил сделать свою на Arduino.

Как это работает

Проект управляет электрическими приборами: свет, вентилятор, телевизор и т.д. Используются Arduino и релейные модули, установленные в каждой комнате. Данные передаются на Arduino через Bluetooth-модуль с мобильного телефона. Дальнейшие доработки возможны.

Основная задача — получение данных и передача их на Arduino с мобильного устройства. Затем по этим данным осуществляется управление вкл/выкл приборов.

Сборка железа

Схема очень простая. Общая стоимость менее $20.

Шаг 1: Детали и материалы

Сборка домашней автоматизации JARVIS v1 на Arduino Nano — пошаговое руководство

Шаг 2: Подключение

Соединения перемычками. Для демо использовано 4 реле — управление 4 устройствами.

Сборка домашней автоматизации JARVIS v1 на Arduino Nano — пошаговое руководство

Arduino → BT-модуль:

Arduino → Релейный модуль:

Шаг 3: Код

Пример кода ниже.

String voice;
int led1 = 2, led2 = 3, led3 = 4, led4 = 5, led5 = 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 setup() {
  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;
  }
  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 == "*computer on") digitalWrite(led3, HIGH);
    else if (voice == "*bedroom lights on") digitalWrite(led4, HIGH);
    else if (voice == "*bathroom lights on") digitalWrite(led5, HIGH);
    // Поштучное выключение
    else if (voice == "*TV off") digitalWrite(led1, LOW);
    else if (voice == "*fan off") digitalWrite(led2, LOW);
    else if (voice == "*computer off") digitalWrite(led3, LOW);
    else if (voice == "*bedroom lights off") digitalWrite(led4, LOW);
    else if (voice == "*bathroom lights off") digitalWrite(led5, LOW);
    voice = "";
  }
}

Шаг 4: Приложение

Пока используем готовое приложение. Позже опубликую свое после оформления сертификатов.

BT Voice Control for Arduino от SimpleLabsIN: ссылка на APK

Рабочее видео проекта

На данный момент функционал ограничен вкл/выкл, но код понимает базовые голосовые команды, что позволяет интегрировать обработку естественного языка в другие проекты.

Большое спасибо Hackster.io за возможность участвовать на этой платформе.

Спасибо за активности, вдохновляющие молодежь на творчество и изобретения.

Поставьте лайк, если помогло, и подпишитесь на канал: https://www.youtube.com/c/rahulkhanna24june?sub_confirmation=1

Спасибо за чтение!

Исходный код

Пример кода (Arduino)

// Coded By: Angelo Casimiro (4/27/14)
// Voice Activated Arduino (Bluetooth + Android)
// Feel free to modify but give credit
String voice;
int led1 = 2, led2 = 3, led3 = 4, led4 = 5, led5 = 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 setup() {
  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;
  }
  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 == "*computer on") digitalWrite(led3, HIGH);
    else if (voice == "*bedroom lights on") digitalWrite(led4, HIGH);
    else if (voice == "*bathroom lights on") digitalWrite(led5, HIGH);
    else if (voice == "*TV off") digitalWrite(led1, LOW);
    else if (voice == "*fan off") digitalWrite(led2, LOW);
    else if (voice == "*computer off") digitalWrite(led3, LOW);
    else if (voice == "*bedroom lights off") digitalWrite(led4, LOW);
    else if (voice == "*bathroom lights off") digitalWrite(led5, LOW);
    voice = "";
  }
}

Репозиторий проекта

GitHub

Схемы

Сборка домашней автоматизации JARVIS v1 на Arduino Nano — пошаговое руководство

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

  1. Создайте систему домашней автоматизации на Raspberry Pi для удаленного управления
  2. Сборка домашней машины для написания домашних заданий (плоттер-писатель)
  3. Find Me: Умный поисковик вещей на Arduino и Bluetooth
  4. Создание настраиваемой «бьющейся» клавиши на Arduino: пошаговое руководство
  5. Своё рулевое управление (джойстик) для игр на Arduino
  6. Генерация музыкальных тонов на Arduino: полный спектр 88 клавиш пианино
  7. Автоматическая дверь на Arduino с ультразвуковым датчиком HC-SR04
  8. Продвинутая система домашнего мониторинга на Arduino Mega с IoT-датчиками
  9. Создание Bluetooth-управляемой машины на Arduino: полное DIY-руководство
  10. Мастерство Modbus на Arduino: пошаговое руководство