Arduino Mini Pro und ESP8266

Als nächstes ist die Verbindung zwischen Arduino und dem ESP8266 dran. Dazu muss man sich Gedanken machen wie man den Arduino über den FTDI Programmieren kann und gleichzeitig den ESP8266 per Serielle Verbindung abfragen kann. Ich habe mich dazu entschlossen den FTDI an den dafür vorgesehenen Anschluss des Arduinos anzubinden. Der ESP8266 wird über zwei Digitale PINs (TX / RX) angesteuert. Die Ansteuerung wird über eine Software Bibliothek bereitgestellte Serielle Schnittstelle realisiert.

Damit kann ich den Arduino wie gehabt programmieren und muss nichts umstecken. Nachteil ist das die Software Bibliothek Platz verschwendet und nicht ganz so stabil läuft. Nach der Entwicklung werde ich das aber dann umstellen. Der Aufbau auf einem Steckbrett sieht wie folgt aus.

image-541

Den FTDI habe ich auf dem Bild weg gelassen. Wichtig ist nach wie vor die Stromanpassung zwischen dem Arduino 5V und dem ESP8266 mit 3,3V. Während der Arduino mit den 3,3V des ESP-TX PINs klar kommt würde der ESP kaputt gehen wen die 5V des Arduinos direkt an den ESP-RX PINs anliegen. Da ich hoffe das keine Last gezogen wird behelfe ich mich hier mit einem einfachen Spannungsteiler aus zwei Widerständen. Hier sei zwischendrin mal wieder erwähnt das ich vieles kontrollieren, nachmesse und nachlese aber nie für die Richtigkeit Garantiere kann.

Für die normale Spannungsversorgung ist mein Step Down Regler eingebaut. Der DS18B20 Temperatursensor ist für später gedacht.

Arduino Sketch

Ein ganz einfaches Programm um die Kommunikation zu testen ist das folgende Sketch. Es startet beide Seriellen Ports mit 9600. Wichtig ist das diese identisch sind, sonst kommt es zu durcheinander. Wichtig sind auch die Einstellungen im SerialMonitor vom Arduino GUI.


#include <SoftwareSerial.h>
SoftwareSerial wifiSerial(2, 3); // TX-Blau-Weiss-2-RX, RX-Violett-1K&1,5K-Grün-3-TX Spannungsteiler</pre>
<pre>
void setup()
{
 Serial.begin(9600); // Seriel Port auf 9600 Baud starten für FTDI Anschluß an PC
 Serial.println("Bitte Befehl Eingeben");

 wifiSerial.begin(9600); // Software Seriel Port auf 9600 Baud starten für ESP8266
}

void loop() // Endloss Programschleife
{
 //Wenn vom ESP Informationen kommen zum FTDI weiterleiten
 while (wifiSerial.available()>0 ){
 Serial.write(wifiSerial.read());
 }

 // Wenn vom PC Befehle kommen an ESP weiter senden
 while (Serial.available()>0 ){
 wifiSerial.write(Serial.read());
 delay(100);
 }
}

Terminal-Arduino-ESP
image-542

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

99 − 97 =