Home Automation (of Robot Butler Geoffrey genoemd) - iPhone gecontroleerde, arduino gebaseerd (10 / 12 stap)

Stap 10: De arduino-code voor uw apparatuur – oude code wijzigen


Er zijn twee versies van de code aangesloten (in stap 8). De oudere versie is beproefd en getest maar is niet helemaal zo gemakkelijk te begrijpen/wijzigen. De nieuwere versie is veel gemakkelijker te begrijpen en te wijzigen maar heb ik een kans om te testen het nog niet gehad. Ik zal updaten zodra ik de kans om het te testen goed krijgen maar tot dan ik instructies laat zal over het wijzigen van beide sets van code.

Deze stap zal omgaan met de oude code:

Scrollen naar beneden ongeveer halverwege, er is een sectie geleid
"/ / / De volgende sectie is voor het op en uitschakelen van afzonderlijke apparaten / / /"

Dit is het gedeelte dat zal moeten worden aangepakt met eerste.

Er volgt 12 coderegels zeer gelijkaardig kijken voor de verschillende toestellen/lichten.

De eerste regel van elke if -instructie volgt dezelfde structuur:
anders als (packBuff [0] = 'P' & & packBuff [1] == 'x' & & packBuff [2] == 'x')

Dit is het gedeelte waarin u welke selector vanaf uw telefoon u doelt opgeven op. Bijvoorbeeld, als je opgeven wat er moet gebeuren wilde wanneer u op een knop die is ingesteld voor het verzenden van het bericht P04 u zou de bovenstaande code wijzigen om:

anders als (packBuff [0] = 'P' & & packBuff [1] == "0" & & packBuff [2] == '4')

Omdat alle knevels twee berichten dat kunnen worden verzonden zijn (steken met de P04 voorbeeld het P04H of P04L kan zijn afhankelijk van de staat waaraan knevel is veranderd) moeten er enkele logica voor het verwerken van de twee afzonderlijk. Als ze beide met P04 beginnen is het zinvol om een tweede genesteld als -instructie.

Als (packBuff [3] == "H") {}

Dit vertelt de code wat te doen als het is ingeschakeld. De twee afschriftregels lager:

else {}

vertelt de code wat te doen als de laatste letter niet H (d.w.z. L) wat betekent dat u kunt opgeven wat u wilt doen als deze uitgeschakeld.

Als u gebruikmaakt van een knop in plaats van een knevel die je van de genesteld als -instructie als ontdoen kunt zal er niet een extra H of L in het bericht.

De coderegel net onder de als "(packBuff [3] =="H") {" is de actie moet worden uitgevoerd wanneer het is ingeschakeld.

setOnOff (3, 1, true);

Dit roept een methode genaamd "setOnOff". De code voor dit kan worden gezien op de bodem van de schets. Het zorgt voor het draaien van de apparaten aan en uit, en voor feedback via de seriële poort. De indeling van de code is:

setOnOff (int group, int stekker, boolean op)

Dus, als ik de stekker die werd setup wilde als groep 3, channel 4 inschakelen ik zou schrijven:

setOnOff (3, 4, true)

Als ik wilde de dezelfde stekker uitschakelen zou ik schrijven:

setOnOff (3, 4, false);

Het wijzigen van de eenvoudige in-/ uitschakelen van afzonderlijke apparaten moet u invullen van de juiste berichten worden gelezen (bijvoorbeeld de P04 in het vorige voorbeeld) en vul de juiste schakelaar worden beïnvloed en of u het wilt in- of uitschakelen (bijvoorbeeld de switchOnOff (3, 4, waar) in het vorige voorbeeld).

Aan het einde van elke beurt aan/uit voor elk afzonderlijk apparaat is er een andere lijn van code:

multiOff = 1

Deze regel betekent dat, wanneer de knop is ingedrukt, het stopt een runtimefout die inhoudt dat vertraagd op / exemplaren. Het doel ervan is om te stoppen met iets van willekeurig wordt ingeschakeld of uitschakelen wanneer u klaar met de activiteit eerder dan de gelopen bent tijd verwachtte. Als u niet wilt dat een bepaalde knop om te annuleren huidige lopen tijden dan uitgecommentarieerd of verwijderen van dit stukje van de code.

