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

Голосовое управление домашним освещением через 1Sheeld и Arduino

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

О проекте

Демонстрация концепции: управление системой освещения дома голосовыми командами. Три светодиода имитируют разные группы освещения.

Голосовое управление домашним освещением через 1Sheeld и Arduino
Собранный прототип

Необходимое оборудование

  1. Arduino Uno
  2. 1Sheeld
  3. 3 светодиода разного цвета + резисторы 220–330 Ом

Сборка схемы

Подключите светодиоды к пинам 11, 12, 13 через резисторы. 1Sheeld устанавливается сверху на Arduino.

Голосовое управление домашним освещением через 1Sheeld и Arduino
Схема подключения светодиодов

Настройка 1Sheeld

  1. Установите приложение 1Sheeld на смартфон (Android/iOS).
  2. Соедините 1Sheeld с приложением по Bluetooth.
  3. В приложении откройте шилд Voice Recognition (Распознавание голоса).
Голосовое управление домашним освещением через 1Sheeld и Arduino
Шилд Voice Recognition в приложении 1Sheeld

Голосовые команды

КомандаДействие
«Play»Включить все 3 светодиода
«Stop»Выключить все 3 светодиода
«Blue»Включить только синий (на пине 13)
«Yellow»Включить только жёлтый (на пине 12)
«Green»Включить только зелёный (на пине 11)
Голосовое управление домашним освещением через 1Sheeld и Arduino
«Play» — все включены
Голосовое управление домашним освещением через 1Sheeld и Arduino
«Stop» — все выключены
Голосовое управление домашним освещением через 1Sheeld и Arduino
«Blue» — только синий
Голосовое управление домашним освещением через 1Sheeld и Arduino
«Yellow» — только жёлтый
Голосовое управление домашним освещением через 1Sheeld и Arduino
«Green» — только зелёный

Код (Arduino)

#define CUSTOM_SETTINGS
#define INCLUDE_VOICE_RECOGNIZER_SHIELD
#define INCLUDE_MUSIC_PLAYER_SHIELD
#define INCLUDE_TERMINAL_SHIELD

#include <OneSheeld.h>

int Bledpin = 13;  // Синий
int Yledpin = 12;  // Жёлтый
int Gledpin = 11;  // Зелёный

const char playCommand[]   = "play";
const char pauseCommand[]  = "stop";
const char stopCommand[]   = "yellow";  // В коде оригинала: "yellow" -> только жёлтый
const char nextCommand[]   = "green";   // В коде оригинала: "green" -> только зелёный
const char BlueCommand[]   = "blue";

void setup() {
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  OneSheeld.begin();
  VoiceRecognition.setOnError(error);
  VoiceRecognition.start();
}

void loop() {
  if (VoiceRecognition.isNewCommandReceived()) {
    if (!strcmp(playCommand, VoiceRecognition.getLastCommand())) {
      digitalWrite(13, HIGH);
      digitalWrite(12, HIGH);
      digitalWrite(11, HIGH);
    }
    else if (!strcmp(pauseCommand, VoiceRecognition.getLastCommand())) {
      digitalWrite(13, LOW);
      digitalWrite(12, LOW);
      digitalWrite(11, LOW);
    }
    else if (!strcmp(stopCommand, VoiceRecognition.getLastCommand())) {
      digitalWrite(13, LOW);
      digitalWrite(12, HIGH);  // Только жёлтый
      digitalWrite(11, LOW);
    }
    else if (!strcmp(nextCommand, VoiceRecognition.getLastCommand())) {
      digitalWrite(13, LOW);
      digitalWrite(11, HIGH);  // Только зелёный
      digitalWrite(12, LOW);
    }
    else if (!strcmp(BlueCommand, VoiceRecognition.getLastCommand())) {
      digitalWrite(12, LOW);
      digitalWrite(13, HIGH);  // Только синий
      digitalWrite(11, LOW);
    }
  }
}

void error(byte errorData) {
  switch (errorData) {
    case NETWORK_TIMEOUT_ERROR: Terminal.println("Network timeout"); break;
    case NETWORK_ERROR:         Terminal.println("Network Error"); break;
    case AUDIO_ERROR:           Terminal.println("Audio error"); break;
    case SERVER_ERROR:          Terminal.println("No Server"); break;
    case SPEECH_TIMEOUT_ERROR:  Terminal.println("Speech timeout"); break;
    case NO_MATCH_ERROR:        Terminal.println("No match"); break;
    case RECOGNIZER_BUSY_ERROR: Terminal.println("Busy"); break;
  }
}

Примечание: в оригинальном коде команды «yellow» и «green» заданы как stopCommand и nextCommand, что может сбивать с толку. Логичнее переименовать константы в yellowCommand и greenCommand.

Схема (Fritzing)

Файл схемы: circuit.fzz

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

  1. Перевод промышленных систем управления на беспроводные сети
  2. Установка Google Assistant на MATRIX Voice Raspberry Pi — пошаговое руководство
  3. Расширение GoPiGo v2 на Windows 10 IoT Core для Raspberry Pi 3
  4. Интеграция электротехнического проектирования с ERP для конкурентного преимущества
  5. Умная копилка: управление монетоприёмником на Arduino Nano
  6. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  7. Защита систем промышленного управления: проверенные стратегии и лучшие практики
  8. Успешная миграция систем управления: экспертные стратегии для бесшовного перехода
  9. Восемь проверенных шагов для диагностики и устранения неисправностей системы процессного управления
  10. Повысьте эффективность: проведите комплексный аудит системы уже сегодня