Abo
  • Services:
Anzeige
ESP-8266-12 und ESP-8266-01-Modul
ESP-8266-12 und ESP-8266-01-Modul (Bild: Alexander Merz/Golem.de)

Die benötigten Bauteile

Die Liste der erforderlichen Bauelemente ist kurz, es gibt sie für wenig Geld bei allen Elektronikhändlern:

  • ein Temperatursensor DS18B20
  • ein 4,7-kOhm-Widerstand
  • ein kleines Steckbrett
  • ein Set Verbindungskabel und Klingeldraht

Wer den ESP mit einem Arduino nutzen will, benötigt natürlich auch diesen. Soll der ESP hingegen allein genutzt werden, ist noch ein USB-zu-Seriell-Adapter notwendig und irgendeine Form der Stromversorgung mit einer Spannung von 3,3 Volt. Wir benutzen dazu eine umfunktionierte USB-Buchse und einen LD33V-Spannungswandler.

Anzeige

ESP8266 mit dem Arduino nutzen

Zuerst wird der Schaltkreis zur Temperaturmessung aufgebaut und mit dem Arduino verbunden. Ablauf und Verkabelung wurden bereits ausführlich im Artikel Temperatur messen mit dem Arduino geschildert.

Steht diese Schaltung, kann der ESP8266 mit dem Steckbrett und dem Arduino verbunden werden. Leider hat das ESP-01 zwei Haken: Die parallel angeordneten Pins funktionieren nicht mit einem Steckbrett. Es muss also fliegend verkabelt werden. Da die Pins des ESP-01 nicht markiert sind, empfiehlt es sich, beim Verkabeln ein Bild mit den Pin-Bezeichnungen vor sich zu haben, wie es zum Beispiel hier zu finden ist.

  • ESP-01 als Temperaturmessstation (Foto: Martin Wolf/Golem.de)
  • ESP-01 mit Arduino als Temperaturmessstation (Foto: Martin Wolf/Golem.de)
  • ESP-01 und ESP-12 (Foto: Martin Wolf/Golem.de)
  • Basisschaltung für den Temperatursensor und die Stromversorgung  (Foto: Martin Wolf/Golem.de)
  • Für den Standalone-Betrieb eines ESP-01 ist neben der zusätzlichen Stromversorgung auch ein USB-zu-Seriell-Adapter nötig. (Foto: Martin Wolf/Golem.de)
  • Fritzing-Zeichnung für den Betrieb des ESP-01 mit einem Arduino (Abb.: Alexander Merz/Fritzing)
  • Fritzing-Zeichnung für den Standalone-Betrieb des ESP-01 (Abb.: Alexander Merz/Fritzing)
ESP-01 mit Arduino als Temperaturmessstation (Foto: Martin Wolf/Golem.de)

Der GND-Pin des ESP wird mit der blauen oder schwarzen Leiste des Steckbretts verbunden, der VCC-Pin mit der roten Leiste. Auch der CH_PD-Pin muss mit der roten Leiste verbunden werden. Das mittlere Beinchen des Temperatursensors wird mit dem Pin GPIO02, der TX-Pin des ESP mit dem RX-Pin des Arduinos (Pin 0) verbunden, der RX-Pin am ESP mit dem TX (Pin 1) des Arduino. Wer später beim Programmieren Probleme hat, das Programm auf den Arduino aufzuspielen, sollte die RX- und TX-Kabel während des Flashvorgangs abstecken, danach wieder aufstecken und einen Reset durchführen.

Wer Bedenken hat, der ESP käme nicht mit dem Spannungspegel bei den RX/TX-Pins des Arduino zurecht, sei beruhigt. Im Dauertest gab es mit verschiedenen Modulen keine Probleme. Lediglich die Stromversorgung über den Arduino kann zu Problemen führen, wenn das Wlan schlecht erreichbar ist. Hier muss unter Umständen eine eigene Stromquelle zum Einsatz kommen, wie im zweiten Teil des Artikels beschrieben.

Arduino programmieren

Auch bei unserem Programm für den Arduino können wir auf den Code und die Erklärung dazu aus dem früheren Artikel zurückgreifen. Der Teil zur Temperaturmessung ist identisch, allein der zur Initialisierung des ESP-Moduls und zum Versenden der Daten unterscheidet sich. Den vollständigen Quellcode für unser Programm gibt es in Github. Hier werden wir die Kommunikation mit dem ESP besprechen.

Die Kommunikation zwischen dem Arduino und dem ESP-Modul wird über die serielle Schnittstelle abgewickelt. Das hat den praktischen Nebeneffekt, dass die Kommandos unseres Programms an den ESP im seriellen Monitor der Arduino-IDE sichtbar sind.

Der ESP erwartet AT-Kommandos, wie sie langjährige Leser noch von früheren Modems kennen. Eine Liste der Kommandos gibt es auf Github. In der initESP()-Funktion schicken wir AT-Kommandos, damit das ESP als reguläres WLAN-Gerät agiert (AT+CWMODE=1) und erlauben nur eine Verbindungen gleichzeitig (AT+CIPMUX=0). Schließlich starten wir die Verbindung mit einem WLAN-Netzwerk, dabei übergeben wir den Netzwerknamen und das Passwort (AT+CWJAP="SSID", "PASSWORT"). Letztere sind im Programm als Konstanten definiert.

Ein gemessener Temperaturwert wird mit der sendTemperature()-Funktion versendet. Sie ruft praktisch nur zwei AT-Kommandos auf. Das erste stellt eine TCP-Verbindung mit dem Server her:

