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

Arduino-zelfstudie:JARVIS v1 | Hoe maak je een huisautomatisering

Componenten en benodigdheden

Arduino Nano R3
× 1
Relaismodule (algemeen)
× 4
Bluetooth Low Energy (BLE)-module (algemeen)
× 1
Broodplank (algemeen)
× 1
Jumperdraden (algemeen)
× 10

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Arduino IDE

Over dit project

Waarom hebben we dit gebouwd?

Als Iron Man-fan was ik echt geïnspireerd door JARVIS, een spraakgestuurde persoonlijke assistent en ik wilde heel graag een domoticasysteem bouwen. Hoewel er veel bestaande systemen beschikbaar zijn, heb ik besloten om mijn eigen domoticasysteem te bouwen met Arduino.

Hoe het werkt:

Dit project heeft tot doel elektrische en elektronische apparaten zoals licht, ventilator, tv, enz. Aan te sturen. Dit wordt gedaan met behulp van Arduino en het relaiscircuit dat in elke kamer van het huis is geïnstalleerd. De gegevens worden via de Bluetooth-module naar Arduino gepubliceerd en verdere implementaties kunnen worden gemaakt.

De primaire taak zou zijn om de gegevens te verkrijgen en deze met een mobiel naar de Arduino te publiceren. En later met de gegevens kan een besturing worden gemaakt om de apparaten aan/uit te zetten.

Hardware bouwen

De schakeling is heel eenvoudig. De totale kosten voor dit product zouden minder dan $ 20 zijn.

Stap 1:Onderdelen en materiaal

De componenten die nodig zijn voor dit project zijn:

  • Arduino
  • Relay Breakout-bord
  • Bluetooth-module - HC-05
  • Jumperkabels

Stap 2:Verbindingen

De volgende verbindingen worden gemaakt met behulp van de startkabels. Voor deze demo heb ik vier relais gebruikt, wat betekent dat vier apparaten kunnen worden bediend met de APP.

*Arduino -> BT-MODULE*

  • TX -> RX
  • RX -> TX
  • VCC -> 3.3v
  • GND -> GND

*Arduino -> Relaisbord*

  • IN1 -> D2
  • IN2 -> D3
  • IN3 -> D4
  • IN4 -> D5
  • VCC -> VCC
  • GND -> GND

Stap 3:De code

U vindt de voorbeeldcode hieronder.

String voice;
int
led1 =2, //Verbind LED 1 met pin #2
led2 =3, //Verbind LED 2 met pin #3
led3 =4, //Verbind LED 3 met pin #4
led4 =5, //Verbind LED 4 met pin #5
led5 =6; // Verbind LED 5 met pin #6
//-------------------------- Bel een functie------ -------------------------//
void allon(){
digitalWrite(led1, HIGH);
digitalWrite(led2, HOOG);
digitalWrite(led3, HOOG);
digitalWrite(led4, HOOG);
digitalWrite(led5, HOOG);
}
void alloff(){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
//----------------------------- ------------------------------------------//
instelling ongeldig () {
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
> pinMode (led4, UITGANG);
pinMode (led5, UITGANG);
}
//-------------------- -------------------------------------------------- -//
void loop() {
while (Serial.available()){ //Controleer of er een byte beschikbaar is om te lezen
delay(10); //Vertraging toegevoegd om het ding stabiel te maken
char c =Serial.read(); // Voer een seriële leesbewerking uit
if (c =='#') {break;} //Verlaat de lus wanneer de # wordt gedetecteerd na het woord
voice +=c; // Shorthand for voice =voice + c
}
if (voice.length()> 0) {
Serial.println(voice);
//---- -------------------------------------------------- -----------------//
//---------- Meerdere pinnen/leds bedienen---------- //
if(voice =="*alles aan") {allon();} //Alle pinnen uitschakelen (oproepfunctie)
else if(voice =="*alles uit"){ alloff();} //Alle pinnen inschakelen (oproepfunctie)

//---------- Eén voor één inschakelen-------- --//
else if(voice =="*TV aan") {digitalWrite(led1, HIGH);}
else if(voice =="*fan aan") {digitalWrite(led2, HOOG);}
else if(voice =="*computer aan") {digitalWrite(led3, HIGH);}
else if(voice =="*slaapkamerverlichting aan") {digitalWrite(led4 , HIGH);}
else if(voice =="*badkamerverlichting aan") {digitalWrite(led5, HIGH);}
//----------Schakel er een uit -By-One----------//
else if(voice =="*TV uit") {digitalWrite(led1, LOW);}
else if(voice =="*ventilator uit") {digitalWrite(led2, LOW);}
else if(voice =="*compute r off") {digitalWrite(led3, LOW);}
else if(voice =="*slaapkamerverlichting uit") {digitalWrite(led4, LOW);}
else if(voice ==" *badkamerverlichting uit") {digitalWrite(led5, LOW);}
//----------------------------- ------------------------------------------//
stem="";}} //Reset de variabele na het starten

Stap 4:Aanvraag

Voor nu gebruiken we de kant-en-klare applicatie. In de komende dagen zal ik de aanvraag een keer publiceren nadat de certificaten zijn verwerkt.

BT-spraakbesturing voor Arduino gemaakt door SimpleLabsIN:https://apkpure.com/bt-voice-control-for-arduino/robotspace.simplelabs.amr_voice/download?from=details

Werkvideo van dit project:

Momenteel is de functionaliteit beperkt tot het in- of uitschakelen van de apparaten, maar het kan natuurlijke taal op basisniveau verwerken, waardoor de gebruiker natuurlijke taalverwerking kan integreren in de andere projecten.


Hartelijk dank aan Hackster.io voor het toestaan ​​van mij en alle gebruikers van dit geweldige platform om deel te nemen.

Bedankt voor het uitvoeren van deze activiteiten die jonge mensen en tieners aanmoedigen om te creëren en uit te vinden.

Geef een duim omhoog als het je echt heeft geholpen en volg mijn kanaal voor interessante projecten. :)

