Construire JARVIS v1 : Automatisation domestique avec Arduino Nano – Tutoriel pas à pas
Composants et fournitures
- Arduino Nano R3
- Module relais (4 canaux)
- Module Bluetooth Low Energy (BLE) générique (HC-05)
- Plaque d'essai (breadboard)
- Fils de connexion (jumper wires) – 10 unités
Outils et machines nécessaires
- Fer à souder
Applications et services en ligne
- Arduino IDE
À propos du projet
Pourquoi avons-nous construit cela ?
En tant que fan d'Iron Man, j'ai été vraiment inspiré par JARVIS, un assistant personnel à commande vocale, et j'ai fortement voulu construire un système d'automatisation domestique. Bien qu'il existe de nombreux systèmes disponibles, j'ai décidé de construire le mien en utilisant Arduino.
Comment cela fonctionne
Ce projet vise à contrôler des appareils électriques et électroniques tels que lumières, ventilateurs, TV, etc. Cela se fait en utilisant Arduino et le circuit relais installé dans chaque pièce de la maison. Les données sont transmises à l'Arduino via le module Bluetooth et d'autres implémentations peuvent être ajoutées.
La tâche principale consiste à acquérir les données et les publier sur l'Arduino via un mobile. Ensuite, avec ces données, on peut commander l'allumage/extinction des appareils.
Construction matérielle
Le circuit est très simple. Le coût global de ce produit serait inférieur à 20 $.
Étape 1 : Pièces et matériel

Les composants nécessaires pour ce projet sont :
- Arduino
- Carte relais (relay breakout board)
- Module Bluetooth - HC-05
- Câbles de connexion (jumper cables)
Étape 2 : Connexions
Les connexions suivantes sont réalisées avec les câbles de liaison. Pour cette démo, j'ai utilisé quatre relais, ce qui signifie que quatre appareils peuvent être contrôlés via l'application.

Arduino → Module BT
- TX → RX
- RX → TX
- VCC → 3,3 V
- GND → GND
Arduino → Carte relais
- IN1 → D2
- IN2 → D3
- IN3 → D4
- IN4 → D5
- VCC → VCC
- GND → GND
Étape 3 : Le code
Vous trouverez l'exemple de code ci-dessous.
String voice;
int led1 = 2, led2 = 3, led3 = 4, led4 = 5, led5 = 6;
void allon() {
digitalWrite(led1, HIGH); digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH); digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
void alloff() {
digitalWrite(led1, LOW); digitalWrite(led2, LOW);
digitalWrite(led3, LOW); digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT); pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT); pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}
void loop() {
while (Serial.available()) {
delay(10);
char c = Serial.read();
if (c == '#') break;
voice += c;
}
if (voice.length() > 0) {
Serial.println(voice);
// Contrôle multiple
if (voice == "*all on") { allon(); }
else if (voice == "*all off") { alloff(); }
// Allumage individuel
else if (voice == "*TV on") { digitalWrite(led1, HIGH); }
else if (voice == "*fan on") { digitalWrite(led2, HIGH); }
else if (voice == "*computer on") { digitalWrite(led3, HIGH); }
else if (voice == "*bedroom lights on") { digitalWrite(led4, HIGH); }
else if (voice == "*bathroom lights on") { digitalWrite(led5, HIGH); }
// Extinction individuelle
else if (voice == "*TV off") { digitalWrite(led1, LOW); }
else if (voice == "*fan off") { digitalWrite(led2, LOW); }
else if (voice == "*computer off") { digitalWrite(led3, LOW); }
else if (voice == "*bedroom lights off") { digitalWrite(led4, LOW); }
else if (voice == "*bathroom lights off") { digitalWrite(led5, LOW); }
voice = "";
}
}
Étape 4 : Application
Pour l'instant, nous utiliserons une application toute faite. Dans les prochains jours, je publierai l'application une fois les certificats traités.
BT Voice Control for Arduino créé par SimpleLabsIN : Lien de téléchargement
Vidéo de fonctionnement du projet
Actuellement, la fonctionnalité se limite à allumer/éteindre les appareils, mais elle peut traiter le langage naturel à un niveau basique, permettant d'intégrer le traitement du langage naturel à d'autres projets.
Un grand merci à Hackster.io pour m'avoir permis, ainsi qu'à tous les utilisateurs de cette excellente plateforme, de participer.
Merci d'organiser ces activités qui encouragent les jeunes et les adolescents à créer et inventer.
Mettez un pouce vers le haut si cela vous a vraiment aidé et suivez ma chaîne pour des projets intéressants :)
Partagez cette vidéo si vous l'aimez.
Heureux de vous avoir abonné : YouTube
Merci pour votre lecture !
Code
Exemple de code
// Coded By: Angelo Casimiro (4/27/14)
// Voice Activated Arduino (Bluetooth + Android)
// Feel free to modify it but remember to give credit
String voice;
int led1 = 2, led2 = 3, led3 = 4, led4 = 5, led5 = 6;
void allon() {
digitalWrite(led1, HIGH); digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH); digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
void alloff() {
digitalWrite(led1, LOW); digitalWrite(led2, LOW);
digitalWrite(led3, LOW); digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT); pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT); pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}
void loop() {
while (Serial.available()) {
delay(10);
char c = Serial.read();
if (c == '#') break;
voice += c;
}
if (voice.length() > 0) {
Serial.println(voice);
if (voice == "*all on") { allon(); }
else if (voice == "*all off") { alloff(); }
else if (voice == "*TV on") { digitalWrite(led1, HIGH); }
else if (voice == "*fan on") { digitalWrite(led2, HIGH); }
else if (voice == "*computer on") { digitalWrite(led3, HIGH); }
else if (voice == "*bedroom lights on") { digitalWrite(led4, HIGH); }
else if (voice == "*bathroom lights on") { digitalWrite(led5, HIGH); }
else if (voice == "*TV off") { digitalWrite(led1, LOW); }
else if (voice == "*fan off") { digitalWrite(led2, LOW); }
else if (voice == "*computer off") { digitalWrite(led3, LOW); }
else if (voice == "*bedroom lights off") { digitalWrite(led4, LOW); }
else if (voice == "*bathroom lights off") { digitalWrite(led5, LOW); }
voice = "";
}
}
Dépôt du projet
https://github.com/Rahul24-06/Arduino-Tutorial-JARVIS-v1-How-to-make-a-Home-Automation
Schémas

Processus de fabrication
- Construire un système domotique piloté par Raspberry Pi pour contrôle à distance
- Construire sa propre machine à écrire les devoirs à la maison (Traceur à stylo)
- Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
- Créer un bouton clavier personnalisé « frappable » avec Arduino : guide pas à pas
- Volant Joystick Arduino Personnalisé pour Jeux Vidéo
- Générer des Sons Musicaux avec Arduino : Guide Pas à Pas
- Porte automatique Arduino avec capteur ultrasons HC-SR04
- Système de Surveillance Domestique Avancé avec Arduino Mega et Capteurs IoT
- Construire une voiture Arduino pilotée par Bluetooth : Guide DIY complet