Beiträge

Der vielleicht coolste interaktive Adventskalender 2017

Hallo zusammen.

Die Adventszeit ist nun angebrochen und was darf da nicht fehlen? Genau, ein Adventskalender. Eigentlich bekommen eher die kleinen so einen Kalender, der meist mit Süßigkeiten gefüllt ist. Aber manchmal auch die großen. :-)
In diesem Jahr bin auch ich quasi dem Thema ‚Adventskalender‘ konfrontiert wurden. Die Grundidee war einen Kalender zu basteln. Da kam dann schnell der Ehrgeiz ‚Wenn ich schon mal einen Adventskalender bastel, dann doch bitte gleich richtig‘. :-D

Also was genau ist bzw. braucht es für einen richtigen Adventskalender? 24 ‚Türchen‘ natürlich. Am besten Tüten oder Boxen, wo man die kleinen, netten Überraschungen für die 24 Tage unterbringen kann. Doch wie, was, warum? 
Schnell stand fest, es sollte sich um das ‚Nikolaushaus‘ handeln. Also ein Gerüst aus Holz, in dem die Boxen untergebracht werden können, das nach einem Haus aussieht.
Gut, soweit der Plan.

Dann hört man ja immer wieder von bösen Mädchen und Buben, die es nicht abwarten können und schon vorher Türchen aufmachen, die noch gar nicht an der Reihe sind. Das muss unterbunden werden! :-D Und dann bin ich ja eh gerade auf deinem ‚Lampen‘ Trip… also muss das Haus auch beleuchtet werden.
Soweit der grobe Plan.

Nach ein paar detailierteren Überlegungen stand dann finale Plan fest:
Jede Box soll ein Fenster bekommen (ein Haus hat ja nun mal Fenster). Dieses soll beleuchtet werden. Also muss in jedes Fach eine LED, die dann von oben in die Box scheint und damit auch das Fenster erhellt. Um das Schummeln zu unterbinden muss der Adventskalender wissen welcher Tag es ist und welche Box herausgezogen wurde. (Das ein Arduino im Spiel ist, muss ich wohl nicht mehr Erwähnen ;-) ). Dazu muss jede Box mit einem ‚Schalter‘ verbunden werden, der mitteilt ob eine Box im Fach ist oder nicht. Wird die falsche Box herausgezogen (also eine mit Datum in der Zukunft), dann soll der Kalender Rabatz machen. Wird jedoch die Box des heutigen Tages herausgezogen, dann soll ein Weihnachtslied gespielt werden.
So ein Haus hat auch einen Schornstein mit Rauch… es ist ja kalt im Winter und da wird geheizt. Der Rauch muss natürlich auch beleuchtet werden.
Und wenn wir schon dabei sind… muss auch noch ein Display in das Haus, das dass aktuelle Datum anzeigt (nur falls man am Morgen noch nicht ganz wach ist und nicht weiß welcher Tage gerade ist).
Und da wir schon so viel Licht im Haus verbauen, dann kann man auch gleich nocht ein paar Spielereien einbauen, so das der Kalender auch gleich als Licht/Lampe genutzt werden kann. Zum Beispiel kam mir die Idee die Fenster zufällig zu beleuchten. So wie in einem richtigen Haus… hier ist ein Licht an und da ist ein Licht an. Und dann geht hier und da auch mal eins aus oder an. Die Imitation eines richtigen Hauses quasi.
(Hätte ich gewusst was ich mir damit einbrocke… hätte ich wohl noch einmal darüber nachgedacht!! :-) )

Und los ging es mit dem Basteln.

