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

Steg 10: Ändra arduino koden för din utrustning – gammal kod



Det finns två versioner av koden (i steg 8). Den äldre versionen är beprövade men är inte riktigt lika lätt att förstå/ändra. Den nya versionen är mycket lättare att förstå och ändra men jag har inte haft en chans att testa det ännu. Jag kommer uppdatera här så fort jag får chansen att testa det ordentligt men tills dess kommer jag att lämna instruktioner om hur du ändrar båda uppsättningar av koden.

Detta steg kommer att behandla den gamla koden:

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 den del som kommer att behöva ta itu med först.

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

Den första raden i varje om uttryck 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 hänvisar 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 P04 exemplet kan man antingen P04H eller P04L beroende på vilken växla har ändrats) måste det finnas någon logik att bearbeta två separat. Som de båda börjar med P04 är det 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 snarare än en växla du kan bli av inbäddat om uttalande som brukar det vara en ytterligare 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å.

setOnOff (3, 1, true);

Detta kräver en metod med namnet "setOnOff". Koden för detta kan ses längst ner på skissen. Det hand tar om roterande enheter på off och för feedback genom den seriella porten. Koden är:

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

Så, om jag ville ha den kontakten som tillsattes som grupp 3, channel 4 att slå på jag skulle skriva:

setOnOff (3, 4, sant)

Om jag ville stänga samma kontakt skulle jag skriva:

setOnOff (3, 4, falsk);

Att ändra enkelt/på enskilda enheter måste du fylla i korrekta meddelanden att läsa (e.g. P04 i föregående exempel) och fylla i korrekta växeln att påverkas och om du vill ha det på eller av (e.g. switchOnOff (3, 4, sant) i föregående exempel).

I slutet av varje tur på/av för varje enskild enhet finns det en annan kodrad:

multiOff = 1

Denna linje innebär att, när knappen trycks, det kommer att stoppa någon körning som innebär försenade på / off. Dess syfte är att stoppa allt från att vara slumpmässigt vände på eller bort när du har avslutat aktiviteten förr än flykt tid väntade. Om du inte vill att en särskild knapp för att avbryta nuvarande körtider sedan antingen kommentera ut eller ta bort denna bit av koden.

Nästa steg handlar om knappar 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. För dessa har du helt enkelt mer än en "switchOnOff" benämner (se exempel på detta redan i koden).

Avsnittet nästa, 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 förklara 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 en körning knapp trycks 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. Körningen måste anges innan avsnittet där du anger vad som händer när du trycker på varje knapp. Börja med en om 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ågor 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 två minuter sedan syntaxen är:

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

Detta är i grunden att kontrollera om den aktuella tiden är den samma som den tid knappen trycktes plus 120 sekunder.

I slutet av en körning uttalande bör aktiveringen int sättas till 0 så att körningen kontrolleras inte längre genom (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 vara aktiv å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 resultatet är större än 1, mer än en körning är aktiva samtidigt. Om så är fallet de gånger som de kör-tiderna startades jämförs och körning med det största antalet (en som började förra) hålls aktiva. Du behöver lägga till några ytterligare run-gånger i detta avsnitt men titta på den kod som inte redan finns det bör vara ganska självfö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...