Primeiros Passos
Bem-vindo ao SimpIoT. Este guia cobre o caminho mínimo para ter seu primeiro dispositivo enviando telemetria em menos de 5 minutos.
1. Crie sua conta
Acesse app.simpiot.com.br/register e informe seu e-mail e senha. Ao criar a conta, você recebe automaticamente o plano Sandbox, que permite explorar a plataforma sem custo.
2. Crie um Tenant e um Cenário
Após o primeiro login, o assistente de onboarding guiará você na criação de:
- Tenant: sua organização ou empresa dentro do SimpIoT.
- Cenário: um agrupamento lógico de dispositivos (ex: “Fábrica Norte”, “Estufa A”).
3. Crie um Modelo de Dispositivo
Antes de adicionar qualquer dispositivo, você precisa criar um Modelo de Dispositivo. Esse é o passo que costuma faltar: não é possível provisionar um dispositivo sem um modelo associado.
Um Modelo de Dispositivo é um molde reutilizável, definido no nível do Tenant, que descreve quais sensores um dispositivo possui. Um mesmo modelo serve para várias instâncias físicas — por exemplo, o modelo “Estação Meteorológica v2” pode ser aplicado a dezenas de dispositivos iguais.
No menu Modelos de Dispositivo, clique em Criar modelo e preencha:
- Nome: identificação do modelo (ex:
Estação Meteorológica v2). - Pode atuar como gateway: marque se esse modelo for concentrar dados de nós subordinados.
- Sensores: a lista de sensores que o dispositivo possui. Para cada sensor, informe:
- Categoria de Sensor: o tipo do sensor (ex: Temperatura, Umidade), escolhido entre as categorias pré-cadastradas na plataforma.
- Nome: um nome amigável para esse sensor no modelo.
- Canal (
ch): começa em1; use canais diferentes para ter vários sensores da mesma categoria no mesmo dispositivo.
É preciso adicionar pelo menos um sensor — a menos que o modelo seja marcado como gateway.
⚠️ Guarde a key de cada sensor
Cada Categoria de Sensor tem uma key técnica (ex: temperature, humidity). Anote a key de cada sensor do seu modelo — é exatamente esse valor que o firmware envia no campo sensor de cada leitura de telemetria.
É pela key que a plataforma vincula cada leitura recebida ao sensor cadastrado no modelo. Se a key enviada no payload não corresponder à de um sensor do modelo, a leitura é descartada.
Exemplo de um modelo com dois sensores:
| Categoria | key | Nome | Canal |
|---|---|---|---|
| Temperatura | temperature | Temp. externa | 1 |
| Umidade | humidity | Umidade do ar | 1 |
Neste exemplo, o dispositivo deve publicar leituras com "sensor": "temperature" e "sensor": "humidity".
4. Provisione um dispositivo
No menu Dispositivos, clique em Adicionar dispositivo. Selecione o Modelo de Dispositivo criado no passo anterior, informe o MAC address do hardware e escolha o tipo:
| Tipo | Quando usar |
|---|---|
| Self | Dispositivo autônomo com conexão direta ao broker |
| Gateway | Concentrador que gerencia outros dispositivos |
| Node | Dispositivo subordinado a um gateway |
O sistema gera o mqttClientId (derivado do MAC) e um secret único para o dispositivo.
O secret é exibido apenas uma vez, no momento do provisionamento. Copie e guarde com segurança — ele não pode ser recuperado depois (apenas regerado).
5. Conecte via MQTT
Use as credenciais geradas para conectar seu hardware ao broker MQTT. A autenticação usa o mqttClientId como usuário e o secret como senha.
MQTTS — recomendado para hardware (ESP32, Arduino, etc.)
Host: mqtt.simpiot.com.br
Porta: 8883 (MQTTS)
User: <mqttClientId>
Pass: <mqttSecret>
WSS — para browsers ou redes que bloqueiam portas não-padrão
Host: broker.simpiot.com.br
Porta: 443 (WSS)
User: <mqttClientId>
Pass: <mqttSecret>
Seu dispositivo deve publicar telemetria no tópico:
<mqttClientId>/telemetry/measure
Lembre-se: no payload, o campo sensor de cada leitura deve usar a key da categoria definida no Modelo de Dispositivo (passo 3).
Exemplo mínimo (ESP32)
Exemplo com PubSubClient + ArduinoJson que conecta via MQTTS e publica uma medida. Substitua as credenciais pelas geradas no provisionamento:
#include <WiFiClientSecure.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
const char* MQTT_CLIENT_ID = "<mqttClientId>"; // usuário
const char* MQTT_SECRET = "<mqttSecret>"; // senha
WiFiClientSecure espClient;
PubSubClient client(espClient);
String topicMeasure = String(MQTT_CLIENT_ID) + "/telemetry/measure";
void setupMqtt() {
espClient.setInsecure(); // TLS na porta 8883
client.setServer("mqtt.simpiot.com.br", 8883);
client.setBufferSize(1024);
}
void connectMqtt() {
while (!client.connected()) {
// clientId, username, password
if (client.connect(MQTT_CLIENT_ID, MQTT_CLIENT_ID, MQTT_SECRET)) {
Serial.println("MQTT conectado");
} else {
delay(5000); // tenta de novo em 5s
}
}
}
void publishMeasure() {
JsonDocument doc;
doc["deviceType"] = "self";
JsonArray arr = doc["measurements"].to<JsonArray>();
JsonObject entry = arr.add<JsonObject>();
entry["sensor"] = "temperature"; // a `key` da categoria no seu Modelo de Dispositivo
entry["ch"] = 1;
entry["value"] = 23.4;
char buf[256];
serializeJson(doc, buf);
client.publish(topicMeasure.c_str(), buf);
}
O campo
sensor("temperature") precisa bater com akeyde um sensor do seu Modelo de Dispositivo — senão a leitura é descartada.
Sobre o
setInsecure(): a conexão é TLS criptografada, mas, por enquanto, não validamos o certificado do servidor — isso simplifica a primeira integração (sem precisar embarcar um certificado raiz no firmware). Para produção, fixe a CA raiz; veja os detalhes em Integração MQTT.
Para o fluxo completo (LWT, estados, recebimento de comandos e ACK), veja Integração MQTT.
6. Visualize os dados
Acesse Medições no cenário para ver os dados chegando em tempo real.
Próximos passos
- Integração MQTT — formato de payload, tópicos e QoS