Nur mal kurz angemerkt: Gestern vor zehn Jahren habe ich hier zum ersten Mal ein Elektronik-Projekt veröffentlicht. Den USB-LED-Fader (der hier übrigens bis vor etwa vier Jahren tatsächlich im Einsatz war).

Ich habe seitdem einiges gebastelt, und auch einiges veröffentlicht. Das einzig doofe ist, dass ich zu wenig Zeit habe meine Projekte auch dann noch zu pflegen wenn ich mich schon längst anderen Sachen zugewendet habe. Soweit möglich mache ich das zwar, aber ich möchte die Gelegenheit nutzen mich bei allen Leuten zu entschuldigen die sich die Mühe gemacht haben sich mit meinem Bastelkram auseinanderzusetzen, und deren Fragen ich nicht beantworten konnte. Sorry! :oops:

Mit Begeisterung habe ich gerade gelesen dass der Hersteller Espressif einen Nachfolger für den ESP8266 — mit dem ich ja auch schon einiges gemacht habe — vorgestellt hat: den ESP32.

Im Gegensatz Zusätzlich zum 8266 hat das Ding

  • Bluetooth
  • Ethernet-Fähigkeiten
  • GPIOs für Touch-Sensoren
  • einen Hall-Sensor
  • … und vieles mehr

Neue Ideen was man damit umsetzen kann kommen noch während des Lesens. Allein die Möglichkeit damit stromsparende Anwendungen bauen zu können (Stichwort: Batteriebetrieb) eröffnet einen ganzen Strauss neuer Möglichkeiten.

Ich kann es kaum abwarten dass das Ding verfügbar ist. Man kann nur hoffen dass der Preis ähnlich attraktiv wird wie beim Vorgänger…

Die Schaltung, so wie sie zwei Jahre lief

Die Schaltung, so wie sie zwei Jahre lief

Eigentlich würde es deutlich mehr Sinn machen, Projekte zu veröffentlichen direkt nachdem sie fertiggestellt wurden. In diesem Fall war ich mir sicher das getan zu haben. Vor zwei Jahren, als ich es gebaut habe. Dass das nicht so ist fiel mir erst kürzlich auf. Komischerweise drei Tage bevor ich das Ding durch etwas anderes ersetzt habe. Egal, ich liefere schnell nochmal nach…

Anfang 2014 haben wir das Wohnzimmer umgebaut. Dabei hat eine Wand eine steinige Struktur bekommen, und ich dachte dass da ein Streiflicht gut aussehen würde. LED-Streifen boten sich an. Beim Rumalbern habe ich den Töchtern gesagt dass wir eine rosa Lampe einbauen würden. Der Plan war eigentlich warm-weiß, aber die bestanden jetzt auf rosa… zwei gegen einen… ich stand unter Zugzwang. :-)

Ein einfacher RGB-Streifen kann theoretisch auch weiß leuchten. Praktisch ist das alles andere als gemütlich. Also habe ich neben den RGB- auch noch einen warm-weißen Streifen geklebt. In Kombination ließ sich das aber dann nicht mehr mit dem Steuergerät bedienen das bei dem RGB-Streifen dabei war. Eine fertige RGBW-Steuerung habe ich damals nicht gefunden. Also musste ich selbst was bauen.

So funktioniert das

So funktioniert das

Ich glaube das war das erste Mal dass ich ernsthaft was mit einem Arduino gemacht habe. Und es war erstaunlich einfach. Den ersten Prototypen habe ich mit einem Arduino Uno gebaut, und mit der hervorragenden Infrarot-Empfänger-Bibliothek von Ken Shirriff konnte ich schon nach knapp zwei Stunden eine RGB- und eine weiße LED steuern. Mit der Logitech Harmony Fernbedienung mit der ich auch die Medienwiedergabe kontrolliere.

Den zweiten Prototypen habe ich mit MOSFETs gebaut, um zu auszuprobieren wie ich mit dem Arduino die Streifen ansteuern kann, die ja immerhin mit 12V versorgt werden.

