Captura de Tela 2026 01 13 as 11.16.33 e1768313965228 Saravati

Controle um Relé com a Voz usando UNIHIKER K10 (Arduino C, Offline)

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.

Unihiker K10

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:

  1. O UNIHIKER fica em espera pelo wake word “Hi Telly”
  2. Após acordar, ele escuta um comando de voz
  3. O comando é interpretado localmente (ASR offline)
  4. Um pino GPIO (GPIO 0) é acionado para controlar o relé
  5. A tela e os LEDs indicam o estado do sistema

Tudo acontece dentro da própria placa, sem nuvem.

Materiais necessários

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+

  1. Abra o Mind+
  2. Selecione o modo Arduino C
  3. Conecte o UNIHIKER K10 ao computador via USB
  4. Selecione a porta COM correta
  5. 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

  1. Ligue o UNIHIKER K10
  2. Fale claramente: “Hi Telly”
  3. Aguarde a mensagem “OUVINDO…”
  4. 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.

@saravatirobotica no Instagram e Tiktok

@sara.educacao no Instagram e Tiktok