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

J.A.R.V.I.S. :Un assistant virtuel à domicile

Composants et fournitures

Arduino 101
× 1
Bouclier de relais Arduino 4
× 1
Arduino GSM shield V2
× 1

Outils et machines nécessaires

Fer à souder (générique)
Pistolet à colle chaude (générique)

Applications et services en ligne

Unity
Android Studio
Vuforia
Adobe Illustrator
Arduino IDE

À propos de ce projet

Pourquoi s'attaquer au problème de la maison intelligente ?

Quoi de neuf ?

Pourquoi avons-nous décidé de le faire ?

Travailler

Le compteur d'énergie numérique

L'assistant virtuel d'IA

Le flux de signaux est le suivant :

  • 1. Saisie vocale sur l'application Android
  • 2. Traitement sur l'application Android
  • 3. Envoi de données cryptées à Arduino via Bluetooth.
  • 4. Traitement sur Arduino 101
  • 5. Signaux numériques à relayer

Épingles de connexions :

  • Broche 8 --> PulseIn [Entrée numérique]
  • Broche 6 --> IN1 --> Sortie du ventilateur
  • Broche 4 --> IN2 --> Sortie lumineuse
  • Broche 5 --> IN3 --> Cafetière

Connexions du compteur d'énergie :

  • Connectez le compteur à l'alimentation.
  • Couvrez le compteur d'énergie avec un ruban noir, empêchant le LDR à l'intérieur du compteur d'énergie de la lumière extérieure.
  • Connectez le fil neutre directement aux charges et le fil de phase au relais.
  • Amenez les fils du LDR à l'extérieur du compteur jusqu'au circuit du compteur.
  • Maintenant, transférez la sortie du circuit de compteur à la broche d'impulsion assignée à la broche 8, comme dans le code.
  • Connectez la broche TX, RX de l'Arduino 101 à la broche RX, TX du module GSM.
  • Allumez maintenant les cartes après avoir gravé le code.

Schéma de circuit

Matériel et équipement utilisés :

  • Compteur d'énergie intérieur :résistance dépendant de la lumière LDR
  • Module GSM
  • Circuit compteur :potentiomètre, IC LM358N
  • Arduino 101
  • Module Bluetooth-HC05
  • Module de carte de commande de relais 4 canaux 12V 10A avec optocoupleur pour PIC AVR ARM

Plateformes de programmation

  • · Pour programmer l'Arduino 101, nous avons utilisé l'IDE Arduino par défaut.
  • · Nous avons développé notre application Android en utilisant Android Studio (JAVA et XML).
  • · La connectivité à la base de données s'effectue à l'aide de Firebase de Google.
  • · Pour la réalité augmentée, nous avons utilisé Unity avec le SDK Vuforia.

Implémentation :

  • Tous les composants donnent des lectures à l'Arduino, où nous convertissons ces lectures en code de caractères afin d'envoyer les octets efficacement et rapidement à l'ordinateur. A l'intérieur d'une boucle sans fin, chaque lecture correspond à un caractère.
  • Un code doit s'exécuter sur l'ordinateur afin de recevoir les données envoyées par arduino via les ports série.
  • Pour développer l'application Android, nous utilisons Android Studio et pour convertir la voix en texte, nous utilisons l'API Google standard.
  • Pour la reconnaissance vocale, nous utilisons des paramètres vocaux acoustiques et phonétiques pour la reconnaissance vocale indépendante du locuteur dans l'application Android.
  • Nous avons l'assistant virtuel AI (intelligence artificielle) qui utilise des techniques d'apprentissage en profondeur telles que CNN (Convolutional Neural Network) utilisant python pour mettre en œuvre le traitement du langage naturel.
  • Pour l'application de réalité augmentée, nous utilisons Unity IDE et VuforiaSDK (il s'agit d'un kit de développement logiciel de réalité augmentée (SDK) pour les appareils mobiles qui permet la création d'applications de réalité augmentée).

Vidéos

Code

  • Code Arduino pour la lecture numérique de l'énergie et le calcul des coûts
  • Arduino implémentant la connexion JARVIS pour relayer à l'aide d'Arduino