Als erstes musste das Haus gebaut werden. Die Boxen sind 6,5cm x 6,5cm. Um ein bisschen Luft zu lassen, habe ich die Öffnungen für die Boxen 7x7cm gemacht. 7cm tiefe ist allerdings nicht sehr viel. Damit wäre das Haus sicher ständig umgekippt. So habe ich die Tiefe auf 20cm erweitert und hinten gleich noch ein bisschen ‚Stauraum‘ für etwas größere Überraschungen erhalten. Ich brauchte eh eine Trennwand um die Verkabelung für die Schalter unterzubringen. 
Zwischendurch musste ich dann auch die LEDs verlöten. Dazu habe ich in jedes Fach oben ein Loch ins Holz gebohrt und eine SK6811 versenkt. Die sind rund und passen genau in ein 10er Loch. Das schöne an den SK6811 ist, das sie ‚intelligent‘ sind und nur einen Pin am Arduino benötigen. Sie geben das Signal immer an die nächste LED weiter. Somit brauchte ich immer nur 3 Kabel, von LED zu LED. Und nicht von jeder LED 3 Kabel zum Arduino. Das ist sehr praktisch. 
Die LEDs dann mit Heißkleber fixiert und schon war das fertig. 
Dann der Dachfirst. Hier musste ich die beiden Fenster ins Holz schneiden und die Öffnung für das Display aussägen. Vor die Fensteröffnungen dann das ‚Fensterpapier‘ geklebt und das Display in die Öffnung geklebt.
Und noch 3 LEDs in den Schornstein einbauen und diesen am Hausdach befestigen. 

Am fummeligsten war die Thematik mit den Box-Schaltern. Um das zu bewerkstelligen musste ich 28 nuten in die Trennwand schneiden, um dort die Kabel zu versenken. Aber nur so weit das sie gerade so drin sind. (24 Datenleitungen 1x Masse pro Reihe) Ich hatte die tolle Idee einfach selbstklebende Kupferfolie zu nehmen. Erschien mir am einfachsten. 2 Streifen unter die Box (1x Datenleitung, 1x Masse) und noch einen Streifen unter die Box. So würde diese den Kreis schließen sobald sie im Fach ist. Funktionierte nur leider nicht immer. Eine kleine Unebenheit, eine kleine Wölbung im Boden der Pappschachtel … und schon ist kein Kontakt da. Also musste ich die Hälfte der Streifen an der Pappschachtel noch mit ein bisschen Lötzinn versehen, damit der Kontakt – mehr oder weniger sicher – hergestellt wurde. 
Definitiv war es eine ganz schöne Fummelei. Aber irgendwann war es erledigt.

Was noch fehlte waren die RTC (Real Time Clock, damit der Arduino weiß welcher Tag ist und sich das auch merkt wenn der Strom mal weg ist), ein Empfänger für die Fernbedienung (Jaaa! Fernbedienung für den Adventskalender! ;-) Wie soll man denn sonst durch die Lichtmodi schalten?) und der Buzzer für das Weihnachtslied bzw. den Alarm. 
Den Buzzer und die RTC habe ich auf ein Arduino Mega Prototyping Shield gelötet. Da war auch schon ein DHT22 Sensor (Temperatur und Luftfeuchte) drauf. … Na wenn er schon mal da ist, dann kann man ihn ja auch gleich noch nutzen. Also gibt der Kalender, auf dem Display, auch gleich noch die Temperatur und Luftfeuchte aus. Warum nicht? :-)
Die Empfänger LED für die Fernbedienung habe ich hinter den Fenstern im Dach installiert. So ist er von außen nicht sichtbar. Dafür muss man aber auch ein bisschen ‚Zielen‘. 
Zudem habe ich noch eine Photodiode verbaut. Ich wollte eigentlich das der Adventskalender von alleine anfängt zu leuchten, wenn es dunkel wird. Das habe ich aber später verworfen. 

Und dann ging es an die Programmierung. Hinterher erscheint alles sehr logisch und einfach. Doch wenn man anfängt, dann ist das ganz und gar nicht so. Man fängt an und hat ständig irgendwelche Stolpersteine im Weg. Wie z.B. das ein Adruino nur Single-Thread verarbeitet. Meist ist das nicht so tragisch. Aber wenn man ein Lied abspielen möchte und dabei noch Lichter schalten will, dann geht das nicht.

Aber nach vielen Stunden war es dann endlich soweit. Das gute Stück war fertig… mehr oder weniger. 

Und hier das ganze noch in Aktion:

Noch ein paar mehr Bilder:

