Hem Automation (eller Robot Butler kallas Geoffrey) - iPhone kontrollerade, arduino baserat (11 / 12 steg)

Steg 11: Ändra arduino koden för din utrustning – ny kod



Detta steg kommer att behandla det nya ännu oprövad, kod:

Längst ner i koden hittar du enskilda metoder för varje switch eller ljus (t.ex. kök, sängbord, etc.). När du lägger till en ny artikel eller om du bara vill ändra något som är redan där detta är den del du kommer att behöva redigera först. Strukturen hos en individ på/av metoden är:

void switchName (boolean på, boolean multioff) {

De två Booleans är om växeln är vara påslagen (sant) eller off (falskt) och andra är huruvida det skulle stänga av några tidsinställda run-gånger (att se till att saker slumpmässigt inte slå på/av om du är klar som kräver en körning innan det förväntar dig att bli färdig).

Den om uttalande i metoden avgör om brytaren aktiveras eller inaktiveras med hjälp av en kodrad som liknar denna:

setOnOff (x, x, på);

Detta kräver en metod med namnet "setOnOff". Koden för detta kan ses i slutet av skissen. Detta hand tar om slå på och av enheterna och för feedback genom den seriella porten. Koden är:

setOnOff (int grupp, int plug, boolean på)

Boolean "på" i varje enhet metod säger redan om du vill aktivera eller inaktivera så behöver du bara byta grupp och koppla in värden för varje enhet. Exempelvis skulle om jag ville vända kontakten 4 i grupp 3 då jag skriva:

setOnOff (3, 4, på);

Rulla ner ungefär halvvägs, det finns en del på väg
"/ / / Följande avsnitt är för slå på och av enskilda enheter / / /"

Detta är nästa avsnitt som behöver behandlas.

Nedan följer 12 kodrader mycket liknande söker för olika apparater/ljus.

Den första raden i varje bit följer samma struktur:
annars om (packBuff [0] = 'P' & & packBuff [1] == 'x' & & packBuff [2] == "x")

Detta är den del där du anger vilka väljare från telefonen du döma till. Till exempel, om du vill ange vad som bör göras när du trycker på en knapp som är inställd för att skicka meddelandet P04 du vill ändra ovanstående kod att:

annars om (packBuff [0] = 'P' & & packBuff [1] == '0' & & packBuff [2] == "4")

Eftersom alla växlar har två meddelanden som kan skickas (stickande med exemplet P04 det kan antingen vara P04H eller P04L beroende på Växla har ändrats till) det måste finnas någon logik att bearbeta två separat. Som de båda börjar med P04 bit klokt att ha en andra inbäddat om uttalande.

om (packBuff [3] == "H") {

Detta säger koden vad du gör om den är påslagen. Två utdragsraderna lägre:

annat {

Anger koden vad att göra om den sista bokstaven inte är H (dvs. L) vilket innebär att du kan ange vad du vill göra när den är avstängd.

Om du använder en knapp istället för en växla du kan få bli av med den inbäddat om funktionen eftersom det inte kommer att vara en extra H eller L i meddelandet.

Lina av koden precis under om "(packBuff [3] =="H") {" är åtgärden som ska vidtas när den är på. Till exempel om du vill skrivbordslampa så här aktiverar du anropa metoden "skrivbord" och berätta det att du vill att det ska vara på och som du vill inaktivera alla run-tider som för närvarande kommer:

skrivbord (sant, true);

I uttrycket "annat" kommer du vill stänga av den samma växlar och igen att avbryta någon run-tider är för närvarande i aktion:

skrivbord (falskt, true);

Om du skulle hellre stänga här särskilt knappen inte av några run-gånger sedan den andra variabeln måste vara inställd på false (skrivbord (sant, falskt); och skrivbord (false, false);)

Nästa steg är att mer än en koppla uttaget (t.ex. underhållning slå på eller stänga av TV: N, Xbox och ljudsystem eller alla ljus på/av) när tryckt, kommer att påverka-knappar. För dessa har du helt enkelt mer än en enskild enhet metod kallas (se exempel på detta redan i koden).

Dela upp något mer delaktiga är avsnittet "körning". Ställa in timing automatiseringar kräver några fler ändringar.

Det första du kan göra är att deklarera två variabler innan void(setup). En int som ska fungera som ett booleskt värde och en osignerad länge som lagrar den aktuella tiden.

När du trycker på knappen kommer du att ställa in eller inaktivera något som du vill ha gjort från början. Du kommer att behöva ange den osignerade långa till aktuell tid (i sekunder sedan 1 januari 1970) och sedan int 1 (t.ex. teethStart = now.unixtime(); och teethActive = 1;).

När int == 1 springa-tid börjar. Innan avsnittet där du kan ange vad som händer när varje knapp trycks körningen måste anges. Börja med en if-sats som kontrollerar om int == 1. Om så är fallet, sedan starta körningen (t.ex. om (teethActive == 1) {).

Nästa avsnitt kommer att vara först med timing element. Genom att ställa in om uttalanden som innefattar tiden frågar du kan ställa in saker att sätta på och stänga på ett visst antal sekunder efter knappen trycktes ursprungligen.

Till exempel, om du vill ha något att slå på/av efter tre minuter sedan syntaxen är:

om (teethStart + 120 == now.unixtime()) {

Detta är i grunden att kontrollera om den aktuella tidpunkten är samma som tiden har tryckt på knappen lägga till 120 sekunder.

I slutet av uttrycket i en körning bör aktiveringen int sättas till 0 så runtime är inte längre kollade igenom (att göra hela systemet mer effektivt).

Den aktiva int variabeln (t.ex. teethActive) måste läggas till multiOff uttalande.

Det finns ett annat avsnitt, som ser till att, inte mer än en körning kan köras åt gången. Det håller den senaste en för att köra.

I det här avsnittet alla aktiveringen ints summeras och om svaret är större än 1 sedan mer än en är aktiva samtidigt. Om så är fallet de gånger som de kör-tiderna startades jämförs och runtime med flest hålls aktiva. Du kommer att behöva lägga till några ytterligare körtider i detta avsnitt men titta på den kod som redan finns där det ska vara komma ganska self förklarande.

Se Steg
Relaterade Ämnen

Hem Automation med Amazon Echo röststyrning

Förra månaden, släppt Amazon eko - en liten cylinder kan kraftfulla röst erkännanden.Eko själv är stängd källkod. Men när du räkna ut ECHO: s hemligheter, blir det ett otroligt kraftfullt verktyg för röststyrning, så att du kan styra allt i ditt hem...

DIY Home Automation för nybörjare. Absolut ingen kodning eller lödning behövs. Android/Arduino för att växla saker på och av

Denna instructiable är att den absoluta nybörjaren. Om du kan hantera en vass kniv utan att skära kan fingrarna av dig göra och anpassa denna hemautomation controller.Dessa instruktioner är också on-line på www.pfod.com.au under Android / Arduino för...

IPhone kontrollerade ledde utan en dator eller internet

jag bygga en liten webside körs på arduino med ethernet I/O med hjälp av HTML och en liten bit av css.När du skickar en HTTP-begäran skriptet läser begäran och får ett kommando från den.Du behöver inte internet, bara ett fungerande nätverk och en dat...

Carlitos' projekt: Trådlös tal-kontrollerade Arduino Robot

Vi alla drömmer om att ha apparater och maskiner som kan lyda våra röstkommandon. Nåväl, låt oss ta det första steget mot att göra detta hända och bygga en tal-kontrollerade Arduino-baserad mobil robot.Du kanske tänker att göra sådan robot måste vara...

Hem Automation hallon och Phidgets del 3

Detta är den tredje artikeln i Home automation med Phidgets och hallon.I tidigare artiklar såg vi hur du interagerar med den digitala utgångar och digitala ingångar.Nu ska vi se hur man läser värdena för vissa sensorer direkt på din smartphone eller...

Hem Automation/säkerhet prototyp

Jag har spelat med micro-styrenheter för ganska lång och sedan jag mina vänner frågade mig att ta upp detta projekt och jag var lite nervös för att arbeta med individuella hemautomation moduler är relativt lättare än att bygga en allt-i-ett hem autom...

Hem Automation hallon och Phidgets

Vi använde tidigare tutorials Raspberry Pi att köra Phidgets InterfaceKit. Vi har också lagt upp en webbserver på hallon.I den här guiden kommer vi att använda lyckades den information som samlades för att skapa ett hem automationssystem med ett webb...

Hem Automation hallon och Phidgets del 2

I den tidigare handledning såg vi hur du kan driva de digitala utgångarna för Phidgets 1018distans, i denna tutorial kommer att i stället vi kontrollera status för de digitala ingångar, som kan anslutas till magnetiska kontakter, tryckknappar, växlar...

Hem Automation röststyrning - flera rum mikrofon talanalys

Har du någonsin känt behovet av att spåra din engelsktalande vanor, styra ditt hem med din röst, eller helt enkelt post från flera mikrofoner på en gång? Då har du tur! I detta Instructable, lär du dig hur installerar och använder en matris med flera...

Billiga hem Automation med trådlös utlopp moduler

det är den tiden på året igen, när butikerna är fulla av juldekorationer och tillbehör. Julen kan vara månader bort ännu, men aldrig underskatta kraften i hacking säsongsbetonade semester tillbehör, ett tillbehör i synnerhet är otroligt användbara år...

Hem larm eller rörelsedetektor med Arduino,P.I.R Sensor och LCD.

Hej alla,Idag ska jag visa dig hur man gör ett intressant, underbar, Billigt hem larm. Denna Gadget hjälper dig att skydda ditt hus mot tjuvar. I detta projekt ska jag använda en Freeduino Board(Arduino Compatible),P.I.R Sensor module,LCD and some ot...

Hem Automation Tweets

gissa vad! Intel har nu tagit ett steg närmare att automatisera ditt hus.Edison ger ut värdena på intensiteten av ljuset i rum där det är installerat och laddar upp det på twitter. När tweeting ljus status, anges också värdet av fotomotstånd. Detta g...

Linkit en - hem Automation med Bluetooth ledaren Android App

Alla alternativ är kommer med smarta telefoner. Smarta telefoner gör vårt arbete mycket lätt och gör oss lata. Slå på och av hushållsmaskiner med smart telefon med blå tand är i marknaden, men kostnaden hög. Så DIY Blue tooth hem koppla Automation me...

Öppen källkod Robotic Butler (OSIRB)

detta är OSIRB, öppen källkod robotic betjänt har jag konstruerat. Det är en iRobot skapa. Armen har en Arduino ombord tillägnad det. Hjärnan är en bärbar dator och en webbkamera är ögat. Slutligen, kroppen är tillverkad av billigaste virket jag kund...

Hem rengöring robot

Denna robot används till rent hus. Thos robot kan ge dig en relaxSteg 1: materialMotorn förarens IC -1Hjul-2Trä planka -1L parentes -2Transmitor och mottagare-1Dubbla handtag dubbel kasta växlar -2Box -19V batterier -3DC-motorer-2Fäst smeten kontakte...

DIY hacka din egen hem Automation System

Ett hem automationssystem bör kunna slå på/av apparater som lampor, fläktar, entertainment system, etc. Ett system som är trådlös ännu oberoende från Internet, men viktigast, DIY och öppen eftersom jag vill förstå hur det fungerar.Varför nytt uppfinn...

Bolt hem Automation och varningssystem

Detta är ett nytt system av Shantam och mig bygger på bulten IOT plattform (www.boltiot.com) för att automatisera och förenkla hur människor interagerar med hushållsmaskiner och apparater i allmänhet.Steg 1: Vad är det? Det är en samling av intellige...

Hur man gör en billig hem Automation System

Väl automatiserade Home är en dröm att varje DIY er, men de kostar mycketSå är här en lösning att göra en låg budget Automated system======================================================Kostnaden för att bygga projektet:Relä modul (0,32$)transistor...

Hem Automation och säkerhet med 1Sheeld

Detta är en home automation och säkerhet system med 1Sheeld, projektet fungerar som följande:när användaren når dörren till hans hem en pir-sensor kommer att känna honom så en ledde slås på och sedan han har att säga ett specifikt lösenord till kan k...