Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

J.A.R.V.I.S. :Een virtuele huisassistent

Componenten en benodigdheden

Arduino 101
× 1
Arduino 4 relaisschild
× 1
Arduino GSM-schild V2
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Hot lijmpistool (algemeen)

Apps en online services

Eenheid
Android Studio
Vuforia
Adobe Illustrator
Arduino IDE

Over dit project

Waarom het Smart Home-probleem aanpakken?

Wat is er nieuw?

Waarom hebben we besloten om het te maken?

Werken

De digitale energiemeter

De virtuele AI-assistent

De stroom van signalen is als volgt:

  • 1. Spraakinvoer naar Android-app
  • 2. Verwerking op Android-app
  • 3. Versleutelde gegevens naar Arduino verzenden via Bluetooth.
  • 4. Verwerking op Arduino 101
  • 5. Digitale signalen om door te sturen

Pinverbindingen:

  • Pin 8 --> PulseIn [Digitale ingang]
  • Pin 6 --> IN1 --> Ventilatoruitgang
  • Pin 4 --> IN2 --> Lichtopbrengst
  • Pin 5 --> IN3 --> Koffiezetapparaat

Aansluitingen van energiemeter:

  • Sluit de meter aan op de voeding.
  • Bedek de energiemeter met een zwarte tape, om te voorkomen dat de LDR in de energiemeter van buiten komt.
  • Sluit de nuldraad rechtstreeks aan op de belastingen en de fasedraad op het relais.
  • Neem de draden van de LDR buiten de meter naar het tellercircuit.
  • Neem nu de uitvoer van het tellercircuit naar de toegewezen pin 8-pulspin zoals in de code.
  • Verbind de TX, RX-pin van de Arduino 101 met de RX, TX-pin van de GSM-module.
  • Schakel nu de borden in nadat je de code hebt gebrand.

Schakelschema

Gebruikte hardware en apparatuur:

  • Binnen energiemeter:LDR lichtafhankelijke weerstand
  • GSM-module
  • Tegenschakeling:potentiometer, IC LM358N
  • Arduino 101
  • BlueTooth-HC05-module
  • 4-kanaals 12V 10A relaisbesturingskaartmodule met optocoupler voor PIC AVR ARM

Programmeerplatforms

  • · Voor het programmeren van de Arduino 101 hebben we de standaard Arduino IDE gebruikt.
  • · We hebben onze Android-app ontwikkeld met Android Studio (JAVA en XML).
  • · Database-connectiviteit wordt gedaan met behulp van Google's Firebase.
  • · Voor augmented reality hebben we Unity samen met de Vuforia SDK gebruikt.

Implementatie:

  • Alle componenten geven metingen aan de Arduino, waar we deze metingen omzetten in tekencode om de bytes efficiënt en snel naar de computer te sturen. In een oneindige lus komt elke lezing overeen met een teken.
  • Er moet een code op de computer worden uitgevoerd om de gegevens te ontvangen die door Arduino via seriële poorten worden verzonden.
  • Voor het ontwikkelen van de Android-app gebruiken we Android Studio en om spraak naar tekst te converteren gebruiken we de standaard Google API.
  • Voor spraakherkenning gebruiken we akoestisch-fonetische spraakparameters voor sprekeronafhankelijke spraakherkenning in de Android-app.
  • We hebben de virtuele assistent AI (kunstmatige intelligentie) die deep learning-technieken zoals CNN (Convolutional Neural Network) gebruikt met python om de natuurlijke taalverwerking te implementeren.
  • Voor de augmented reality-app gebruiken we Unity IDE en VuforiaSDK (het is een Augmented Reality Software Developments Kit (SDK) voor mobiele apparaten waarmee Augmented Reality-toepassingen kunnen worden gemaakt).

Video's

Code

  • Arduino-code voor digitale energiemeting en kostenberekening
  • Arduino implementeert JARVIS-verbinding met relais met behulp van Arduino
