huidité — Arduino Uno simulation

An interactive Arduino Uno circuit simulation you can run free in your browser on Velxio, by alexis-pal.

Components

Sketch code

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

// Configuration du module Bluetooth sur les broches 10 (RX) et 11 (TX)
SoftwareSerial mySerial(11, 10); // RX, TX

// Configuration du capteur DHT22 sur la broche 8
#define DHTPIN 8
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

// Configuration de l'écran LCD I2C (Adresse 0x27, 16 colonnes, 2 lignes)
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(115200);
  mySerial.begin(9600); // Vitesse standard pour la plupart des modules Bluetooth HC-05 / HC-06

  // Initialisation du capteur DHT
  dht.begin();

  // Initialisation de l'écran LCD
  lcd.init();
  lcd.backlight();

  // Configuration des broches de sortie
  pinMode(6, OUTPUT);  // LED Rouge
  pinMode(5, OUTPUT);  // LED Verte
  pinMode(10, OUTPUT); // Relais / Moteur

  delay(2000);
  lcd.clear();
}

void loop() {
  // Lecture des données du capteur
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  // Vérification si la lecture a échoué
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Erreur de lecture DHT");
    lcd.setCursor(0, 0);
    lcd.print("Erreur Capteur  ");
    lcd.setCursor(0, 1);
    lcd.print("                ");
  } else {
    // Affichage sur l'écran LCD
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("H: ");
    lcd.print(humidity);
    lcd.print("%");
    lcd.setCursor(0, 1);
    lcd.print("T: ");
    lcd.print(temperature);
    lcd.print((char)223);
    lcd.print("C");

    // Envoi des données par Bluetooth vers le téléphone
    mySerial.print("Humidite: ");
    mySerial.print(humidity);
    mySerial.print("% | ");
    mySerial.print("Temperature: ");
    mySerial.print(temperature);
    mySerial.println(" C");
  }

  // Logique de contrôle de l'humidité (> 70%) -> LED Rouge (pin 6)
  if (humidity > 70) {
    digitalWrite(6, HIGH);
  } else {
    digitalWrite(6, LOW);
  }

  // Logique de contrôle de la température (>= 26°C) -> LED Verte (pin 5) & Relais (pin 10)
  if (temperature >= 26) {
    digitalWrite(5, HIGH);
    digitalWrite(10, HIGH); // Active le relais / moteur
  } else {
    digitalWrite(5, LOW);
    digitalWrite(10, LOW);  // Désactive le relais / moteur
  }

  delay(2000); // Attente de 2 secondes avant la prochaine lecture
}

More projects by alexis-pal