Saltar a contenido

Módulo de Luz Simples (Arduino)

Este módulo controla um relé conectado a uma lâmpada via comandos seriais. Ele suporta:

  • Controle manual (led: true/false)
  • Agendamento de horário (on_time, off_time)
  • Prioridade automática (o horário tem prioridade sobre o manual)

🔌 Requisitos de hardware

  • Microcontrolador: Arduino Nano / Uno / ESP32 (modo serial)
  • Relé de 1 canal (5V)
  • Carga conectada (ex: lâmpada 220V)
  • Comunicação serial via Node-RED ou backend

📡 Comunicação serial

Recebe JSON via Serial (9600 baud). Cada mensagem deve terminar com \n.

Formato esperado:

{
  "current_time": "HH:MM",
  "on_time": "HH:MM",
  "off_time": "HH:MM",
  "led": true | false
}
````

> **Nota:**
>
> * `current_time` é obrigatório para controle de horário.
> * `led` ativa controle manual, mas será ignorado se o horário estiver ativo.

---

## 🧠 Prioridade de controle

| Condição                   | Estado do relé          |
| -------------------------- | ----------------------- |
| Dentro do horário          | Relé LIGADO (`LOW`)     |
| Fora do horário + override | Usa valor de `led`      |
| Fora do horário            | Relé DESLIGADO (`HIGH`) |

---

## 🔄 Fluxo típico (Node-RED)

```text
[ Inject ] → [ Função JavaScript ] → [ Saída Serial ]

Exemplo de função:

let now = new Date();
now.setHours(now.getHours() - 3);  // GMT-3

let hh = now.getHours().toString().padStart(2, '0');
let mm = now.getMinutes().toString().padStart(2, '0');

msg.payload = JSON.stringify({
  current_time: `${hh}:${mm}`,
  on_time: "22:00",
  off_time: "23:00",
  led: false
}) + "\n";

return msg;

🧠 Código-fonte


🛠️ Depuração serial

No monitor serial o dispositivo imprime:

  • 📥 JSON recebido
  • ⏰ Hora atual
  • ⏱️ Horário configurado
  • 💡 Estado do relé

🧪 Casos de teste

Situação Resultado esperado
Hora 21:00, on 20:00, off 22:00 💡 LIGADO por horário ✅
Hora 23:00, led: true 💤 DESLIGADO (horário tem prioridade)
Hora 23:00, led: true + horário ativo 💡 LIGADO (vence o horário) ✅

🔐 Licença

Faz parte do ecossistema GrowHardware – livre, modular e expansível. Compatível com AI-Core e módulos futuros de automação agrícola.