22.05.2014 Aufrufe

Projektbeschreibung als PDF - Photonik Campus

Projektbeschreibung als PDF - Photonik Campus

Projektbeschreibung als PDF - Photonik Campus

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Make Light-Wettbewerb 2013 „Intelligentes Licht“<br />

ElectricImp Cloud Moodlamp<br />

Kurzbeschreibung<br />

Die „Electric Imp Moodlamp“ ist eine High Power RGB LED- Lampe die per HTTP-<br />

Schnittstellen über den Cloud- basierten Mikrokontroller Electric IMP<br />

angesprochen werden kann. Ein Arduino Mikrokontroller steuert letztendlich die<br />

RGB- LEDs.<br />

Die Lampe lässt sich per iOS (App. NetIO Controller von David Eickhoff) bedienen.<br />

Zusätzlich kann die Lampe sich an vorhandene Philips Hue Lampen „anbinden“<br />

und lässt sich somit über die offizielle Philips Hue App steuern. Als zusätzliche<br />

Features zeigt die Moodlamp den aktuellen Fuel- Status meines Nike Fuelbands<br />

und das aktuelle Wetter an.<br />

Bild deines Projektes<br />

Füge hier das Bild deines Projektes ein, das du auch hochladen willst.


Make Light-Wettbewerb 2013 „Intelligentes Licht“<br />

Factsheet – Materialliste – Kosten – Links<br />

Material:<br />

- Arduino UNO ca. - 20€<br />

- ElectricIMP + IMPShield - 51€<br />

- Powerled 3*1 Watt RGB – 11€<br />

- Lampengehäuse (meins war ein Geschenk)<br />

- 3 x 1.4 Ohm Widerstand 0.5W min, eher mehr – 4€<br />

- 3 x Mosfet N-Kanal Fairchild FQP50N06L – 5€<br />

- 3 X 100k Ohm Widerstand 1/4 Watt – 2€<br />

- 3 X NPN Transistor Fairchild 2N5088BU 4<br />

- Platinen Abstandshalter – 1.50€<br />

- Platinenanschlussklemme 1€<br />

- Stiftleisten 1€<br />

- Netzteil 1500mAh– 15€<br />

- Kühlkörper 2€<br />

- Lochrasterplatine ca. 3€<br />

- AKASA WÄRMELEITPAD 80X80MM -2.50€<br />

-<br />

Was „kann“ dein Projekt eigentlich?<br />

- Meine ElectricMoodlamp reagiert auf Dinge die im Internet passieren.<br />

Elementar dafür ist der Cloud- basierte Mikrocontroller „Electric Imp“<br />

http://electricimp.com<br />

- Die Bedienung erfolgt über die App „NetIO“ von David Eickhoff,<br />