Code Arduino pour la lecture numérique de l'énergie et le calcul des coûtsArduino
Ce code implémente les unités d'énergie consommées par un appareil connecté à l'Arduino.
Instructions :
1. Faites les connexions et insérez un numéro de mobile dans le code Arduino
2. Téléchargez le code sur un Arduino 101
3. Exécutez le code
4. Envoyez un SMS depuis n'importe quel mobile au numéro de mobile spécifié dans le code au format #anytext*
5. Une réponse contenant les unités consommées et le coût serait reçue
#include LiquidCrystal lcd(7,6,5,4,3,2);int led=13; // décélération de la LED dans la 13e broche#define pulsein 8 //définition de la broche d'entrée d'impulsion 8unsigned int pusle_count=0 ; //Déclaration du type de comptage d'impulsions en tant qu'entierfloat units=0 ; //Déclaration des unités comme Floatunsigned int rupees=0; //déclarer les types de roupies comme entier non signéunsigned int temp=0,i=0; //déclarer temp&i comme entier non signé str[70],flag1=0,flag2=0; // longueur de caractère sous forme de chaîne et déclaration de flagsvoid setup() { lcd.begin(16,2); // initialisation du type LCD en tant que 16x2 Serial.begin(9600); // initialisation du débit en bauds série en tant que 9600 pinMode(led, OUTPUT); pinMode(pulsein, INPUT); digitalWrite(pulsein, HIGH); lcd.setCursor(0,0); lcd.print("Énergie sans fil"); lcd.setCursor(0,1) ; lcd.print(" Mètre "); retard (2000); lcd.clear(); lcd.print("Par "); retard (2000); lcd.clear(); lcd.print("GSM Initialisation..."); gsm_init(); lcd.clear(); lcd.print("Système prêt"); Serial.println("AT+CNMI=2,2,0,0,0"); init_sms(); send_data("Système prêt"); envoyer un SMS(); retard(1000); digitalWrite(led, LOW); lcd.clear();}void loop() { serialEvent(); // vérification de l'événement en série units=rupees/5.0; // calcul de l'unité lcd.setCursor(0,0); lcd.print("Unités :"); lcd.print(unités); lcd.print(" "); lcd.setCursor(0,1) ; lcd.print("Roupies :"); lcd.print(roupies); lcd.print(" "); read_pulse(); if(temp==1) { check(); }}void serialEvent() // événement série pour recevoir et vérifier le sms entrant{ while(Serial.available()) { if(Serial.find("#")) { digitalWrite(led, HIGH); retard(1000); digitalWrite(led, LOW); while (Serial.available()) { char inChar=Serial.read(); str[i++]=inChar; if(inChar=='*') { temp=1; retourner; } } } } }void init_sms() //initialisation et configuration de l'envoi du message{ Serial.println("AT+CMGF=1"); retard (200); Serial.println("AT+CMGS=\"INSÉRER LE NUMÉRO DE MOBILE ICI\""); delay(200);}void send_data(String message){ Serial.println(message); delay(200);}void send_sms(){ Serial.write(26);}//Reading Pulse from Energy Metervoid read_pulse(){ if(!digitalRead(pulsein)) { digitalWrite(led, HIGH); unités++ ; roupies=unités*5; while(!digitalRead(pulsein)); digitalWrite(led,LOW); }}//Vérification de l'état de Message void check(){ if(!(strncmp(str,"units",5))) { Serial.println("AT+CMGF=1"); retard (200); Serial.println("AT+CMGS=\"INSÉRER LE NUMÉRO DE MOBILE ICI\""); retard (200); lcd.setCursor(0,1) ; send_data("Unité de compteur d'énergie :"); Serial.println(unités); send_data("\nRoupies :"); Serial.println(roupies); retard (200); Serial.write(26); drapeau1=1 ; drapeau2=1 ; temp=0; } }void message_sent(){ lcd.clear(); lcd.print("Message envoyé."); delay(1000);}void gsm_init(){ lcd.clear(); lcd.print("Recherche de module.."); booléen at_flag=1; while(at_flag) { Serial.println("AT"); while(Serial.available()>0) { if(Serial.find("OK")) at_flag=0; } délai(1000); } lcd.clear(); lcd.print("Module connecté.."); retard(1000); lcd.clear(); lcd.print("Désactiver ECHO"); booléen echo_flag=1 ; while(echo_flag) { Serial.println("ATE0"); while(Serial.available()>0) { if(Serial.find("OK")) echo_flag=0; } délai(1000); } lcd.clear(); lcd.print("Echo OFF"); retard(1000); lcd.clear(); lcd.print("Trouver un réseau.."); booléen net_flag=1 ; while(net_flag) { Serial.println("AT+CPIN?"); while(Serial.available()>0) { if(Serial.find("+CPIN:READY")) net_flag=0; } délai(1000); } lcd.clear(); lcd.print("Réseau trouvé.."); retard(1000); lcd.clear();}
Arduino implémentant la connexion JARVIS pour relayer à l'aide d'ArduinoArduino
Il s'agit d'un code mettant en œuvre le transfert Bluetooth série de caractères entre l'application Android et l'Arduino.
# define CH3 7# Define CH4 4# Define CH5 5# Define CH6 6 void setup() { Serial.begin (9600); pinMode(CH3, SORTIE); pinMode(CH4, SORTIE); pinMode(CH5, SORTIE); pinMode(CH6, SORTIE); //Fournir l'alimentation aux deux LED //Éteignez toute alimentation des canaux de relais digitalWrite(CH3, HIGH); digitalWrite(CH4, HAUT); digitalWrite(CH5, HAUT); digitalWrite(CH6, HAUT); retard (2000); //Attendez 2 secondes avant de démarrer la séquence } void loop() { delay(100); if(Serial.available()) { //Serial.println(sum1) ; char c =Serial.read(); Serial.print(c); if(c=='b') { //café éteint } else if(c=='c')//lumière allumée {digitalWrite(CH4 ,LOW); delay(100);} else if(c=='d')//fan on {digitalWrite(CH6,LOW); delay(100);} else if(c=='k')//café sur {digitalWrite(CH5,LOW); delay(100);} else if(c=='g')//café off {digitalWrite(CH5,HIGH); delay(100);} else if(c=='e')//light off {digitalWrite(CH4,HIGH); delay(100);} else if(c=='f')//fan off {digitalWrite(CH6,HIGH); delay(100);} else if(c=='z')//au revoir {digitalWrite(CH6,HIGH); écriture numérique (CH4, ÉLEVÉ); digitalWrite(CH3,HIGH); écriture numérique (CH5, ÉLEVÉ); retard (500); digitalWrite(CH5,LOW); retard (500); écriture numérique (CH5, ÉLEVÉ); retard (500); digitalWrite(CH5,LOW); retard (500); écriture numérique (CH5, ÉLEVÉ); retard (10000); } } } 

