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. – Assistant Virtuel Domotique Intelligent Piloté par Arduino

Composants et fournitures

Composant Quantité
Arduino 101 1
Shield 4 Relais Arduino 1
Shield GSM Arduino V2 1

Outils et machines nécessaires

Applications et services en ligne

À propos de ce projet

Pourquoi s'attaquer au problème de la maison connectée ?

Quelles sont les nouveautés ?

J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino

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

J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino

Fonctionnement

Le Compteur d'Énergie Numérique

J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino

L'Assistant Virtuel IA

Le flux des signaux est le suivant :

  1. Entrée vocale vers l'application Android
  2. Traitement sur l'application Android
  3. Envoi de données chiffrées vers Arduino via Bluetooth
  4. Traitement sur Arduino 101
  5. Signaux numériques vers les relais

Connexions des broches :

J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino
J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino

Connexions du compteur d'énergie :

Schéma de circuit

J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino

Matériel et équipement utilisés

Plateformes de programmation

Implémentation

Vidéos

Vidéos disponibles sur la page du projet original.

Liens utiles

Liens disponibles sur la page du projet original.

Code

Code Arduino pour lecture énergie numérique et calcul coût Arduino

Ce code implémente les unités d'énergie consommées par un appareil connecté à l'Arduino.

Instructions :

  1. Réalisez les connexions et insérez un numéro de mobile dans le code Arduino
  2. Téléversez le code sur un Arduino 101
  3. Exécutez le code
  4. Envoyez un SMS depuis n'importe quel mobile au numéro spécifié dans le code au format #texte*
  5. Une réponse contenant les unités consommées et le coût sera reçue
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);
int led=13;
#define pulsein 8
unsigned int pusle_count=0;
float units=0;
unsigned int rupees=0;
unsigned int temp=0,i=0;
char str[70],flag1=0,flag2=0;

void setup() {
  lcd.begin(16,2);
  Serial.begin(9600);
  pinMode(led, OUTPUT);
  pinMode(pulsein, INPUT);
  digitalWrite(pulsein, HIGH);
  lcd.setCursor(0,0);
  lcd.print("Wireless Energy");
  lcd.setCursor(0,1);
  lcd.print(" Meter ");
  delay(2000);
  lcd.clear();
  lcd.print("By ");
  delay(2000);
  lcd.clear();
  lcd.print("GSM Initializing...");
  gsm_init();
  lcd.clear();
  lcd.print("System Ready");
  Serial.println("AT+CNMI=2,2,0,0,0");
  init_sms();
  send_data("System Ready");
  send_sms();
  delay(1000);
  digitalWrite(led, LOW);
  lcd.clear();
}

void loop() {
  serialEvent();
  units=rupees/5.0;
  lcd.setCursor(0,0);
  lcd.print("Units:");
  lcd.print(units);
  lcd.print(" ");
  lcd.setCursor(0,1);
  lcd.print("Rupees:");
  lcd.print(rupees);
  lcd.print(" ");
  read_pulse();
  if(temp==1) { check(); }
}

void serialEvent() {
  while(Serial.available()) {
    if(Serial.find("#")) {
      digitalWrite(led, HIGH);
      delay(1000);
      digitalWrite(led, LOW);
      while (Serial.available()) {
        char inChar=Serial.read();
        str[i++]=inChar;
        if(inChar=='*') { temp=1; return; }
      }
    }
  }
}

void init_sms() {
  Serial.println("AT+CMGF=1");
  delay(200);
  Serial.println("AT+CMGS=\"INSERT MOBILE NUMBER HERE\"");
  delay(200);
}

void send_data(String message) {
  Serial.println(message);
  delay(200);
}

void send_sms() { Serial.write(26); }

void read_pulse() {
  if(!digitalRead(pulsein)) {
    digitalWrite(led, HIGH);
    units++;
    rupees=units*5;
    while(!digitalRead(pulsein));
    digitalWrite(led,LOW);
  }
}

void check() {
  if(!(strncmp(str,"units",5))) {
    Serial.println("AT+CMGF=1");
    delay(200);
    Serial.println("AT+CMGS=\"INSERT MOBILE NUMBER HERE\"");
    delay(200);
    lcd.setCursor(0,1);
    send_data("Energy Meter Unit:");
    Serial.println(units);
    send_data("\nRupees:");
    Serial.println(rupees);
    delay(200);
    Serial.write(26);
    flag1=1; flag2=1; temp=0;
  }
}

void message_sent() {
  lcd.clear();
  lcd.print("Message Sent.");
  delay(1000);
}

