Erster Baumhaus Elektronik Kasten fertig

Nach beinahe jahrelangen Entwicklungen an der Schaltung für die Platine haben wir nun endlich einen ersten finalen Stand erreicht. Die Schaltung sitzt nun in einem Standard Elektro Kasten inklusive Solarladeregler und fertien Anschlüssen. Die Platine sitzt auf einem Arduino und führt alle Anschlüsse nach außen.
Die Bedieneinheit ist mit einem Standard 15-poligen Sub-D Steckverbinder mit dem Elektrokasten verbunden.

Der Arduino Code ist soweit durchgetestet, dass nun jeder am Bedienelement Dinge eingeben kann und es immer korrekt ausgewertet wird. Zuletzt gab es hier noch ein Problem mit zu hohen Zahlen. Doch nun wird es korrekt ausgewertet und bei Falscheingabe muss der Kunde 5 Sekunden warten.
Wir haben nun auch für jedes Baumhaus einen eigenen Eingabe Code erstellt. Mit etwas Aufwand und Kenntnis des Quellcodes kann man sich zwar immer noch mit überschaubarem Aufwand den Türcode knacken. Allerdings kann auch jeder genauso gut eine Brechstange nehmen und das Baumhaus aufbrechen. :)

Selbst unser Buchungssystem ist nun laut Aussage unseres Programmierers fertig.

Gerade bin ich dabei alle relevanten Schritte in einer übersichtlichen Dokumentation zusammen zu fassen. Bisher sind es 21 Seiten. Mal schauen, wie viele es am Ende werden. Man kann ja alles selbst machen. Die Kunst ist es so zu dokumentieren, dass es später auch andere Leute machen können! Das gilt geschäftlich und erst recht bei Hobby Projekten!

Arduino 1.0.6 hat bessere String Funktionen als 1.0.5

Wenn ich hier über Arduino schreibe und darüber, dass ich immer noch Arduino in der 1.0.x Version nutze, komm ich mir vor wie "Opa erzählt vom Krieg". :)
Der einzige Grund warum ich immer noch die 1.0.5 Version lange Zeit verwendet habe, war die Tatsache, dass ich vor zwei Jahren mit dem GSM Modul angefangen habe zu experimentieren und dieses im Zusammenspiel mit der Keypad Library in der Version 1.0.6 gegeben hat. Deshalb hab ich dann auch alle meine anderen Programmierungen fürs Baumhaus Schloss auf der Version 1.0.5 gemacht.
Damit hat es ja eigentlich auch ganz gut funktioniert. Nun komm ich aber an den Punkt, indem ich immer wieder auch einen String zurücksetzen muss. Das typische

key_eingabe = "";

funktioniert leider nicht richtig und die remove Funktion aus dem String Objekt kam dann erst in einem Backport aus 1.5.x in die Version 1.0.6 (Releasenotes) rein.
Da ich sowieso nach meinen erfolglosen Anfangsversuchen (damals hatte ich noch nicht die Polling Idee zur Abfrage des Keypads und SMS Eingang) nicht mehr das GSM Modul verwende, hab ich nun wieder auf die Version 1.0.6 gewechselt und freu mich, dass ich nun doch wieder die besseren String Funktionen nutzen kann.

Generell ist es sowieso meistens ratsam immer die aktuellsten Versionen zu verwenden. Die sind einfach ausgereifter und haben oftmals auch mehr Funktionen zur Verfügung. Für Arduino UNO reicht aber trotzdem noch die 1.0.6, außerdem findet man für diese Version auch meistens mehr alte Libraries. :) Die Oberfläche ist mir trotzdem weiterhin egal, da ich nach wie vor das alte Stino Plugin für Sublime Text 2 verwende.
Wem sein Code mit der Zeit zu groß wird, kann ihn auch einfach in mehrere Dateien aufteilen. Ich hab dazu als Hauptdatei die .ino Datei und in weitere .h Headerdateien meine anderen Funktionen eingebaut. Natürlich sind Header Dateien eigentlich der falsche Weg. Aber das ging am einfachsten für mich. So hat die einzelne Datei dann keine 200 Zeilen mehr, sondern nur noch 100 Zeilen Code und es ist etwas strukturierter. Wer es richtig machen will, hätte vermutlich eine .ino Datei und für weitere logisch zusammengehörende Funktionen eine .h und eine .cpp Datei erstellt. Aber Warum alle Funktionen nochmal ausgliedern, wenn ich sie auch direkt in der .h Datei beschreiben kann? Ich hoffe einfach mal, dass meinen Code nie jemand findet und nutzen muss.

Baumhaustechnik Image Film

Wer mal einen kleinen Eindruck bekommen möchte, wie man so ein Baumhaus aufbaut:

Mehr Informationen: Baumhaustechnik.de