Was wurde Verbaut:

  • Arduino Mega 2560
  • RTC
  • Buzzer
  • SK6811 LED
  • Würfelboxen
  • Fernbedienung Empfänger
  • Photodiode
  • Ein bisschen Werkzeug und Holz
  • Watte

Winterliche Grüße
Gordon

Update: Ich wurde des öfteren nach dem Code gefragt. Du kannst ihn [hier downloaden]. Es ist jetzt aber schon eine ganze Weile her und ich weiß nicht ob das der Finale Code war. Denke aber schon.

Maybe the best advent calendar 2017

Hello together.

The advent season started now and what shouldn’t be missing? Exactly, an advent calendar. Usually kids get this calendar, filled with sweets and candies. But sometimes also the big ones :-)
This year I got also confronted with the subject ‚advent calendar‘. The basic idea was to make a advent calendar. Fast the ambition came fast ‚If I make a advent calendar already, then the right way‘. :-D

So, what exactly is or is needed for an advent calendar. 24 ‚doors‘ of course. The best is some bags or boxes, to put all the small, sweet surprises in for the 24 days till xmas. But what, how, why?
The decision was quickly made that it should be a house. A wooden frame, for the boxes, which looks like a house.
Great, a good plan so far.

And everybody knows about the bad boys and girls, which can’t wait for the day to come. This has to be prohibit! :-D And then I am just on a ‚diy lamp‘ trip… so the house has to have a lot of lights.
So far the rough plan. 

The final plan was made after a few detailed thoughts:
Every box will get a window (a house has windows, isn’t it), which lighted by an LED. To prevent the cheating, the calendar need to know which date it is and which box is removed. (I don’t need to mention that there is an arduino in the game. ;-) ). To be able to do that, every box need a ’switch‘, which is checking if the box is in the shelf or not. If someone removed the wrong box (a box from a date in the future), an alarm will be set off. However, if the box is pulled out of today, then a Christmas carol should be played.
Of course the house has to be a chimney with smoke… it is winter and people are heating. And of course the smoke has to be illuminated too.
And then we need a display, to show the current date (just in case the person is not really awake in the morning and don’t know the current date). 

And since we already put so much light in the house, then should be also install some gadgets, that the calendar can also be used as light/lamp. For example, I came up with the idea to illuminate the windows randomly. Just like in a real house … here is a light on and there is a light on. And then sometimes one goes on or off here and there. The imitation of a real house, so to speak.
(If I had known what will get into … I would have thought again !! :-))

And off we went with the crafting.

First, the house had to be built. The boxes are 6.5cm x 6.5cm. In order to leave a little space, I made the openings for the boxes 7x7cm. 7cm deep, however, is not very much. This would certainly overturn the house constantly. So I extended the depth to 20cm and got a bit ’storage space‘ for slightly larger surprises. I needed a partition anyway to accommodate the wiring for the switches.
In between, I also had to solder the LEDs. For this I drilled a hole in the wood in each shelf, for the SK6811. They are round and fit exactly in a 10mm hole. The nice thing about the SK6811 is that they are ’smart‘ and only need one pin on the Arduino. You always pass on the signal to the next LED. Thus, I always needed only 3 cables, from LED to LED. And not from every LED 3 cable to the Arduino. That is very convenient.
The LEDs then fixed with hot glue and that was done.
Then the roof ridge. Here I had to cut the two windows into the wood and saw out the opening for the display. Glued in front of the window openings then the ‚window paper‘ and glued the display in the opening.
And install 3 more LEDs in the chimney and fix it to the house roof.

Most tricky was the subject with the box-switches. To accomplish this, I had to cut 28 slots into the partition to sink the cables there. But only to the extent that they are just in there. (24 data lines + 1x ground per row) I had the great idea to simply take self-adhesive copper foil. Seemed easiest to me. 2 strips under the box (1x data line, 1x ground) and another strip under the box. So this would close the circle once it’s in the drawer. Unfortunately, it didn’t worked out always. A little unevenness, a small curvature in the bottom of the cardboard box … and there is no contact. So I had to put half the strips on the cardboard box with a little bit of soldering tin, so that the contact – more or less sure – was made.
Definitely it was a pretty fumble. But at some point it was done.