Deel deze video als je wilt.

Leuk dat je geabonneerd bent:https://www.youtube.com/c/rahulkhanna24june?sub_confirmation=1

Bedankt voor het lezen!

Code

  • Voorbeeldcode
Voorbeeldcode Arduino
//Coded By:Angelo Casimiro (4/27/14)//Voice Activated Arduino (Bluetooth + Android)//Voel je vrij om het aan te passen, maar vergeet niet om creditString voice te geven;intled1 =2, //Connect LED 1 Naar pin #2led2 =3, // Verbind LED 2 met pin #3led3 =4, // Verbind LED 3 met pin #4led4 =5, // Verbind LED 4 met pin #5led5 =6; // Verbind LED 5 met pin #6//-------------------------- Bel een functie ---------- ---------------------// void allon(){digitalWrite(led1, HIGH); digitalWrite (led2, HOOG); digitalWrite(led3, HOOG); digitalWrite(led4, HOOG); digitalWrite(led5, HIGH);}void alloff(){ digitalWrite(led1, LOW); digitalWrite (led2, LAAG); digitalWrite (led3, LAAG); digitalWrite (led4, LAAG); digitalWrite(led5, LOW);}//---------------------------------------- -------------------------------// void setup() { Serial.begin (9600); pinMode (led1, UITGANG); pinMode (led2, UITGANG); pinMode (led3, UITGANG); pinMode (led4, UITGANG); pinMode (led5, OUTPUT);}//---------------------------------------- -------------------------------// void loop() { while (Serial.available()){ //Check als er een byte beschikbaar is om vertraging (10) te lezen; // Vertraging toegevoegd om het ding stabiel te maken char c =Serial.read (); // Voer een serielezing uit als (c =='#') {break;} // Verlaat de lus wanneer de # wordt gedetecteerd na het woord voice +=c; // Shorthand for voice =voice + c } if (voice.length()> 0) {Serial.println(voice);//-------------------- -------------------------------------------------- -// //---------- Meerdere pinnen/LED's bedienen ----------// if(voice =="*all on") {allon();} / / Schakel alle pinnen uit (oproepfunctie) else if (voice =="* alles uit") {alloff ();} // Schakel alle pinnen in (oproepfunctie) //---------- Schakel Op één voor één ----------// else if(voice =="*TV aan") {digitalWrite(led1, HIGH);} else if(voice =="*fan aan" ) {digitalWrite(led2, HIGH);} else if(voice =="*computer aan") {digitalWrite(led3, HIGH);} else if(voice =="*slaapkamerverlichting aan") {digitalWrite(led4, HIGH );} else if(voice =="*badkamerverlichting aan") {digitalWrite(led5, HIGH);} //---------- Eén voor één uitschakelen ------ ----// else if(voice =="*TV uit") {digitalWrite(led1, LOW);} else if(voice =="*fan uit") {digitalWrite(led2, LOW);} else if (voice =="*computer uit") {digitalWrite(led3, LOW);} else if(voice =="*slaapkamerverlichting uit") {digitalWrite(led4, LOW);} else i f(voice =="*badkamerverlichting uit") {digitalWrite (led5, LOW);}//--------------------------- --------------------------------------------// voice="";}} //Reset de variabele na het starten
Projectrepo
https://github.com/Rahul24-06/Arduino-Tutorial-JARVIS-v1-How-to-make-a-Home-Automation

Schema's


Productieproces

  1. RASPBERRY PI HOME AUTOMATION
  2. Maak thuis een zelfgemaakte schrijfmachine voor huiswerk
  3. Vind mij
  4. Een aanpasbare ponsbare toetsenbordknop maken
  5. Arduino-joystick
  6. Muziek maken met een Arduino
  7. Hoe maak je op Arduino gebaseerde automatische deuropening
  8. Thuismonitor
  9. Hoe maak je een Arduino Bluetooth-gestuurde auto
  10. Modbus gebruiken met Arduino
  11. Arduino-zelfstudie:minipiano