TOR
Senden Sie von Arduino UNO über einen SoftwareSerial-Port AT-Befehle an ESP8266 und empfangen Sie Ergebnisse.
AKTUELLER STATUS
Ich sende entweder AT-Befehle und erhalte nichts zurück ( Verdrahtungsschema 1 ) oder ich sende AT-Befehle und erhalte Müll zurück ( Verdrahtungsschema 2 ).
Mit dem Arduino als Durchgang (wie im Tutorial im Abschnitt Ressourcen erläutert) kann ich AT-Befehle senden. Ich habe festgestellt, dass ich mit dem ESP8266 bei 115200 Baud kommunizieren kann.
Dies ist das Ergebnis des Laufens AT+GMR
:
AT version:0.40.0.0(Aug 8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
VERKABELUNGSSYSTEM 1
!! Ich habe den grünen Draht an Pin 3 des Arduino Uno und den gelben Draht an Pin 2 angeschlossen. nicht 1 und 0 wie das Bild zeigt !!
VERKABELUNGSSYSTEM 2
Gleiche Verkabelung wie oben, aber ich habe RX und TX vertauscht. Der grüne Draht ist an Pin 2 und der gelbe Draht an Pin 3 angeschlossen.
CODE
Dies läuft auf Arduino Uno
#include <SoftwareSerial.h>
SoftwareSerial esp8266(2, 3);
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Started");
// set the data rate for the SoftwareSerial port
esp8266.begin(115200);
esp8266.write("AT\r\n");
}
void loop() {
if (esp8266.available()) {
Serial.write(esp8266.read());
}
if (Serial.available()) {
esp8266.write(Serial.read());
}
}
ERGEBNISSE AUS DER LAUFSKIZZE
Verdrahtungsschema 1
Started
Verdrahtungsschema 2
Started
�����
Ich habe den ESP8266 anhand der Anweisungen getestet, die im Lernprogramm im Abschnitt Ressourcen, die ich verwendet habe, unten aufgeführt sind. Der ESP8266 funktioniert einwandfrei, wenn Anweisungen über die serielle Eingabeaufforderung gesendet werden.
RESSOURCEN, DIE ICH VERWENDET HABE http://rancidbacon.com/files/kiwicon8/ESP8266_WiFi_Module_Quick_Start_Guide_v_1.0.4.pdf
FRAGE
Weiß jemand, ob das, was ich versuche, möglich ist? Und wenn ja, was mache ich falsch?
Antworten:
Absolut möglich :)
SoftwareSerial kann keine Baudrate von 115200 erreichen (obwohl dies als Einstellung "zugelassen" ist). Einige Berichte legen nahe, dass bis zu 57600 funktionsfähig sind, obwohl nach meiner Erfahrung 9600 für die Zuverlässigkeit am besten geeignet ist. Wie Sie die Baudrate des ESP8266 ändern, hängt von der Firmware-Version ab. Ich hatte Erfolg mit
AT+IPR=9600
. Sie müssen diesen Befehl nur einmal ausführen (es handelt sich um eine dauerhafte Einstellung). Basierend auf Ihrer Beschreibung würde ich vorschlagen, dass dies der wahrscheinlichste Schuldige ist, der die von Ihnen beschriebene "Müll" -Ausgabe verursacht.Ein paar andere Anmerkungen:
AT
aber wenn Sie versuchen, eine Verbindung zu einem Netzwerk usw. herzustellen, kann dies zu unerwarteten Geräte-Resets führen.quelle
Nun, Sie können dies versuchen:
Laden Sie zunächst eine Blinkskizze auf Ihr Arduino hoch und verbinden Sie sie dann wie folgt mit Ihrem ESP8266: TX-TX und RX-RX.
Öffnen Sie nun den seriellen Monitor und senden Sie den AT-Befehl, um festzustellen, ob er reagiert. Wenn ja, können Sie es mit Ihrem Arduino steuern, indem Sie es wieder mit TX-RX und RX-TX verbinden.
PS: Vergessen Sie nicht, die im seriellen Monitor endende Zeile auf Newline oder Carriage Return zu setzen.
Verwenden Sie diesen Code, um eine Verbindung zum ESP8266 herzustellen:
Da die serielle Hardwareschnittstelle bei Verbindung mit dem Computer ausgelastet ist, müssen Sie eine andere serielle Schnittstelle verwenden, um mit Ihrem ESP8266 zu kommunizieren. In diesem Fall ist Software Serial praktisch.
quelle
Weiß jemand, ob das, was ich versuche, möglich ist? Es ist möglich, ich habe es mit 2 Arduinos gemacht, bei denen einer ESP8266 simulierte (auf eBay-Bestellung warten).
Und wenn ja, was mache ich falsch?
Was Sie tun, ist auf den meisten Ebenen falsch, aber ich denke, Sie haben die meisten Probleme gelöst.
Eine Idee ist, diesen kleinen Kerl zu implementieren: Logic Level Shifter , der Ihnen später viele Probleme erspart.
In Ihrem "WIRING SCHEME 1" verwenden Sie die serielle Hardware-Schnittstelle des Arduino, um direkt mit dem Gerät zu kommunizieren, als wäre es über ein TTL-Kabel oder ein FTDI-Kabel verbunden.
Dies bedeutet, dass das Arduino-Gerät theoretisch von der Hardware liest, wenn es auch mit dem ESP8266 spricht. Wenn Sie ein anderes Arduino- oder TTL-Kabel haben, versuchen Sie, es an Gate 2 und 3 des "Haupt" -Arduinos anzuschließen, und Sie sollten ein ähnliches erhalten Ergebnis wie für Ihr Beispiel Ergebnis 2. Da würden Sie auf diese Weise Proxy durch das Arduino. Wenn nicht, wäre dies ein Ort, an dem Sie mit dem Debuggen beginnen können.
Außerdem kann ich Ihnen nur empfehlen, in einen TTL 3,3 V oder einen Logikpegelwandler zu investieren. Als ich mein Kabel bekam, funktionierte alles sofort.
quelle
Ich hatte auch viele Probleme. In meinem Fall werden Probleme fast durch den Wechsel von SoftwareSerial zu AltSoftSerial gelöst . Es schien, dass auf der Uno die serielle Bibliothek der Standard-Software für mich nicht funktionierte. Nach dem Wechsel bekam ich zum ersten Mal wieder Ergebnisse. (Ich habe auch Pegelverschiebung und externe Stromversorgung für 3,3 V verwendet)
Und mit fast gelöst meine ich - ich bekomme immer noch von Zeit zu Zeit Kauderwelsch auf dem Terminal. Selbst AltSoftSerial ist also keine perfekte Lösung. Ich habe das ESP-07 mit einer Datenrate von 115200 Bit / s verwendet.
quelle
Wir haben festgestellt, dass viele der Probleme bei der seriellen Software-Integration von ESP - Arduino Uno mit inkompatibler Baudrate zusammenhängen. Wir haben dieses kurze Tutorial (einschließlich einer Github-Bibliothek) erstellt, das Sie gerne testen können, um festzustellen, ob es diese Probleme löst. http://www.instructables.com/id/Simple-ESP8266-Arduino-Uno-Software-Serial-Integra/
quelle
Hier einige Tipps zur Verwendung des ESP8266-Moduls.
Verwenden Sie keine serielle Software, da diese insbesondere bei höheren Baudraten unzuverlässig ist.
Immer connect ESP - Modul an den Computer und testen Sie alle AT - Befehle vor interacing mit Arduino , um sicherzustellen , dass Sie in die richtige Richtung arbeiten
Erstellen Sie eine Netzteilplatine , um das ESP-Modul mit der Arduino 5v-Versorgung kompatibel zu machen
Überprüfen Sie auch diesen Link für weitere Details
quelle