Archiv der Kategorie: AVR Mikrokontroller

Beiträge zum AVR Mikrocontroller

ESP8266 mit der Arduiono IDE Programieren

Ich hab mich in den letzten Tagen mal etwas intensiver mit dem Thema Datashet ESP8266 beschäftigt. Dieses Modul geistert in letzte Zeit immer häufiger durch die Fachpresse und das zu Recht. Es handelt sich hierbei um ein kleines WIFI – Modul, dass recht einfach seriell an jeden beliebigen Mikrocontroller Type angeschlossen werden kann.Der Datenaustausch erfolgt über AT-Komandos ähnlich wie man sie von anderen seriellen Kommunikationen kennt.

Das interessante bei diesem Modul ist jedoch, dass man im Prinzip auf einen zusätzlichen Mikrocontroller verzichten kann, denn der ESP8266 verfügt selbst über bis zu 4 MB Flash und 11 GPIO’s bei 80 MHz.

Das Modul ist in verschiedenen Board-Typen erhältlich, hierbei sind meist unterschiedlich viele der GPIO Pins herausgeführt. Auf allen Breakouts sind jedoch minimal 4 (Rx (GPIO 3) und Tx (GPIO 1) , VCC und VSS).

Die Programmierung des ESP kann sehr einfach mit der Arduino IDE erfolgen

Hierbei stehen mehrere Möglichkeiten zur Verfügung:

Auf GitHub steht eine eigenständige Version der Arduiono IDE ESP8266 zum download zur Verfügung , die bereits über alle nötigen Librarys verfügt, jedoch nicht immer auf dem aktuellsten Stand ist.

Die zweite Alternative besteht darin,  eine bereits vorhandene (installierte) original Arduiono IDE um die Hardware Library zu erweitern. Diese steht ebenfalls auf GitHub zur Verfügung.

Die dritte und einfachste Möglichkeit, einfach in den Voreinstellungen der Arduiono IDE Zusätzliche Boardverwalter den folgenden Link eintragen:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Anschließend wird unter Werkzeuge – Board – Board Verwalter… das Paket „ESP8266 Comunity“ ausgewählt und installiert. Um eine neue Version zu installieren kann dann die Updatefunktion des Pakets verwendet werden.

Soll das Package von Hand eingebunden werden, muss vorher die ZIP-Datei herunter geladen und entpackt werden.Im entpackten Ordner befindet sich neben den Git-Dateien auch der Ordner esp8266com. Dieser wird nun einfach in den Arduino-Ordner ../Dokumente/Arduino/hardware verschoben, dort befinden sich unter anderem dann auch zusätzliche neu Sketche Dateien, wie z.B.

  • ESP8266WebServer
    Ein einfaches Hello World Programm für die Serverfunktion
  • ESP8266mDNS
    Server mit mDNS (gerätename.local)
  • ESP8266WiFi
    Verschiedene Sketche: Scanner, Server, Clients sowie ein NTP-Client (Zeitsynchronisation über das Internet).

Nach dem starten der Arduiono IDE müssen nun noch ein paar Voreinstellungen getroffen werden. In der Boardauswahl befindet sich nun eine neue Kategorie, in der nun auch das Generic ESP8266 board zu finden ist, diese muss ausgewählt werden um z.B. ein ESP-01 Modul zu programmieren.Verwenden Sie für einen ersten Test z.B. aus den Beispielen den Hello Server-Sketch. Die Syntax ist Arduinokonform und die Programmierung sehr einfach, da alles eigene Librarys hat und die Kommunikation intern und nicht von einem Arduino nur mit AT-Kommandos über die serielle Schnittstelle geschieht.

Zum Programmieren mit dem ESP – Tool muss man das ESP-Modul wie folgt anschließen:
Achtung, keines der ESP Signale ist 5V tolerant!
  • SC_PD/CHIP_EN auf VCC
  • Tx und Rx über Kreuz an ein USB-Serial Modul.
  • VCC an 3,3V
  • GND mit der Masse verbunden.
  • GPIO0 zum Programmieren auf Masse.
  • RST kann offen bleiben oder ein PullUp (10k) eingebaut werden.
Das ESP Modul kann direkt vom USB Seriell Adapter versorgt werden, sofern dieser eine Ausgangsspannung von 3,3V unterstützt.
Einige Adapter bieten die Möglichkeit die Betriebsspannung zwischen 5V und 3V3  aus zu wählen. Hierbei ist dringend darauf zu achten, dass diese Einstellung nicht nur die VCC sondern auch die Datenpegel betrifft.

Programmierung

Nach dem erfolgreichen Kompilieren des Codes kann der Upload in das ESP – Modul erfolgen. In älteren IDE Versionen musst für den Upload in das Modul das „esptool“ aus der Liste der Programmer aus ausgewählt werden. Dies ist in den neueren Versionen nicht mehr vorhanden, da der Upload nun eine Uploadmethode ausgewählt wird. Nach dem die Übertragungsparameter im Menü Werkzeuge eingestellt wurden, kann der Upload anschließend im Menüpunkt Sketch Upload initiiert werden.
Sollte der Upload abbrechen,  ist der ESP vermutlich nicht im Standard Bootloader Modus. Hierfür muss der GP0 auf LOW gelegt sein und ein Reset ausgeführt werden. Nach dem erfolgreichen Programmieren startet das Programm anschließend unabhängig vom Pegel an GP0.

