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

Bouw JARVIS v1 Thuisautomatisering met Arduino Nano – Stap-voor-stap handleiding

Onderdelen en benodigdheden

OnderdeelAantal
Arduino Nano R31
Relaismodule (4-kanaals)1
Bluetooth Low Energy (BLE) module (bijv. HC-05)1
Breadboard1
Jumper wires10

Benodigde tools en machines

  • Soldeerbout

Apps en online diensten

  • Arduino IDE

Over dit project

Waarom bouwden we dit?

Als fan van Iron Man was ik geïnspireerd door JARVIS, een stemgecontroleerde persoonlijke assistent, en wilde ik graag mijn eigen thuisautomatiseringssysteem bouwen. Hoewel er veel bestaande systemen zijn, besloot ik er zelf een te maken met Arduino.

Hoe het werkt

Dit project heeft tot doel om elektrische en elektronische apparaten (lampen, ventilator, TV, etc.) te besturen. Dit gebeurt met Arduino en een relaiscircuit dat in elke kamer geïnstalleerd is. De data wordt via de Bluetooth-module naar de Arduino gestuurd; verdere uitbreidingen zijn mogelijk.

De primaire taak is het verkrijgen van data en publiceren naar de Arduino via een mobiele telefoon. Vervolgens kan met die data een besturing gemaakt worden om apparaten aan/uit te schakelen.

Hardware-opbouw

De schakeling is zeer simpel. De totale kosten bedragen minder dan $20.

Stap 1: Onderdelen en materiaal

Bouw JARVIS v1 Thuisautomatisering met Arduino Nano – Stap-voor-stap handleiding

Benodigde componenten:

  • Arduino
  • Relais Breakout board
  • Bluetooth-module - HC-05
  • Jumper kabels

Stap 2: Aansluitingen

De volgende verbindingen worden gemaakt met jumperkabels. Voor deze demo gebruik ik vier relais, wat betekent dat vier apparaten via de app bestuurd kunnen worden.

Bouw JARVIS v1 Thuisautomatisering met Arduino Nano – Stap-voor-stap handleiding

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

Je vindt de voorbeeldcode hieronder.

String voice;
int led1 = 2, led2 = 3, led3 = 4, led4 = 5, led5 = 6;

void allon() {
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
}
void alloff() {
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
  digitalWrite(led4, LOW);
  digitalWrite(led5, LOW);
}

void setup() {
  Serial.begin(9600);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
}

void loop() {
  while (Serial.available()) {
    delay(10);
    char c = Serial.read();
    if (c == '#') break;
    voice += c;
  }
  if (voice.length() > 0) {
    Serial.println(voice);
    // Meerdere pins/LEDs besturen
    if (voice == "*all on") allon();
    else if (voice == "*all off") alloff();
    // Één voor één aan
    else if (voice == "*TV on") digitalWrite(led1, HIGH);
    else if (voice == "*fan on") digitalWrite(led2, HIGH);
    else if (voice == "*computer on") digitalWrite(led3, HIGH);
    else if (voice == "*bedroom lights on") digitalWrite(led4, HIGH);
    else if (voice == "*bathroom lights on") digitalWrite(led5, HIGH);
    // Één voor één uit
    else if (voice == "*TV off") digitalWrite(led1, LOW);
    else if (voice == "*fan off") digitalWrite(led2, LOW);
    else if (voice == "*computer off") digitalWrite(led3, LOW);
    else if (voice == "*bedroom lights off") digitalWrite(led4, LOW);
    else if (voice == "*bathroom lights off") digitalWrite(led5, LOW);
    voice = "";
  }
}

Stap 4: Applicatie

Voor nu gebruiken we een kant-en-klaar applicatie. In de komende dagen zal ik de eigen app publiceren zodra de certificaten verwerkt zijn.

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

Stap 5: Werkende video van dit project

Op dit moment is de functionaliteit beperkt tot het aan/uit schakelen van apparaten, maar het kan natuurlijke taal op basaal niveau verwerken, wat de gebruiker in staat stelt natuurlijke taalverwerking te integreren in andere projecten.


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

Dankjewel voor het organiseren van deze activiteiten die jongeren en tieneren aanmoedigen om te creëren en uit te vinden.

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

Deel deze video als je hem leuk vindt.

Fijn dat je abonneert: https://www.youtube.com/c/rahulkhanna24june?sub_confirmation=1

Bedankt voor het lezen!

Code

Voorbeeldcode

// Gecodeerd door: Angelo Casimiro (4/27/14)
// Stemgeactiveerde Arduino (Bluetooth + Android)
// Vrij om te wijzigen maar onthoud credit te geven
String voice;
int led1 = 2, led2 = 3, led3 = 4, led4 = 5, led5 = 6;

void allon() {
  digitalWrite(led1, HIGH); digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH); digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
}
void alloff() {
  digitalWrite(led1, LOW); digitalWrite(led2, LOW);
  digitalWrite(led3, LOW); digitalWrite(led4, LOW);
  digitalWrite(led5, LOW);
}

void setup() {
  Serial.begin(9600);
  pinMode(led1, OUTPUT); pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT); pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
}

void loop() {
  while (Serial.available()) {
    delay(10);
    char c = Serial.read();
    if (c == '#') break;
    voice += c;
  }
  if (voice.length() > 0) {
    Serial.println(voice);
    if (voice == "*all on") allon();
    else if (voice == "*all off") alloff();
    else if (voice == "*TV on") digitalWrite(led1, HIGH);
    else if (voice == "*fan on") digitalWrite(led2, HIGH);
    else if (voice == "*computer on") digitalWrite(led3, HIGH);
    else if (voice == "*bedroom lights on") digitalWrite(led4, HIGH);
    else if (voice == "*bathroom lights on") digitalWrite(led5, HIGH);
    else if (voice == "*TV off") digitalWrite(led1, LOW);
    else if (voice == "*fan off") digitalWrite(led2, LOW);
    else if (voice == "*computer off") digitalWrite(led3, LOW);
    else if (voice == "*bedroom lights off") digitalWrite(led4, LOW);
    else if (voice == "*bathroom lights off") digitalWrite(led5, LOW);
    voice = "";
  }
}

Project Repository

https://github.com/Rahul24-06/Arduino-Tutorial-JARVIS-v1-How-to-make-a-Home-Automation

Schema's

Bouw JARVIS v1 Thuisautomatisering met Arduino Nano – Stap-voor-stap handleiding

Productieproces

  1. Een Raspberry Pi-thuisautomatiseringssysteem bouwen voor afstandsbediening
  2. Bouw je eigen DIY huiswerk-schrijfmachine thuis
  3. Find Me: Slimme Item Locator met Arduino en Bluetooth
  4. Maak een Aangepaste 'Punchable' Toetsenbordknop met Arduino: Stap-voor-Stap Handleiding
  5. Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming
  6. Maak Muzikale Tonen met Arduino: Stapsgewijze Handleiding
  7. Automatische deur met Arduino en ultrasone sensor bouwen
  8. Geavanceerd thuismonitoringssysteem met Arduino Mega en IoT-sensoren
  9. Bouw een Bluetooth-gecontroleerde Arduino Auto: Complete DIY Handleiding
  10. Modbus op Arduino onder de knie: Stapsgewijze handleiding
  11. Bouw een Mini Piano met Arduino UNO – Stap-voor-Stap Handleiding