De volgende fase behandelt knoppen dat, wanneer ingedrukt, zal van invloed zijn op meer dan één steek contactdoos (bijvoorbeeld entertainment of uitschakelen van de TV, Xbox en geluidsinstallatie of alle lichten in-/ uitschakelen). Voor deze hebben u simpelweg meer dan een "switchOnOff" termijn (zie voorbeelden van dit al in de code).

De volgende, iets meer betrokken, sectie is de sectie "run-time". Instellen van timing automations, is een paar meer veranderingen nodig.

Het eerste ding om te doen is te verklaren twee variabelen voordat void(setup): een int die zal fungeren als een Boolean-waarde en een unsigned long die de huidige tijd wordt opgeslagen.

Wanneer een runtime-knop wordt ingedrukt zal je wilt instellen of uitschakelen alles wat je wilt doen aan het begin. Vervolgens moet u de niet-ondertekende instellen lang naar de huidige tijd (in seconden sinds 1 januari 1970), en vervolgens de int op 1 (bijvoorbeeld teethStart = now.unixtime(); en teethActive = 1;).

Wanneer de int == 1 de run-time zal beginnen. De runtime-moet worden opgegeven voordat de sectie waarin u wat er gebeurt zeggen wanneer elke knop is ingedrukt. Begin met een if -instructie controleert om te zien of de int == 1. Zo ja, dan beginnen de run-time (bijvoorbeeld als (teethActive == 1) {}).

De volgende sectie zullen de eerste elementen van de timing. Door het opzetten van als verklaringen met betrekking tot tijd query's kunt u instellen van dingen om te zetten in- en uitschakelen op een bepaald aantal seconden nadat de knop in eerste instantie werd ingedrukt.

Bijvoorbeeld, als je wilt dat iets om te schakelen aan/uit na twee minuten vervolgens de syntaxis is:

Als (teethStart + 120 == now.unixtime()) {}

Dit is eigenlijk het controleren als de huidige tijd is het hetzelfde als de tijd die de knop werd ingedrukt plus 120 seconden.

Aan het einde van een run-time-instructie moet de activering int worden ingesteld op 0, zodat de runtime gecontroleerd wordt niet langer via (waardoor het hele systeem efficiënter).

De actieve int variabele (bijvoorbeeld teethActive) moet worden toegevoegd aan de verklaring van de multiOff.

Er is een ander gedeelte, dat ervoor dat zorgt niet meer dan één runtime-actief kan zijn op een bepaald moment. Het houdt de nieuwste die ingeschakeld worden uitgevoerd.

In deze sectie alle ints van de activering worden opgeteld en als het resultaat groter dan 1 is, meer dan één runtime-gelijktijdig actief is. Als dit het geval dan de tijden waartegen de run-times startten worden vergeleken en de run-time met het grootste aantal (degene die begon afgelopen) actief is gehouden. U zult moeten toevoegen extra run-keer aan dit gedeelte maar kijken naar de code die er al het moet vrij spreekt voor zich.

Gerelateerde Artikelen

Home Automation met behulp van RF-Transceiver met Arduino Micrcontroller

Home Automation met behulp van RF-Transceiver met Arduino Micrcontroller

Dit project laten zien voor het ontwerp en de ontwikkeling van een Home Automation systeem met behulp van RF-Transceiver gecontroleerd door Arduino Micrcontroller. De gebruiker zal verschillende indoor apparatuur zoals bollen, deuren en fans met behu
Compact Home automation Module gebaseerd op Android, Bluetooth en Arduino!

Compact Home automation Module gebaseerd op Android, Bluetooth en Arduino!

Dit Instructable is aan te tonen hoe het bouwen van een compacte Home automation module met behulp van goedkope onderdelen zoals Arduino uno, Relay module, Bluetooth module en die kan worden bediend met behulp van Android telefoon!Maak je geen zorgen
Internet Controlled huis en Robot (Home Automation)

Internet Controlled huis en Robot (Home Automation)

In dit instructable ik zal u vertellen hoe uw hele huis (alle elektrische apparaten) verbinden met internet, zodat u kunt het controleren van uw elke apparatuur overal in de wereldIk heb dit project 3 maanden terug en het draait continu sinds dan zon
Uber Home Automation w / Arduino & Pi

