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

Alexa-ingeschakelde Arduino Thuiscontroller: Slimme Automatisering Made Simple

Onderdelen en benodigdheden

Arduino Yun1
ControlEverything.com 4-KANALS RELAY CONTROLLER VOOR I2C1
DHT11 Temperatuur & Vochtigheid Sensor (4 pins)1
Weerstand 10k ohm2
SparkFun RedBot Buzzer1
Algemene Doel Transistor NPN1
LM2596 DC-DC Buck Converter1
Amazon Alexa Echo Dot1
Arduino Proto Shield1
USB WebCam1
Witte Klemdoos 200x155x80mm1

Benodigde tools en machines

  • Solderbout

Apps en online diensten

  • Arduino IDE
  • Amazon Alexa Skills Kit
  • Amazon Web Services AWS Lambda
  • PubNub Publish/Subscribe API

Over dit project

Overzicht

Toen Amazon Alexa en apparaten als de Echo Dot lanceerde, openden zich oneindige mogelijkheden voor een slimme huisvoering via spraakcommando's in natuurlijke taal.

Dit project maakt een Arduino Thuiscontroller die veel sensoren en apparaten met het internet verbindt, te besturen via een Amazon Alexa-skill. Je kunt mijn skill "Arduino Home Controller" installeren (makkelijkst) of zelf een skill maken via deze tutorial.

Momenteel te besturen:

  • Vier lampen: slaapkamer, garage, keuken, woonkamer
  • Temperatuur- en vochtigheidsensor
  • Buzzer alarm
  • WebCam voor beveiligingsfoto's per e-mail

Voor demo-doeleinden worden LEDs op een breadboard gebruikt als simulatie van lampen. Voor echte modules, zie mijn complementaire project "Arduino Home Controller Remote Modules".

Blokdiagram

Vier hoofdcomponenten:

  1. Amazon Echo Dot ontvangt spraakcommando's en stuurt ze naar AWS.
  2. AWS met Alexa Skill en Lambda-functie interpreteert commando's. Skillnaam: "Arduino Home Controller".
  3. MQTT Broker via PubNub cloud ontvangt besturingsberichten in twee kanalen: één voor instellen, één voor uitlezen van sensoren. Geen eigen PubNub-account nodig voor demo (mijn account kan gebruikt worden).
  4. Thuiscontroller met Arduino Yun - gekozen omdat het een ingebouwde Ethernet/Wi-Fi heeft en een kleine Linux-machine draait voor Python-scripts. Bestuurd relais voor lampen, leest DHT11 sensor, activeert buzzer, bedient webcam.

Software installeren

Optie 1: Mijn skill gebruiken (demo)