What was missing were the RTC (Real Time Clock, so that the Arduino knows what day it is and also rememberes when the power is gone), a receiver for the remote control (yes! Remote control for the Advent calendar! ;-) How should one otherwise switch through the light modes?) And the buzzer for the Christmas carol or the alarm.
I soldered the buzzer and the RTC to an Arduino Mega Prototyping Shield. There was already a DHT22 sensor (temperature and humidity) on it. … Well, if he’s already there, then it can be used. So the calendar also shows the temperature and humidity on the display. Why not? :-)
The receiver LED for the remote control I have installed behind the windows in the roof. So it is not visible from outside. But you have to do a bit of ‚aiming‘.
In addition, I have installed a photodiode. Actually, I wanted the advent calendar to light up by itself when it gets dark. I later discarded that.

And then it was time for programming. Afterwards everything seems very logical and simple. But when you start, it’s not like that at all. You start and you always have some stumbling blocks in your way. Such as an Adruino only handles single-thread. Mostly that is not so tragic. But if you want to play a song and in the same time want to turn lights on and off, then that’s not possible.

But after many hours it was finally time. The good piece was finished … more or less.

And here is the whole thing in action:

And some more pictures

What is needed:

  • Arduino Mega 2560
  • RTC
  • Buzzer
  • SK6811 LED
  • Boxes
  • Remote control + receiver
  • Photodiode
  • Tools and wood
  • Cotton

Winter greetings
Gordon

Was ist ein Arduino und Raspberry Pi?

Hallo zusammen.

Meine Facebookjünger wissen schon wieder mehr als meine lieben Blogleser. Vor einigen Tagen habe ich die folgenden Bilder bei Facebook hochgeladen:

Die Beschreibung dazu war:

Was ist das, außer eines wunderschönen Stück Kunst mit bunten Kabeln und elektronischem Zeug?
Natürlich explodiert es nicht.  Es ist eine kleine Messstation.
Es beinhaltet:
1x Arduino Pro Mini -> Der Mikrocontroller der die Daten verarbeitet
1x Stromversorgung -> Kein geiles Elektrozeug ohne Strom
2x Photoresistor -> Misst die Menge an Licht in der Umgebung (also wie hell es ist) (beide Sensoren haben natürlich unterschiedliche Werte… ^^)
1x DHT11 -> Misst Temperatur und Luftfeuchtigkeit
1x DHT22 -> Misst auch Temperatur und Luftfeuchtigkeit… das neuere Model vom DHT11
1x LM35 -> Misst Temperatur… Ich habe es kaputt gemacht als ich Versehentlich Plus und Minus vertauscht habe  Sendet noch Daten… aber Schrott.
1x MQ-2 -> Misst den Gehalt von Rauch/LPG/CO Gas in der Luft.
1x 1.8″ TFT mit SD Karte -> Zum Anzeigen der Werte und schreibt auch alle Werte in eine Log-Datei auf die SD Karte um die Daten später weiter auswerten zu können.

So… was ist das nun und warum mache ich damit rum?

Ein Arduino ist ein Mikrocontroller. Eigentlich ein Mikrocontroller auf einer Platine mit noch ein paar anderen Sachen. Alles in allem ein Arduino. Der wurde von Massimo Banzi und David Cuartielles entwickelt (und benannt nach einer Bar… ja ja :) ). David Mellis hat dann noch die Programmiersprache dazu geschrieben. Das gesamte System ist Quelloffen. Das heißt man kann alles einsehen. Wie der Arduino aufgebaut ist. Deswegen gibt es auch schon viele fleißige Kopierer und im Grunde könnte man sich seinen Arduino sogar selbst zusammenlöten. Mit dem Arduino kann man recht einfach in die Elektronik einsteigen. Doch kommen wir erst einmal noch zum anderen Vertreter. Denn in der Überschrift steht auch etwas von einem Raspberry Pi.

