Голосовое управление домашним освещением через 1Sheeld и Arduino
Компоненты и материалы
- Arduino UNO — 1 шт.
- 1Sheeld (шилд для смартфона) — 1 шт.
- Светодиоды (разных цветов) — 3 шт. (красный, жёлтый, зелёный)
О проекте
Демонстрация концепции: управление системой освещения дома голосовыми командами. Три светодиода имитируют разные группы освещения.
Необходимое оборудование
- Arduino Uno
- 1Sheeld
- 3 светодиода разного цвета + резисторы 220–330 Ом
Сборка схемы
Подключите светодиоды к пинам 11, 12, 13 через резисторы. 1Sheeld устанавливается сверху на Arduino.
Настройка 1Sheeld
- Установите приложение 1Sheeld на смартфон (Android/iOS).
- Соедините 1Sheeld с приложением по Bluetooth.
- В приложении откройте шилд Voice Recognition (Распознавание голоса).
Голосовые команды
| Команда | Действие |
|---|---|
| «Play» | Включить все 3 светодиода |
| «Stop» | Выключить все 3 светодиода |
| «Blue» | Включить только синий (на пине 13) |
| «Yellow» | Включить только жёлтый (на пине 12) |
| «Green» | Включить только зелёный (на пине 11) |
Код (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
Производственный процесс
- Перевод промышленных систем управления на беспроводные сети
- Установка Google Assistant на MATRIX Voice Raspberry Pi — пошаговое руководство
- Расширение GoPiGo v2 на Windows 10 IoT Core для Raspberry Pi 3
- Интеграция электротехнического проектирования с ERP для конкурентного преимущества
- Умная копилка: управление монетоприёмником на Arduino Nano
- Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
- Защита систем промышленного управления: проверенные стратегии и лучшие практики
- Успешная миграция систем управления: экспертные стратегии для бесшовного перехода
- Восемь проверенных шагов для диагностики и устранения неисправностей системы процессного управления
- Повысьте эффективность: проведите комплексный аудит системы уже сегодня