Open de Alexa-app, ga naar Skills, zoek "Arduino", selecteer "Arduino Home Controller", klik "Inschakelen". Koppel je Amazon-account (e-mailadres wordt als ID gebruikt voor commando's, niet voor e-mails).

Optie 2: Eigen skill maken

Registreer je als developer op developer.amazon.com.

  1. Maak een nieuwe Custom Skill: Taal "English US", naam "TestSkill", invocation name "Test Skill".
  2. Interaction Model: definieer Intents, Slots (States: on/off; HabRooms: room/kitchen/garage/living room) en Utterances (bijv. "Turn {which} light {light}").
  3. Maak een Lambda-functie op AWS Console: Author from Scratch, Node.js 6.10, custom IAM role met logging en IoT rechten. Upload de data.zip met index.js. Pas de Application ID aan in regel 23. Noteer de ARN.
  4. Koppel Skill en Lambda: in Skill Configuration, Endpoint = AWS Lambda ARN, plak ARN. Account Linking: stel OAuth 2.0 in via "Login with Amazon" (Security Profile). Voeg Redirect URLs toe. Vul Client ID/Secret in bij Account Linking.
  5. Publiceer/Installeer de skill in de Alexa-app.

Arduino Yun Configureren

Bij eerste gebruik: volg de "Getting started with Arduino Yun" handleiding. Voor foto/e-mail functionaliteit:

  1. SSH naar Yun: ssh root@yourYunName.local (standaard wachtwoord: arduino)
  2. Update packages: opkg update
  3. Installeer UVC drivers: opkg install kmod-video-uvc
  4. Installeer Python SSL: opkg install python-openssl
  5. Installeer fswebcam: opkg install fswebcam
  6. Controleer SD-kaart mount: mount (moet /dev/sda1 on /mnt/sda1 type vfat tonen)
  7. Test camera: cd /mnt/sda1 && fswebcam test.png
  8. Installeer e-mail script: kopieer AHC_SendEmail.py naar SD-kaart, pas Gmail-gegevens aan (regels 11-13, 36). Test: python /mnt/sda1/AHC_SendEmail.py /mnt/sda1/ test.png

Hardware aansluiten

Volg het elektronische schema. Belangrijk: DHT11 sensor (pin 2) en buzzer (pin 8) voor testen.

Sketch uploaden

Download libraries.zip van GitHub (bevat ArduinoJson, DHT_sensor_library, pubsubclient-master) en pak uit in Arduino IDE libraries map. Open ArduinoHomeMQTT.ino, pas aan:

  • Regel 16: jouw Amazon e-mail (gekoppeld aan skill)
  • Regel 50: jouw UUID (genereer op uuidgenerator.net)
Upload naar Arduino Yun (Board: Arduino Yun). Open Serial Monitor: je ziet verbinding met PubNub en sensor initialisatie.

Testen met Alexa Echo Dot

De skill "Arduino Home Controller" ondersteunt deze uitspraken:

Lampen: "Alexa, ask arduino home to turn room light on/off", "kitchen light on/off", "garage light on/off", "living room light on/off"

Alarm: "Alexa, ask arduino home to turn alarm on/off"

Sensoren: "Alexa, ask arduino home to read temperature", "read humidity"

Foto: "Alexa, ask arduino home to take a photo"

Info: "Alexa, ask arduino home about", "help"

Software Details

Alle bestanden op GitHub: https://github.com/jcruzp/ArduinoHomeController

  • ArduinoHomeMQTT → ino + libraries voor Arduino Yun
  • lambda → Node.js Lambda functie voor AWS
  • python → e-mail script voor foto
  • schematic → Fritzing schema

Workflow: (1) Echo Dot → Skill → (2) Lambda (Node.js) → (3) MQTT JSON naar PubNub (kanaal AHC_IOT_01) → (4) Arduino Yun ontvangt via bridge → (5) Actueert relais/leest sensor/maakt foto → (6) Python script stuurt foto per e-mail.

MQTT berichtformaat: {"topic": "Topic_xxxx", "command": "on/off", "id": "email"}. Topics: Topic_room, Topic_livingroom, Topic_kitchen, Topic_garage, Topic_alarm, Topic_temperature, Topic_humidity, Topic_photo.

Hardware Details

Arduino Yun is het hart. Digitale pinnen:

Pin 2: DHT11 sensor
Pin 8: Buzzer alarm (via NPN transistor)
Pin 9: Slaapkamer licht
Pin 10: Keuken licht
Pin 11: Garage licht
Pin 12: Woonkamer licht
USB: Webcam

Voeding: 12V DC → buck converter → 5V. Alles op Proto Shield gemonteerd in kunststof doos met sensoren/buzzer/webcam buiten.

Gemaakt in herinnering aan mijn vader, overleden vorig jaar. R.I.P. Dad.

Code

ArduinoHomeMQTT.ino (Arduino)

Zie de volledige code in de GitHub repository. Belangrijkste functies: MQTT verbinding met PubNub, callback voor commando-afhandeling, DHT11 uitlezen, foto maken met fswebcam, e-mail versturen via Python script.

AHC_SendEmail.py (Python)

Script op Arduino Yun (OpenWRT) om foto als bijlage per Gmail te versturen. Pas fromaddr, toaddr, emailpassword en SMTP-instellingen aan.

index.js (JavaScript - AWS Lambda)

Lambda functie die Alexa-intents vertaalt naar MQTT-berichten naar PubNub. Bevat handlers voor LightIntent, AlarmIntent, TakePhotoIntent, GetTemperatureIntent, GetHumidityIntent, Help/Stop/Cancel. Gebruikt PubNub SDK.

Schema's

Hoofdprint met relais, temperatuur/vochtigheidssensor, buzzer alarm en webcam.

Productieproces

  1. Web-gestuurd DMX-verlichtingssysteem – Arduino Master Controller
  2. Arduino Digitale Dobbelsteen: Bouw Je Eigen LCD-willekeurige Getalgenerator
  3. DIY Arduino USB Gaming Controller – Bouw Je Eigen High-Performance Gamepad
  4. Pixel Chaser: Interactieve één-tik LED-spel met Arduino Nano
  5. Slimme Plantenwateringssysteem met Arduino Nano
  6. Arduino-gebaseerde Afstotende Magnetische Levitatie: Eenvoudige Schakeling & DIY Handleiding
  7. Arduino-gebaseerde Vacuum Fluorescent Display (VFD) Controller Kit
  8. Bouw een Autonome Thuisassistent Robot: Complete Onderdelenlijst & Opzetgids
  9. NeoPixel Matrix Pong op Arduino Nano: Bouw je eigen neon Pong-spel
  10. Arduino DMX-512 Tester Controller – Complete Onderdelenkit voor Betrouwbare Verlichtingsbesturing
  11. DIY LED Roulette-spel – Bouw Eenpersoons Arcade Met Arduino Nano