Índice:
Controlar dispositivos com a voz deixou de ser algo restrito a assistentes comerciais como Alexa ou Google Assistant. Hoje, é totalmente possível criar seu próprio sistema de comando por voz, rodando localmente, sem depender de internet, servidores externos ou serviços de terceiros.

Neste artigo, você vai aprender a usar o UNIHIKER K10, uma poderosa placa baseada em ESP32-S3, para criar um projeto completo de automação por voz. A partir de um simples comando falado como “ligar luz” ou “desligar luz” o sistema será capaz de:
- Reconhecer sua voz diretamente na placa
- Interpretar o comando sem conexão com a internet
- Acionar um relé conectado ao GPIO 0
- Fornecer feedback visual por LEDs e pela tela integrada
Tudo isso utilizando Arduino C, programado no Mind+, o ambiente oficial da DFRobot.
Mais do que um experimento, este projeto mostra na prática como conceitos de eletrônica, sistemas embarcados e inteligência artificial local podem trabalhar juntos. É exatamente o tipo de aplicação real usada em automação, produtos inteligentes e sistemas industriais.
Visão geral do projeto
O funcionamento do sistema segue esta lógica:
- O UNIHIKER fica em espera pelo wake word “Hi Telly”
- Após acordar, ele escuta um comando de voz
- O comando é interpretado localmente (ASR offline)
- Um pino GPIO (GPIO 0) é acionado para controlar o relé
- A tela e os LEDs indicam o estado do sistema
Tudo acontece dentro da própria placa, sem nuvem.
Materiais necessários
- 1× UNIHIKER K10
- 1× Módulo relé
- Jumpers para ligação
- Fonte adequada para a carga a ser acionada
Atenção: Se você for controlar cargas em 127/220V, utilize caixa isolada, bornes adequados e nunca toque em partes energizadas. Para testes iniciais, utilize cargas de baixa potência.
IDE utilizada
Para este projeto foi utilizado:
- Mind+ (MindPlus) – DFRobot
- Linguagem: Arduino C
Esse ambiente é o mais estável para o UNIHIKER K10, pois já inclui:
- Suporte ao ESP32-S3
- Bibliotecas de tela, LEDs e reconhecimento de voz
- Upload direto via USB
Preparando o ambiente no Mind+
- Abra o Mind+
- Selecione o modo Arduino C
- Conecte o UNIHIKER K10 ao computador via USB
- Selecione a porta COM correta
- Confirme que a placa é reconhecida antes de fazer o upload
Dica: Use um cabo USB de dados. Muitos cabos servem apenas para carregamento.
Ligação do relé (hardware)
Conecte o módulo relé ao UNIHIKER da seguinte forma:
Unihiker Modulo Relé
GND GND
VCC VCC
GPIO0 IN
Neste projeto:
- O GPIO 0 é usado como saída digital
- O relé é ativo em nível lógico baixo
Ou seja:
- LOW (0) → relé liga
- HIGH (1) → relé desliga
Código completo do projeto (Arduino C)
Copie todo o código abaixo e cole no Mind+.
#include "unihiker_k10.h"
#include "asr.h"
UNIHIKER_K10 k10;
ASR asr;
// Direção da tela
uint8_t screen_dir = 2;
// ===== RELÉ =====
#define RELAY_PIN 0
#define RELAY_ON LOW
#define RELAY_OFF HIGH
// IDs dos comandos
#define CMD_ON 1
#define CMD_OFF 2
// ===== Texto centralizado =====
void showMsgCentered(const char* msg, uint32_t color) {
k10.canvas->canvasClear();
int y = 140;
int maxWidth = 240;
k10.canvas->canvasText(
msg,
0,
y,
color,
k10.canvas->eCNAndENFont24,
maxWidth,
true
);
k10.canvas->updateCanvas();
}
// ===== LEDs =====
void ledsOn() {
k10.rgb->brightness(9);
k10.rgb->write(-1, 0x00FF00);
}
void ledsOff() {
k10.rgb->brightness(0);
k10.rgb->write(-1, 0x000000);
}
// ===== Relé =====
void relayOn() {
digitalWrite(RELAY_PIN, RELAY_ON);
}
void relayOff() {
digitalWrite(RELAY_PIN, RELAY_OFF);
}
void setup() {
k10.begin();
k10.initScreen(screen_dir);
k10.creatCanvas();
k10.setScreenBackground(0xFFFFFF);
pinMode(RELAY_PIN, OUTPUT);
relayOff();
showMsgCentered("Diga: Hi Telly", 0x0000FF);
asr.asrInit(CONTINUOUS, EN_MODE, 10000);
while (asr._asrState == 0) {
delay(100);
}
asr.addASRCommand(CMD_ON, "lights on");
asr.addASRCommand(CMD_ON, "liga luz");
asr.addASRCommand(CMD_OFF, "lights off");
asr.addASRCommand(CMD_OFF, "desliga luz");
}
void loop() {
if (asr.isWakeUp()) {
showMsgCentered("OUVINDO...", 0x0000FF);
}
if (asr.isDetectCmdID(CMD_ON)) {
relayOn();
ledsOn();
showMsgCentered("LUZ LIGADA", 0x00AA00);
delay(700);
showMsgCentered("Diga: Hi Telly", 0x0000FF);
}
if (asr.isDetectCmdID(CMD_OFF)) {
relayOff();
ledsOff();
showMsgCentered("LUZ DESLIGADA", 0xFF0000);
delay(700);
showMsgCentered("Diga: Hi Telly", 0x0000FF);
}
}
Como usar o projeto
- Ligue o UNIHIKER K10
- Fale claramente: “Hi Telly”
- Aguarde a mensagem “OUVINDO…”
- Diga:
- “liga luz” ou “lights on”
- “desliga luz” ou “lights off”
O relé será acionado no GPIO 0, os LEDs indicarão o estado e a tela exibirá o feedback.
Observações importantes sobre o GPIO 0
O GPIO 0 é um pino especial relacionado ao boot do ESP32, mas pode ser usado como saída normalmente, desde que:
- O relé não force nível LOW durante o reset
- Preferencialmente seja usado módulo com optoacoplador
Para projetos didáticos e automação leve, o uso é totalmente viável.
Aplicações práticas
- Automação residencial local
- Controle de iluminação
- Bancadas de teste
- Projetos educacionais de IA embarcada
- Base para sistemas mais complexos (sensores + voz)
Conclusão
Este projeto mostra que inteligência artificial embarcada não é algo distante ou complexo. Com o UNIHIKER K10 e algumas linhas de código em Arduino C, é possível transformar voz em ação elétrica real, sem depender da nuvem. Se você domina eletrônica, você domina a automação. E se você domina a automação, você cria sistemas inteligentes de verdade.
Saiba mais sobre a parceria Saravati e Sara Educação
Este “Guia de Montagem” é uma colaboração especial entre a Saravati e a Sara Educação, criado pelo Professor Felipe Rosa. Nosso objetivo é enriquecer a comunidade de entusiastas da eletrônica, IoT e automação com recursos educacionais de alta qualidade. Através dessa parceria, buscamos inspirar e capacitar criadores em seus projetos, disponibilizando esses guias em nosso blog e nas redes sociais.