Der finale Aufbau ist oben auf dem Foto zu sehen: ein Arduino Pro Mini (der ohne USB-Interface), und eine Lochrasterplatine auf der die Ansteuerung verdrahtet ist. Am Arduino hängt ein Infrarot-Empfänger. Ursprünglich ein TSOP31238, den habe ich aber kurz vor Projektende durch falsche Verdrahtung frittiert. Da ich fertig werden wollte habe ich einen alten DVD-Player zerlegt — keine Ahnung was das für ein Empfänger ist, aber er funktioniert. :-D

Das heißt: er hat funktioniert. Ziemlich genau zwei Jahre lang. Bis Heute Morgen. Seitdem ist die Schaltung obsolet — wie gesagt. Sourcen und was man so für das Projekt braucht habe ich Heute unter dem Namen IRlicht veröffentlicht.

Oh, und falls sich jemand fragt: die Lampe ist bis Heute praktisch ausschließlich in weiß zum Einsatz gekommen. Bunte Farben — insbesondere Farbwechsel — sind praktisch nur zum Ausprobieren und zum Vorzeigen zu sehen gewesen. So selten dass ich letztens schon in den Sourcen nachsehen musste welche Tasten zu drücken sind…

Die meisten Pins sind belegt

Die meisten Pins sind belegt

Den ESP8266 habe ich hier ja schon öfter erwähnt. Kurz zusammengefasst handelt es sich um einen Mikrocontroller den man frei programmieren kann. Im Vergleich zu Arduino & Co. ist er aber sehr leistungsfähig. Er rechnet deutlich schneller, hat mehr Speicher und das beste: er funkt im WLAN. Genauere Daten finden man überall im Netz, nicht zuletzt in der Wikipedia.

Ich habe hier schon verschiedene Boards ausprobiert um mit dem Ding zu spielen. Vorstellen möchte ich Heute eines das unter dem Namen Witty Cloud bekannt ist. Lustigerweise findet man es in den automatisch übersetzten chinesischen Shops auch gerne unter dem Namen Witzig Wolke:-D

Es handelt sich um einen ESP-12-F, mit auf der Platine ist ein USB-Anschluss mit dem man das Ding mit Strom versorgen kann, ein Tastschalter, ein LDR (lichtempfindlicher Widerstand) und eine RGB-LED. So hat man direkt etwas Hardware zum Spielen. Geliefert wird das Modul als Stapel aus zwei Platinen. Die untere enthält eine weitere USB-Buchse, mit der kann man nicht nur Strom liefern sondern dank des USB-Seriell-Konverters auch direkt programmieren. Weiterhin sind hier ein Reset- und ein Flash-Button untergebracht. Zum wirklichen Betrieb braucht man nur das obere Board, und nach einer initialen Programmierung kann man die Module bei Bedarf sogar OTA (Over The Air) mit neuer Software betanken.

Das untere Board wird nur zum Programmieren benutzt

Das untere Board wird nur zum Programmieren benutzt

So gestapelt kostet das Modul weniger als drei Euro, und um mit dem Programmieren anfangen zu können braucht man nur noch ein USB-Kabel und einen Compiler. Da empfehle ich die Arduino-IDE, damit ist man auch als Anfänger sehr schnell im Rennen. Wenn man die Erweiterungen für ESP8266 installiert hat wählt man im Board Manager am besten den WeMos D1-Mini aus, damit klappt alles auf Anhieb.

Leider findet man zu dem Witty kaum Dokumentation. Also habe ich das Bildchen da oben gemalt, schon allein damit ich selbst nachsehen kann was an welchem Pin angeschlossen ist. So hängt an dem Pin der mit GPIO13 beschriftet ist der blaue Kanal der RGB-LED, in der Programmierumgebung heißt der Pin D7.

