Integração HTTPS para TagoIO

   A integração HTTPs para TagoIO é uma das alternativas para inserir dados externos dos dispositivos IoT tanto de forma direta como também de forma indireta. Mas como assim de forma indireta ou direta?

  Já é de senso comum que há diversos dispositivos que tem a capacidade de se conectar com a internet de forma direta e consequentemente se comunicar com qualquer servidor, porém em alguns casos não será possível fazer essa comunicação de forma direta por isso haverá intermediários, esse é um caso do LoRaWAN por exemplo.

   A integração HTTP é uma integração genérica de uso geral, o que facilita muito qualquer processo de integração e de uma forma bem simples e que pode ser facilmente utilizada para fins de testes.

Como fazer uma integração HTTPS para TagoIO?

   Para fazer a integração HTTPS com a TagoIO é tão simples que você nem imagina, porém precisamos fazer alguns passos para que realizar a integração 100%. Abra seu dashboard, clique em devices, no canto superior direito clique em adicionar dispositivo e aparecerá uma tela igual a essa abaixo:

Criando uma integração TagoIO

   Por fim coloque um nome de identificação em seu dispositivo, um período de retenção de sua escolha e finalize. Agora vamos para “devices” no dispositivo que acabamos de criar e pegar o token para que possamos inserir dados.

   Ao clicar para visualizar o token, irá aparecer um pop-up contendo um QR code e o código do token para que possamos usar no código de integração.

Obtendo token de integração do dispositivo na TagoIO

   Pronto, agora vamos testar se de fato funciona ou não essa integração, para isso vamos usar um código em python como exemplo esse código vai “emular” um rastreamento igual foi feito no post anterior.

Testando integração HTTPS na TagoIO com o Python

   Para testarmos, vamos usar um código com python para fazer esse teste de conexão, o bom é que no python podemos usar em várias aplicações tanto do lado do dispositivo IoT ou intermediários.

import requests

device_token = '759a6b30-af39-4db2-89d6-04769c6fc63f'

tagoio_url = f'https://api.tago.io/data?token={device_token}'

data_to_send = [
  {
    "variable": "location",
    "value": "elcereza.com",
    "location": {
      "lat": -14.784533,
      "lng": -74.654786
    }
  }
]

response = requests.post(tagoio_url, json=data_to_send)

if response.status_code == 202:
    print('Sucesso no envio')
else:
    print(f'Erro: {response.status_code}')
    print(response.text)

Teste da integração com a TagoIO

  Para testar a integração você pode ir no lado da TagoIO habilitar o inspetor ao vivo e analisar os pacotes chegando na Tago.

Curiosidade de integração HTTPS

   Se parar para analisar o contexto até esse momento, você notará que na verdade tudo está se referindo a criar dispositivo HTTPS, certo? Mas mesmo embora seja relacionado a criação de dispositivo, esse processo é valido para qualquer dispositivo já criado, então você consegue inserir dados mesmo sendo um dispositivo não HTTPS, um exemplo disso é esse dispositivo que é um módulo LoRaWAN da Radioenge que foi usado para emular um rastreamento, ao pegar o token padrão ou gerado conseguirmos inserir dados tranquilamente. 

   Esse método de integração possibilita que possamos implementar literalmente qualquer dispositivo IoT que tenha conexão direta ou indireta com a internet. É um método genérico que serve para todas as aplicações possíveis.

Integração HTTPS com a TagoIO via ESP32

   Para finalizar com chave de outro, vamos só fazer uma intergeração do ESP32 com a TagoIO via HTTPS através do método POST. Como é só o ESP32 não será necessário nenhum diagrama esquemático adicional funcionar, é só o ESP32 e o computador.

Código para integração com ESP32

   Esse código não é nada diferente do que já abordamos aqui, ele vai fazer o mesmo que o rastreador simulado com LoRaWAN que fizemos anteriormente. Então é a mesma estrutura, a principal diferença é que a comunicação é direta.

#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>

const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
const char* server = "api.tago.io";
const char* token = "759a6b30-af39-4db2-89d6-04769c6fc63f";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Conectando ao WiFi...");
  }
}

void loop() {
  sendToTagoIO();
  delay(60000); // Envia dados a cada minuto (ajuste conforme necessário)
}

void sendToTagoIO() {
  StaticJsonDocument<200> jsonDocument;
  
  jsonDocument["variable"] = "location";
  jsonDocument["value"] = "elcereza.com";
  
  JsonObject location = jsonDocument.createNestedObject("location");
  location["lat"] = -14.784533;
  location["lng"] = -74.654786;

  String jsonString;
  serializeJson(jsonDocument, jsonString);

  HTTPClient http;

  http.begin("http://" + String(server) + "/data");
  http.addHeader("Content-Type", "application/json");
  http.addHeader("token", token);

  int httpResponseCode = http.POST(jsonString);

  if (httpResponseCode == 202) {
    Serial.println("Sucesso no envio");
  } else {
    Serial.print("Erro: ");
    Serial.println(httpResponseCode);
    Serial.println(http.getString());
  }

  http.end();
}

ESP32 e TagoIO

Deixe uma resposta

Descubra mais sobre elcereza

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continue reading