Firmware Update

Bei der Programmierung des ESP Moduls mit der Arduino IDE, wird die auf dem Modul vorhandenen Firmware automatisch überschrieben.

Soll das ESP – Modul nach dem Arbeiten mit der Arduino IDE wieder mit der original Firmware des Herstellers programmiert werden, kann hierfür das ESP Flash Tool verwendet werden, dass die Firma Espressif zur Verfügung stellt.Nach dem starten der Applikation ist folgendes Fenster zu sehen.

esp01 Firmware

 

Espressif stellt auf seinen Seiten ebenfalls die aktuellen Firmware zum Download zur Verfügung.
Für den Download drücken sie auf SDKs Downloads und dann wählen Sie das letzte Release aus.

Der Hersteller hat eine optionale Funktion in das Modul integriert, das ein automatisches Update direkt vom Hersteller erlaubt. Standardmäßig ist diese Funktion jedoch abgeschaltet.

Wordclock (Open Source Projekt)

WordclockNach dem ich bei Conrad Elektronik für meine Kinder mal ein Ping Pong Retrospiel gekauft hatte, dass nun schon seit längeren in der Ecke lag, habe ich einen neuen Verwendungszweck dafür gesucht und bin dabei auf ein schönes kleines Projekt gestoßen, eine sprechende Uhr.

Gefunden habe ich das ganze auf der Seite der Firma www.emsystech.de
Die kleine Platine ist wie bereits gesagt bei der Firma Conrad Elektronik (Ping Pong Retrogame) zu finden und kostet augenblicklich knappe 16 €. Sie besteht aus 120 einzelnen LED’s, die über einen ATmega8 Mikrocontroller angesteuert werden.
Schon bei der Erstellung des Layouts wurde anscheinend an die Möglichkeit gedacht, diese für spätere Erweiterungen und Weiterentwicklungen zu nutzen, denn es ist bereits eine Stiftleiste für die SPI-Programierschnitstelle vorhanden und alle nicht verwendeten Anschlüsse wurden auf der Platine gut zugänglich herausgeführt.

 

1001wordclock2
Rückseite der Ping Pong Platine

Für den Umbau zu einer Word Clock werden nur wenige zusätzliche Bauteile benötigt. Um eine quarzgenaue Zeitanzeige zu realisieren, wird ein 32.768 Khz Uhrenquarz an die dafür vorgesehen Anschlüsse B6 und B7 liegend angelötet. Um Kurzschlüsse zu vermeiden ist es sinnvoll ein kleines Stück Klebeband unter dem Quarz anzubringen.
Nun wird noch ein SMD Taster benötigt, er dient später zum Einstellen der Uhrzeit.
Löten sie diesen an die beiden Anschlüsse K1 und K2 ebenso wie den Quarz auf der Platinen Rückseite an.

0911PingPongSchaltbild
0910pingpong23 Vordereite der Ping Pong Platine

Wer die Uhr über einen längeren Zeitraum betreiben möchte sollte noch ein kleines 5V= Steckernetzteil spendieren, dass ohne weiteren Umbau direkt an die beiden Anschlüsse GND und +4,5V angeschlossen werden kann.

 

 

1001wordclock3Um ein hochwertiges Anzeigeergebnis zu erhalten, sollte man einen Separator zwischen die einzelnen LED’S einbringen.
Ich habe den Rest einer 3mm PVC Platte verwendet und 120 Löcher mit 4 mm im Abstand von 5mm gebohrt.
Das PVC kann anschließend auf die Platine eingepasst und mit etwas Klebstoff dort fixiert werden. Als Diffusor habe ich ein DIN A4 Seite aus dem technische Zeichenbedarf verwendet, es im Fachhandel für ein paar Cent erhältlich.
Nach dem der Kleber der zum fixieren des Separators aufgetragen wurde seine Festigkeit erreicht hat, kann nun das Transparentpapier aufgeklebt werden. Tupfen sie hierzu mit einem PRIT Klebestift auf den Separator und kleben sie anschließend das Papier ungeschnitten auf.Da die Folien nur schlecht zu bekommen ist, habe ich mich entschieden mit Sprintlayout (Demo Version) eine Vorlage zu erstellen. Zum Ausdrucken der Folie muss im Druckerdialog von Sprintlayout der Hacken „invers“ angeklickt werden um die Folie weiß auf schwarz zu erhalten.

Anschließend habe ich die Folie auf einem Laserdrucker ausgedruckt und doppelt übereinander gelegt, das Ergebnis kann sich wirklich sehen lassen. Um dem Ganzen einen gewissen Schick zu geben …. habe ich es in einen 18 x 13 cm Bilderrahmen eingebaut.

Montage der Komponenten

Wurde die Folie bedruckt und an den angezeichneten Schnittkanten getrennt, legen sie diese Spiegelverkehrt gegeneinander und bringen sie zur Deckung. Fixieren sie die beiden Folien mit einem schmalen Stück Klebstreifen an allen vier Kanten.

Einstellungen für die Programmierung im Atmel Studio

Atmega8 default

Wordclock
Wordclock
Wordclock.zip
93.4 KiB
1045 Downloads
Details