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. LEGOLAND Deutschland Freizeitpark GmbH, Günzburg
  2. Stadtwerke Düsseldorf AG, Düsseldorf
  3. Getriebebau NORD GmbH & Co. KG, Bargteheide
  4. Deutsches Krebsforschungszentrum (DKFZ), Heidelberg


Anzeige
Blu-ray-Angebote
  1. 49,99€ mit Vorbesteller-Preisgarantie
  2. Einzelne Folge für 2,99€ oder ganze Staffel für 19,99€ kaufen (Amazon Video)

Folgen Sie uns
       


  1. C't-Editorial kopiert

    Bundeswahlleiter stellt Strafanzeige gegen Brieffälscher

  2. Bundestagswahl 2017

    Viagra, Datenbankpasswörter und uralte Sicherheitslücken

  3. Auto

    Tesla will eigene Hardware für seine autonom fahrenden Autos

  4. Pipewire

    Fedora bekommt neues Multimedia-Framework

  5. Security

    Nest stellt komplette Alarmanlage vor

  6. Creators Update

    "Das zuverlässigste und sicherste Windows seit jeher"

  7. Apple iOS 11

    Wer WLAN und Bluetooth abschaltet, benutzt es weiter

  8. Minecraft

    Eine Server-Farm für (fast) alle Klötzchenbauer

  9. Kabelnetz

    Unitymedia bringt neue Connect App, Booster und Sprachsuche

  10. PowerVR 9XE/9XM und PowerVR 2NX

    Imagination Technologies bringt eigenen AI-Beschleuniger



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Apples iPhone X in der Analyse: Ein iPhone voller interessanter Herausforderungen
Apples iPhone X in der Analyse
Ein iPhone voller interessanter Herausforderungen
  1. Face ID Apple erlaubt nur ein Gesicht pro iPhone X
  2. iPhone X Apples iPhone mit randlosem OLED-Display kostet 1.150 Euro
  3. Apple iPhone 8 und iPhone 8 Plus lassen sich drahtlos laden

Metroid Samus Returns im Kurztest: Rückkehr der gelenkigen Kopfgeldjägerin
Metroid Samus Returns im Kurztest
Rückkehr der gelenkigen Kopfgeldjägerin
  1. Doom, Wolfenstein, Minecraft Nintendo kriegt große Namen
  2. Nintendo Das NES Classic Mini kommt 2018 noch einmal auf den Markt
  3. Nintendo Mario verlegt keine Rohre mehr

Galaxy Note 8 im Test: Samsungs teure Dual-Kamera-Premiere
Galaxy Note 8 im Test
Samsungs teure Dual-Kamera-Premiere
  1. Galaxy S8 und Note 8 Bixby-Button lässt sich teilweise deaktivieren
  2. Videos Youtube bringt HDR auf Smartphones
  3. Galaxy Note 8 im Hands on Auch das Galaxy Note sieht jetzt doppelt - für 1.000 Euro

  1. Re: Und darum brauchen wir eine echte...

    gadthrawn | 12:21

  2. Re: Habe es immer noch nicht ganz verstanden

    MasterBlupperer | 12:20

  3. Re: Ja? Wieso funktioniert dann mein Edge und die...

    windermeer | 12:20

  4. Abmahnung wäre angebracht

    Aludrin | 12:20

  5. Re: Unnötig wie ein Kropf

    Niaxa | 12:19


  1. 12:33

  2. 12:05

  3. 12:02

  4. 11:58

  5. 11:36

  6. 11:21

  7. 11:06

  8. 10:03


  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