Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Monitoramento de Sensores com Arduino

O monitoramento de sensores é uma aplicação crucial em diversos campos, como automação residencial, agricultura de precisão e sistemas de segurança. Utilizando a plataforma Arduino, é possível criar sistemas de monitoramento eficientes e customizáveis que coletam e processam dados de diferentes tipos de sensores. Este artigo aborda a criação de um projeto de monitoramento de temperatura e umidade utilizando um sensor DHT11, um display LCD 16x2 e um módulo WiFi para enviar os dados para uma plataforma online.

Projeto: O projeto consiste em monitorar a temperatura e a umidade de um ambiente utilizando um sensor DHT11, exibir os dados em um display LCD 16x2 e enviar essas informações para uma plataforma online através de um módulo WiFi ESP8266. O objetivo é criar um sistema simples e eficiente que permita o acompanhamento remoto das condições ambientais.

Lista de componentes:

  • 1x Arduino Uno
  • 1x Sensor de temperatura e umidade DHT11
  • 1x Display LCD 16x2 com interface I2C
  • 1x Módulo WiFi ESP8266
  • 1x Protoboard
  • 1x Resistor de 10k ohms
  • Jumpers (fios de conexão)

Exemplos:

Código para leitura do sensor DHT11 e exibição no LCD:

#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define DHTPIN 2     // Pino digital onde o DHT11 está conectado
#define DHTTYPE DHT11   // Definindo o tipo de sensor DHT

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Endereço I2C do LCD

void setup() {
  lcd.begin();
  lcd.backlight();
  dht.begin();
  lcd.print("Inicializando...");
  delay(2000);
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    lcd.clear();
    lcd.print("Erro no sensor");
    return;
  }

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(t);
  lcd.print(" C");
  lcd.setCursor(0, 1);
  lcd.print("Umid: ");
  lcd.print(h);
  lcd.print(" %");

  delay(2000); // Atualiza a cada 2 segundos
}

Código para enviar dados para uma plataforma online usando ESP8266:

#include <ESP8266WiFi.h>
#include <DHT.h>

#define DHTPIN 2
#define DHTTYPE DHT11

const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
const char* server = "api.thingspeak.com";
String apiKey = "SUA_API_KEY";

DHT dht(DHTPIN, DHTTYPE);

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

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("WiFi conectado");
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("Erro ao ler o sensor DHT");
    return;
  }

  if (WiFi.status() == WL_CONNECTED) {
    WiFiClient client;
    if (client.connect(server, 80)) {
      String postStr = apiKey;
      postStr += "&field1=";
      postStr += String(t);
      postStr += "&field2=";
      postStr += String(h);
      postStr += "\r\n\r\n";

      client.print("POST /update HTTP/1.1\n");
      client.print("Host: api.thingspeak.com\n");
      client.print("Connection: close\n");
      client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
      client.print("Content-Type: application/x-www-form-urlencoded\n");
      client.print("Content-Length: ");
      client.print(postStr.length());
      client.print("\n\n");
      client.print(postStr);

      Serial.println("Dados enviados para ThingSpeak");
    }
    client.stop();
  }

  delay(20000); // Envia a cada 20 segundos
}

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.