void gsm_init() {
  lcd.clear();
  lcd.print("Finding Module..");
  boolean at_flag=1;
  while(at_flag) {
    Serial.println("AT");
    while(Serial.available()>0) {
      if(Serial.find("OK")) at_flag=0;
    }
    delay(1000);
  }
  lcd.clear();
  lcd.print("Module Connected..");
  delay(1000);
  lcd.clear();
  lcd.print("Disabling ECHO");
  boolean echo_flag=1;
  while(echo_flag) {
    Serial.println("ATE0");
    while(Serial.available()>0) {
      if(Serial.find("OK")) echo_flag=0;
    }
    delay(1000);
  }
  lcd.clear();
  lcd.print("Echo OFF");
  delay(1000);
  lcd.clear();
  lcd.print("Finding Network..");
  boolean net_flag=1;
  while(net_flag) {
    Serial.println("AT+CPIN?");
    while(Serial.available()>0) {
      if(Serial.find("+CPIN: READY")) net_flag=0;
    }
    delay(1000);
  }
  lcd.clear();
  lcd.print("Network Found..");
  delay(1000);
  lcd.clear();
}
Arduino implémentant la connexion JARVIS au relais Arduino

Ce code implémente le transfert série Bluetooth 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, OUTPUT);
  pinMode(CH4, OUTPUT);
  pinMode(CH5, OUTPUT);
  pinMode(CH6, OUTPUT);
  digitalWrite(CH3, HIGH);
  digitalWrite(CH4, HIGH);
  digitalWrite(CH5, HIGH);
  digitalWrite(CH6, HIGH);
  delay(2000);
}

void loop() {
  delay(100);
  if(Serial.available()) {
    char c = Serial.read();
    Serial.print(c);
    if(c=='b') { /* café off */ }
    else if(c=='c') { digitalWrite(CH4,LOW); delay(100); } // lumière on
    else if(c=='d') { digitalWrite(CH6,LOW); delay(100); } // ventilateur on
    else if(c=='k') { digitalWrite(CH5,LOW); delay(100); } // café on
    else if(c=='g') { digitalWrite(CH5,HIGH); delay(100); } // café off
    else if(c=='e') { digitalWrite(CH4,HIGH); delay(100); } // lumière off
    else if(c=='f') { digitalWrite(CH6,HIGH); delay(100); } // ventilateur off
    else if(c=='z') { // goodbye
      digitalWrite(CH6,HIGH);
      digitalWrite(CH4,HIGH);
      digitalWrite(CH3,HIGH);
      digitalWrite(CH5,HIGH);
      delay(500);
      digitalWrite(CH5,LOW);
      delay(500);
      digitalWrite(CH5,HIGH);
      delay(500);
      digitalWrite(CH5,LOW);
      delay(500);
      digitalWrite(CH5,HIGH);
      delay(10000);
    }
  }
}

Pièces personnalisées et boîtiers

Instructions :

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

jarvisaugmented_I2zWAu2jGG.apk

Schémas

J.A.R.V.I.S. – Assistant Virtuel Domotique Intelligent Piloté par Arduino

Note importante : Une connexion Internet active sur le téléphone est requise en permanence.

Instructions :

  1. Installez l'application sur un téléphone Android
  2. Après avoir configuré le matériel et l'avoir fait fonctionner, lancez l'application
  3. Pour utiliser l'Assistant Virtuel (Voix), dites le mot-clé « Listen Up JARVIS ». Cela devrait activer l'agent
    • 3.1 Parlez clairement votre commande
    • 3.2 L'agent devrait répondre
  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 (NOTE : l'application J.A.R.V.I.S. Android doit être sur un téléphone différent)
    • 4.2 Suivez les instructions de JarvisAugmented pour implémenter la réalité augmentée

NOTES :

  1. Si l'application bloque, essayez de la redémarrer
  2. Si un message « Could not open Microphone » apparaît, redémarrez l'application
  3. Cette application utilise le module Bluetooth HC05 pour étendre la portée du projet. Le module HC05 est recommandé

app-release_eo3LK2AsLV.apk

Processus de fabrication

  1. Construire un réseau de capteurs sans fil abordable pour votre maison
  2. Construire sa propre machine à écrire les devoirs à la maison (Traceur à stylo)
  3. Système d'éclairage DMX piloté par web – Contrôleur maître Arduino
  4. Construire un Spybot Arduino piloté par Bluetooth
  5. Construisez un skateboard VR DIY avec Arduino, Google Cardboard et Bluetooth
  6. Robot Assistant Domestique Autonome : Liste Complète et Guide de Configuration
  7. Contrôleur domotique Arduino compatible Alexa : Automatisation intelligente simplifiée
  8. Shield de programmation Arduino sans fil avec Bluetooth HC-05 – Plus besoin d'USB
  9. Shield TFT 2,8" haute performance pour Arduino Nano – Écran SPI 320×240