Basic Home Automation met Phidgets (5 / 10 stap)

Stap 5: Informatie over de Code


De code maakt gebruik van ajax en json voor het synchroniseren van de web-interface voor de SBC en mangoeste voor de webserver (zowel de noodzakelijke jquery en mangoeste bronbestanden zijn in de projectmap voor u). Hierdoor kan de webpagina te tonen real-time updates van de SBC zodanig redelijk schoon.

homeAutomation.c is het hart van het, dus laten we beginnen er.

GLOBALS

Zijn de wereldwijde definities aan de bovenkant van het homeAutomation.c-bestand. U moet het serienummer van de SBC u instellen, zet het systeem wachtwoord (de ene gebruikt voor inloggen op de web-interface), de index van de sensoren en de index van het licht bent die u beheert. In dit geval het serienummer is 250000, het wachtwoord is een wachtwoord, de lichtsensor is ingeschakeld ingang 0, de correcte sensor is op ingang 2 en de lamp brandt uitvoer 0.

#define SbcSerial 250000
#define SbcSystemPassword "PASSWORD"
#define LightSensorIndex 0
#define SoundSensorIndex 2
#define Output_Light1Index 0

Als u meer Phidgets toevoegt, kunt u hen toevoegen aan de globale macro's ook.

We ook enkele nummers van de kalibratie en een globale CPhidgetInterfaceKitHandle voor onze Sbc, die wij met de naam McflySbc gemaakt.

Interpretatie van de binnenkomende gegevens en kalibratie

Sommige kalibratie-waarden komen ook boven. De lichtsensor waarden veranderen van Phidget naar Phidget, dus check de sticker op de sensor voor de m en b waarden aangesloten en typ die in.

#define LightCalibrationMValue 1.478777
#define LightCalibrationBValue 33.67076

De functie get_data omgaat met de ajax-gekanaliseerd aanvragen voor berichten, zoals sensor-waardes. Bij het toevoegen van meer sensoren zult u hen in deze code in een ander zet " else if (!strncmp(request_info->query_string, "sound", reqlen))... " als voorwaarde verklaring. U kunt kopiëren en plakken en vervolgens de bestaande bewerken de formule in de binnenste indien verklaring als nodig. Raadpleeg de gebruikershandleiding van het apparaat voor specifieke formules en waarden, maar degene die licht en geluid zijn al gedaan.

Controle van de uitvoer

De functie get_data stuurt berichten naar de SBC te wijzigen van de Staten van uitvoer (zoals het draaien van een licht in- of uitschakelen). Aanvragen komen door Ajax, zoals "light1On" en "light1Off" en de juiste uitgang staat is ingesteld op de SBC. U kan meer lichten in deze mode (ter vervanging van de 1 met oplopende nummers), of iets anders die u wilt controle rond het huis (maar wees voorzichtig met het werken met elektriciteit en zorg ervoor dat u weet wat u doet, of vraag iemand wie doet, voordat het knoeien met elektrische stromen).

Gebeurtenis-Handler

De event_handler verbindt de set_data en get_data functies als Ajax krijgt een send_message of SbcAttach aanvraagt, respectievelijk. Niets te prutsen met hier.

Koppelen van de Interface-Kit

window.onload = function() {stelt de interface kit op de SBC met de ratiometric, wordt de sensor wijzigen trigger ingesteld op 1 voor gekoppelde sensoren en ook de gegevenssnelheid. Als u meer sensoren toevoegen moet u deze toevoegen aan de lijst en de gegevenssnelheid aan iets in de lagere honderden bereik. Bij de ingangen niet in gebruik, hebben wij de gegevenssnelheid ingesteld op 1000ms.

Index.html is het gezicht van het programma... zoals de meeste web-pagina's, weet je hoe het werkt.

We gebruiken jquery en sommige zeer eenvoudige css. De jquery bestand is online beschikbaar en in de bronbestanden voor dit project. Style.CSS is vrij eenvoudig, dus het zal niet hier worden verklaard, maar voel je vrij om te spelen rond met het of gebruik uw eigen stylesheet. U kunt een CSS tutorial over W3 scholen.

Instellen van de Ajax verzoeken

We beginnen met enkele uitgeschakeld waarin het interval voor verzoeken om gegevens van de SBC via Ajax. Alle sensoren zal moeten worden meteen geladen en vervolgens periodiek gecontroleerd. U kunt het instellen van verschillende sensoren hebben verschillende intervallen door persoonsgebonden in verschillende setInterval methoden en de tweede parameter om het aantal milliseconden dat u wilt instellen tussen verzoeken om gegevens te wijzigen. Zorg ervoor dat alle uw sensoren een unieke en beschrijvende naam geven. Merk op dat in dit voorbeeld we zijn ook gaan worden sensing of onze licht gekoppeld aan de SBC in- of uitschakelen is.

We hebben ook elementen met de id's "light1On" en "light1Off" dat, wanneer geklikt, we willen een verzoek via Ajax aan de SBC. Hier stellen we de onclick-functionaliteit. Elk element (knop of afbeelding of wat u wilt ervoor zorgen dat de output wijzigen) moet een eigen unieke en beschrijvende ID.

var turnon1 = document.getElementById("light1On");

var turnoff1 = document.getElementById("light1Off");

turnon1.onclick = function() {

$("light1On").load('/ajax/send_message?light1On');

$("light1On").load('/ajax/return false;?light1On');

}

turnoff1.onclick = function() {

$("light1Off").load('/ajax/send_message?light1Off');

$("light1Off").load('/ajax/return false;?light1Off');

}

}

