Maison intelligente utilisant Arduino Uno R4 WiFi

Smart Home Using Arduino Uno R4 WiFi

Schémas de la maison intelligente utilisant Arduino Uno R4 WiFi

Configuration du système matériel pour maison intelligenteDans l'application Blynk, créez un nouveau projet.Arduino R4 WiFi comme nouvel appareil1731569581 863 Maison intelligente utilisant Arduino Uno R4 WiFiMaison intelligente utilisant la configuration WiFi Arduino Uno R4Maison intelligente utilisant l'interface WiFi Arduino Uno R4

Code

#define BLYNK_PRINT Serial // Définir l’impression Blynk pour la sortie du moniteur série

#define BLYNK_TEMPLATE_ID « ********** » // ID du modèle Blynk
#define BLYNK_TEMPLATE_NAME « Arduino R4 » // Nom du modèle Blynk
#define BLYNK_AUTH_TOKEN « qrxKXXIYXy_7C9dWLfqRs7-ETsPwn60w » // Jeton d’autorisation Blynk

#include // Inclut la bibliothèque SPI
#include // Inclut la bibliothèque WiFi pour S3
#include // Inclut la bibliothèque Blynk pour le WiFi
#include // Inclut la bibliothèque de capteurs DHT
#include « ArduinoGraphics.h » // Inclut la bibliothèque graphique pour Arduino
#include « Arduino_LED_Matrix.h » // Inclut la bibliothèque de matrices LED

Matrice ArduinoLEDMatrix ; // Crée une instance de la matrice LED
DHTdht(2, DHT11); // Créer une instance de capteur DHT sur la broche 2

char ssid[] = « RKranjan » ; // SSID Wi-Fi
passe de char[] = « ******** » ; // Mot de passe Wi-Fi

#define GREEN_LIGHT 3 // Définir la broche pour le feu vert
#define WHITE_LIGHT 4 // Définir la broche pour la lumière blanche
#define RED_LIGHT 5 // Définir la broche pour le feu rouge
#define LDR_SENSOR A5 // Définir la broche pour le capteur LDR
#define GARDEN_LIGHT 12 // Définir la broche pour l’éclairage du jardin
#define MQ2_PIN A0 // Définir la broche pour le capteur de gaz MQ2
#define BUZZER_PIN 11 // Définir la broche du buzzer

const int LOW_FREQ = 600 ; // Définir la basse fréquence pour le buzzer
const int HIGH_FREQ = 1200 ; // Définir la haute fréquence du buzzer
const int FADE_TIME = 10 ; // Définir le temps de fondu pour le changement de fréquence
const int HOLD_TIME = 200 ; // Définir le temps de maintien pour la fréquence

#define VIRTUAL_PIN_TEMPERATURE V1 // Définir une broche virtuelle pour la température
#define VIRTUAL_PIN_HUMIDITY V2 // Définir une broche virtuelle pour l’humidité

capteur à flotteurValue ; // Variable pour stocker la valeur du capteur

configuration vide() {
Série.begin(115200); // Démarre la communication série à un débit de 115 200 bauds
pinMode(GREEN_LIGHT, SORTIE); // Définit la broche de lumière verte comme sortie
pinMode(WHITE_LIGHT, SORTIE); // Définit la broche de lumière blanche comme sortie
pinMode(RED_LIGHT, SORTIE); // Définit la broche lumineuse rouge comme sortie
pinMode(GARDEN_LIGHT, SORTIE); // Définir la broche d’éclairage de jardin comme sortie

dht.begin(); // Initialiser le capteur DHT
WiFi.begin(ssid, pass); // Démarre la connexion WiFi
Blynk.config(BLYNK_AUTH_TOKEN); // Configurer Blynk sans bloquer

matrice.begin(); // Initialise la matrice LED
matrice.beginDraw(); // Commence à dessiner sur la matrice
matrice.AVC(0xFFFFFFFF); // Définit la couleur du trait sur blanc
matrice.textScrollSpeed(100); // Définir la vitesse de défilement du texte
matrice.textFont(Font_4x6); // Définir la police du texte
matrice.beginText(0, 1, 0xFFFFFF); // Commence le texte à la position (0,1) avec la couleur blanche
matrice.println( » UNO r4 « ); // Imprimer le texte sur la matrice
matrice.endText(SCROLL_LEFT); // Fin du dessin du texte et défilement vers la gauche
matrice.endDraw(); // Finir de dessiner sur la matrice
}

boucle vide() {
// Tentative de connexion à Blynk sans bloquer
if (WiFi.status() == WL_CONNECTED && !Blynk.connected()) {
Blynk.connect(2000); // Tentative de reconnexion à Blynk avec un délai d’attente de 2 secondes
}

si (Blynk.connected()) {
Blynk.run(); // Exécute les tâches Blynk uniquement si connecté
}

// Continuer à exécuter d’autres fonctions quel que soit l’état de la connexion Blynk
readDHTSensor(); // Lire la température et l’humidité du capteur DHT
updateGardenLight(); // Ajustez la lumière du jardin en fonction du capteur LDR
readGasSensor(); // Lire la valeur du capteur de gaz
scrollMatrixText(); // Faire défiler le texte sur la matrice LED
}

