Hallo ich habe das WLAN Modul ESP8266 und möchte dies am pyboard http://www.electrodragon.com/w/File:ESP8266_V091.png http://docs.micropython.org/en/latest/quickref.html#general-board-control betreiben. Dazu hae ich zuerst die UART schnittstelle eingerichtet und sende jetzt den Befehl mit uart.write('AT') an das WLAN Modul. Nur bekomme ich leider keine Antwort? Hat einer Ideen was ich falsch mache? es leuchtet die Rote LED und die blaue blinkt beim start. Vielen Dank
Welche baudrate hast du eingestellt? Je nach Firmware kann sie 9600 oder 115200 betragen. Wichtig beim esp ist es auch dass die Stromversorgung genug Strom bereitstellen kann da das Modul am Anfang einiges an Strom braucht. Der CH_PD muss auch auf vcc
Martschul schrieb: > Dazu hae ich zuerst die UART schnittstelle eingerichtet und sende jetzt > den Befehl mit uart.write('AT') an das WLAN Modul. Nur bekomme ich > leider keine Antwort? > > Hat einer Ideen was ich falsch mache? > was ist das für eine programmiersprache, welcher strings in einfach streicher (pascal) zusammhält und ohne zeilenabschluss? (phyton) nein kenne das pyboard nicht und welche sprache es unterstützt. der name klingt aber stark nach phyton probiere es einmal mit den üblichen '\n' und '\r'
1 | je nachdem - welche firmware / sprache: |
2 | |
3 | // c code |
4 | uart.write("AT\r\n"); |
5 | |
6 | oder |
7 | // c code |
8 | uart.write("AT\r"); |
9 | |
10 | |
11 | // phyton |
12 | uart.write('AT\r\n') |
13 | |
14 | oder |
15 | uart.write('AT\r') |
16 | |
17 | |
18 | oder |
19 | // pascal |
20 | uart.write("AT" + #13 + #10); |
21 | |
22 | // pascal |
23 | uart.write("AT" + #13 ); |
24 | |
25 | |
26 | |
27 | oder |
28 | // ?? |
29 | uart.write('AT <<< hier muss ein carrier sowie new line dazu!' ) |
gib bitte rückinfo was geholfen hat, danke ansonsten das übliche vorgehen der vorredner: baudrate 9600, 57600, 115200 Rx/Tx anschluss prüfen ob richtig angeschlossen .. denke es liegt aber am code
erstmal vielen Dank für die schnelle Antwort! Als baudrate hab ich sowohl 9600 als auch 115200 ausprobiert. Die Versorung könnte ein punkt sein. Sieht man das an den LED? Ich versuch es mal mit einer eigenen Versorgung. Kennst du ein (besonders) geeigneten Festspannungswandler, oder ist das ganz egal? Hab das halt direkt an den 3,3V Ausgang des Pyboard angeschlossen. CH_PD hatte ich auf auf 3,3V. Liege ich denn in der Annahme richtig, dass ich dann so darauf zugreifen können müsse, wenn ich die AT+... Befehle über uart.write('AT+...') schreibe? Kommen die Antworten dann direkt durch oder muss ich gleich nach dem schreiben ein read aufrufen? hab davon leider viel zu wenig Ahnung :-( Vielen Dank
Martschul schrieb: > Liege ich denn in der Annahme richtig, dass ich dann so darauf zugreifen > können müsse, wenn ich die AT+... Befehle über uart.write('AT+...') > schreibe? Aber \r (bei alter Firmware) und \r\n bei neuer Firmware nicht vergessen. > Kommen die Antworten dann direkt durch oder muss ich gleich > nach dem schreiben ein read aufrufen? Naja von der seriellen Schnittstelle musst du schon lesen. Die Ausgabe kommt direkt nach dem der Befehl erkannt wurde. Teste das am besten erstmal direkt am PC mit TeraTerm oder so.
Hallo Hab das \r\n ausprobiert das ändert leider nichts. Was soll das denn bringen? Also bei diesem code
1 | while not switch(): |
2 | uart1.write('AT\r') |
3 | print(uart1.readall()) |
kommt als anzeige immer b''. Wenn ich einen anderen UART erzeuge und z.B. uart2.readall() ausgebe und die Verbinde zeigt er mir b'AT' als Ausgabe an. Also daher denke ich das das daran eigentlich nicht liegt. Ich hoffe ich hab mein Modul nicht kaputt gemacht da das ja nur 3,3V only ist. Weiß einer die Spannung der UART Pins des pyboard ? Ich hoffe mal 3,3V! Sonst noch ne Idee? Muss erst einen Festspannungswandler mir besorgen. RX/TX hab ich auch jeweils in beiden Richtungen probiert. Wobei ja eigentlich TX-> RX und RX->TX gehen muss oder?
Die Antwort auf "AT" ist "AT OK". Da du "AT" empfängst liegt es wohl daran, dass wenn du liest noch nicht alles vom ESP gesendet wurde. Lies also mal länger vom UART. Auf einem µC mache ich das mit einen RX-Interrupt und fülle einen Buffer und lese den nach einer bestimmten Zeit aus. Wie gesagt versuch erstmal direkt an den PC mit TeraTerm oder so, dann siehst du auch ob vom Prinzip her alles ok ist.
Sorry, das war von mir irreführend. Ich empfange das AT nur wenn ich es von einem UART des pyboard zu einem anderen UART des pyboard sende. hab darüber nur versucht das senden und empfangen zu testen Um es direkt am PC zu probieren brauche ich erstmal eine UART-USB converter, aber werd ich dann mal ausprobieren. wenn ich den hab, sende ich dann das AT indem ich direkt AT eingebe und als Antwort dann AT OK angezeigt bekomme (wenn es funktioniert)? Vielen Dank dir auch.
Martschul schrieb: > Hab das \r\n ausprobiert das ändert leider nichts. Was soll das denn > bringen? Das \r\n (Carraige Return + Line Feed) lagt dem ESP dass der Befehl hier zu Ende ist. Martschul schrieb: > wenn ich den hab, sende ich dann das AT indem ich direkt AT eingebe und > als Antwort dann AT OK angezeigt bekomme (wenn es funktioniert)? Du musst aber darauf achten, dass du \r\n mitsendest. Bei hterm z.B. kann man einstellen, dass das automatisch mitgesendet wird.
Das \r\n (Carraige Return + Line Feed) sagt dem ESP dass der Befehl hier zu Ende ist.
Hallo Bekomme jetzt bei AT\r\n b'AT\r\r\n\r\nOK\r\n' als Antwort. Vielen Dank für die Unterstützung. scheint wirklich nur an der Energieversorgung zu liegen. Hab jetzt einen externen 3,3V Festspannungsregler verwendet.
Hallo Nachdem ich jetzt mit dem ESP 8266 kommunizieren kann, habe ich diesen im den AP modus konfiguriert. Wie kann ich nun einen Server starten um Daten vom pyboard über wlan zu veröffentlichen?
Martschul schrieb: > Wie kann ich nun einen Server starten um Daten vom pyboard über wlan zu > veröffentlichen?
1 | AT+CIPSERVER=1,<PortNummer>\r\n |
Dein Programm muss dann noch auf die kommenden Anfragen antworten. Ich würde vorschlagen, dass du das erst mit einem Terminal (z.B. hterm) am PC ausprobierst. P.S. Eine übersicht über die AT+Befele findest du hier: https://nurdspace.nl/ESP8266#AT_Commands
Hallo Vielen Dank für die Antwort Habe das Modul jetzt im AP Modus (AT+CWMODE=2\r\n) und den Server gestartet (AT+CIPSERVER=1,80\r\n) Ich versuche jetzt mit (AT+CIPSEND=4,5Hallo\r\n) Hallo zu senden Aber da kommt leider eine Fehlermeldung Um das gesendete zu empfangen hab ich mich mit meinem Handy in den AP eingeloggt und mit der App TCP Client https://play.google.com/store/apps/details?id=com.sollae.eztcpclient&hl=de versucht die Nachrichten zu empfangen. Wenn ich das (AT+CIPSEND=4,5Hallo) in einer While schleife habe kann ich in der App was angeben, was dann im Terminal angezeigt wird. Wie kann ich das empfangene mit dem pyboard weiter verarbeiten? Wie kann ich Informationen (richtig) Senden? Am liebsten würde ich die gern im browser als Webseite dargestellt bekommen, hat dafür jemand gute Ideen? Vielen Dank für die bisherige Unterschtützung!
Martschul schrieb: > Ich versuche jetzt mit (AT+CIPSEND=4,5Hallo\r\n) Hallo zu senden Aber da > kommt leider eine Fehlermeldung 1. Welche? 2. Versuchs mal mit:
1 | "AT+CIPSEND=4,5\r\n" |
2 | //warten bis '>' empfangen wird
|
3 | "Hallo\r\n" |
> Am liebsten würde ich die gern im browser als Webseite dargestellt > bekommen, hat dafür jemand gute Ideen? Ich habe hier mal etwas für den PIC24 geschrieben: Beitrag "Einfacher Webserver mit PIC24 + ESP8266" Im Prinzip fukntioniert es so: Browser sendet GET Request ans ESP8266, µC wertet die Anfrage aus, sendet das HTTP-Header + HTML-File (CIPSEND) und schleißt die Verbindung (CIPCLOSE).
Hallo Max Wie kann ich warten bis '>' empfangen wird? Bzw das IPD bei empfangenen Nachrichten rausfiltern? Ich habe mal testweise mit delay(500) probiert und dann kommt zumindest ein teil durch
1 | uart1.write('AT+CIPSEND=0,5\r\n') # sendet |
2 | pyb.delay(500) |
3 | uart1.write('HALLO\r\n') # sendet |
4 | print(uart1.readall()) |
Das readall gibt jetzt folgendes aus: b'HALLO\r\r\nwrong syntax\r\n\r\nERROR\r\n\r\nSEND OK\r\n' ich werde mir dein Umfangreiches Beispiel nachher mal ansehn. Vielen Dank
Hallo Es funktionierte eben schon mal, nur leider hab ich irgendwas geänedert sodass ich wieder eine Fehlermeldung bekomme: Und zwar folgende: b'AT+CIPSEND=1,161\r\r\nbusy inet...\r\n\r\nERROR\r\n' Und zwar wenn ich folgendes sende # Zusammensetzen der Senden Vorbereitung cipSend = 'AT+CIPSEND=' cipSend += str(ID) # ID des Teilnehmers Teilnehmer cipSend += ','; cipSend += str(len(webpage)) # Länge der Webseite als String cipSend +='\r\n' self.__send(cipSend) Hat einer eine Idee woran das liegt? Vor allem da es zwischendurch scon mal ging ? Vielen Dank
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.