Label Pin (Arduino) Funktion
REST Reset
ADC A0 Analoger Eingang, belegt mit LDR
CH_PD Chip Power-Down
GPIO16 D0 GPIO, frei benutzbar
GPIO14 D5 GPIO, frei benutzbar
GPIO12 D6 GPIO, grüner Kanal der RGB-LED
GPIO13 D7 GPIO, blauer Kanal der RGB-LED
VCC +5V Versorgungsspannung
TXD TX Serielle Schnittstelle
RXD RX Serielle Schnittstelle
GPIO5 D1 GPIO, frei benutzbar
GPIO4 D2 GPIO, belegt mit dem Tastschalter
GPIO0 D3 GPIO, verbunden mit dem Flash-Taster, nicht völlig frei benutzbar
GPIO2 D4 GPIO, belegt mit der blauen LED auf dem ESP-Modul
GPIO15 D8 GPIO, roter Kanal der RGB-LED
GND Masse

Falls jemand einen Schaltplan des Boards hat, oder falls mich jemand korrigieren oder ergänzen möchte: immer her damit!

Mein Fazit: ein echt interessantes Board. Wer mehr GPIO braucht sucht vielleicht lieber nach einem NodeMCU, wer sowieso einen LDR oder eine RGB-LED braucht sollte zugreifen. Ich habe mittlerweile einige davon hier, und eine Firmware mit der ich die Dinger hier im Haus verteilen möchte ist auch fast fertig.

Oh, das Bild habe ich übrigens mit einer Grafik aus diesem Projekt gemacht, das ist die Witty Cloud für Fritzing.

Gestern habe ich auf Twitter gelesen dass es im Zabbix-Share ein Modul gibt mit dem man das Monitoring-Tool meiner Wahl — Zabbix — direkt auf einen Arduino zugreifen lassen kann: Zabbuino nennt sich das.

Komischerweise habe ich letzte Woche erst überlegt wieviel Aufwand es wohl sein mag, das Zabbix-Protokoll nachzuimplementieren. Ich bastele zur Zeit wieder mal mit dem WLAN-fähigen Chip ESP8266 herum, den hatte ich hier auch schon erwähnt. Damit lassen sich prima Messwerte einsammeln, und das schreit dann nach Zabbix. Mein erster Ansatz war, Messdaten per HTTP zur Verfügung zu stellen. Die werden dann von einem Skript periodisch abgeholt und per zabbix_send eingespeist. Wesentlich eleganter wäre es natürlich, Zabbix direkt auf den Sensor zugreifen zu lassen…

Es wäre also wirklich mal einen Versuch wert, das Zabbuino-Modul in Verbindung mit einer kleinen ESP8266-Platine zu testen, die kann man auch fuer deutlich unter fünf Euro kaufen. Oder hat das schon jemand ausprobiert?

Da ich das letzte Woche aber noch nicht kannte habe ich schon einen dritten Weg eingeschlagen. Noch viel besser, wie ich finde. Das ist aber eine andere Geschichte, und die soll ein anderes Mal erzählt werden…

Nachgemessen

Nachgemessen

Vor einer Weile hat mich jemand auf WeMos aufmerksam gemacht. Das sind kleine Entwicklungsplatinen, ähnlich wie Arduino. Im Gegensatz zu dem befindet sich darauf allerdings kein kleiner AVR-Controller, sondern der deutlich schnellere ESP8266 — mit dem ich ja in anderer Bauform auch schon rumgespielt habe. Dementsprechend funken die kleinen auch im WLAN. Da die WeMOS-Boards direkt per USB an den Rechner angeschlossen werden können entfällt das Gefummel mit RS232-Konvertern und 3,3V Versorgungsspannung, und programmiert wird komfortabel über die Arduino-IDE.

Sehr interessant ist die Mini-Variante. Dabei muss man zwangsläufig an das Buzzword Internet of Things denken. :-)

Für den Mini gibt es auch direkt ein Shield mit einem DHT22. Das ist ein Sensor mit dem man digital Temperatur und Luftfeuchtigkeit auslesen kann. Solche Messknoten will ich schon seit langem im Haus verteilen, und diese Boards sehen so aus als ob sie dafür gemacht sind. Der Wemos und das Shield kosten jeweils rund 4,50 Euro, so ist das auch ein bezahlbarer Spaß.

Abweichung je nach Anordnung

Abweichung je nach Anordnung

Die Programmierung war — Arduino-typisch dank der vielen Bibliotheken — nicht allzu schwer, so hatte ich nach kurzer Zeit einen funktionierenden Messknoten, samt der Messwerte im Zabbix.