// Lecture du capteur DHT
void readDHTSensor() {
statique non signé long lastReadTime = 0 ; // Variable pour stocker l’heure de la dernière lecture
if (millis() – lastReadTime > 2000) { // Lire le capteur toutes les 2 secondes
lastReadTime = millis();
humidité flottante = dht.readHumidity(); // Lire l’humidité
température flottante = dht.readTemperature(); // Lire la température

if (!isnan(humidity) && !isnan(temperature)) { // Vérifier les lectures valides
Serial.print(« Température : « );
Serial.print (température);
Serial.print( » °C, Humidité : « );
Serial.println (humidité);

Blynk.virtualWrite(VIRTUAL_PIN_TEMPERATURE, température); // Envoie la température à Blynk
Blynk.virtualWrite(VIRTUAL_PIN_HUMIDITY, humidité); // Envoie de l’humidité à Blynk
} autre {
Serial.println(« Échec de la lecture du capteur DHT ! »); // Imprimer le message d’erreur
}
}
}

// Contrôle du capteur LDR
void updateGardenLight() {
int adc_val = 255 – (analogRead(LDR_SENSOR) / 4); // Lire la valeur LDR et calculer la valeur de la lumière du jardin
analogWrite(GARDEN_LIGHT, adc_val); // Définir la luminosité de la lumière du jardin
}

// Lecture du capteur de gaz
void readGasSensor() {
sensorValue = analogRead(MQ2_PIN); // Lire la valeur du capteur de gaz
Serial.print(« Valeur du capteur de gaz : « );
Serial.print(sensorValue);

if (sensorValue > 200) { // Vérifiez si de la fumée est détectée
Serial.print( » | Fumée détectée! »); // Imprimer le message de détection de fumée
playEmergencySiren(); // Jouer le son de la sirène d’urgence
} autre {
pas de tonalité (BUZZER_PIN); // Arrête le buzzer si pas de fumée
}
Série.println(«  »); // Imprimer la nouvelle ligne
}

// Son de sirène d’urgence
void playEmergencySiren() {
for (int freq = LOW_FREQ; freq <= HIGH_FREQ; freq += 10) { // Augmenter la fréquence
tonalité (BUZZER_PIN, fréquence); // Jouer le son à la fréquence actuelle
delayMicroseconds(FADE_TIME * 1000); // Attendre le temps de fondu
}
delayMicroseconds(HOLD_TIME * 1000); // Maintenir la haute fréquence

for (int freq = HIGH_FREQ; freq >= LOW_FREQ; freq -= 10) { // Diminuer la fréquence
tonalité (BUZZER_PIN, fréquence); // Jouer le son à la fréquence actuelle
delayMicroseconds(FADE_TIME * 1000); // Attendre le temps de fondu
}
delayMicroseconds(HOLD_TIME * 1000); // Maintient la basse fréquence
}

// Défilement du texte de la matrice
void scrollMatrixText() {
statique non signé long lastScrollTime = 0 ; // Variable pour stocker l’heure du dernier défilement
if (millis() – lastScrollTime > 500) { // Fait défiler le texte toutes les 500 millisecondes
lastScrollTime = millis();

matrice.beginDraw(); // Commence à dessiner sur la matrice
matrice.AVC(0xFFFFFFFF); // Définit la couleur du trait sur blanc
matrice.textScrollSpeed(50); // Définir la vitesse de défilement du texte
matrice.textFont(Font_5x7); // Définir la police du texte
matrice.beginText(0, 1, 0xFFFFFF); // Commence le texte à la position (0,1) avec la couleur blanche
Matrix.println( » Texte défilant ! « ); // Imprimer le texte défilant
matrice.endText(SCROLL_LEFT); // Fin du dessin du texte et défilement vers la gauche
matrice.endDraw(); // Finir de dessiner sur la matrice
}

// Contrôles des boutons Blynk
BLYNK_WRITE(V0) {
digitalWrite(GREEN_LIGHT, param.asInt()); // Contrôle le feu vert en fonction de l’état du bouton Blynk
}
BLYNK_WRITE(V4) {
digitalWrite(WHITE_LIGHT, param.asInt()); // Contrôle la lumière blanche en fonction de l’état du bouton Blynk
}
BLYNK_WRITE(V3) {
digitalWrite(RED_LIGHT, param.asInt()); // Contrôle la lumière rouge en fonction de l’état du bouton Blynk
}

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

Youtube video

  • Arduino UNO R4 WiFi [ABX00087] - Carte de développement avec microcontrôleur Arm Cortex-M4 et WiFi intégré, idéale pour projets IoT, automatisation et Applications connectées avec Arduino IDE.
  • SunFounder Kit Explorateur Élite avec Arduino Uno R4 WiFi Original, Conforme RoHS, Bluetooth, IoT, ESP32, IIC LCD1602, OLED,Tutoriels en Ligne et Cours vidéo en Anglais pour débutants et ingénieurs