Uber Home Automation w / Arduino & Pi

[BEWERKEN] Ik heb een forum om samen te werken op gateway code.http://homeautomation.proboards.com/Board/2/openha...Een paar jaar geleden, werd ik de hondeigenaar van een voor de eerste keer. Ik hield niet van Cody in de kennel alleen hele dag verlat
Afstandsbediening Home Automation

Afstandsbediening Home Automation

ik wilde om te posten van dit project voor ongeveer 3 jaar nu maar nooit kon vinden de tijd. Oh goed behoeften moeten als de duivel stations zoals ze zeggen, en het is nu hier voor jou. Ik hoop dat het gaat over duidelijk, zo niet laat het me weten e
De Raspberry Pi-Arduino-SignalR Home Automation Hub

De Raspberry Pi-Arduino-SignalR Home Automation Hub

Na een paar van mijn prelude IBLEs gepubliceerd hier en hier, dit project neemt de eerste stap naar het opbouwen van een basisversie van een functionele Home Automation Hub.Ik heb verschillende technologieën gebruikt in een poging om zin van hoe ik k
ESP8266 Home automation deel 1

ESP8266 Home automation deel 1

Iedereen hoorde over Home automation. Het is een interessant thema en velen dachten over het maken van het huis een beetje slimmer. In dit instructable laat ik je mijn manier om uw huis slimmer te maken en wat advies te realiseren het. Ik werk met de
Raspberry Pi stem Recoginition Home Automation

Raspberry Pi stem Recoginition Home Automation

Huis Automatisering of Domotica is een veld gebeurt, eerdere grote namen zoals AMX, CRESTRON, LEGRAND BITICHINO etc waren populaire oplossingsproviders. Een aantal bedrijven hebt laat het rafelen, nu Apple, Samsung & LG ook serieus in huisautomatiser
Start Home Automation: W7500 webserver

Start Home Automation: W7500 webserver

Ik zal WIZwiki-W7500Het is WIZnet en gebruiken interface voor het maken van de webserver maken.U maakt mogelijk Smart Home Automation met behulp van dit projectonderstaande beschrijving is WIZwiki-W7500-Platform voeren.OverzichtWIZnet WIZwiki Platfor
ESP 8266 Wifi gecontroleerd Home Automation

ESP 8266 Wifi gecontroleerd Home Automation

ESP8266 is een groot ding voor het beginnen met Wifi en IOTHet is ook goedkoop en worden gebruikt voor het maken van coole projecten die zijn verbonden met het Internet. Leer hoe te maken van een eenvoudig Project van de IOT mee. De ESP8266 WiFi Modu
Home Automation met behulp van de Arduino Uno

Home Automation met behulp van de Arduino Uno

Ooit wilde maken uw huis geautomatiseerde? Wilde de verlichting, ventilator en andere toestellen van uw smartphone? Of een tutorial over aangesloten apparaten en aan de slag met het gezocht? Android Home Automation zal u tonen hoe te maken van uw hui
Smart Home Automation met Voice command

Smart Home Automation met Voice command

Dit is een stapsgewijze tutorial bouw van het circuit voor 'Smart Home Automation met Voice Command' functie.Download onze gratis Arduino Project Code hier.Vereisten:• Arduino Uno• LED• Weerstand (220 Ohm)• Bluetooth-Module (BlueSmirf / BlueMate Zilv
Home Automation/veiligheid Prototype

Home Automation/veiligheid Prototype

Ik heb gespeeld met micro-controllers voor vrij lang en toen ik mijn vrienden vroeg me tot het nemen van dit project en ik was beetje nerveus omdat werken met individuele huisautomatisering modules is relatief gemakkelijker dan aan de opbouw van een
LinKit one - Home Automation met Bluetooth Controller Android App

LinKit one - Home Automation met Bluetooth Controller Android App

Alle opties zijn voorzien van slimme telefoons. Slimme telefoons maken ons werk zeer gemakkelijk en maakt ons lui. Draai in- en uitschakelen met behulp van slimme telefoon met Blauwe tand huistoestellen is in de markt, maar de kosten hoog. Dus DIY Bl