Der Raspberry Pi ist dem Arduino ähnlich, aber doch unterschiedlich. Der Raspberry Pi ist mehr ein Mikrocomputer als ein Controller. Denn er besitzt einen 700MHz ARM Prozessor (also die gleiche CPU Architektur wie in Handys), 512MB Arbeitsspeicher, etc. Als Betriebssystem kommt überwiegend Linux zum Einsatz. Hier ist einer der großen Unterschiede… der Raspberry Pi hat ein Betriebsystem, der Arduino nicht.

Und was heißt das nun?

Beide Boards haben GPIO Pins. Das sind einfach Anschlüsse an die man z.B. Sensoren anschließen kann. Ein Sensor ist z.B. der DHT22… ein Sensor mit dem man die Temperatur und die Luftfeuchtigkeit messen kann. Diesen Sensor kann man nun an den Arduino und auch an den Raspberry Pi anschließen. Ein kleines Programm geschrieben und schon zeigen beide die Daten an, die sie vom Sensor erhalten.

Dann reicht doch ein Board!?

Im Prinzip schon. Aber es kommt immer darauf an was man machen will.
Am Raspberry Pi sind die Möglichkeiten um weiten größer, wenn man an dem Board auch sonst noch etwas machen möchte. Es steht mehr Speicher zur Verfügung, Software kann installiert werden und sogar eine grafische Benutzeroberfläche steht zur Verfügung. Man kann mit dem Raspberry Pi online gehen, eMails abrufen, Texte schreiben, Programmieren (natürlich) und viel mehr. Es ist ein vollwertiger Computer, nur ein wenig Limitiert in den Ressourcen. Dafür verbraucht er aber auch mehr Strom.

Wobei ‚mehr Strom verbrauchen‘ natürlich relativ ist. 3,5 Watt ist im Normalfall nicht erwähnenswert! Wenn man aber z.B. eine kleine Wetterstation bauen möchte und diese möglichst autark mit Batterien und Solar betrieben werden soll, dann sind 3,5 Watt doch schon extrem schlecht. Dann braucht man eine Lösung die kaum Strom verbraucht. Hier kommt der Arduino ins Spiel. Das ist seine Stärke. Stumpf eine Arbeit verrichten (z.B. Sensorwerte auslesen) und dabei möglichst wenig Strom verbrauchen.

Und warum beschäftige ich mich jetzt mit diesem komischen Zeug?

Keine Angst, ich bin nicht unter die Bombenbauer gegangen ;) (Hallo NSA… und wieder einmal das Stichwort gefunden… Gratulation! ;) )
Nun, manche wissen ja das ich ein neues Projekt im Kopf habe. Ich möchte mit einem Wohnmobil durch die Gegend gondeln. Dabei möchte ich meine Arbeit natürlich mitnehmen. Das heißt Internet und Strom in den Camper. Da Strom knapp sein wird und mein Heimrechner im Schnitt um die 200 Watt verbraucht, fällt das flach. Eine stromsparende Lösung muss her. Da bin ich auf den Raspberry Pi aufmerksam geworden. Natürlich ist mir klar das dieses System keinen Arbeitsrechner ersetzen kann (schön wäre es). Aber als 3,5 Watt Knecht kann er doch einige Aufgaben übernehmen. 3,5 Watt … das sind bei 24 Stunden zwar auch 84W/h – in der Theorie – aber ich hoffe in der Praxis wird es weniger, da der RPi bei Nichtbenutzung ‚runter-schaltet‘. Ich teste gerade mit einem 10.400mAh Akku.

ArduinoAber ich vermute mal das er gut beschäftigt sein wird. Wenn ich alles realisieren kann, was ich vorhabe, dann wird er für folgende Aufgaben eingesetzt:

  • NAS mit externer SSD
  • Lokaler Webserver zum Testen
  • Automatische Verbindungskontrolle der Internetsourcen (Sat-DSL, WLAN, GPRS,etc.)
  • Desktop für Surfen, Film schauen, Musik hören, Programmieren, etc.
  • Zentrale Datenverarbeitungsstation für dezentrale Arduinos mit ihren Sensoren (Wetterstation (irgendwo außen), Kameramodul vorn im Camper, Motorsensoren, Gassensoren, etc.)

