Paketet Alert System (med e-post) (3 / 5 steg)
Steg 3: Firmware
Om inte du är bekant med partikelns (tidigare gnista) Photon styrelsen, du är i för en behandling. Det är ond lätt för att komma igång med och ännu lättare att göra ändringar i din firmware när du har allt trådbunden upp och monterade av dörren. Eftersom den spånskivor firmware kan flash via ditt wifi-nätverk, behöver du inte faktiskt anslutas direkt till det som ut microcontrollers. Detta innebär att du kan testa din kod lättare medan det är faktiskt setup i enheten och du kan justera och uppdatera programmet från skrivbordet om behöver vara.
Om du behöver få bekantat med fotonen, föreslår jag att du börjar här: https://www.particle.io/
De har mycket stora resurser, men om du fortfarande har mycket att lära om mikrokontroller, du kan hitta användning i Arduinos hemsida också: https://www.arduino.cc/. De har alla typer av tips, tutorials och bibliotek som du kan använda.
Jag har bifogat några bilder av koden ovan (och förhoppningsvis kommer att ha det postat på Github inom kort), men jag kommer att gå igenom de allmänna logiken nedan om du vill prova kodning det upp dig (definitivt det bästa sättet att lära sig).
KODEN GENOMGÅNG / /
#include "HttpClient/HttpClient.h" << detta är ett bibliotek som du kan nå via partikel som hjälper-format och skicka HTTP-begäranden. Vi använder detta för åtkomst till PHP-skript körs på vår server.
void setup() << Setup-funktionen körs första och upprättar allt som vi behöver bara göra en gång. I denna metod kommer vi att (1) börja våra seriell kommunikation för felsökning, (2) ställa in våra analoga läsa pin och (3) ställa in vår LED indikator stift ut.
void loop() << loop funktion innehåller alla återkommande åtgärder i koden. Det är där vi ser om någon knapp trycks för närvarande. Jag har lagt i en 50 ms fördröjning mellan varje cykel genom denna funktion till att inte i onödan belasta chip. Jag ta 10 avläsningar från det analoga stiftet och dessa medelvärden. Detta ger oss vår Läs värde.
<< Härifrån, vi avgöra om det här värdet matchar våra utgångsvärde som orsakas av det ursprungliga motståndet eller ett förutbestämt värde som kommer från att slutföra krets med en av knapparna genom en annan resistor.
<< Om det bestäms att värde motsvarar en knapp funktionen sendEmail() anropas.
void sendEmail(String recipient) << här vi kontakta PHP skript körs och passera namnet på medarbetaren som har knappen har varit sköt. Dessutom, innan e-post skickas, sätter jag på indikatorn LED att användaren vet att meddelandet levererats ordentligt, då det pauser så att du inte kan skicka flera meddelanden på en gång. Efter förseningen släcks lysdioden igen.