Aber die Temperaturen waren verblüffend. Im Wohnzimmer ist es warm, aber nicht über 28°C. Nanu?

Das Infrarot-Thermometer hat mir dann verraten dass der WeMos stellenweise bis zu 32°C warm wird, und die Temperatur im DHT etwa 7°C über Raumtemperatur. Und richtig genug: wenn ich mein Platinen-Sandwich senkrecht positioniert habe waren es dank der Luftzirkulation nur noch 5°C zu viel. Mit dem Shield direkt neben dem WeMos — also nicht als Sandwich — waren es nur noch 2°C. Vielleicht hätte ich für den Versuch auch dünnere Drähte nehmen sollen. Vernünftige Werte habe ich erst bekommen als ich den Sensor thermisch komplett von dem WeMos entkoppelt habe, durch etwa 10cm Draht. :-(

Also: gute Idee, leider nicht ganz zu Ende gedacht. Von den WeMos-Boards werde ich mir wohl noch ein paar zulegen, aber die Sensoren kommen dann wohl in freier Verdrahtung zum Einsatz. Und vielleicht durch ein Gehäuse vom ESP getrennt…

Oh, eine andere Möglichkeit wäre vielleicht, die Sensoren aktiv zu machen. Bei mir werden die zur Zeit passiv abgefragt, per HTTP. Dazu müssen sie natürlich durchgehend im Netz sein. Wenn die sich beispielsweise nur alle fünf Minuten aktivieren und dann zum Beispiel per MQTT ihre Werte abliefern hätten sie vielleicht gar keine Zeit um sich aufzuheizen… und vielleicht würde diese Variante eh mehr Sinn machen. Schon allein wegen des Stromverbrauches (der im Moment übrigens bei 70mA am USB-Port liegt). Mal sehen…

Erwähnt hatte ich dieses Projekt schon mal, es stammt vom November 2012. Aus mir nicht nachvollziehbaren Gründen habe ich es aber nie vorgestellt. Das reiche ich hiermit nach.

Dass ich ein ausgeprägtes Interesse an Tastaturen habe muss ich hier wohl nicht nochmal betonen. :-)

So finden sich in meiner Sammlung auch zwei ältere Apple-Tastaturen. Zum einen ist da ein — tatsächlich ganz ordentliches — Apple Extended Keyboard II. Gebaut wurden die von 1990 bis 1994, und Enthusiasten zufolge ist das die beste Tastatur die Apple je verkauft hat, sicherlich nicht zuletzt weil da anständige Alps-Schalter drin sind.

Noch origineller — und in meinen Augen ein typisches Apple-Produkt — ist das Apple Adjustable Keyboard von 1993. Typisch Apple? Wie gesagt, in meinen Augen: sie war teuer, und vor allem ist das Aussehen wichtiger als die Benutzbarkeit. Pfeiltasten gibt es zur Not noch ohne die kleine Erweiterung, aber ich persönlich würde weder auf Funktionstasten noch auf Navigationstasten (Anfang, Ende, Seite hoch, Seite runter) verzichten wollen. Und hat man die Erweiterung angeschlossen muss man schon einen ziemlich langen Arm machen um zur Maus zu greifen… :-/

Wie auch immer: ausprobieren wollte ich beide, und da ich selbst bei der Arbeit keinen Zugriff auf einen Rechner habe an dem die funktionieren würden — Apple hat den Apple Desktop Bus 1999 sterben lassen — musste ein Konverter her. Sowas kann man kaufen. Muss man aber nicht.

Dank eines japanischen Entwicklers der auf geekhack.org als hasu bekannt ist, auf Github als tmk. Der hat die TMK Keyboard Firmware Collection veröffentlicht. Das ist eine Firmware die auf verschiedenen AVR-basierten Plattformen lauffähig ist, in erster Linie ist das wohl der Teensy 2.0. Die Firmware kann verschiedene Tastatur-Protokolle sprechen. In die eine Richtung natürlich USB, für den Anschluss an einen modernen Rechner. In die andere Richtung unter anderem PS/2, Sun, oder eben Apple Desktop Bus. Dabei bietet die Firmware eine Reihe von Features mit denen man auch alten Tastaturen programmierbare Makros, Media-Tasten oder Maussteuerung beibringen kann.