Pièces et boîtiers personnalisés

Instructions :

1. Téléchargez et installez l'application
2. Assurez-vous que le téléphone est connecté à Internet
3. Démarrez l'application et pointez-la vers un appareil qui a été configuré avec Vuforia (le marqueur Vuforia par défaut est utilisé ici)
4. L'appareil doit démarrer
5. Pour éteindre l'appareil, cliquez sur le bouton virtuel qui apparaît à l'écran chaque fois que le téléphone est pointé vers l'appareil jarvisaugmented_I2zWAu2jGG.apk

Schémas

Veuillez noter :une connexion Internet active sur le téléphone est requise à tout moment
Instructions :
1. Installez l'application sur un téléphone Android
2. Après avoir configuré le matériel et l'avoir exécuté avec succès, démarrez l'application
3. Pour utiliser Virtual Assistant (Voice), dites le mot-clé « Listen Up JARVIS ». Cela devrait activer l'agent
3.1 Exprimez clairement votre commande
3.2 L'agent doit fournir une réponse
4. Pour démarrer l'application de réalité augmentée, cliquez sur le bouton augmenter ; un écran vide devrait apparaître
4.1 Ouvrez l'application Jarvis Augmented sur un autre téléphone (REMARQUE :l'application Android J.A.R.V.I.S. doit être sur un autre téléphone)
4.2 Procéder aux instructions données dans JarvisAugmented pour la mise en œuvre de la réalité augmentée

REMARQUE :1. Si l'application est bloquée à un moment donné, essayez de redémarrer l'application
2. Si un message similaire à « Impossible d'ouvrir le microphone » s'affiche à l'écran, redémarrez l'application
3. Cette application est implémentée à l'aide du module Bluetooth HC05 pour augmenter la portée du projet. Par conséquent, le module Bluetooth HC05 est recommandé app-release_eo3LK2AsLV.apk

Processus de fabrication

  1. Construire un réseau de capteurs sans fil dans votre maison
  2. Fabriquer une machine à écrire pour les devoirs à la maison
  3. Contrôleur DMX Web
  4. Arduino Spybot
  5. Planche à roulettes en réalité virtuelle DIY
  6. Robot assistant domestique autonome
  7. Contrôleur domestique Arduino activé par Alexa
  8. BLUE_P :Bouclier de programmation Arduino sans fil
  9. TFT Shield pour Arduino Nano - Démarrer