Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino

Komponenten und Zubehör

Arduino 101 × 1
Arduino 4-Relais-Shield × 1
Arduino GSM Shield V2 × 1

Benötigte Werkzeuge und Maschinen

Apps und Onlinedienste

Über dieses Projekt

Warum das Smart-Home-Problem angehen?

Was ist neu?

J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino

Warum haben wir uns entschieden, es zu bauen?

J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino

Funktionsweise

Der digitale Stromzähler

J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino

Der KI-Virtual-Assistant

Signalfluss:

  1. Spracheingabe in der Android-App
  2. Verarbeitung in der Android-App
  3. Versand verschlüsselter Daten an Arduino via Bluetooth
  4. Verarbeitung auf Arduino 101
  5. Digitale Signale an Relais

Pin-Belegung:

J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino
J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino

Stromzähler-Anschlüsse:

Schaltplan

J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino

Verwendete Hardware und Ausrüstung

Programmierplattformen

Implementierung

Videos

(Platzhalter für Videos)

Nützliche Links

(Links werden ergänzt)

Code

Arduino-Code für digitales Energie-Monitoring und Kostenberechnung

Dieser Code erfasst die von einem angeschlossenen Gerät verbrauchten Energieeinheiten.

Anleitung:
1. Verbindungen herstellen und Handynummer im Code eintragen
2. Code auf Arduino 101 hochladen
3. Code ausführen
4. SMS von beliebigem Handy an die im Code angegebene Nummer senden: Format #irgendeintext*
5. Antwort mit verbrauchten Einheiten und Kosten wird empfangen

#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 Initilizing..."); 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-Code für JARVIS-Relais-Steuerung via Bluetooth

Serielle Bluetooth-Übertragung von Zeichen zwischen Android-App und 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') { /* coffee off */ }
    else if(c=='c') { digitalWrite(CH4,LOW); delay(100); } // light on
    else if(c=='d') { digitalWrite(CH6,LOW); delay(100); } // fan on
    else if(c=='k') { digitalWrite(CH5,LOW); delay(100); } // coffee on
    else if(c=='g') { digitalWrite(CH5,HIGH); delay(100); } // coffee off
    else if(c=='e') { digitalWrite(CH4,HIGH); delay(100); } // light off
    else if(c=='f') { digitalWrite(CH6,HIGH); delay(100); } // fan 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);
    }
  }
}

Benutzerdefinierte Teile und Gehäuse

Anleitung:
1. App herunterladen und installieren
2. Internetverbindung sicherstellen
3. App starten und auf ein mit Vuforia konfiguriertes Gerät richten (Standard-Vuforia-Marker)
4. Gerät startet
5. Zum Ausschalten den virtuellen Button auf dem Bildschirm drücken, wenn das Handy auf das Gerät zeigt

jarvisaugmented_I2zWAu2jGG.apk

Schaltpläne

J.A.R.V.I.S. – Smarter Home-Virtual-Assistant mit Arduino

Hinweis: Aktive Internetverbindung auf dem Handy ist jederzeit erforderlich.

Anleitung:
1. App auf Android-Handy installieren
2. Hardware aufbauen und erfolgreich starten, dann App starten
3. Für Virtual Assistant (Sprache): Schlüsselwort Listen Up JARVIS sagen → Agent aktiviert
3.1 Befehl klar aussprechen
3.2 Agent antwortet
4. Für Augmented Reality: Augment-Button drücken → leerer Bildschirm
4.1 Jarvis Augmented App auf zweitem Handy öffnen (JARVIS-App muss auf anderem Handy sein)
4.2 Anweisungen in JarvisAugmented befolgen

Hinweise:
1. Bei Hängenbleiben App neu starten
2. Bei Could not open Microphone App neu starten
3. HC05 Bluetooth-Modul wird für größeren Umfang empfohlen

app-release_eo3LK2AsLV.apk

Herstellungsprozess

  1. Günstiges drahtloses Sensornetzwerk für Zuhause selbst bauen
  2. DIY Hausaufgaben-Schreibmaschine zu Hause bauen
  3. Web-gesteuertes DMX-Lichtsystem – Arduino Master Controller
  4. Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
  5. DIY VR-Skateboard mit Arduino, Google Cardboard und Bluetooth bauen
  6. Autonomer Hausassistent-Roboter bauen: Komplette Teileliste & Setup-Anleitung
  7. Alexa-fähiger Arduino Home Controller: Smarte Automatisierung leicht gemacht
  8. Drahtloses Arduino-Programmier-Shield mit HC-05 Bluetooth – Kein USB-Kabel nötig
  9. 2,8″ TFT-Shield für Arduino Nano – 320×240 SPI-Display mit Touch
  10. Nixie-Röhren-Uhr-Shield NCS314 für Arduino UNO/MEGA – Kompatibilität mit IN‑14/IN‑12