Hallo Leute,
ich versuche vergeblichst, auf einen GET-Befehl per ESP8266 zu
antworten.
Ich nutze eine XMega am ESP via UART. Die Kommunikation funktioniert
beidseitig via TCP/IP suoer, allerdings nur einseitig via HTTP
PUT/GET-Befehle.
Ich habe eine APP mittels MIT-App-Inventor, dieser kann nur PUT/GET,
kein TCP/IP. Per PUT kann ich alles senden, entschlüsseln und
verarbeiten. Allerdings wenn ich einen GET-Befehl sende, und dann Daten
sende, passiert nichts, bzw. die App enthält diese nicht. Ich denke mal
das liegt daran, dass ich das Protokoll nicht einhalte.
Bsp: Ich sende per PUT den Befehl: "a35". Dann antwortet der XMega mit
"LichtAN". Der Ablauf ist so:
App: PUT "a35"
App: GET
XMEGA: "AT+CIPSEND,0,7:LichtAN"
Die Antwort beim XMega klappt bei TCP/IP per VB-Programm. Was mache ich
bei HTTP GET falsch?!
> Allerdings wenn ich einen GET-Befehl sende, und dann Daten> sende, passiert nichts, bzw. die App enthält diese nicht.
Mag daran liegen, dass das HTTP-GET eben kein PUT/POST ist ;) GET holt
nur. Die einzige Information, die man übermitteln kann (von HTTP-Tags
ala Cookie, etc abgesehen), wird in der URL kodiert.
Hallo
Verate uns doch erstmal womit dein ESP programmiert wird. Arduino,
NodeMCU, Sming, SDK direkt?
Marius D. schrieb:> Die Kommunikation funktioniert> beidseitig via TCP/IP suoer, allerdings > nur einseitig via HTTP> PUT/GET-Befehle.
Hä?? Wer kommuniziert mit wem? Und was macht die App genau?
Marius D. schrieb im Beitrag #4476192
> Per PUT kann ich alles senden,> entschlüsseln und> verarbeiten.> Allerdings wenn ich einen GET-Befehl> sende, und dann Daten> sende, passiert nichts, bzw. die App> enthält diese nicht. Ich denke mal> das liegt daran, dass ich das Protokoll > nicht einhalte.
Also erstmal, du versucht anscheinend etwas über HTTP zu steuern. Dann
musst du doch wissen wie du das genau willst.
Marius D. schrieb im Beitrag #4476192
> Bsp: Ich sende per PUT den Befehl: "a35". Dann antwortet der XMega mit> "LichtAN". Der Ablauf ist so:>> App: PUT "a35"> App: GET> XMEGA: "AT+CIPSEND,0,7:LichtAN">> Die Antwort beim XMega klappt bei TCP/IP per VB-Programm. Was mache ich> bei HTTP
Also direkt per AT-Befehle? Was ist ein VB-Programm?
Generell de ke ich das Arduino gut zu sein scheint, aber vorerst musst
du uns ein paar mehr Infos geben.
Gruss Felix
VB wird wohl visual basic bedeuten...
gibt der ESP den ein OK zurück? also sendet er die daten auch weg?
falls du die aktuelle AT drauf hast, kannst du auch CIPSENDEX
benutzen... dann brauchst du keine zeichen mehr zählen... der sendet
dann, wenn die angegebenen zeichen erreicht sind, oder mit \0 terminiert
wird
Hallo Leute,
vielen Dank für die Antworten. Hier mal etwas zu meiner Erklärung:
1. Ich nutze einen XMega (programmiert in C, ganz normal via
AtmelStuido7).
Arduino mag ich absolut nicht.
2. Der ESP01 hat die Standard-SDK 1.4.0 und ist via UART am XMega
angeschlossen
3. Das VB (VisualBasic-PC Programm), dient zur Steuerung des XMega. Es
sendet per TCP/IP Daten an den ESP und Empfängt auch welche
(funktioniert alles).
4. Zzgl. zur mobilen Steuerung habe ich eine APP mit dem Google MIT
AppInventor zusammengeklickt. Dieser kann nur HTTP-Befehle (HTTP GET,
POST, PUT, and DELETE). Senden mache ich mit HTTP PUT, dann bekomme ich
rel. viel am µC, meine ESP-Lib macht den Rest und selektiert die
Nutzdaten, auch beim GET-Befehl.
Wenn ein GET-Befehl kommt, detectiert dies die lib, und der MC antwortet
mit einem reinen AT+CIPSEND.... Befehl. Also wie auch bei dem TCP/IP
(was dort funktioniert). Bei der App kommt nichts an, abgesendet und das
OK bekomme ich vom ESP.
Ich denke, dass ich nicht einfach mit AT+CIPSEND=Nutzdaten antworten
kann, sondern irgendwie ein anderes Format nutzen muss.
Oh, CIPSENDEX ist für mein momentanes Projekt auch sehr nützlich.
Wo hast du die Info darüber her? In den Tutorials die ich mir so
ergoogelt habe war immer CIPSEND0,7 etc.