Web kontrollerade Holiday House belysning (2 / 2 steg)
Steg 2: kod
Web serversidan av detta projekt är mycket liknar LED Tower Instructable. Det finns många sätt att närma sig denna typ av projekt, och här fungerar utan att konfigurera routrar och dynamisk DNS, men kräver en ISP webbhotell med PHP och en MySQL-databas, som är vanligt.
Kärnan i detta system är en MySQL-databas, och bifogade SQL-skriptet skapar strukturen används av koden. Det är en mycket enkel schema - bara en tabell med ett fält för kommandona tillsammans med index/nyckel och tidsstämpel.
Den bifogade PHP webbsidan gör allt för lägga till kommandon till kön och hantera dem användargränssnittet. Det är mycket grundläggande och kan förbättras med ett gäng JavaScript, men vi sparkar det gamla skolan idag. :-)
Sidan visar ett formulär för att lägga till kommandon, bearbetar borttagningen kommandon och visar listan över aktuella kommandon alla i en sida/skriptet. Skärmbilden i introt och detta steg är faktiskt på samma webbsida. Varje nytt kommando måste läggas på ett par ställen i PHP koden/HTML, och även i den Arduino skissen, men tanken är att nya kommandon inte kommer att läggas mycket ofta. Sidan har också några makro kommandon att göra det lättare varje år. De kan läggas utan att ändra Arduino koden.
På Arduino sida, bifogade skissen ansluter till ditt Wifi-nätverk, laddar kommandona och kör dem i en loop. En dold PHP sida används för att hämta kommandon - det bara returnerar listan, och tar inte bort dem för detta projekt eftersom den viktigaste webbsidan är där kommandolistan hanteras. Du kan köra den dolda sidan på en webbläsare för att se om det fungerar.
Kommandot format är enkelt - bara en kommaavgränsad lista över parametrar.
Skriptet laddas endast kommandon en gång sedan vi allmänt animation en gång per holiday och aktivera dem. Det kan inte vara värt mödan att läsa kommandona flera gånger i slingan eftersom du skulle behöva bestämma när avsöker servern - varje steg i varje animation, mellan stegen, eller med varje slinga. Ändra kommandon är mestadels coolt när du visar upp till grannar :-) Om du vill använda en slinga, har Xively CC3000 projektet länkas från webbplatsen Adafruit ett upprepande klienten exempel för CC3000 shield.
Ett annat sätt att göra detta projekt är med en Spark kärna. Enheten är som en Arduino + Wifi sköld, och du kan programmera det via en web IDE, så det skulle göra det möjligt att göra allt detta projekt utan en databas och en separat server. Du kan också göra en klientdel helt i JavaScript och använda deras REST API för att prata med Spark kärnan. En Instructable för en annan dag!