0% acharam este documento útil (0 voto)
4 visualizações6 páginas

Controle de Luzes por Voz em Arduino

Programação

Enviado por

liviaraujo041006
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
4 visualizações6 páginas

Controle de Luzes por Voz em Arduino

Programação

Enviado por

liviaraujo041006
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

#include <SoftwareSerial.

h>

#include <VoiceRecognitionV3.h>

// Configuração do módulo de voz

SoftwareSerial mySerial(10, 11); // RX, TX

VR myVR(mySerial);

// Definição dos pinos dos LEDs para cada cômodo

#define LED_SALA 2

#define LED_COZINHA 3

#define LED_CORREDOR 4

#define LED_QUARTO 5

#define LED_BANHEIRO 6

// Definição dos comandos de voz

#define CMD_TURN_ON_SALA 0

#define CMD_TURN_OFF_SALA 1

#define CMD_TURN_ON_COZINHA 2
#define CMD_TURN_OFF_COZINHA 3

#define CMD_TURN_ON_CORREDOR 4

#define CMD_TURN_OFF_CORREDOR 5

#define CMD_TURN_ON_QUARTO 6

#define CMD_TURN_OFF_QUARTO 7

#define CMD_TURN_ON_BANHEIRO 8

#define CMD_TURN_OFF_BANHEIRO 9

#define CMD_AUTOMATIC_MODE 10

#define CMD_MANUAL_MODE 11

bool manualMode = false; // Modo manual ou automático


bool ledStates[5] = {false, false, false, false, false}; // Estados dos LEDs

void setup() {

[Link](9600); // Inicializa a comunicação serial

[Link](9600); // Inicializa a comunicação com o módulo de voz

// Verifica se o módulo de reconhecimento de voz está funcionando

if ([Link]()) {

[Link]("Módulo VR pronto.");

} else {

[Link]("Módulo VR não detectado.");

while (1); // Para o código se o módulo não for encontrado

// Configura os pinos dos LEDs como saídas

pinMode(LED_SALA, OUTPUT);

pinMode(LED_COZINHA, OUTPUT);

pinMode(LED_CORREDOR, OUTPUT);
pinMode(LED_QUARTO, OUTPUT);

pinMode(LED_BANHEIRO, OUTPUT);

// Inicializa todos os LEDs como desligados

digitalWrite(LED_SALA, LOW);

digitalWrite(LED_COZINHA, LOW);

digitalWrite(LED_CORREDOR, LOW);

digitalWrite(LED_QUARTO, LOW);

digitalWrite(LED_BANHEIRO, LOW);

// Carrega os comandos de voz (grupo 0 é o padrão)


[Link]((uint8_t)0);

void loop() {

uint8_t buf[64]; // Buffer para armazenar o comando de voz reconhecido

// Verifica se um comando de voz foi reconhecido

if ([Link](buf, 50) > 0) {

switch (buf[1]) { // Analisa o comando reconhecido

case CMD_TURN_ON_SALA:

if (manualMode) {

[Link]("Ligar luz na sala");

digitalWrite(LED_SALA, HIGH);

ledStates[0] = true;

break;

case CMD_TURN_OFF_SALA:

if (manualMode) {
[Link]("Desligar luz na sala");

digitalWrite(LED_SALA, LOW);

ledStates[0] = false;

break;

case CMD_TURN_ON_COZINHA:

if (manualMode) {

[Link]("Ligar luz na cozinha");

digitalWrite(LED_COZINHA, HIGH);

ledStates[1] = true;

}
break;

case CMD_TURN_OFF_COZINHA:

if (manualMode) {

[Link]("Desligar luz na cozinha");

digitalWrite(LED_COZINHA, LOW);

ledStates[1] = false;

break;

case CMD_TURN_ON_CORREDOR:

if (manualMode) {

[Link]("Ligar luz no corredor");

digitalWrite(LED_CORREDOR, HIGH);

ledStates[2] = true;

break;

case CMD_TURN_OFF_CORREDOR:

if (manualMode) {

[Link]("Desligar luz no corredor");


digitalWrite(LED_CORREDOR, LOW);

ledStates[2] = false;

break;

case CMD_TURN_ON_QUARTO:

if (manualMode) {

[Link]("Ligar luz no quarto");

digitalWrite(LED_QUARTO, HIGH);

ledStates[3] = true;

break;
case CMD_TURN_OFF_QUARTO:

if (manualMode) {

[Link]("Desligar luz no quarto");

digitalWrite(LED_QUARTO, LOW);

ledStates[3] = false;

break;

case CMD_TURN_ON_BANHEIRO:

if (manualMode) {

[Link]("Ligar luz no banheiro");

digitalWrite(LED_BANHEIRO, HIGH);

ledStates[4] = true;

break;

case CMD_TURN_OFF_BANHEIRO:

if (manualMode) {

[Link]("Desligar luz no banheiro");

digitalWrite(LED_BANHEIRO, LOW);
ledStates[4] = false;

break;

case CMD_AUTOMATIC_MODE:

[Link]("Modo automático ativado");

manualMode = false;

break;

case CMD_MANUAL_MODE:

[Link]("Modo manual ativado");

manualMode = true;

break;
default:

[Link]("Comando não reconhecido");

break;

if (!manualMode) {

int sensorValues[5];
sensorValues[0] = analogRead(LDR1);
sensorValues[1] = analogRead(LDR2);
sensorValues[2] = analogRead(LDR3);
sensorValues[3] = analogRead(LDR4);
sensorValues[4] = analogRead(LDR5);

for (int i = 0; i < 5; i++) {


int ledPin1 = 2 + (i * 2);
int ledPin2 = 3 + (i * 2);
if (sensorValues[i] < 500) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
} else {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
}
}
} else {

for (int i = 0; i < 5; i++) {


int buttonState = digitalRead(A0 + i);
if (buttonState == LOW) {
ledStates[i * 2] = !ledStates[i * 2];
ledStates[i * 2 + 1] = !ledStates[i * 2 + 1];
delay(200);
}
digitalWrite(2 + (i * 2), ledStates[i * 2]);
digitalWrite(3 + (i * 2), ledStates[i * 2 + 1]);
}
}
}

Você também pode gostar