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

Stap 11: De arduino-code voor uw apparatuur – nieuwe code wijzigen


Deze stap zal omgaan met de nieuwe, nog niet getest, code:

Aan de onderkant van de code vindt u afzonderlijke methoden voor elke switch of licht (bv. keuken, bed, enz.). Wanneer u een nieuw item toevoegt of als u gewoon wilt wijzigen die zijn er al dat dit is het gedeelte dat u zult moeten eerst bewerken. De structuur van een individu aan/uit-methode is:

VOID switchName (boolean op, boolean multioff) {}

De twee Booleans zijn of de schakelaar is ingeschakeld (true) of uit (false) en de tweede is of het een getimede run-keer (om ervoor te zorgen dat dingen niet willekeurig uitschakelen als u klaar bent met een runtimefout vereisen voordat het verwacht dat u worden afgewerkt) moet uitschakelen.

De als verklaring binnen de methode wordt bepaald of de schakelaar is ingeschakeld of uitgeschakeld met behulp van een regel met code waarop op dit lijkt:

setOnOff (x, x, op);

Dit roept een methode genaamd "setOnOff". De code voor dit kan worden gezien naar de onderkant van de schets. Dit zorgt voor het in- en uit de apparaten en voor feedback via de seriële poort. De indeling van de code is:

setOnOff (int group, int stekker, boolean op)

De boolean "on" in elk apparaat methode zegt al of u het op of uit te schakelen wilt zodat u slechts hoeft te wijzigen van de groep en sluit waarden voor elk apparaat. Bijvoorbeeld zou als ik wilde om te schakelen op de stekker 4 in groep 3 dan ik schrijven:

setOnOff (3, 4, op);

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

Dit is de volgende sectie waarin zal moeten worden behandeld.

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

De eerste regel van elke bit 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 bent scheidsrechter opgeven aan. 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 zijn twee berichten dat kunnen worden verzonden (steken met het voorbeeld van de P04 het kunnen ofwel P04H of P04L afhankelijk van de toestand van de knevel is veranderd in) moet er enkele logica voor het verwerken van de twee afzonderlijk. Als ze beide met beginnen P04 bits zinvol is om een tweede genesteld als verklaring.

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 een knop gebruikt in plaats van een knevel kunt u raken van de genesteld als functie als 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. Bijvoorbeeld als u wilt dat de bureaulamp inschakelen u roept u de methode van het "Bureau" en vertellen het gewenste op en dat u wilt dat het uitschakelen van een run-keer dat op dit moment gaat:

Bureau (true, true);

In de instructie "else" wil je Schakel dezelfde schakeloptie en opnieuw voor het annuleren van een run-tijden die momenteel in actie:

Bureau (false, true);

Als u zou liever uitschakelen deze bepaalde knop niet elke run-keer dan de tweede variabele moet worden ingesteld op false (d.w.z. Bureau (true, false); en Bureau (false, false);)

De volgende fase is 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) knoppen. Voor deze eenvoudigweg hebt u meer dan één afzonderlijk apparaat methode aangeroepen (zie voorbeelden van dit al in de code).

De iets meer betrokken gedeelte is het gedeelte "run-time". Instellen van timing automations, is een paar meer veranderingen nodig.

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

Wanneer de 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. Voor de sectie waarin u wat er gebeurt opgeven wanneer elke knop is ingedrukt de runtime-moet worden opgegeven. Start met een if-instructie die controleert 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 in te stellen als kunnen verklaringen waarbij keer dat u een query instellen 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 drie minuten vervolgens de syntaxis is:

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

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

Aan het einde van de instructie in een run-time moet 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 run-tijd niet stil kan worden 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 antwoord groter dan 1 is dan is meer dan één actieve op hetzelfde moment. Als dit het geval dan de tijden waartegen de run-tijden werden gestart worden vergeleken en de runtime met het grootste aantal actieve wordt gehouden. U zult moeten toevoegen extra draaien keer aan dit gedeelte maar kijken naar de code die er al het moet worden komen vrij zelf verklarend.

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