Leider hatte ich keinen Teensy zur Hand. Wohl aber die Teile um was kompatibles zu bauen, sowie die Ausstattung um eine passende Platine zu ätzen. Also erstmal KiCad angeworfen und ein minimales Schaltbild, sowie ein Platinenlayout gezaubert:

(Die Dateien die dabei entstanden sind bräuchten etwas Pflege, daher veröffentliche ich die hier nicht. Aber mit den beiden Bildern dürfte es nicht schwer sein das bei Bedarf nachzuvollziehen.)

ADB USB Konverter

ADB USB Konverter

Das Resultat ist mit etwa 2x5cm wirklich winzig geworden, aber: es funktioniert!

Mit einem gekauften Konverter hätte man vielleicht auch die Maus benutzen können, aber mal ehrlich: da zieht wohl auch ein hartgesottener Fanboy was modernes ohne Kugel vor. Obwohl: ich hatte vor einer Weile die Gelegenheit mal etwas mit System 7.5 (dem zeitgenössischen Betriebssystem für die beiden Tastaturen) rumzuspielen, und da hat das Adjustable Keyboard deutlich zur Authentizität beigetragen… :-D

Krustenbraten im Zabbix

Krustenbraten im Zabbix

Ich schrieb ja schon dass ich mich seit etwas über zwei Wochen intensiv mit dem ESP8266 auseinander setze. Das ist ein WLAN-Modul mit dem man sehr einfach — und vor allem preiswert — eigene Mikrocontroller-Basteleien ins WLAN bekommt.

Gestern lief praktisch ein Proof of Concept für eine der Sachen die ich damit umsetzen möchte: ich habe den Sensor eines elektronischen Fleischthermometers an einen Arduino Nano angeschlossen (ein sogenannter Thermistor, Lady Ada zeigt wie das geht). Zusätzlich den ESP8266 und eine kleine Firmware. Die Firmware hat sich mit meinem WLAN verbunden und alle paar Sekunden die aktuelle Temperatur per HTTP als GET-Parameter an ein kleines Skript geschickt. Dieses Skript hat die Werte jeweils an Zabbix weitergereicht. Mit Zabbix monitore ich hier eigentlich mein ‚Rechenzentrum‘, also meinen Server und die virtuellen Maschinen die darauf laufen.

Wie sich zeigt taugt Zabbix aber auch zur Überwachung eines Krustenbraten. :-D

Der Braten war etwa zweieinhalb Stunden im Grill, bei rund 150°C (in einer nächsten Version will ich auch die Garraumtemperatur überwachen, dann gibt es einen neuen Graphen). Ich hatte einen Trigger gesetzt der bei 75°C Kerntemperatur auslöst. Dem Ergebnis nach würde ich sagen dass ich den beim nächsten Mal eher drei Grad niedriger ansetzen sollte. Oder ich muss das Thermometer nochmal ordentlich kalibrieren. Aber auch wenn er nicht optimal war: geschmeckt hat er. Der WLAN-Krustenbraten. :-)

Und schon wieder ein Projekt das ich nicht selbst entwickeln muss. Mit meinem Dulcimer-Projekt habe ich seinerzeit einer alten — aber guten — IBM-Tastatur neues USB-Leben eingehaucht. Diese Prozedur mussten in verschiedenen Abwandlungen mittlerweile mehrere Modelle über sich ergehen lassen. Was noch ausstand ist eine kabellose Version…

Jetzt habe ich bei Lady Ada gesehen dass sich schon jemand die Mühe gemacht hat: eine Bluetooth Model M. Zusammengebaut aus Komponenten die man praktischerweise direkt bei adafruit kaufen kann, man ist also schon mit einem Lötkolben und etwas Kleinkram dabei.

Sehr schön. Ich habe noch ein paar ‚Rohlinge‘ rumliegen, also unverbastelte Tastaturen. Vielleicht wird bei Gelegenheit wirklich mal eine auf Funk umgerüstet…