/ajax/get_data?light

Merk op dat we houden hetzelfde als het bericht dat wordt verzonden via Ajax naar de c programma de naam van de id van het element (zoals "light", "output_light1" en "light1Off"). Dus de id ook aan het einde van de Ajax-aanvraag verschijnt (d.w.z. /ajax//ajax/send_message?light1On?light voor het element "light" en /ajax/else if (else if(!strncmp(request_info->query_string, "[SENSORNAME]", reqlen)?light1On voor het element "light1On"). U kan deze berichten wijzigen en controleer of de variabele aan het eind van de Ajax verzoek overeenkomt met wat er in uw c-programma, maar je kunt je voorstellen hoe verwarrend dit zou krijgen, dus we raden houden ze hetzelfde.

De webpagina Tot slot, het lichaam. De cellen van de tabel waar we de sensor-waardes worden weergegeven wilt krijgen de id's die we alleen gebruikt bij het opzetten van de ajax-verzoeken. Dit maakt het zodat hun inhoud is bijgewerkt met elke nieuwe SbcAttach verzoek, een beetje eerder beschreven.

Ook, kunnen de cellen van de tabel die we willen gebruiken om te bepalen van de lichten die de juiste id's ("light1On" en "light1Off") worden gegeven, zodat wanneer ze worden geklikt de onclick functie de Ajax verzoek stuurt.

U kunt toevoegen meer tabelrijen voor verschillende sensoren, waardoor de cel waar u uw gegevens wilt weergegeven de id die u hebt gekozen (zoals "temperatuur", als je had een temperatuursensor).

Gerelateerde Artikelen

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
Smart Home Automation met Android + Ethernet Internet + Arduino

Smart Home Automation met Android + Ethernet Internet + Arduino

Domotica wordt meer en meer populair, betaalbare en fascineert mensen. Internet biedt dergelijke mogelijkheden als nooit tevoren. Maak indruk op uw vrienden tonen op Smartphone, dat u kunt aan/uit-lamp in uw appartement mijl afstand schakelen en tege
DIY Smart Home Automation met behulp van Android

DIY Smart Home Automation met behulp van Android

Smart Home Automation laat de gebruiker te bepalen van het huis van zijn of haar telefoon en acties die afhankelijk van tijd of andere sensor lezingen zoals licht, temperatuur of geluid vanaf elk apparaat in het netwerk van de Home Automation gebeure
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
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
Procedure: Stem Feedback toevoegen aan uw Home Automation met koppelen een!

Procedure: Stem Feedback toevoegen aan uw Home Automation met koppelen een!

Hallo iedereen,Vandaag zal ik u tonen hoe u stem feedback toevoegt aan uw Home Automation.Dit zal altijd een goede additief aan uw Home Automation Project met Link het één omdat uw Linkit ONE zou een feedback als een "Heb ik draaide op verlichting vo
Home Automation met de controle van de stem van de Echo van de Amazon

Home Automation met de controle van de stem van de Echo van de Amazon

Vorige maand, bracht Amazon de Echo - een kleine cilinder staat voor erkenning van de krachtige stem.De Echo zelf is gesloten bron. Maar zodra u erachter te komen van de Echo geheimen, een ongelooflijk krachtig hulpmiddel voor de controle van de stem
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
Home Automation met HomeGenie

Home Automation met HomeGenie

Dus wilt u stap uw spel Domotica? Zoek niet verder! Veel van ons probeerde huis automatiseren door ad hoc-methode, nu hier is een grote open source systeem dat betrouwbare stichtingen voor uw volgende project geeft.HomeGenie geeft u een webserver voo
Home automation met ATTiny en mobiele telefoon

Home automation met ATTiny en mobiele telefoon

In ons huisje in het bos hebben we niet een betrouwbare internetverbinding. In de winter die het is echt koud wanneer we invoert en het duurt enkele uren voordat het huis opwarmt bij het draaien op de vloer verwarming nadat we komen in.Ik wilde om de
Home Automation met behulp van de Arduino en Bluetooth

Home Automation met behulp van de Arduino en Bluetooth

De "Home Automation System"(HAS) concept bestaat al vele jaren. De termen "Smart Home", "Intelligente huis" gevolgd en is gebruikt om het concept van netwerken toestellen en apparaten in het huisDomoticasysteem is een proces
Home automation met knooppunt js, raspberry pi en heimcontrol

Home automation met knooppunt js, raspberry pi en heimcontrol

In de tutorial zal sudo apt-get update<br> sudo apt-get install git-core git scons build-essential scons libpcre++-dev libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev overzicht van het gebruik van heimcontrol pl
Home Automation met Arduino

Home Automation met Arduino

In dit Instructable zal ik proberen uit te leggen hoe een server voor huisautomatisering die de mogelijkheid heeft om gemeenschappelijke huishoudelijke elektrische artikelen voor tampon ter te een gemeenschappelijk stekkerdoos met 5-weg-240 v wissels
Eenvoudig DIY Home Automation (met behulp van servo schakelaars)

Eenvoudig DIY Home Automation (met behulp van servo schakelaars)

dit Instructable draait een van life's eenvoudige acties, spiegelen van een lichtschakelaar in- en uitschakelen.Bij oomlout doen we het vele malen per dag, zo veel, dat in feite het kwam tot een punt waar wij ons afgevraagd "Kan niet krijgen we een A