Sith-inspiriertes Smart-Home-Eingangssystem: Imperial March bei Ankunft
Komponenten und Zubehör
| Particle Photon | 2 |
| Arduino UNO | 1 |
| Adafruit Music Maker MP3 Shield | 1 |
| Adafruit PIR-Bewegungsmelder | 1 |
| LED (beliebig) | 2 |
| Widerstand 220 Ω | 2 |
| Jumper-Kabel | 1 Set |
| Lautsprecher 3 W, 4 Ω | 1 |
| Steckbrett (2×) | 2 |
| USB-Micro-B-Netzteil | 1 |
| USB-A-auf-B-Kabel | 1 |
| Pin-Header 36-polig | 1 |
Benötigte Werkzeuge
- Lötkolben
Software und Online-Dienste
- Particle Cloud (kostenlos)
Projektbeschreibung
Meine Tochter liebt Star Wars (ohne die Filme gesehen zu haben). Sie lässt mich ständig den Imperial March (Darth Vaders Theme) spielen, wenn sie im Vader-Kostüm den Raum betritt. Daraus entstand die Idee: Automatisch Erkennung der Heimkehr → Imperial March erklingt kurz vor dem Betreten des Hauses.
Einsteigerfreundlich, erstmals Nutzung von Publish/Subscribe via Cloud und Kombination zweier Mikrocontroller-Typen (Photon für Cloud, Arduino für Audio).
Schritt 1: Sensor-Modul (Garage)
Zeit: 10 Min. | Teile: Photon, 220-Ω-Widerstand, LED, PIR-Sensor, Steckbrett, Kabel, USB-Micro-Kabel.
- LED an Photon: Anode → D0, Kathode über 220 Ω → GND. (Optional, zeigt Erkennung an.)
- PIR an Photon: GND → GND, 5 V → VIN, Signal → D7. Wichtig: Datenblatt prüfen – Signalpegel muss 3,3 V sein (Photon-tauglich).
- Code flashen (siehe unten). Test: Hand vor Sensor → LED leuchtet, Event in Particle Dashboard sichtbar.
Schritt 2: Trigger-Modul (Küche)
Zeit: 10 Min. | Teile: Photon, 220-Ω-Widerstand, LED, Steckbrett, M/F-Kabel.
- LED wie oben an D0.
- VIN, GND, D7 per M/F-Kabel herausführen → später an Music-Maker-Shield.
- Code flashen (richtiges Photon-Gerät in IDE wählen!).
Schritt 3: Arduino + Music Maker Shield
Zeit: 20 Min. | Teile: Arduino Uno, Music Maker Shield, Photon (aus Schritt 2), 220 Ω, LED, Mini-Steckbrett, Kabel, USB-Kabel. Werkzeug: Lötkolben.
- Shield-Headerpins anlöten. Zusätzliche Male-Header auf Shield für GPIO/Strom vom Photon.
- Photon D7 → Shield GPIO 7; Photon VIN → Shield 5 V; Photon GND → Shield GND.
- Lautsprecher an Terminalblock (ein Kanal genügt).
- Arduino-Sketch flashen.
Fertig! Vor Sensor gehen → nach ca. 60 s ertönt Imperial March.
Zum Code
Erste Nutzung von Publish/Subscribe. Sensor veröffentlicht Event motion-detected (privat, nur eigene Geräte). Trigger abonniert mit MY_DEVICES-Filter, setzt GPIO HIGH. Arduino wartet 60 s (Parken, Aussteigen, Eintreten) und spielt track001.mp3 von SD-Karte.
Deployment
Sensor in Garage neben Parkplatz. Trigger + Arduino + Shield + Lautsprecher auf Küchenarbeitsplatte (Tochter sitzt dort). Beide an Wandsteckdosen.
Code
Sensor-Code (Photon)
int led = D0;
int pir = D6;
bool published;
void setup() {
pinMode(led, OUTPUT);
pinMode(pir, INPUT);
digitalWrite(led, LOW);
}
void loop() {
if (digitalRead(pir) == HIGH) {
digitalWrite(led, HIGH);
published = Particle.publish("motion-detected", NULL, 60, PRIVATE);
if (!published) {
for (int i = 0; i < 10; i++) {
digitalWrite(led, LOW); delay(500);
digitalWrite(led, HIGH); delay(500);
}
}
} else {
digitalWrite(led, LOW);
}
delay(2000);
}
Trigger-Code (Photon)
int led = D0;
int trigger = D7;
void soundAlarm(const char *event, const char *data) {
digitalWrite(led, HIGH);
digitalWrite(trigger, HIGH);
delay(2000);
digitalWrite(trigger, LOW);
digitalWrite(led, LOW);
}
void setup() {
Particle.subscribe("motion", soundAlarm, MY_DEVICES);
pinMode(led, OUTPUT);
pinMode(trigger, OUTPUT);
}
void loop() { }
Arduino + Music Maker Shield Code
/************************************************************
* MP3-Wiedergabe via Adafruit Music Maker Shield
* Getriggert durch Photon an GPIO 7
************************************************************/
#include <SPI.h>
#include <Adafruit_VS1053.h>
#include <SD.h>
#define SHIELD_RESET -1
#define SHIELD_CS 7
#define SHIELD_DCS 6
#define CARDCS 4
#define DREQ 3
Adafruit_VS1053_FilePlayer musicPlayer =
Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCS, DREQ, CARDCS);
int photonPin = 7;
void setup() {
musicPlayer.begin();
SD.begin(CARDCS);
musicPlayer.setVolume(1, 1); // niedriger = lauter
musicPlayer.GPIO_pinMode(photonPin, INPUT);
}
void loop() {
if (musicPlayer.GPIO_digitalRead(photonPin) == HIGH) {
delay(60000); // 60 s warten
musicPlayer.playFullFile("track001.mp3");
}
delay(500);
}
Schaltpläne
Fritzing-Dateien: sensor.fzz, trigger.fzz (im Originalprojekt).
Herstellungsprozess
- Die wichtigsten Komponenten einer CNC-Maschine erklärt
- Wesentliche Elemente effektiver Krisenkommunikation
- Zukunft der Fertigung: Trends, Talente und Innovation
- Annoy-O-Bug: Kompakter LED-Summer-Spielzeug mit ATtiny85 bauen
- Nanotechnologie: Das nächste Neuland der IoT-Sicherheit
- Schlüsselkomponenten eines zuverlässigen Druckluftsystems
- Wie Kranmodernisierung Schlüsselkomponenten für Spitzenleistung transformiert
- Der Techniker von morgen: Fähigkeiten, Werkzeuge und Rollen in der digitalen Fabrik
- Wesentliche Bauteile von Doppelspalten-Bandsägemaschinen
- Präzisionsdrehteile designen: Ein umfassender Leitfaden