(http://netio.davideickhoff.de )über http- Schnittstellen.<br />

Mithilfe von NetIo kann man seine eigene Benutzerobefläche in Form eines<br />

Baukastens entwerfen. sämtliche Buttons, Textfelder, Schieberegler usw.<br />

können z.B. per http- Protokoll konfiguriert und angebunden werden. Somit<br />

entfällt die Entwicklung einer eigenen App.<br />

- Meine Electric Imp Moodlamp kann sich mit vorhandenen Philips- Hue<br />

Glühbirnen synchronisieren. Somit lässt sich die Moodlamp auch per<br />

PhilipsHue App steuern. https://www.meethue.com<br />

- Für die aktuelle Temperatur lässt sich ein Alarm einschalten. Wenn die<br />

Temperatur im Bereich von drei Grad Celsius nach der letzten Messung<br />

steigt oder sinkt, wird die Temperatur per Farbe im Bereich von blau -><br />

grün -> gelb -> rot angezeigt. Die Wetterdaten kommen von<br />

http://www.openweathermap.com und können im ElectricImp Quellcode<br />

auf den eigenen Standort angepasst werden.<br />

- Zusätzlich lässt sich der aktuelle Fuel- Point Status von Nike.com abrufen.<br />

Die Lampe zeigt den Fuel Status im Bereich von rot -> gelb -> grün an und


Make Light-Wettbewerb 2013 „Intelligentes Licht“<br />

verhält sich genauso von der Darstellung wie das Nike Fuelband.<br />

http://www.nike.com/cdp/fuelband/us/en_us/<br />

Was braucht man dafür?<br />

- Zu der o.g. Teileliste ist ein lokaler Webserver erforderlich, der alle<br />

benötigten HTML-/ PHP-/ Javascript- Dateien bereithält. Vor allem die<br />

Philips –Hue Anbindung sollte lokal, zu Hause erfolgen, da die Hue<br />

Basisstation keine Passwortautorisierung unterstützt. Die Skripte<br />

kommunizieren mit ElectricImp/ Philips Hue lokaler Basisstation/<br />

Openweathermap/ NetIO/ Nike.<br />

Ich habe <strong>als</strong> Webserver eine NSLU2 basierend auf Debian im Einsatz,<br />

welche über DynDNS aus dem Internet erreichbar ist.<br />

Die NSLU2 werde ich demnächst gegen ein Raspberry Pi austauschen, da<br />

dieser mehr Leistung besitzt und genauso stromsparend ist.<br />

- Eine Lötstation und Löterfahrung<br />

- Ein Lampengehäuse. Mein Gehäuse ist fertig gekauft bzw. war ein<br />

Geburtstagsgeschenk. Eigentlich sollte es eine Kerzenlampe sein. Für die<br />

Elektronik habe ich einen Acrylzylinder benutzt, da dieser perfekt mit dem<br />

Lampengehäuse zusammen passt, erhältlich z.B. hier:<br />

http://www.acrylformen.de/shop/de/Acryl-/-Plexiglas-Rohr/Plexiglasrohr-<br />

AD90-mm<br />

Alternativ hätte ich mir entweder ein eigenes Gehäuse gebaut oder auch die<br />

Lampe „Lampan“ von Ikea gekauft:<br />

http://www.ikea.com/de/de/catalog/products/10096097/ - /20046988<br />

Den Platinenaufbau muss man dann natürlich etwas anders gestalten.<br />

Was kostet das?<br />

- Für alles zusammen habe ich ca. 120€ ausgegeben.<br />

Bauanleitung – Step by Step<br />

Das LED-­‐ Driver-­‐ Shield <br />

Für High Power LEDs benötigt man eine eigene Spannungsversorgung. Der<br />

Schaltplan und Beitrag von http://www.instructables.com/id/Circuits-for-using-<br />

High-Power-LED-s/?ALLSTEPS hat mir hier sehr geholfen.


Make Light-Wettbewerb 2013 „Intelligentes Licht“<br />

Ich habe die Platine ausschließlich nach folgender Zeichnung, welcher aus der o.g.<br />

Quelle stammt, aufgebaut: (Hier sind drei LEDs an einem Treiber angeschlossen,<br />

für meine RGB- LEDs habe ich natürlich für jede einzelne Farbe einen eigenen<br />

Schaltkreis aufgebaut)<br />

Funktionsweise <br />

Strom (12V) fließt durch die LEDs (RGB) über das Mosfet Q2 und den Widerstand<br />

R3. Wenn zu viel Strom durch R3 fließt, schaltet der Transistor Q1, Q1 schaltet<br />

wiederum das Mosfet Q2 ab. Dadurch reduziert Q2 die Spannung für die LEDs und<br />

den Widerstand R3. So entsteht eine Schleife wodurch die Spannung der LED<br />

gleichbleibend bleibt. Wichtig ist hier die Größe des Widerstands R3. In meinem<br />

Fall 1.4 Ohm. Da die Belastung hoch ist, habe ich 1Watt Widerstände benutzt (siehe<br />

Teileliste).<br />

Der Widerstand R1 sind 100k Ohm


Make Light-Wettbewerb 2013 „Intelligentes Licht“<br />

Die Berechnung ist relativ einfach:<br />

Pro RGB- Kanal wird eine solche Schaltung benötigt. Laut Datenblatt meiner RGB-<br />

LED kann jede der drei LEDs 350mA Flussstrom vertragen.<br />

Formel: 0.5A/Flussstrom = Widerstand (500mA/350mA=1.43 Ohm)<br />

Ab 500mA schaltet Q1, daher diese Größe.<br />

Für die Berechnung der Widerstände habe ich folgenden Blogpost herangezogen,<br />

welcher mir sehr geholfen hat:<br />

„The main current flow is through the LED's, through Q2, and through R3. When<br />

too much current flows through R3, Q1 will start to turn on, which starts turning<br />

off Q2. Turning off Q2 reduces the current through the LED's and R3. So we've<br />

created a "feedback loop", which continuously monitors the LED current and keeps<br />

it exactly at the set point at all times. transistors are clever, huh!“ Quelle:<br />

http://www.instructables.com/id/Circuits-for-using-High-Power-LEDs/?ALLSTEPS<br />

http://www.tbideas.com/blog/build-an-arduino-shield-to-drive-high-power-rgbled/<br />

Hier der Aufbau meiner fertigen LED- Treiberplatine:


Make Light-Wettbewerb 2013 „Intelligentes Licht“


Make Light-Wettbewerb 2013 „Intelligentes Licht“<br />

Die Verbindungen habe ich einfach mit Lötzinn erstellt.<br />

Zur Verbindung des LED- Driver- Shields habe ich Steckbrücken eingelötet, damit<br />

die Platine <strong>als</strong> Shield aufgesteckt werden kann. Die direkten Verbindungen zum<br />

Arduino- Board sind die 5V und die Ground- Leitung. 5Volt sind über R1 mit dem<br />

Transistor und dem Mosfet verbunden.<br />

Und natürlich werden sämtliche Pins durch die Steckbrücken durch das IMP zum<br />

LED Driver- Shield durchgeleitet.<br />

Die Platine sitzt <strong>als</strong> Shield auf dem ElectricImpShield, welches wiederum auf dem<br />

Arduino- Board gesteckt ist:


Make Light-Wettbewerb 2013 „Intelligentes Licht“<br />

Die RGB-LED Einheit habe ich mit Anschlussklemmen auf die Pins 11 (rot),<br />

10(grün), 3 (blau) gelegt. Die Pins müssen PWM- Pins sein! Daher die o.g.<br />

Belegung.<br />

Die Spannungsversorgung entnehme ich aus einem 1500mAh Universal- Netzteil,<br />

welches auf 12V eingestellt ist. Das Arduino- Board kann ebenfalls über diese 12<br />

Volt Spannungsquelle betrieben werden.<br />

Die Spannungsversorgung meines LED Driver- Shields habe ich von der<br />

Strombuchse des Arduino abgegriffen, in dem ich die Plus/Minus- Leitungen direkt<br />

an die Lötpunkte der Buchse aufgelötet habe.<br />

Den Schaltplan habe ich ausschließlich nachdem o.g. Instructables- Beitrag<br />

aufgebaut, daher habe ich auf eine eigene Zeichnung hier bewusst verzichtet.


Make Light-Wettbewerb 2013 „Intelligentes Licht“<br />

Software <br />

Alle Dateien findet man hier:<br />

https://github.com/andstdout/ElectricImp--Arduino-cloud-based-Mood-Lamp<br />

Installation und Anpassung <br />

Den Webspace am Besten mittels .htaccess schützen, dafür bin ich nach folgender<br />

Anleitung vorgegangen:<br />

http://uberspace.de/dokuwiki/webserver:htaccess<br />

Nachdem der Webspace geschützt ist, können die Dateien hochgeladen werden.<br />

In folgenden Skripten muss der ElectricImp API- Key eingetragen werden, es geht<br />

auch bestimmt eleganter, aber leider habe ich in Kürze der Zeit keine Config-<br />

Datei- Implementierung realisieren können, wo dies global eingestellt werden<br />

kann.:<br />

Beispiel:


Make Light-Wettbewerb 2013 „Intelligentes Licht“<br />

Der Ordner HTML sollte nach HSL (HueSaturationLigthness) umbenannt werden,<br />

dann muss im Quellcode nicht zu viel angepasst werden.<br />

Meine Ordnerstruktur auf dem Webserver sieht folgendermaßen aus:<br />

/var/www/HSL<br />

Hier werden die Nike.com Zugangsdaten eingetragen:<br />

Im Electric-Imp Agent- Code müssen folgende Zeilen angepasst werden:<br />

- Der Webserver<br />

- Zugangscode für den Webserver (.htaccess)<br />

- Ort für die Wetterdaten<br />

Die Philips Hue Configuration findet hier statt:


Make Light-Wettbewerb 2013 „Intelligentes Licht“<br />

Für das Philips Hue System ist es erforderlich einen eigenen Benutzer auf der<br />

Basisstation anzulegen, hierfür nach dieser Anleitung von Philips vorgehen:<br />

http://developers.meethue.com/gettingstarted.html<br />

Damit man die App NetIO- Controller benutzen kann, muss diese vorher im<br />

AppStore gekauft werden:<br />

http://itunes.apple.com/app/netio/id464924297?mt=8<br />

Die Konfiguration kann man dann über die Website<br />

http://netio.davideickhoff.de/editor online anpassen oder meine vorgefertigte<br />

Konfiguration verwenden, bzw. <strong>als</strong> Vorlage benutzen:<br />

Am Besten die Datei im Texteditor öffnen und per Suchen/ Ersetzen nach<br />

„Username“, Password, IMPAPI, WEBSERVER suchen und entsprechend auf die<br />

eigenen Werte ändern. Der Username bezieht sich auf den Benutzer/ Passwort<br />

des Webservers (htaccess). IMPAPI ist der ElectricImp Key. Der Webserver der<br />

eigene Webserver.<br />

Zum Schluss noch den Arduino Sketch auf das Arduino Board hochladen.<br />

Referenzen<br />

Verwendete Quellen:<br />

getRGB() function based on http://www.codeproject.com/miscctrl/CPicker.asp<br />

dim_curve idea by Jims http://www.arduino.cc/cgibin/yabb2/YaBB.pl?num=1174674545<br />

Philips Hue color conversion<br />

https://github.com/PhilipsHue/PhilipsHueSDKiOS/blob/master/ApplicationDesignN<br />

otes/RGB%20to%20xy%20Color%20conversion.md<br />

Slim Framework: http://www.slimframework.com


Make Light-Wettbewerb 2013 „Intelligentes Licht“<br />

HSL- Slider Konzept: http://www.ip-symcon.de/forum/threads/21453-<br />

Universeller-HSL-Slider-mit-Farbkalibration<br />

NetIO: http://netio.davideickhoff.de/editor<br />

Philips Hue: http://developers.meethue.com/gettingstarted.html<br />

Uberspace Htaccess tutorial: http://uberspace.de/dokuwiki/webserver:htaccess<br />

LED Driver Schaltung: http://www.tbideas.com/blog/build-an-arduino-shield-todrive-high-power-rgb-led/<br />

LED Driver instructable: http://www.instructables.com/id/Circuits-for-using-High-<br />

Power-LED-s/?ALLSTEPS<br />

Electric IMP:http://electricimp.com<br />

Arduino: http://www.arduino.cc<br />

Gibt es ähnliche Projekte? Falls ja, nenne sie hier, möglichst mit Link.<br />

- Nicht mir in dieser Form bekannte Projekte!

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!