Stap 10: Het (Hard) Hardware
Dit hielp me aan de slag.
De fundamentele logica van het programma was dit:
Iemand duwt de deurbel, het activeert een relais dat ringen van de deurbel en activeert de Arduino.
De Arduino vervolgens:
1) negeert alle opdrachten van de activering voor 4 minuten (in het geval iemand de deurbel weer ringen)
2) start een Applescript-commando op de hostcomputer voor de Mac
3) activeert een tweede Relais (voor toekomstige ideeën)
4) Hiermee na 4 minuten worden hersteld en gaat terug naar stand-by
Hier is de code:
int ledPin = 13; LED aangesloten op digital pin 13
int potPin = 0; witte deurbel draad naar analoge pin 0
int val = 0;
lange tijd = 0;
lang debounce = 1000;
VOID Setup {}
pinMode (ledPin, OUTPUT); Hiermee stelt u de digitale pen als uitvoer
Serial.begin(9600); seriële poort met 9600 baud openen
digitalWrite (14 + potPin, hoge); pullup aangezet de analoge pin
(analoge 0 = digitale 14, a1 = d15, enz)
}
void loop {}
Val = analogRead(potPin);
Als (val < 100) {/ / als het circuit is voltooid
(voor mij, het in het algemeen daalt van 1023 tot ~ 15 wanneer 'beltonen')
Als (millis ()-tijd > debounce) {}
Serial.println("A");
delay(500);
Serial.println("A");
delay(500);
Serial.println("A");
digitalWrite (ledPin, hoge); Hiermee stelt u de LED op
delay(120000); // ... 240000 = 4 minuten
digitalWrite (ledPin, laag); en de LED uitgeschakeld
tijd = millis();
}
}
}
Opmerking: de Appleshare Proxy-programma was alleen accepteren van elke derde "A" van mijn Arduino, zodat ik drie stuur en de Raad van bestuur nu reageert onmiddellijk foutloos (ik ben zeker dat het slordige code, maar HEY het werkt!) De 'vertraging' is waar het bord negeert alle toetsaanslagen, zodat het programma niet opnieuw wordt opgestart als iemand de deurbel blijft rinkelen.