Hem 9000 - den ultimata Doorbell (10 / 12 steg)
Steg 10: (Hårt) hårdvara
Detta hjälpte mig att komma igång.
Den grundläggande logiken i programmet var detta:
Någon skjuter på dörrklockan, det aktiverar ett relä som ringer på dörrklockan och aktiverar Arduino.
Arduinoen sedan:
1) ignorerar alla aktiveringskommandon för 4 minuter (om någon ringer på dörrklockan igen)
2) startar ett Applescript kommando på Mac värddatorn
3) aktiverar en andra relä (för framtida idéer)
4) återställer efter 4 minuter och går tillbaka till stand-by
Här är koden:
int ledPin = 13. LED är ansluten till digital stift 13
int potPin = 0; vit dörrklockan tråd till analoga stift 0
int val = 0;
lång tid = 0;
långa Dämpningstid = 1000;
void setup() {
pinMode (ledPin, produktionen); Anger den digitala pin som utdata
Serial.BEGIN(9600); Öppna serieporten på 9600 baud
digitalWrite (14 + potPin, hög); ställa in pullup på det analoga stiftet
(analoga 0 = digital 14, a1 = d15, etc)
}
void loop() {
Val = analogRead(potPin);
om (val < 100) {/ / om banan är klar
(för mig är det allmänt droppar från 1023 till ~ 15 när "ringsignaler")
om (millis ()-tid > Dämpningstid) {
Serial.println("A");
Delay(500);
Serial.println("A");
Delay(500);
Serial.println("A");
digitalWrite (ledPin, hög); anger LED på
Delay(120000); // ... 240000 = 4 minuter
digitalWrite (ledPin, låg); och släcks LED
tid = millis();
}
}
}
Obs: The Appleshare Proxy programmet bara acceptera varje tredje "A" från min Arduino, så jag skickar tre och styrelsen nu svarar omedelbart utan fel (jag är säker det är slarvig kod, men HEY det fungerar!) "Försening" är där styrelsen ignorerar alla knapptryckningar, så programmet inte startar om om någon håller ringning på dörrklockan.