PetCurfew II: An Automated katt dörr med foton och IFTTT (6 / 8 steg)
Steg 6: programvara
Nu till roligt delen. Brand upp partikel webben IDE och följer registreringssteg för dina foton. Stegen kan hittas här: https://docs.particle.io/guide/getting-started/sta...
Vi kommer att anta att din Photon är nu ansluten till molnet via du Wi-Fi-kopplingspunkt.
Vi måste veta hur man gör flera saker för detta projekt:
1. läsa en switch eller tryckknapp
Mekanismen för att läsa tryckknapp växlar eller status för de magnetiska reedbrytare är samma som de alla beter sig som momentan nära växlar.
Koden för att upptäcka en tryckknapp är mycket enkel (samma som för läsande dörren öppna stänga):
pinMode (D5, INPUT_PULLUP); ställa in pin som indata och aktivera pullup motstånd
om (digitalRead(D5) == låg) / / användaren tryckte växeln "Stäng dörren"?
Det finns dock ett annat sätt: i stället för röstningen för ändringar av en PIN-kod, använder vi avbryter. När en av de fyra växlarna stängs av kod kommer att avbrytas och hoppa till matchande Avbryta tjänsten rutin (ISR). Eftersom tid som tillbringas i en ISR måste hållas på ett minimum, och eftersom flera funktioner och bibliotek inte kan användas säkert inuti en ISR, vi kommer bara set och variabel och återgå. I de viktigaste loop, kommer att vi kontrollera tillståndet i denna variabel och agera utifrån dess värde.
Här är hur man ställer upp:
onCloseDoor är ISR. FALLANDE kommer att upptäcka hög till låg övergångar
attachInterrupt (D5, onD5Close, faller);
Och här är ett exempel på en ISR:
void onCloseDoor()
{
bDoorIsOpen = 0;
}
2. en LED-belysning
Om du vill aktivera en LED, måste vi ansluta den till en pin som deklareras som OUTPUT och sätta den till hög:
pinMode (D5, OUTPUT);
digitalWrite (D5, hög);
3. att få tiden
Enligt den foton dokumentation synkroniserar enheten"tiden med partikelmolnet under handskakningen. Från då uppdateras tiden kontinuerligt på enheten".
För att läsa tiden, kan vi använda följande bibliotek samtal:
Time.Hour(); timmar från midnatt (0-23). Obs: detta är UTC-tid.
Time.minute(); minuter (0-59)
4. kontrollera en Servo
Koden för att köra en servo är mycket enkel (du behöver inte inkludera servo.h biblioteket när du använder fotonen):
myservo.attach(D0); gul (puls) binder av servo är kopplad till D0
myservo.write(0); berätta servo gå till läge 0 (stängd)
Källfilen är fäst. Jag använde utvecklingsmiljön Partikel bygga web och hittade inte behovet av att använda sitt stå ensam IDE. Med Internet IDE, kan du börja utvecklingen på en maskin och plocka upp den på en annan. En av fördelen av fotonen är att du kan ladda ner din kod (och även uppdatera datorns inbyggda maskinvara) för över din WiFi-anslutning (ingen anslutning via USB-kabel krävs), vilket innebär att du inte längre behöver ta bort processorn från installationsplatsen för att uppdatera den.