Arduino-code voor digitale energiemeting en kostenberekeningArduino
Deze code implementeert de energie-eenheden die worden verbruikt door een apparaat dat is aangesloten op de Arduino.
Instructies:
1. Maak de verbindingen en voer een mobiel nummer in de Arduino-code in
2. Upload de code naar een Arduino 101
3. Voer de code uit
4. Stuur een sms vanaf een willekeurig mobiel naar het mobiele nummer dat is opgegeven in de code in het formaat #anytext*
5. Een antwoord met de verbruikte eenheden en de kosten zou worden ontvangen
#include LiquidCrystal lcd(7,6,5,4,3,2);int led=13; // declering LED in 13e pin #define pulsein 8 //definiëren van de pulsingang pin 8unsigned int pusle_count=0; //Pulstellingstype declareren als integerfloat-eenheden =0; // Units declareren als Floatunsigned int rupees=0; // het declareren van rupees als unsigned integerunsigned int temp=0,i=0; //declareren van temp&i als unsigned integerchar str [70],flag1=0,flag2=0; // tekenlengte als string en het declareren van flagsvoid setup() { lcd.begin (16,2); // initialiseren van LCD-type als 16x2 Serial.begin (9600); // initialiseren van seriële baudrate als 9600 pinMode (led, OUTPUT); pinMode (pulsein, INPUT); digitalWrite(pulsein, HIGH); lcd.setCursor(0,0); lcd.print("Draadloze energie"); lcd.setCursor(0,1); lcd.print(" Meter "); vertraging (2000); lcd.wissen(); lcd.print("Door "); vertraging (2000); lcd.wissen(); lcd.print("GSM initialiseert..."); gsm_init(); lcd.wissen(); lcd.print("Systeem Gereed"); Serial.println("AT+CNMI=2,2,0,0,0"); init_sms(); send_data("Systeem Gereed"); verstuur sms(); vertraging (1000); digitalWrite (led, LAAG); lcd.clear();}void loop() { serialEvent(); // controleren van seriële gebeurteniseenheden =roepies/5.0; // berekening van eenheid lcd.setCursor (0,0); lcd.print("Eenheden:"); lcd.print(eenheden); lcd.print(" "); lcd.setCursor(0,1); lcd.print("Rupees:"); lcd.print(roepies); lcd.print(" "); read_pulse(); if(temp==1) { check(); }}void serialEvent() // seriële gebeurtenis voor het ontvangen en controleren van de inkomende sms{ while(Serial.available()) { if(Serial.find("#")) { digitalWrite(led, HIGH); vertraging (1000); digitalWrite (led, LAAG); while (Serial.available()) { char inChar=Serial.read(); str[i++]=inChar; if(inChar=='*') { temp=1; opbrengst; } } } } }void init_sms() //initialisatie &configuratie van het verzenden van bericht{ Serial.println("AT+CMGF=1"); vertraging (200); Serial.println("AT+CMGS=\"VUL HIER MOBIEL NUMMER IN\""); delay(200);}void send_data(string message){ Serial.println(message); delay(200);}void send_sms(){ Serial.write(26);}//Puls lezen van energiemetervoid read_pulse(){ if(!digitalRead(pulsein)) {digitalWrite(led, HIGH); eenheden++; roepies=eenheden*5; while(!digitalRead(pulsein)); digitalWrite (led, LAAG); }}//Controleren van de status van Message void check(){ if(!(strncmp(str,"units",5))) { Serial.println("AT+CMGF=1"); vertraging (200); Serial.println("AT+CMGS=\"VUL HIER MOBIEL NUMMER IN\""); vertraging (200); lcd.setCursor(0,1); send_data("Energiemetereenheid:"); Serial.println(eenheden); send_data("\nRupees:"); Serial.println(roepies); vertraging (200); Serieel.schrijven(26); vlag1=1; vlag2=1; temperatuur=0; } }void message_sent(){ lcd.clear(); lcd.print("Bericht verzonden."); vertraging(1000);}void gsm_init(){ lcd.clear(); lcd.print("Bevindingsmodule.."); booleaans at_flag=1; while(at_flag) { Serial.println("AT"); while(Serial.available()>0) { if(Serial.find("OK")) at_flag=0; } vertraging (1000); } lcd.clear(); lcd.print("Module aangesloten.."); vertraging (1000); lcd.wissen(); lcd.print("ECHO uitschakelen"); booleaanse echo_flag=1; while(echo_flag) { Serial.println("ATE0"); while(Serial.available()>0) { if(Serial.find("OK")) echo_flag=0; } vertraging (1000); } lcd.clear(); lcd.print("Echo UIT"); vertraging (1000); lcd.wissen(); lcd.print("Netwerk zoeken.."); boolean net_flag=1; while(net_flag) { Serial.println("AT+CPIN?"); while(Serial.available()>0) { if(Serial.find("+CPIN:READY")) net_flag=0; } vertraging (1000); } lcd.clear(); lcd.print("Netwerk gevonden.."); vertraging (1000); lcd.clear();}
Arduino implementeert JARVIS-verbinding met relais met behulp van ArduinoArduino
Dit is een code die seriële Bluetooth-overdracht van tekens tussen de Android-app en de Arduino implementeert.
# define CH3 7# define CH4 4# define CH5 5# define CH6 6 void setup() { Serial.begin(9600); pinMode (CH3, UITGANG); pinMode (CH4, UITGANG); pinMode (CH5, UITGANG); pinMode (CH6, UITGANG); //Voorzie beide LED's van stroom //Schakel de stroom naar de relaiskanalen digitalWrite (CH3, HIGH) UIT; digitalWrite (CH4, HOOG); digitalWrite(CH5, HOOG); digitalWrite (CH6, HOOG); vertraging (2000); // Wacht 2 seconden voordat u de reeks start} void loop () { delay (100); if(Serial.available()) { //Serial.println(sum1); char c =Serieel.lezen(); Serieafdruk(c); if(c=='b') {//koffie uit} else if(c=='c')//licht aan {digitalWrite(CH4,LOW); delay(100);} else if(c=='d')//fan op {digitalWrite(CH6,LOW); delay(100);} else if(c=='k')//koffie op {digitalWrite(CH5,LOW); delay(100);} else if(c=='g')//koffie uit {digitalWrite(CH5,HIGH); delay(100);} else if(c=='e')//licht uit {digitalWrite(CH4,HIGH); delay(100);} else if(c=='f')//fan off {digitalWrite(CH6,HIGH); delay(100);} else if(c=='z')//tot ziens {digitalWrite(CH6,HIGH); digitalWrite (CH4, HOOG); digitalWrite (CH3, HOOG); digitalWrite (CH5, HOOG); vertraging (500); digitalWrite (CH5, LAAG); vertraging (500); digitalWrite (CH5, HOOG); vertraging (500); digitalWrite (CH5, LAAG); vertraging (500); digitalWrite (CH5, HOOG); vertraging (10000); } } } 