Das sind so die groben Arbeiten die das arme kleine Teil verrichten muss.

Ich muss aber auch gleich dazu schreiben das ich den kleinen RPi schon ordentlich teste und möchte betonen das ich sehr positiv überrascht bin. Der kleine ist gar nicht so schwach auf der Brust wie ich vermutet hatte. (Immer mit den 3,5 Watt Stromverbrauch im Hinterkopf… CPU ohne Kühlkörper!!). Die Grafische Oberfläche läuft flüssig. Auch Videos lassen sich mit VLC anschauen. IceDove (Linuxversion vom Mozilla Thunderbird) braucht eine ganze Weile bis es meine zig Tausend Emails eingelesen hat und sich öffnet. Aber meine eMailkonten sind auch schon extrem… mal ehrlich. LibreOffice (Linux Textverarbeitung wie MS Office) dauert auch ein paar Sekunden länger, öffnet sich dann aber und es lässt sich flüssig damit arbeiten. Es gibt sogar Spiele für den Pi. Ich habe kurz Mindcraft probiert und es läuft absolut flüssig.
Wie gesagt, mit bedacht auf die Hardware und den Verbrauch ist dieser MiniComputer ein Wunderwerk.

Und der Arduino kam hinzu als der Spieltrieb in mir ausgelöst wurde. Das Zeug hat es mir jetzt so angetan, ich kann nicht genug bekommen. Absoluter Suchtfaktor! Wenn man erst einmal seine erste Schaltung zusammengesteckt hat, das erste Skript auf den Arduino überspielt ist und dann die LED wirklich anfängt zu blinken… dann fühlt man sich ein bisschen wie Gott. … Diese LED blinkt jetzt weil ICH es so will. :D
Dann geht es weiter… die Temperatur messen, LEDs leuchten lassen, Lichtstärke auslesen (Ist es Nacht? Wie stark scheint die Sonne? etc.), GPS Koordinaten ermitteln und in einer Karte anzeigen, Flammensensor (Brennt es?), Geräuschsensor (Hat da wer Gehustet?), Displays zum Anzeigen von Informationen, Schalten von Schaltern auf digitalem Knopfdruck (geht auch über das Internet!)… die Möglichkeiten sind fast unendlich. Mit Kreativität kann man super tolle Sachen damit machen.

In meiner unendlichen Kreativität (hüstel) habe ich (bis dato) folgenden Verwendungszweck dafür.

  • Wetterstation mit Sensoren für Temperatur, Luftfeuchtigkeit, Luftdruck, Lichtintensität, Geiger Zähler, GPS, etc.
  • Kamera in der Front des Campers (soll automatisch jede Stunde 1 Foto machen und bei Internetverbindung Online stellen)
  • Gassensor bei den Gasflaschen, im Küchenbereich und bei der Heizung. Auch Gassensoren für das Gas das Diebe gern Benutzen um die Bewohner ‚einzuschläfern‘.
  • Anschließen an die Motorelektronik. Damit kann z.B. der Fehlerpuffer des Fahrzeugcomputers ausgelesen werden. Bei manchen Fahrzeugen möglich.
  • Ich überlege die Türen mit einer Schlüsselkarte/Fingerabdrucksensor öffnen zu lassen, anstatt mit einem Schlüssel. So könnte man Einbrecher ein wenig verwirren ;)

Aus den Daten möchte ich dann eine kleine Blackbox bauen. Besonders sollen die Daten aber ins Internet gehen und allen zur Verfügung stehen. (Die GPS Daten natürlich Zeitversetzt ;) ). Aber das ist noch Zukunftsmusik. Im Moment experimentiere ich mit beiden System rum und werde versuche jetzt ein paar Stabile System aufzubauen. Zum Testen und Erfahrungen sammeln.

Also wenn ihr mal in die Welt der Mikrokontroller und Einplatinen-Computer reinschnuppern wollt… Arduino bzw. Raspberry Pi kann ich nur empfehlen. Macht total Spaß und ist gar nicht soo schwer. ;)

Liebe Grüße
Gordon