Primeiros Passos

Como criar sua conta, configurar seu primeiro cenário e conectar um dispositivo ao SimpIoT.

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 em 1; 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:

CategoriakeyNomeCanal
TemperaturatemperatureTemp. externa1
UmidadehumidityUmidade do ar1

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:

TipoQuando usar
SelfDispositivo autônomo com conexão direta ao broker
GatewayConcentrador que gerencia outros dispositivos
NodeDispositivo 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 a key de 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