Heizungsmonitor

In meinem letzten Post zum Thema „Smarthome“ habe ich dieses Projekt hier bereits angekündigt. Und nach zwei Wochenenden steht das ganze zumindest als Prototyp bereit.
Weil ein Bild ja bekanntlich mehr als 1000 Worte und bewegte Bilder mehr als 1000 * 1000 Worte sagen hier ein Video zu dem Projekt:

Weiterlesen

ESP8266 Programmierplatine

Der Aufbau auf einem „Breadbord“ sehr flexibel und für einen Prototypen perfekt. Sobald das Design einigermassen stabil ist und Wackelkontakte zu langer Sucherei führt, sollte man auf etwas solideres umsteigen.

Daher habe ich mir für den ESP8266 eine kleine Platine auf einer Lochstreifenplatine basierend auf dem Schaltplan aufgebaut.

Schematisch sieht das ganze so aus:

ESP8266 Programmierplatine

Die roten Striche kennzeichnen getrennte Leitungen und die grünen Brücken, die man senkrecht zum Leitungsverlauf ziehen muss.

In folgender Grafik kann man die Anschlüsse besser erkennen:

ESP8266 Programmierplatine clean

Wichtig ist, dass ich den empfohlenen Pull-Up Widerstand an GPIO2 weggelassen habe, da ich GPIO2 für die Steuerung verwenden will. Also muss der Pullup jeweils je nach Anwendung gewählt werden. Man kann ihn aber ohne Probleme auch natürlich auf die Platine auflöten, wenn man mit dem Ausgang nichts besonderes vorhat.

Aufgebaut sieht das Ganze dann so aus:

IMG_3613

ESP8266

Einleitung

Inspiriert von meinem Bruder habe ich mir für mein Projekt „Smarthome“ einen ESP8266 (bei Ebay für ca. 4 EUR) besorgt.

IMG_3589

Es wird ist wirklich beeindruckend, was für eine Funktionalität man auf ca. 2 Quadratzentimeter erhält! Mit diesem kleinen Käfer kann man in sein heimisches WLAN, im Internet surfen oder auch direkt einen Mini-Server aufsetzen.

Anschluss

Um es kurz zu machen: Der Anschluss hat mich fast in den Wahnsinn getrieben, bis ich es endlich geschafft habe, eine stabile Verbindung herzustellen. Schließlich hat mich diese Beschaltung (in Anlehnung an das ESP8266 Arduino Core Projekt) zum Erfolg geführt.

ESP8266 Wiring

An die USB-Buchse wird der USB-TTL Konverter angeschlossen. Wichtig ist, dass RX (USB) mit dem TX vom ESP8266 verbunden wird und umgekehrt.

Inbetriebnahme

Wenn man obiges Layout benutzt ist die Inbetriebnahme und erster Test ganz einfach. Bis ich soweit war, habe ich allerdings mehrere Stunden probieren müssen.

Haupthindernis war es eine stabile Verbindung zu einem Terminalprogramm herzustellen. Am Anfang nutzte ich auf dem Mac noch „screen“ auf der Kommandozeile. Das führte aber dazu, dass bei falscher Baugrate den Rechner neu booten musste. Erst die Verwendung von CoolTerm führte zum Erfolg.

Wichtig ist dabei natürlich die Baudrate. Mein Modul lief wohl zu Beginn auf 115200 Baud. Um das herauszufinden, habe ich allerdings etwas Zeit gebraucht. Erst mehrmaliges Reset liess irgendwann in meinem Terminalprogramm ein „Ready“ erscheinen.

Wenn man alles richtig verkabelt hat, leuchtet auf dem Modul eine witzige rote LED, wenn Daten über die serielle Schnittstelle gesendet werden, leuchtet daneben eine blaue. Wenn dem nicht so sein, dann ist entweder das Modul defekt oder die Verkabelung nicht richtig.

Firmware

Leider bin ich einem Ratschlag im Netz gefolgt und habe relativ schnell eine neue Firmware auf das Modul geladen. Leider war damit eine Verbindung mit der Arduino WifiESP-Library nicht mehr möglich, da die AT-Kommandos nicht mehr kompatibel waren.

Es war mir danach nicht mehr möglich eine Original-Firmware vom Hersteller des Modells zu laden (auch nicht, nachdem ich mich auf chinesischen Foren herumgetrieben habe und jede ZIP-Datei dort heruntergeladen habe).

Schlussendlich habe ich es aufgegeben und benutze den ESP8266 nun „direkt“, indem ich mittels der Arduino IDE die Programme direkt darauf lade.

Auch hier lauerte wieder ein Stolperstein, da jeder Ladevorgang mit einer solchen Meldung abbrach:

Uploading 32848 bytes from /var/folders/d4/vrj66_rs375gh9_33xr9bnv80000gs/T/build7455700842258194699.tmp/WiFiScan.cpp_00000.bin to flash at 0x00000000
error: failed reading byte
warning: espcomm_send_command: cant receive slip payload data
warning: espcomm_send_command(FLASH_DOWNLOAD_BEGIN) failed

Offensichtlich ist das Problem nicht unbekannt und wurde auch bereits gelöst.

Fazit

Nachdem mich das Modul ungefährt 6 Stunden lang ziemlich geärgert hat und ich bereits den Hammer ansetzen wollte, bin ich mittlerweile doch sehr begeistert.

Wahrscheinlich ist es für den Anfang einfacher, einen teureren ESP8266 z.B. von Adafruit benutzt, da dort vieles bereits an Bord ist und auch die Dokumentation deutlich besser. Aber wer Geld sparen will, kauft das China-Teil und muss dann ein paar Stunden mehr investieren …

Hier abschliessend eine kleine Gegenüberstellung der Vor- und Nachteile.

Vorteile

  • Preis
  • Grösse
  • Leistung
  • Programmierung mit ARDUINO IDE

Nachteile

  • Externe Beschaltung erforderlich
  • Originalfirmware nicht mehr verfügbar/brennbar
  • Inbetriebnahme etwas schwierig
  • USB-TTL Wandler erforderlich, der seinerseits etliche Probleme mitbringt