Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Transfert de données température/humidité entre deux Arduinos via Firebase

Composants et fournitures

ComposantQuantité
Arduino UNO2
ESP8266 ESP-012
Capteur température/humidité DHT11 (3 broches)1
Écran LCD I2C 16x2 DFRobot1
Plaque d'essai (breadboard)2
Fils de connexion mâle/femelle1

Applications et services en ligne

Présentation du projet

Dans ce tutoriel IoT, vous lirez la température et l'humidité depuis un capteur DHT11 sur un Arduino UNO, enverrez les valeurs vers Firebase via un ESP8266, puis récupérerez ces mesures sur un second Arduino UNO pour les afficher sur un écran LCD I2C. Cet exemple pratique illustre la communication série, le réseau Wi-Fi et le stockage cloud – des compétences essentielles pour les développeurs embarqués modernes.

Étape 1 – Comprendre le rôle de chaque carte

L'UNO sert d'interface capteur tandis que l'ESP8266 agit comme passerelle Wi-Fi. Ils communiquent par le port série ; l'ESP8266 ne se connecte pas directement à Internet, seul le module Wi-Fi le fait. Gardez le code séparé pour chaque carte pour éviter toute confusion.

Étape 2 – Connecter le LCD à l'UNO

Utilisez l'I2C pour la simplicité et l'économie de broches. Le module DFRobot 20x4 fonctionne directement. Si vous utilisez un afficheur 20x4, mettez à jour le constructeur : LiquidCrystal_I2C lcd(0x3F, 20, 4);.

Étape 3 – Câbler le DHT11 sur le second UNO

Suivez le tutoriel officiel Arduino DHT11 pour le câblage et l'installation de la bibliothèque. Le capteur ne nécessite qu'une seule broche de données (A0 dans notre exemple).

Étape 4 – Configurer l'ESP8266 avec Firebase

Configurez les identifiants Wi-Fi et les détails du projet Firebase dans le sketch. La Firebase Realtime Database offre une arborescence JSON simple où l'ESP8266 écrit les nœuds temperature et humidity. Pour les débutants, la vidéo tutorielle couvre chaque étape en détail.

Étape 5 – Maîtriser la communication série

Lors de la transmission de données par série, n'envoyez que la chaîne requise. Toute impression de débogage supplémentaire peut casser le protocole. Dans notre implémentation, l'UNO capteur envoie une chaîne séparée par des virgules (ex: 25.3,60.1) à l'ESP8266, qui l'analyse et transmet chaque valeur à Firebase.

Étape 6 – Téléverser et tester

Téléversez le sketch capteur sur le premier UNO, le sketch capteur-ESP8266 sur le premier ESP8266, et le sketch LCD-ESP8266 sur le second ESP8266. Vérifiez que le LCD se met à jour avec de nouvelles lectures toutes les quelques secondes. Débranchez toujours le câble USB de l'Arduino avant de déconnecter les fils pour éviter les courts-circuits accidentels.

Problèmes courants et solutions

Extraits de code

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 "VOTRE_LIEN_FIREBASE"
#define FIREBASE_AUTH "VOTRE_JETON_FIREBASE"
#define WIFI_SSID "VOTRE_SSID_WIFI"
#define WIFI_PASSWORD "VOTRE_MOT_DE_PASSE_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 "VOTRE_LIEN_FIREBASE"
#define FIREBASE_AUTH "VOTRE_JETON_FIREBASE"
#define WIFI_SSID "VOTRE_SSID_WIFI"
#define WIFI_PASSWORD "VOTRE_MOT_DE_PASSE_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("Échec d'écriture vers Firebase");
    }
  }
  delay(2000);
}

Processus de fabrication

  1. Streaming de données de température en temps réel depuis un ppDAQC Pi‑Plate vers InitialState avec un Raspberry Pi headless
  2. Surveillance temps réel de panneau solaire avec Arduino : Acquisition de données bas coût
  3. Robot de détection humaine basé sur Arduino Uno : Intégration capteurs étape par étape
  4. Construire un Capteur de Rythme Cardiaque Infrarouge Fiable avec Arduino : Guide Étape par Étape
  5. Mesure de distance en temps réel par sonar Arduino et visualisation Processing
  6. Contrôle fluide de la luminosité LED avec Bolt IoT et Arduino UNO
  7. Intégrer le capteur de pouls MAX30100 avec Arduino : Guide complet
  8. Guide pas à pas : Connecter le capteur d'humidité du sol YL-39/YL-69 à un Arduino UNO
  9. Migration CMMS sans heurts : directives expertes pour le transfert de données