Grund Home Automation Mit Phidgets
9 Schritt:Schritt 1: Materialien Schritt 2: Montage Schritt 3: Lichtsteuerung Schritt 4: Anschluss von Sensoren Schritt 5: Entfernen Sie den Code Schritt 6: Montage Schritt 7: Ausführen Schritt 8: Einrichten des Web-Servers Schritt 9: Expansion!
Dieses einfache Projekt führt Sie durch die Grundlagen von immer einige Innenerkundung und Home-Automation-Einrichtung zu nehmen. Das Projekt läuft von einem Phidgets SBC wird Licht zu lesen und Ton und wiederum ein Licht an und aus der Ferne. Sie können dieses Projekt zur Überwachung und Steuerung Ihres Hauses, sondern davor, zu wortreich zu halten wirklich wachsen, zeigt dieser nur ein paar Beispiele um Ihnen den Einstieg.
Schritt 1: Materialien
-
a 1073 Phidgets SBC3 mit 2m Netzwerkkabel (Cat 5e) und Netzteil Optional - eine 3703 WLAN USB Adapter (Sie werden diese benötigen, wenn Sie nicht in der Lage sein, mit einem Router oder einem Ethernet-Anschluss in der Wand zu verbinden) a 3051_1 Dual-Relais-Board und ein Sensorkabel 1133 Phidgets Sound-Sensor und Sensorkabel ein 1142 Phidgets Indoor Light Sensor - 1000 Lux und Sensorkabel eine geeignete Größe aus Holz (oder Metall) Platte zur Montage - ein 8 "x 12" Bord sollte ausreichend sein, - verwendeten wir eine 20 "x 10 ½" Brett, was mehr als genug 16 M3 Schraube und Mutter Paare, ⅝ "lang und 16 Kunststoff-Abstandhalter, ¼" lang, die mit allen Phidgets verpackt kommen sollte war. eine Stromleiste oder ein Verlängerungskabel ein Stück Draht eine Lampe exacto Messer Drahtschneider
Schritt 2: Montage
-
Um zu beginnen, erhalten eine Platte aus Holz oder Metall in der ungefähren Größe, die Sie möchten Ihrem Panel und montieren Sie die SBC, Schallsensor und Innenlichtsensor, um es. Wenn Sie schließlich fügen Sie mehr Sensoren möchten, bereiten eine größere Bord, so dass Sie Platz für alles, montieren müssen. Verwenden Sie die Abstandshalter mit allen Phidgets versehen, so dass ein ausreichender Abstand zwischen der Phidget und der Oberfläche der Platte. Dies ist besonders wichtig, wenn Sie machen Ihrem Panel sind aus Metall; Wenn die Elektronik berühren Sie das Bedienfeld sind Sie verpflichtet, zahlreiche Kurzschluss haben.
Schritt 3: Lichtsteuerung
-
Für das Licht, abgesehen gehackt wir das Kabel eines Strom bar. Ein Verlängerungskabel wird auf die gleiche Weise arbeiten, so können Sie das stattdessen benutzen. Während die Macht bar ausgesteckt, Streifen der äußeren Beschichtung aus etwa 6-Zoll der Schnur aus der Stromschiene kommen. Es gibt drei Drähte (schwarz ist die Last, Weiß ist neutral und grün gemahlen). Wir wollen mit der Lastleitung arbeiten, so schneiden Sie den schwarzen Draht und Band nur ein ⅛ Zoll von den Enden zu Kupferdraht zu offenbaren.
Verbinden Sie einen der schwarzen Drahtenden abisoliert auf 0 ° C (0 ist häufig) und das andere Ende an NO (Schließer) auf dem Dual-Relaiskarte.
[Edit: Ein Leser vorgeschlagen Zugabe eine Sicherung in Reihe mit dem Ausgang des Relais. Wählen Sie eine Sicherung, die gleich oder niedriger auf die Schaltleistung des Relais bewertet ist. Ein sehr guter Vorschlag!]
Verbinden Sie den Dual-Relais-Board an den SBC: Schließen Sie Steuerung 0 auf dem Dual-Relaiskarte zur digitalen Ausgang 0 auf dem SBC mit einem Stück Draht (die Anzahl Korrelation ist willkürlich und wir konnten diesen Draht an einen digitalen Ausgang zu verbinden). Schließen Sie das Sensorkabel an Analogeingang 4 (dies ist nur für die Leistung).
Schließen Sie alle Standard-Lampe, die Sie in die vorbereitete Powerriegel oder ein Verlängerungskabel steuern möchten. Stellen Sie sicher, Schalter des Lichts ist in der Position "Ein".
Selbstverständlich können Sie andere Dinge in die Netzleiste setzen, aber sie wird nur funktionieren, wenn der Strom eingeschaltet ist (wie in, ist der Digitalausgang 0 auf dem SBC auf). Verschiedene Elektronikfunktion unterschiedlich, so dass es nur bedeuten kann Energie an sie gehen, aber nicht einschalten. Lichter sind ziemlich einfach, so dass sie gut funktionieren. Außerdem werden Sie nicht in der Lage, jedes Gerät einzeln zu steuern. Sie könnten den Prozess mit einem anderen Kabel wiederholen und fügen Sie es in ähnlicher Weise auf die andere Steuerung auf der Dual-Relaiskarte.
Schritt 4: Anschluss von Sensoren
Schritt 5: Entfernen Sie den Code
-
Der Code verwendet Ajax und JSON für die Synchronisierung des Web-Interface an den SBC und Mungo für den Web-Server (sowohl die notwendigen jquery und Mungo-Quelldateien sind im Projektordner für Sie). Dies ermöglicht die Webseite, um Echtzeit-Updates von der SBC in einem ziemlich saubere Art und Weise zu zeigen.
homeAutomation.c ist das Herz von ihm, also lassen Sie es starten.
Globals
An der Oberseite des homeAutomation.c Datei sind die globalen Definitionen. Sie müssen die Seriennummer des SBC Sie verwenden, in das System-Passwort setzen (die man für die Anmeldung am Web-Interface verwendet wird), den Index der Sensoren und den Index des Licht Sie Steuerung sind eingestellt. In diesem Fall ist die Seriennummer 250000, das Passwort password, der Lichtsensor an Eingang 0, der Sound Sensor auf Eingang 2 und die Lampe leuchtet, Ausgang 0.#define SbcSerial 250000
#define SbcSystemPassword "PASSWORD"
#define LightSensorIndex 0
#define SoundSensorIndex 2
#define Output_Light1Index 0
Wie Sie mehr Phidgets hinzuzufügen, können Sie sie zu den globalen Makros sowie hinzuzufügen.
Wir haben auch einige Kalibrierungsnummern und erstellt eine globale CPhidgetInterfaceKitHandle für unsere Sbc, die wir mit dem Namen McflySbc.
Interpretieren der eingehenden Daten und Kalibrierung
Einige der Eichwerte werden auch oben setzen. Werte des Lichtsensors zu ändern, um so von Phidget Phidget überprüfen Sie den Aufkleber auf den Sensor für die m und b-Werte gebunden und geben Sie den in.#define LightCalibrationMValue 1.478777
#define LightCalibrationBValue 33.67076
Die Funktionget_data
behandelt die ajax-kanalisiert Anfragen für Nachrichten, wie Sensorwerte. Beim Hinzufügen von mehreren Sensoren werden Sie sie in diesen Code in einem anderen setzen "else if (!strncmp(request_info->query_string, "sound", reqlen))...
"wie Bedingungsanweisung. Sie kopieren die bestehenden und die Formel in der inneren if-Anweisung nach Bedarf bearbeiten. Überprüfen Sie die Bedienungsanleitung des Geräts nach bestimmten Formeln und Werte, aber die Licht- und Sound diejenigen sind bereits getan.
Steuern der Ausgabe
Die Funktion set_data sendet Nachrichten an den SBC, um die Ausgangszustände (wie Drehen ein Licht an oder aus) zu ändern. Anfragen kommen durch Ajax, wie "light1On" und "light1Off" und die entsprechende Ausgangszustand wird auf der SBC gesetzt. Sie könnten mehr Licht auf diese Weise zu verbinden (Ersetzen der 1 mit aufsteigenden Nummern), oder etwas anderes, die Sie rund um das Haus steuern wollen (aber seien Sie vorsichtig beim Umgang mit Strom und stellen Sie sicher wissen, was du tust, oder bitten Sie jemanden, tut, bevor Unordnung mit elektrischen Strömen).
Event Handler
Die event_handler verbindet dieget_data
undset_data
Funktionen bei Ajax bekommt einenget_data
odersend_message
Anfrage auf. Nichts Kampf mit hier.
Anbringen des Interface Kit
SbcAttach
stellt die Schnittstellen-Kit auf der SBC mit dem ratiometrischen auf, setzt den Sensorwechsel Trigger für 1 angeschlossenen Sensoren und der Datenrate als auch. Wie Sie weitere Sensoren hinzufügen, die Sie benötigen, um sie zur Liste hinzuzufügen und setzen Sie die Datenrate, etwas in die untere hunderte reichen. Für die Eingänge nicht verwendet, haben wir die Datenrate auf 1000 ms eingestellt.
Index.html ist das Gesicht des Programms ... wie die meisten Internetseiten, wissen Sie, wie es funktioniert.
Wir verwenden jQuery und einige sehr einfache css. Die jQuery-Datei ist online verfügbar und in den Quelldateien für dieses Projekt. style.css ist ziemlich einfach, so dass es nicht hier, erklärt aber das Gefühl frei zu spielen, um mit ihm oder verwenden Sie Ihre eigenen Stylesheet. Sie können sich eine CSS Tutorial auf W3 Schools .
Einrichten des Ajax Requests
Wir beginnen mit einigen javascript, die das Intervall für die Datenanforderungen des SBC durch Ajax setzt. Alle Sensoren müssen direkt geladen werden und dann in regelmäßigen Abständen überprüft. Sie können verschiedene Sensoren eingestellt, um verschiedene Intervalle, indem man sie in verschiedenen setInterval Methoden und Ändern der zweite Parameter, um die Anzahl der Millisekunden Sie zwischen Datenanforderungen wollen haben. Achten Sie darauf, alle Ihre Sensoren geben einen einzigartigen und aussagekräftigen Namen. Beachten Sie, dass in diesem Beispiel werden wir auch Erkundung, ob unser Licht zu dem SBC angeschlossenen ein- oder ausgeschaltet sein.
Wir haben auch Elemente mit den IDs "light1On" und "light1Off", dass, wenn sie angeklickt, auf Anfrage durch Ajax auf die SBC senden wollen wir. Wir setzen den onclick Funktionalität hier. Jedes Element (Schaltfläche oder ein Bild oder was auch immer Sie bewirken, dass der Ausgang geändert werden soll) muss seine eigene einzigartige und beschreibenden ID.window.onload = function() {
var turnon1 = document.getElementById("light1On");
var turnoff1 = document.getElementById("light1Off");
turnon1.onclick = function() {
$("light1On").load('/ajax/send_message?light1On');
return false;
}
turnoff1.onclick = function() {
$("light1Off").load('/ajax/send_message?light1Off');
return false;
}
}
Beachten Sie, dass wir die id Namen des Elements (wie "leicht", "output_light1" und "light1Off") die gleiche wie die Nachricht, die über Ajax in die c-Programm gesendet wird. So erscheint die ID auch am Ende des Ajax-Request (dh/ajax/get_data?light
für die "light" Element und/ajax/send_message?light1On
für die "light1On" Element). Sie könnten diese Meldungen zu ändern, und dann sicherstellen, dass die Variable am Ende der Ajax-Request übereinstimmt, was in Ihrem C-Programm, aber Sie können sich vorstellen, wie verwirrend das wäre zu bekommen, so dass wir empfehlen, halten sie das gleiche.
Die Webpage Schließlich wird der Körper. Die Tabellenzellen, wo wir wollen, dass die Sensorwerte, die angezeigt werden sind die IDs wir gerade bei der Einrichtung der AJAX-Anfragen verwendet gegeben. Das macht es so, dass ihr Inhalt wird mit jedem neuen get_data Anfrage aktualisiert, beschrieb ein bisschen früher.
Auch werden die Tabellenzellen, die wir verwenden, um die Beleuchtung steuern möchten die entsprechenden IDs ("light1On" und "light1Off") gegeben, so dass, wenn sie angeklickt die onclick-Funktion sendet die Ajax-Anfrage.
Sie können mehrere Tabellenzeilen für verschiedene Sensoren hinzufügen, so dass die Zelle, in die Sie Ihre Daten angezeigt, die Sie gewählt haben id (wie "Temperatur", wenn Sie hatte einen Temperatursensor) möchten.
Zusammenfassend, wenn Sie die Phidgets eingerichtet haben genau so, wie in den Anweisungen geleitet, ist alles, was Sie tun müssen:- In homeAutomation.c, stellen Sie die Seriennummer und das Kennwort für Ihren SBC Stellen Sie die Kalibrierungsmessungen von Ihnen Lichtsensor.
Wenn Sie Ihre eigenen Sensor hinzufügen wollen ist hier, was Sie brauchen, um zu ändern:- Set globalen Makros in der homeAutomation.c Datei, so dass jeder Sensor eine globale Namen und die Zuweisung der richtigen Sensoreingangsnummer. Fügen Sie den Sensor in get_data durch Kopieren eines anderen Sensors
else if (else if(!strncmp(request_info->query_string, "[SENSORNAME]", reqlen)
und so weiter ....) und die Änderung der Formel pro Ihre Phidget Angaben. ImSbcAttach
Funktion , stellen Sie die Sensorwechsel Trigger auf 1, die Datenrate zu einer akzeptablen Geschwindigkeit und entfernen Sie die Eingabe von dem unbenutzten Eingänge Liste. In index.html fügen Sie eine Zeile, um die Daten sofort zu laden($("#[SENSORNAME]").load('/ajax/get_data?[SENSORNAME]);
. Auch in index.html, in setInterval, fügen Sie diese Zeile erneut, so dass der Sensor wird immer wieder für Daten abgefragt Fügen Sie eine Tabellenzeile, und legen Sie die zweite Spalte Zelle zu haben, die [ Sensorname] als id,(<div id=”[SENSORNAME]”>Please Wait…</div>)
Für ein neues Ausgabegerät (erinnern wir beide Blick auf den Status, als eine Eingabe, und wir sind Setzen des Zustands)- Set globalen Makros in der homeAutomation.c Datei, so dass jeder Ausgang einen globalen Namen und Zuweisung der richtigen Ausgangsnummer. Fügen Sie den Phidget in get_data durch Kopieren eines anderen Ausgabe
else if (else if(!strncmp(request_info->query_string, "[OUTPUTNAME]", reqlen)
und so weiter ....) und die Änderung der Variablen entsprechend. Fügen Sie die Phidget in set_data durch Kopieren eines anderen Phidgetelse if (else if(!strncmp(request_info->query_string, "[OUTPUTCOMMAND]", reqlen)
und so weiter ....) und die Änderung der setOutputState Funktion für die Phidget Sie steuern sind und den Stand Sie in möchten. In index.html fügen Sie eine Zeile, um die Daten sofort zu laden($("#[OUTPUTNAME]").load('/ajax/get_data?[OUTPUTNAME]);
Auch in index.html, in setInterval, fügen Sie diese Zeile erneut so dass der Sensor hält für Daten abgefragt. Bei dem Verfahren nach window.onload, zwei neue Variablen zur Steuerung Drehen des Phidget ein und aus. Kopieren Sie die onclick Methoden, die Änderung der OUTPUTCOMMAND wie nötig.(VARIABLE.onclick = function() { $("OUTPUTCOMAND").load('/ajax/send_message?OUTPUTCOMMAND)
... etc.) Fügen Sie eine Tabellenzeile, und legen Sie die zweite Spalte Zelle, um die [OUTPUTCOMMAND] als seine ID haben(<div id=”[OUTPUTCOMMAND]”>Please Wait…</div>)
Schritt 6: Montage
-
Wählen Sie einen Ort, der eine relativ klare Sicht auf den Raum, den Sie überwachen hat und ist auch nah genug an einer Steckdose zum Einstecken in der SBC Stromversorgung. In diesem Beispiel haben wir eine Internet-Kabelverbindung durch eine Wand-Anschluss, weil es ein in der Nähe, aber Sie erhalten auch könnte ein WLAN-USB-Adapter, die reibungslos auf der SBC läuft und führt wie die Kabelverbindung.
Keeping Verkabelung kurz und ordentlich ist ein guter Weg, um Fehlerquellen zu reduzieren und die Dinge schauen vorzeigbar. Wenn Sie gehen, um durch die Wand laufen Kabel ist es eine gute Idee, ein Loch in der Wand hinter dem angestrebten Schalttafeleinbau Lage und die entsprechende Stelle auf der Platte zu bohren. Dies ermöglicht es Ihnen, die Kabel durch die Platte laufen, in die Wand und wird letztlich zu verstecken etwas von der Verdrahtung.
Schritt 7: Ausführen
-
Wenn Sie es noch nicht getan haben, und Sie neu in Zusammenarbeit mit einem SBC sind, beobachten Sie die " Erste Schritte mit A Phidgets SBC Started Video "oder über das lesen 1073 Benutzerhandbuch auf phidgets.com. Diese Anweisungen gehen davon du mit dem SBC-Web-Oberfläche vertraut sind
Nachdem Sie die entsprechenden Änderungen an den Dateien, laden Sie die Dateien auf die Homeautomation SBC als neues Projekt, nennen wir es Homeautomation. Sie können dies durch ssh mit dem Befehl scp zu tun, wenn Sie mit Linux vertraut sind. Beispielsweise 'scp -r [PATH-TO-FOLDER]/homeAutomation [email protected] :/usr/userapps/
scp -r [PATH-TO-FOLDER]/homeAutomation [email protected] :/usr/userapps/
'. Oder Sie tun können, es mit Datei mit dem Web-Interface, das für Anfänger empfohlen wird Datei.
Eine Verbindung mit der SBC via ssh mit seinen Hostnamen oder IP-Adresse (zB ssh [email protected] ). Sie können diese unter Verwendung von PuTTY unter Windows oder das Terminal applicatin unter Linux oder Mac OS X. Sie unbedingt die aktiviert haben SSH-Server in den Netzwerkeinstellungen .
Navigieren Sie zu dem Ordner, in dem Makefile ist:cd /usr/userapps/homeautomation
Kompilieren Sie den Code:make -f Makefile
Zum SBC Web-Interface. Zum Projekte und klicken Sie auf die Home-Automation-Projekt. In Starteinstellungen, wählen Sie die Homeautomation ausführbare Datei und setzen Sie ihn auf aktiviert. Änderungen speichern.
Es wird nun ein Start-Taste an der Spitze sein. Wenn Sie darauf klicken, sollte das Programm laufen zu starten. Rufen Sie http: //mcflysbc.local: 8000 (Sie benötigen, um mcflysbc mit welchem Namen auch immer y hr habt, um Ihre Sbc gegeben ersetzen), um die Eingabe zu sehen und steuern das Licht.
Schritt 8: Einrichten des Web-Servers
-
Sobald Sie Ihr Programm hochgeladen haben, es kompiliert und getestet, indem Sie auf Ihrer lokalen Website (beispielsweise http: //mcflysbc.local: 8000), müssen Sie die Ports durch den Router zu übermitteln, damit Sie es sehen können überall im Web, und Sie werden wahrscheinlich wollen, um Ihre eigenen Domain-Namen, so dass Sie nicht haben, um ein Gerangel von Zahlen erinnern.
Vor dem Start der Website, werden Sie wahrscheinlich wollen, stimmen Sie Ihr Programm, um nur die Daten, die Sie jemand sehen wollen, zu zeigen. Zurück zum einfachen Heimautomatisierung Führung , um die Details zu dem Bearbeiten der Code. Für mich ersetzte ich den Relaisschalter mit einer LED. Ich möchte immer noch sie interaktiv sein, aber nicht über mein Zimmer Lichter ein- und ausschalten mit wilden aufzugeben.
Finden Sie Ihr SBC IP Address
Melden Sie sich bei Ihrer SBC Web-Konfiguration und gehen Sie zu der Seite Netzwerk. Die IP-Adresse wird natürlich dort angezeigt werden.
Portweiterleitung auf Ihrem Router
Öffnen Einstellungsseite des Routers. : Dies kann durch eine der folgenden Adressen abrufen http://192.168.1.1, http://192.168.1.1, http://192.168.2.1, oder in der Bedienungsanleitung Ihres Routers angegebene Adresse.
Finden Sie die Port-Weiterleitung. Jeder Router ist anders, so ist es schwer zu sagen, wo es wird für Ihr Gerät gestellt werden. Sobald Sie es finden, ermöglichen eine neue Port-Weiterleitung. Stellen Sie den internen Start-Port und End-Port auf 8000; die externen Start-Port und End-Port auf 80; Protokoll TCP ist; und die IP-Adresse wird die IP-Adresse Ihres SBC sein.
Holen Sie sich eine Domain
Sie können eine Domäne von Seiten wie Hover, Namecheap, Gandi, Dreamhost, Name.com oder GoDaddy erwerben. Wenn Sie nicht wollen, um zu bezahlen, und nicht eine Erweiterung auf Ihrer Domain (wie ddns.com) dagegen, dann verwenden Sie einen Dienst wie No-IP. Einrichten der Domäne als DNS-Host und geben Sie die IP-Adresse des SBC, die Sie im letzten Schritt gefunden.
Jetzt können Sie Ihre URL gehen und überwachen Sie Ihre aus, wo immer Sie sind.
Schritt 9: Expansion!
-
Weiter oben, Sie Diagramme der gesammelten und schauen Sie sich die Trends im Laufe des Jahres schauen Daten halten können. Sie können auch den Server wechseln Sie zu einem World Wide Web-Adresse, so dass Sie es überall zugreifen können. Der SBC unterstützt alle USB Video Class (UVC) Webcam , so können Sie das auch einzurichten.
Sie können alle möglichen Dinge mit Sensoren zu tun:
Detect motion Temperatur und Feuchte-Monitor von Gewächshauspflanzen, Garagen oder irgendetwas Verfolgen Sie offene und geschlossene Türen (mit Magnetsensoren ) Monitor liefert wie Toilettenpapier oder Wäsche (mit Wägezellen , die als eine Skala) Spannungs- und Stromsensoren zur Messung der Leistung Ihres Hauses Verbrauch
Und steuern eine Reihe von Dingen:
Motoren , die mit einem öffnen und schließen Jalousien Programm IR-Sender an Fernseher oder Stereoanlagen Bei manchen Tierfutteranlagen, Motoren und cleveren Designs zu steuern, können Sie einen Teil der Nahrung für Ihr Haustier fallen könnte, wann immer Sie wollen Fancy LED-Anordnungen , um eine coole Tanzparty passieren an der Knopfdruck Und vieles mehr
Denken Sie daran, vorsichtig zu sein bei der Einrichtung ferngesteuerten Geräte! Testen Sie alles gründlich, und denken Sie daran, dass Haustiere brauchen mehr als nur Essen (sie brauchen Liebe, auch), so sie nicht das Haus verlassen, allein für längere Zeit.