AT+CIPSTART="TCP","www.golem.de",80

Als Nächstes wird ein GET-Request nach HTTP1.0 in einem String zusammengebaut und ausgeführt (Zeile 67 bis 82). Dieser Part ist etwas komplizierter. Zuerst wird die erste Request-Zeile gebaut, die die URL enthält. Die URL besteht aus einem fixen Teil und kann über ein Formular auf unserer Projektseite erzeugt werden. Daran wird die Temperatur als URL-Parameter angehängt. An diese Request-Zeile wird eine zweite Zeile für die nochmalige Hostangabe angehängt und der Request-Body beendet.

Jetzt wird ein AT-Kommando mit der Länge des Request-Strings übergeben:

  1. Serial.print("AT+CIPSEND=");
  2. Serial.println(cmd.length());

Danach muss das Programm warten, bis der ESP mit einer Eingabeaufforderung reagiert, erst jetzt kann der eigentliche Request übergeben werden. Die Serverantwort wird zwar abgeholt, interessiert uns aber hier nicht weiter. Zum Schluss wird die Verbindung wieder geschlossen (AT+CIPCLOSE).

Nach dem Überspielen des Programms kann die ganze Konstruktion vom Computer abgesteckt werden und über eine eigene Stromversorgung versorgt werden, zum Beispiel mit Hilfe eines USB-Netzteils. Es wird jetzt alle 30 Minuten die Temperatur gemessen und gesendet.

Das hier beschriebene Schema, den Arduino über ein Wlan-Modul ans Netz anzubinden, funktioniert übrigens auch mit anderen Wlan-Modulen für den Arduino. Auch sie basieren zumeist auf einer Anbindung über die serielle Schnittstelle, lediglich die AT-Befehle variieren.

 Mitmachprojekt: Temperatur messen und versenden mit dem ESP8266ESP allein benutzen 

eye home zur Startseite
MichaelDworkin 11. Jun 2016

Danke für Ihre Artikel. Ich habe nach Ihre Anleitung Arduino installiert und ESP8266...

ChriDDel 25. Mai 2016

warum der TPS63050? Bei meinen Recherchen bin ich auf den HT7333 gestoßen. Günstig und...

am (golem.de) 05. Mai 2016

Man benötigt das ESP-Paket für die Arduino-IDE wie im Artikel auf Seite 3 beschrieben...

H4ndy 01. Mai 2016

Ich hab nen Digistump Oak genommen, der ist etwas teuerer, bringt aber Particle.io mit...

Mett 28. Apr 2016

Doch doch, er zeigt irgendwann, was die komplette Kiste im deep sleep zieht: 127 µA.



Anzeige

Stellenmarkt
  1. Bechtle GmbH & Co. KG IT-Systemhaus, Mannheim
  2. Deutsche Telekom Technik GmbH, Stuttgart
  3. Bsys Mitteldeutsche Beratungs- und Systemhaus GmbH, Erfurt
  4. BVU Beratergruppe Verkehr + Umwelt GmbH, Freiburg


Anzeige
Hardware-Angebote
  1. 619,00€

Folgen Sie uns
       


  1. Realface

    Apple kauft israelischen Gesichtserkennungsspezialisten

  2. Chevrolet Bolt

    GM plant Tests mit Tausenden von autonomen Elektroautos

  3. Konkurrenz zu Amazon Echo

    Hologramm-Barbie soll digitale Assistentin werden

  4. Royal Navy

    Hubschrauber mit USB-Stick sucht Netzwerkanschluss

  5. Class-Action-Lawsuit

    Hunderte Ex-Mitarbeiter verklagen Blackberry

  6. Rivatuner Statistics Server

    Afterburner unterstützt Vulkan und bald die UWP

  7. Onlinewerbung

    Youtube will nervige 30-Sekunden-Spots stoppen

  8. SpaceX

    Trägerrakete Falcon 9 erfolgreich gestartet

  9. Hawkeye

    ZTE bricht Crowdfunding-Kampagne ab

  10. FTTH per NG-PON2

    10 GBit/s für Endnutzer in Neuseeland erfolgreich getestet



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Mobile-Games-Auslese: Schiffbruch auf der Milchstraße für mobile Spieler
Mobile-Games-Auslese
Schiffbruch auf der Milchstraße für mobile Spieler

München: Wie Limux unter Ausschluss der Öffentlichkeit zerstört wird
München
Wie Limux unter Ausschluss der Öffentlichkeit zerstört wird
  1. US-Präsident Zuck it, Trump!
  2. Begnadigung Danke, Chelsea Manning!
  3. Glasfaser Nun hängt die Kabel doch endlich auf!

Pure Audio: Blu-ray-Audioformate kommen nicht aus der Nische
Pure Audio
Blu-ray-Audioformate kommen nicht aus der Nische

  1. Re: Immer die selbe Leier

    eXXogene | 07:36

  2. Re: Und wo liegt nun der Unterschied zu Alexa?

    M.P. | 07:18

  3. Re: was ist schlimmer

    longthinker | 07:16

  4. Re: Wie kann man auch so dumm sein?

    Dragon Of Blood | 07:15

  5. Re: Einzige nervige Werbung hat Golem

    Reudiga | 07:10


  1. 07:41

  2. 07:22

  3. 14:00

  4. 12:11

  5. 11:29

  6. 11:09

  7. 10:47

  8. 18:28


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel