Passo a Passo para a conexão da ESP32 com a plataforma Ubidots

 Passo 1: Conexão da placa com o Sensor de "Temperatura e Umidade".




 Passo 2: Realização da conectividade conforme o modelo do "Passo 1".



















3 Passo: Neste passo é feito o cadastramento na plataforma Ubidots (criando um login) para conectar a Esp32 com a plataforma que receberá os dados. 

Link  para acessar a plataforma ubidots: https://ubidots.com/





4 Passo: Após criar sua conta na plataforma Ubidots, o próximo passo é a configuração do arduíno. Primeiro passo no arduino é conectar a placa a porta USB.





5 Passo: Após conectar a placa a porta USB. Fazer as configurações do arduino conforme o tutorial já disponivel aqui no blogger no seguinte link: https://draft.blogger.com/u/2/blog/page/edit/4121833496672390817/8826074308573793735

Nota: Considere os passos de 1 a 9 do tutrorial de instalação e configuração do arduíno.

Após configurado o arduíno é necessário a intalação de 3 novas bibliotecas: 

#include <WiFi.h>

#include <PubSubClient.h>

#include <DHT.h>



Para a instalação é necessário seguir os passo demonstrado nas figura a seguir:




Na seguinte imagem o exemplo foi feito com a instalação da biblioteca "DHT11" mas o processo é o mesmo para as demais bibliotecas:"WiFi.h" e "PubSubClient.h".




 Passso 6: A inserção do código que vai fazer a comunicação entre a placa e a plataforma Ubidots.



Código para fazer a conexão entre Esp32 e a plataforma Ubidots:

 

/****************************************

 * Incluir as bibliotecas

 ****************************************/

#include <WiFi.h>

#include <PubSubClient.h>

#include <DHT.h>

 

 

/****************************************

 * Definir Constantes

 ****************************************/

namespace {

  const char * WIFISSID = "Mi Phone"; // Put your WifiSSID here

  const char *  PASSWORD = "12345678"; // Put your wifi password here

  const char * TOKEN = "BBFF-M01EziBWA4IYOpJSxY1RdVqiVvAM2l"; // Put your Ubidots' TOKEN

  const char * MQTT_CLIENT_NAME = "Assign_MQTT_client_here"; // MQTT client Name, please enter your own 8-12 alphanumeric character ASCII string;

  const char * VARIABLE_LABEL_2 = "umidade"; // Assign the variable label

  const char * VARIABLE_LABEL_3 = "temperatura"; // Assign the variable label

  const char * DEVICE_LABEL = "esp32"; // Assign the device label

  const char * MQTT_BROKER = "things.ubidots.com"; 

  const int DHTPIN = 14; // Pin where is connected the DHT11

  const int DHTTYPE = DHT11; // Type of DHT

 

}

 

/* Declarações do sensor */

long duration;

 

/* Espaço para armazenar o pedido */

char payload[200];

char topic[150];

 

 

/* Espaço para armazenar valores para enviar */

 

char str_TempSensor[10];

char str_HumSensor[10];

 

/****************************************

 * Funções auxiliares

 ****************************************/

WiFiClient ubidots;

PubSubClient client(ubidots);

DHT dht(DHTPIN, DHTTYPE);

 

void callback(char* topic, byte* payload, unsigned int length) {

  char p[length + 1];

  memcpy(p, payload, length);

  p[length] = NULL;

  String message(p);

  Serial.write(payload, length);

  Serial.println(topic);

}

 

void reconnect() {

  // Loop until we're reconnected

  while (!client.connected()) {

    Serial.println("Attempting MQTT connection...");

   

    // Attemp to connect

    if (client.connect(MQTT_CLIENT_NAME, TOKEN, "")) {

      Serial.println("Connected");

    } else {

      Serial.print("Failed, rc=");

      Serial.print(client.state());

      Serial.println(" try again in 2 seconds");

      // Wait 2 seconds before retrying

      delay(2000);

    }

  }

}

 

 

/****************************************

 * Mais funções

 ****************************************/

void setup() {

  Serial.begin(115200);

  WiFi.begin(WIFISSID, PASSWORD);

 

 

  /* Iniciando o DHT11 */

 

  dht.begin();

 

  Serial.println();

  Serial.print("Wait for WiFi...");

 

  while (WiFi.status() != WL_CONNECTED) {

    Serial.print(".");

    delay(500);

  }

 

  Serial.println("");

  Serial.println("WiFi Connected");

  Serial.println("IP address: ");

  Serial.println(WiFi.localIP());

  client.setServer(MQTT_BROKER, 1883);

  client.setCallback(callback); 

}

 

void loop() {

  if (!client.connected()) {

    reconnect();

  }

 

 

  /* Leitura de temperatura e umidade */

 

  float humidity = dht.readHumidity();

  float temperature = dht.readTemperature(); 

 

 

  dtostrf(humidity, 4, 2, str_HumSensor);

  dtostrf(temperature, 4, 2, str_TempSensor);

 

 

 

  /* Construindo a solicitação Ubidots */

 

  sprintf(topic, "%s%s", "/v1.6/devices/", DEVICE_LABEL);

  sprintf(payload, "%s", ""); // Limpa a carga útil

 

  sprintf(payload, "{%s\"%s\": %s,", payload, VARIABLE_LABEL_2, str_HumSensor); // Adiciona o rótulo da variável

  sprintf(payload, "%s\"%s\": %s}", payload, VARIABLE_LABEL_3, str_TempSensor); // Adiciona o rótulo da variável

 

   

 

  /* Imprimi a leitura do sensor no Monitor Serial */

 

  Serial.println("Publishing values to Ubidots Cloud");

 

 

  Serial.print("Humidity = ");

  Serial.println(humidity);

  Serial.print("Temperature = ");

  Serial.println(temperature);

 

 

  /* Publica os dados no Ubidots */

 

   client.publish(topic, payload);

  client.loop();

  delay(1000);

}


Como copiar o "TOKEN" na plataforma Ubidots:



Código em funcionamento  gerando a conexão entre o arduíno e a plataforma Ubidots:











Nenhum comentário:

Postar um comentário