Arduino Uno + Ethernet Shield + Thingspeak

Vor kurzem habe ich ein Honeywell Rondostat HR-20 Heizkörperthermostat in Betrieb genommen, das schon lange sein Dasein im Keller fristete. Anfangs funktionierte es eigentlich einwandfrei, wobei mir die seltsame Regelung der Temperatur in meinem Raum schon etwas komisch vorkam. Der Raum kühlte ab und das Thermastat schaltete komplett durch. Das hatte schon was von einer PWM Regelung der Temperatur und hat mir schon nicht so richtig gefallen. Als ich dann tagsüber mal in den Raum hereinkam, hatte der Raum bereits eine Temperatur von sommerlichen über 30°C erreicht und es wurde nicht mal ein Fehler angezeigt. Da man so einem Gerät nun nicht mehr vertrauen kann, habe ich mir schnell aus einem Arduino UNO, einem Ethernet Shield, einem DHT11 Temperatur- / Luftfeuchtigkeitssensor und Thingspeak einen kleinen Datenlogger gebastelt, der seine Daten an die Thingspeak Plattform sendet. Auf der Plattform kann man die Daten jederzeit und von überall aus abrufen.
Den Aufbau sowie den Quellcode habe ich mal in mein Wiki gepackt.

ArduinoUnoEthernetDHT11Thingspeak

dht11_mit_thingspeak

Ergebnis der ganzen Aktion: ich habe mir ein neues Thermostat geholt, das deutlich besser regelt und werde in Zukunft mal versuchen, die alternative Firmware OpenHR20 in das HR-20 einzuspielen. Ein weiterer Test wird dann zeigen, ob das HR-20 oder die Firmware davon Schrott sind.

DES / 3DES Verschlüsselungsbibliothek für Arduino

Für ein kleines Projekt auf dem Arduino Leonardo habe ich vor kurzem eine Crypto-Bibliothek gesucht, mit der ich DES und 3DES Nachrichten verschlüsseln und entschlüsseln kann. Leider bin ich nicht fündig geworden, bzw. zumindest nicht als Bibliothek für die Entwicklungsumgebung des Arduinos. Bei “Das Labor” gibt es aber eine hervorragende Crypto-Bibliothek für Atmel AVR Mikrocontroller – nichts anderes ist ja auch ein Arduino – also habe ich mir den DES / 3DES Teil geschnappt und ihn auf den Arduino portiert. Das Ergebnis habe ich, ganz der GPL folgend, auf GitHub verfügbar gemacht. Solltet ihr also in einem Sketch bei euch auch DES / 3DES Verschlüsselung benötigen, dann könnt ihr die Bibliothek verwenden. Wenn ihr Änderungen habt, dann nichts wie her damit (entweder als Patch oder als Pull-Request per GitHub).

Neuer Spielkram

In den letzten Monaten habe ich mir einiges an komischen Zeug für diverse Projekte bestellt. Zu einem meiner Projekte zählt ein “Super 8 Digitizer”, also eine Vorrichtung, mit der man Super 8 Filme digitalisieren kann. Klar, man könnte einfach den Film an die Leinwand projizieren und dann abfilmen, das Problem ist aber dabei, dass ein Super 8 Film mit 18 fps läuft und eine Digitalkamera die Bilder mit 25 fps aufnimmt. Dadurch, dass die Kamera schneller läuft, bekommt man ein Flimmern im Bild, das zumindest mich stört. Selbst wenn die Kamera gleich schnell wie der Projektor läuft, müsste man beide perfekt miteinander synchronisieren, was so ohne weiteres nicht möglich ist.
Meine Idee ist es deshalb, jeweils Einzelbilder mit einer Digitalkamera / Webcam aufzunehmen und dann später wieder einen Film daraus zu erzeugen. Ein Problem ist bei diesem Projekt der Projektor. Hier muss man sich die Frage stellen, ob man lieber einen alten Projektor umbaut oder sich einen neuen besorgt und durch Zufall bin ich über folgenden Projektor gestolpert:

DSCF1376

Japp, ziemlich viel Plastik, aber dafür nagelneu und läuft mit LED. Er bietet sich jedenfalls sehr für einen Umbau an.
Zur Steuerung habe ich überlegt, wie man am besten und einfachsten eine Ansteuerung hinbekommen kann. Dazu fällt mir natürlich sofort ein Mikrocontroller samt Schrittmotor ein, aber diesmal wollte ich nicht erst einen eigenen kleinen Prototypen selbst bauen, sondern gleich auf etwas fertiges setzen, also fiel die Wahl auf einen Arduino Uno. Den kann man günstig bei Watterott bekommen und man kann ihn auch spielend leicht programmieren.

DSCF1381

Zusätzlich zum Arduino Uno habe ich mir noch gleich ein Ethernet-Shield dazugeholt, da ich anfangs die Bilder auch gleich per Netzwerk auf einem Server ablegen wollte, allerdings habe ich das Modell mittlerweile schon wieder verworfen, da ich die Digitalkamera nicht mehr mit dem Arduino ansteuern werde, denn die Ansteuerung der Kamera wird von einem von mir programmierten, kleinen Programm erfolgen, das eine Logitech C910 Webcam ansteuert. Auch wenn sich Webcam direkt schon nach Qualitätsverlust anhört, trifft das auf diese Webcam nicht zu, denn sie hat eine Auflösung von 10 Megapixel und liefert HD Qualität. Die Ansteuerung ist dadurch auch ziemlich einfach.

Im Prinzip habe ich also schon alles zusammen, was ich für den Digitizer benötige, jetzt fehlt mir nur noch die Zeit dafür ;-).