← Voltar ao site

Comandos

Do clique no painel à ação no hardware. O ciclo completo de controle remoto.

Como funciona

Você clica no painel: "Ligar LED"
O servidor armazena: comando pendente para seu dispositivo
O ESP32 consulta: "tem comando pra mim?"
O ESP32 executa: acende o LED no pino correto
O ESP32 confirma: "comando executado com sucesso"
O painel atualiza: LED aparece como LIGADO

Tutorial: Controlando um LED pelo painel

📱 Seu Celular (PWA)
Meu Dispositivo
LED
ESP32_DadosCorp.ino
#include <DadosCorp.h>
DadosCorp dc("WiFi","Senha",
             "DEVICE_KEY","SECRET");

// Cada dc.run() consulta comandos
void loop() {
  dc.run();
  delay(100);
}
▶ Serial Monitor
Conectado ao WiFi...
Dispositivo registrado no DadosCorp.
Pressione Ligar LED no celular.

1. Monte o circuito

Conecte um LED ao ESP32:

Para testar sem componentes externos, use o LED embutido do ESP32: altere LED_PIN para 2.

2. Instale a biblioteca

Arduino IDE → Ferramentas → Gerenciar Bibliotecas → pesquisar DadosCorp → Instalar.

3. Copie o código

#define LED_PIN 26

#include <DadosCorp.h>
DadosCorp dc("NOME_DA_REDE", "SENHA_WIFI", "DEVICE_KEY", "SECRET_KEY");

void setup() {
    pinMode(LED_PIN, OUTPUT);
    digitalWrite(LED_PIN, LOW);

    dc.addCommand("led", "Liga/Desliga o LED");

    dc.onCommand([](const char* action, int value, uint32_t cmdId) {
        if (strcmp(action, "led") == 0) {
            digitalWrite(LED_PIN, value ? HIGH : LOW);
        }
        dc.ack(cmdId, true);
    });

    dc.info(true);
    dc.begin();
}

void loop() {
    dc.run();
    delay(100);
}

4. Faça upload e veja no painel

Após o upload, acesse o dispositivo no dashboard. A aba Comandos mostra um botão "led". Clique para alternar entre Ligado e Desligado. O LED físico acende e apaga instantaneamente.

📱
No celular (PWA): instale o painel como aplicativo. O botão "led" aparece como um toggle. Um toque → LED acende no ESP32.

Na IDE (MCP): agentes de IA podem enviar dc_send_command diretamente para controlar o dispositivo sem intervenção humana.

Fluxo detalhado

  1. O dispositivo se registra: no setup(), dc.addCommand("led", "...") informa ao servidor quais comandos aceita. O painel cria os botões automaticamente.
  2. Você clica no botão: o painel envia POST /api/projects/.../command com {"action":"led","value":1}.
  3. O servidor armazena: o comando fica aguardando até o dispositivo consultar.
  4. O dispositivo consulta: a cada dc.run(), o ESP32 faz GET /command para ver se há comandos novos.
  5. O dispositivo executa: o callback onCommand recebe a ação e o valor. digitalWrite(LED_PIN, value) aciona o hardware.
  6. O dispositivo confirma: dc.ack(cmdId, true) envia POST /command/ack com status de sucesso.
  7. O painel atualiza: o comando aparece como executado, e o estado do LED reflete o valor real.

MicroPython — Código equivalente

from dadoscorp_upy import DadosCorpClient
from machine import Pin
import time

led = Pin(26, Pin.OUT)
dc = DadosCorpClient("https://dadoscorp.com.br", "DEVICE_KEY", "SECRET_KEY")

dc.send_metadata(
    variables=[],
    commands=[{"name": "led", "type": "boolean"}]
)

while True:
    cmd = dc.poll_command()
    if cmd and cmd.get("action") == "led":
        led.value(cmd.get("value", 0))
        dc.ack_command(cmd["command_id"], ok=True)
    time.sleep(1)