Bei allgemeinen Fragen zum Baumhaus Projekt oder Interesse am Bauen von Baumhäusern kann man gerne Tobi Weißenmayer anschreiben: info@baumhaustechnik.de
Bei Fragen zum Smart Tree House und unserer Elektronik Gruppe mp3tobi@c-hack.de

Baumhaus Kategorie

Da ich mittlerweile seit Anfang 2015 am Baumhausprojekt mitarbeite, habe ich nun mal eine eigene Baumhaus Kategorie eingeführt und alle Artikel der letzten Jahre (naja so viele sind es leider gar nicht) unter diese Kategorie gesetzt.

Für allgemeine Informationen: Baumhaustechnik.de --> Darüber wird man später (wann auch immer!) eine Übernachtung in unseren Baumhäusern buchen können.
Wer ein bisschen löten oder allgemein mit Elektronik experimentieren möchte und nebenbei vielleicht ein bisschen Arduino Programmierung erlernen möchte: Jeden Mittwoch von 19 Uhr bis 21 Uhr sind wir im JFZ Calw

Eine mehr oder weniger genaue Timeline vom Smart Tree House (unsere Platinenschaltung fürs Baumhaus) gibt es hier zu lesen.

Bei allgemeinen Fragen zum Baumhaus Projekt oder Interesse am Bauen von Baumhäusern kann man gerne Tobi Weißenmayer anschreiben: info@baumhaustechnik.de
Bei Fragen zum Smart Tree House und unserer Elektronik Gruppe mp3tobi@c-hack.de

Baumhaus Platine fast fertig

Nachdem ich zusammen mit anderen schon ziemlich lange an einem elektronischen Schloss für unser Baumhaus bastel und es nach verschiedenen Prototypen auch immer mehr Anforderungen gab, haben wir letzte Woche endlich das Herzstück der Platine (ein DS3231SN RTC Chip) erfolgreich getestet. Beim Drauflöten wurde leider nicht so sauber gearbeitet, weshalb ein paar Kurzschließe drauf waren und das Signal nicht sauber zum Arduino geleitet wurde.
So eine Platine ist gar nicht so einfach zu löten und anschließend zu testen ob auch alle Verbindungen tun. Doch glücklicherweise hatten wir bei der Planung der Schaltungen noch einen ehemaligen Elektronik Ausbilder, für die Planung der Leiterbahnen auf der Platine einen richtigen Platinenlayouter und beim Zusammenlöten und Testen noch einen erfahrenen Elektroingenieur. Beim Löten hab ich mich mal ganz dezent rausgehalten und mich stattdessen voll und ganz aufs Messen (zumindest ein bisschen) und Erstellen des Programms konzentriert.
Doch besonders das Programmieren war dann letztendlich ein bisschen zweifelhaft, weil die RTC einfach nicht die Zeit behalten wollte. Am Prototypen hat es aber funktioniert. Letztendlich war ich erleichert, dass am Ende doch die Hardware fehlerhaft verlötet war. Wofür so ein Osziloskop doch gut ist. Es ist wunderbar zu sehen, dass man als Informatiker ohne großen Elektronik Hintergrund auch noch viel neues lernen kann. Die Grundlagen wie Spannung messen kann ich ja immerhin. :) Hier habe ich mal etwas mehr über dieses Projekt geschrieben.
Nun wird es spannend sich noch die passenden Testverfahren zu überlegen um alle Bauteile auf der Platine zu prüfen.

1. 12 V Eingangspannung für Arduino, Schloss und Licht.
2. Piezo Lautsprecher zum Klingen bringen
3. Uhrzeit am DS3231SN speichern und dauerhaft zur Verfügung stehen zu haben.
4. LCD und Keypad auf den 15-poligen Stecker drauflöten und testen.
5. Reedkontakt prüfen
6. Fotodiode und PIR Sensor (Bewegungsmelder) im Zusammenspiel um das Licht anzuschalten.
--> Alternativ zur Fotodiode besser eine feste Uhrzeit wählen wo das Licht angehen darf, wenn sich was bewegt.
7. Verbindung mit einem Raspberry Pi und Übertragung der Sensordaten an den Raspberry Pi.
8. Das Ganze im Zusammenspiel austesten und am Ende mal in ein Baumhaus einbauen.

Jo, da wir insgesamt über 50 Platinen bekommen haben, die wir alle selbst zusammenlöten dürfen, macht wohl mal eine Excelliste Sinn, wo alle Tests drin sind um einen Überblick zu bekommen.
Den Kindern und Jugendlichen macht das Löten übrigens sehr viel Freude. Manche sind richtig gut drin, andere etwas weniger. Doch sie sind auch immer noch am Start.

Nach so langer Zeit (auch mit teilweise längeren Pausen) bin ich nun aber wieder froh, dass wir wieder einen größeren Erfolg haben. Der Zeitchip war für mich essentiell wichtig, da davon doch ziemlich viel abhängt.