コマンド
Do clique no painel à ação no hardware. Controle o que está ligado ou desligado pelo navegador ou celular.
Como funciona
Você clica no painel: "Ligar LED"
O servidor atualiza o estado: LED = Ligado
O ESP32 consulta: "qual é o estado atual?"
O ESP32 vê a mudança: acende o LED no pino correto
O ESP32 confirma: "LED ligado com sucesso"
O painel mostra: LED aparece como LIGADO
O servidor atualiza o estado: LED = Ligado
O ESP32 consulta: "qual é o estado atual?"
O ESP32 vê a mudança: acende o LED no pino correto
O ESP32 confirma: "LED ligado com sucesso"
O painel mostra: LED aparece como LIGADO
Tutorial: Controlando um LED pelo painel
📱 Seu Celular
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:
- Ânodo (+) do LED → resistor 220Ω → GPIO 26 (ESP32)
- Cátodo (–) do LED → GND (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. Mande o código para a placa e envie o comando
Após mandar o código para a placa, acesse o dispositivo no painel. Role até a seção Controles Rápidos. No campo Ação do Comando, digite o nome do comando (ex: led) e clique em Enviar. O LED físico acende e apaga em segundos.
No celular: Na seção Botões do Usuário, clique em Criar APP para Celular. Configure botões com ações como "led". Instale o painel como aplicativo no celular. Um toque no botão liga ou desliga o LED.
Botões personalizados: Você pode criar botões fixos na seção Botões do Usuário — eles aparecem no painel e no app do celular. Cada botão tem um nome, uma ação e pode incluir dados extras.
Botões personalizados: Você pode criar botões fixos na seção Botões do Usuário — eles aparecem no painel e no app do celular. Cada botão tem um nome, uma ação e pode incluir dados extras.
Fluxo detalhado
- O dispositivo se registra: no
setup(),dc.addCommand("led", "Liga/Desliga o LED")informa ao servidor quais comandos o dispositivo aceita. - Você envia o comando: no painel do dispositivo, vá até Controles Rápidos, digite a ação (ex: "led") e clique em Enviar.
- O servidor atualiza o estado: o estado do dispositivo é alterado para refletir o novo valor (ligado/desligado).
- O dispositivo consulta: a cada
dc.run(), o ESP32 consulta o servidor para saber o estado atual. - O dispositivo detecta a mudança: o callback
onCommandé chamado com a ação e o novo valor.digitalWrite(LED_PIN, value)aciona o hardware. - O dispositivo confirma:
dc.ack(cmdId, true)avisa o servidor que a ação foi executada com sucesso. - O painel atualiza: o estado do LED é mostrado como Ligado ou Desligado no painel.
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)