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/
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:
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