Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Transferência de Dados de Temperatura e Umidade entre Dois Arduinos via Firebase

Componentes e Materiais

Arduino UNO ×2
ESP8266 ESP-01 ×2
Sensor de Temperatura e Umidade DHT11 (3 pinos) ×1
Display LCD I2C 16x2 (DFRobot) ×1
Protoboard (genérica) ×2
Jumpers Macho/Fêmea ×1

Aplicativos e Serviços Online

Visão Geral do Projeto

Neste tutorial IoT, você lerá temperatura e umidade de um sensor DHT11 em um Arduino UNO, enviará os valores ao Firebase via ESP8266, e depois recuperará essas leituras em um segundo Arduino UNO para exibi-las em um LCD I2C. Este exemplo prático demonstra comunicação serial, rede Wi-Fi e armazenamento de dados na nuvem — habilidades essenciais para desenvolvedores embarcados modernos.

Passo 1 – Entender o Papel de Cada Placa

O UNO serve como interface do sensor enquanto o ESP8266 atua como gateway Wi-Fi. Eles comunicam via porta serial; o ESP8266 nunca se conecta diretamente à internet, apenas o módulo Wi-Fi o faz. Mantenha o código separado para cada placa para evitar confusão.

Passo 2 – Conectar o LCD ao UNO

Use I2C para simplicidade e menor uso de pinos. O exemplo de LCD 20x4 do módulo DFRobot funciona pronto. Se estiver usando um display 20x4, atualize o construtor para LiquidCrystal_I2C lcd(0x3F, 20, 4);.

Passo 3 – Ligar o DHT11 ao Segundo UNO

Siga o tutorial oficial DHT11 do Arduino para fiação e instalação da biblioteca. O sensor requer apenas um pino de dados (A0 no nosso exemplo).

Passo 4 – Configurar o ESP8266 com Firebase

Configure credenciais Wi-Fi e detalhes do projeto Firebase no sketch. O Firebase Realtime Database fornece uma árvore JSON simples onde o ESP8266 escreve os nós temperature e humidity. Para iniciantes, o vídeo tutorial cobre cada passo em detalhes.

Passo 5 – Dominar a Comunicação Serial

Ao transmitir dados via serial, envie apenas a string necessária. Quaisquer prints de depuração adicionais podem quebrar o protocolo. Na nossa implementação, o UNO do sensor envia uma string separada por vírgula (ex: 25.3,60.1) para o ESP8266, que analisa e encaminha cada valor ao Firebase.

Passo 6 – Carregar e Testar

Carregue o sketch do sensor no primeiro UNO, o sketch sensor-ESP8266 no primeiro ESP8266, e o sketch LCD-ESP8266 no segundo ESP8266. Verifique se o LCD atualiza com leituras novas a cada poucos segundos. Sempre desconecte o cabo USB do Arduino antes de desconectar jumpers para evitar curtos acidentais.

Problemas Comuns e Soluções

Trechos de Código

lcd_arduino.ino (Arduino)

#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x3F, 20, 4);
String sensorData;

void setup() {
  Serial.begin(9600);
  lcd.begin(20, 4);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Temperature: ");
  lcd.setCursor(18, 0);
  lcd.print("C");
  lcd.setCursor(0, 1);
  lcd.print("Humidity: ");
  lcd.setCursor(15, 1);
  lcd.print("%");
}

void loop() {
  if (Serial.available()) {
    sensorData = Serial.readString();
    String temp = sensorData.substring(0, sensorData.indexOf(','));
    String hum = sensorData.substring(sensorData.indexOf(',') + 1);
    lcd.clear();
    lcd.setCursor(13, 0);
    lcd.print(temp);
    lcd.setCursor(10, 1);
    lcd.print(hum);
  }
  delay(2000);
}

lcd_esp8266.ino (ESP8266)

#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#define FIREBASE_HOST "SEU_LINK_FIREBASE"
#define FIREBASE_AUTH "SEU_TOKEN_FIREBASE"
#define WIFI_SSID "SEU_SSID_WIFI"
#define WIFI_PASSWORD "SUA_SENHA_WIFI"

void setup() {
  Serial.begin(9600);
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}

void loop() {
  String temp = Firebase.getString("temperature");
  String hum = Firebase.getString("humidity");
  Serial.flush();
  Serial.print(temp + "," + hum);
  delay(2000);
}

sensor_arduino.ino (Arduino)

#include <SoftwareSerial.h>
#include <dht.h>
#define DHT_PIN A0
DHT dht;

void setup() {
  Serial.begin(9600);
}

void loop() {
  dht.read11(DHT_PIN);
  String data = String(dht.temperature) + "," + String(dht.humidity);
  Serial.flush();
  Serial.print(data);
  delay(2000);
}

sensor_esp8266.ino (ESP8266)

#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#define FIREBASE_HOST "SEU_LINK_FIREBASE"
#define FIREBASE_AUTH "SEU_TOKEN_FIREBASE"
#define WIFI_SSID "SEU_SSID_WIFI"
#define WIFI_PASSWORD "SUA_SENHA_WIFI"

void setup() {
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  Serial.begin(9600);
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}

void loop() {
  if (Serial.available()) {
    String payload = Serial.readString();
    int comma = payload.indexOf(',');
    String temp = payload.substring(0, comma);
    String hum = payload.substring(comma + 1);
    Firebase.setString("temperature", temp);
    Firebase.setString("humidity", hum);
    if (Firebase.failed()) {
      Serial.println("Falha ao escrever no Firebase");
    }
  }
  delay(2000);
}

Processo de manufatura

  1. Transmissão de Dados de Temperatura em Tempo Real do ppDAQC Pi-Plate para InitialState com Raspberry Pi Headless
  2. Monitoramento em Tempo Real de Painel Solar com Arduino: Sistema de Aquisição de Dados de Baixo Custo
  3. Robô de Detecção Humana Baseado em Arduino Uno: Integração de Sensores Passo a Passo
  4. Construa um Sensor de Batimento Cardíaco Infravermelho Confiável com Arduino: Guia Passo a Passo
  5. Medição de Distância em Tempo Real com Sonar Arduino e Visualização no Processing
  6. Controle Suave de Brilho de LED com Bolt IoT e Arduino UNO
  7. Integrando Sensor de Pulso MAX30100 com Arduino: Guia Passo a Passo
  8. Guia Passo a Passo: Conectando Sensor de Umidade do Solo YL-39/YL-69 ao Arduino UNO
  9. Interface Web em PHP para Controlar Arduino Uno via Ethernet Shield
  10. Migração CMMS Perfeita: Diretrizes Especializadas para Transferência de Dados