Aangepaste onderdelen en behuizingen

Instructies:

1. Download en installeer de app
2. Zorg ervoor dat de telefoon is verbonden met internet
3. Start de app en wijs deze naar een apparaat dat is geconfigureerd met Vuforia (de standaard Vuforia-markering wordt hier gebruikt)
4. Het apparaat moet starten
5. Als u het apparaat wilt uitschakelen, klikt u op de virtuele knop die op het scherm verschijnt wanneer de telefoon naar het apparaat wordt gericht jarvisaugmented_I2zWAu2jGG.apk

Schema's

Let op:een actieve internetverbinding op de telefoon is te allen tijde vereist
Instructies:
1. Installeer de app op een Android-telefoon
2. Nadat je de hardware hebt ingesteld en succesvol hebt uitgevoerd, start je de app
3. Als u Virtual Assistant (Voice) wilt gebruiken, zegt u het trefwoord 'Listen Up JARVIS'. Dit zou de agent moeten activeren
3.1 Spreek je commando duidelijk uit
3.2 De agent moet een antwoord geven
4. Om de augmented reality-app te starten, klikt u op de augment-knop; er zou een leeg scherm moeten verschijnen
4.1 Open de Jarvis Augmented-app op een andere telefoon (LET OP:de J.A.R.V.I.S.-app voor Android moet op een andere telefoon staan)
4.2 Ga verder met de instructies in JarvisAugmented voor het implementeren van augmented reality

OPMERKING:1. Als de app ergens vastloopt, probeer dan de app opnieuw op te starten
2. Als een bericht dat lijkt op 'Kan microfoon niet openen' op het scherm verschijnt, start u de app opnieuw
3. Deze app is geïmplementeerd met behulp van de HC05 Bluetooth-module om de reikwijdte van het project te vergroten. Daarom wordt de HC05 Bluetooth-module aanbevolen app-release_eo3LK2AsLV.apk

Productieproces

  1. Een draadloos sensornetwerk in uw huis bouwen
  2. Maak thuis een zelfgemaakte schrijfmachine voor huiswerk
  3. Web-gestuurde DMX-controller
  4. Arduino Spybot
  5. DIY Virtual Reality Skateboard
  6. Autonome Home Assistant-robot
  7. Arduino Home Controller geactiveerd door Alexa
  8. BLUE_P:Wireless Arduino Programming Shield
  9. TFT Shield voor Arduino Nano - Start
  10. Arduino Shield NCS314 NIXIE buizenklok IN-14
  11. Thuismonitor