Forum: Mikrocontroller und Digitale Elektronik ESP8266 Daten übers Internet versenden.


von Lukas G. (lukas88)


Lesenswert?

Hallo Users,

Ich versuche schon seit längerem mit einem ESP8266 (ESP-01) Daten übers 
Internet zu versenden per GET.

Bei meinen Bisherigen Versuchen mit den AT befehlen konnte ich mit zwar 
mit dem Server  per TCP verbinden,und auch Senden,  bekam aber immer ein 
Bad Request zurück.


AT+CIPSTART="TCP","www.dilexa.com",80
CONNECT
OK
AT+CIPSEND=49
OK
>GET /xxxx.php?v=200 HTTP/1.1 Host: www.dilexa.com

Recv 49 bytes

SEND OK


Rückantwort:


+IPD,295:HTTP/1.1 400 Bad Request<\r>
<\n>
Server: nginx<\r>
<\n>
Date: Sun, 06 Sep 2020 12:34:40 GMT<\r>
<\n>
Content-Type: text/html<\r>
<\n>
Content-Length: 150<\r>
<\n>
Connection: close<\r>
<\n>
<\r>
<\n>
<html><\r>
<\n>
<head><title>400 Bad Request</title></head><\r>
<\n>
<body><\r>
<\n>
<center><h1>400 Bad Request</h1></center><\r>
<\n>
<hr><center>nginx</center><\r>
<\n>
</body><\r>
<\n>
</html><\r>
<\n>
CLOSED<\r>
<\n>

Als Antwort sollte eigentlich aus der aktuellen Uhrzeit sowie die GET 
variable v bestehen...

Direkt über den Browser aufgerufen, funktioniert es übrigens 
ordnungsgemäß.

Nach langem Versuchen, wende ich mich nur an euch. Was mache ich 
möglicherweise falsch?

Die Website ist mit TLS(https) verschlüsselt,inwiefern hat das Einfluss?

von Mario M. (thelonging)


Lesenswert?

AT+CIPSTART="SSL","www.dilexa.com",443

von Carl D. (jcw2)


Lesenswert?

Es gibt doch Programmierumgebungen, die ESP8266 direkt versorgen (ohne 
"Modem-Kommandos"). Ich benutze dazu Sloeber, eine 
Eclipse-CDT-Konfiguration, der man nur sagen muß, welche HW (ESP8266) 
man benutzt und die dann Compiler und Libs runterläd. Das ist dann zwar 
"Arduino", aber nach kurzer Zeit ist der ESP mit Internet, Netzzeit, 
OverTheAir-Update, Webinterface, ... ausgestattet.
Wer Vorteile und Nachteile der Umgebung einordnen kann, der hat ein Tool 
für schnelle Ergebnisse. Und "Arduino" ist auf der ESP-CPU eher daheim, 
als auf einem AVR. Von wegen String, dyn.Speicher und als Pointer 
nutzbare Register usw.

von Sven B. (scummos)


Lesenswert?

Der Server-Log gibt bestimmt Aufschluss darüber, was eigentlich das 
Problem mit dem Request ist. Die TLS-Richtung klingt aber plausibel.

von Gerald K. (geku)


Lesenswert?

Lukas G. schrieb:
> GET /xxxx.php?v=200 HTTP/1.1 Host: www.dilexa.com

Was liefert curl zurück?

Beispiel  am Raspberry Pi (curl muss installiert sein) :

curl --silent -X  GET /xxxx.php?v=200 HTTP/1.1 Host: www.dilexa.com

von Stefan F. (Gast)


Lesenswert?

Lukas G. schrieb:
>GET /xxxx.php?v=200 HTTP/1.1 Host: www.dilexa.com

Da fehlen Zeilenumbrüche, und zwar im DOS Format (\r\n):
1
GET /xxxx.php?v=200 HTTP/1.1<Umbruch>
2
Host: www.dilexa.com<Umbruch>
3
<Umbruch>

Beitrag #6395515 wurde vom Autor gelöscht.
von Lukas G. (lukas88)


Lesenswert?

Stefan ⛄ F. schrieb im Beitrag \#6395511:
> Lukas G. schrieb:
>>GET /xxxx.php?v=200 HTTP/1.1 Host: www.dilexa.com
>
> Da fehlen Zeilenumbrüche, und zwar im DOS Format (\r\n):
>
>
1
> GET /xxxx.php?v=200 HTTP/1.1<Umbruch>
2
> Host: www.dilexa.com<Umbruch>
3
> <Umbruch>
4
>


Hab ich schon ausprobiert, geht auch nicht, hinzu kommt, das ich mit 
hterm arbeite. Dort kann ich einstellen, das es automatisch ein \r\n am 
Zeilenende einfügt.

Mit Curl geht es hab ich schon vorher ausprobiert, geht über den Desktop 
ohne Probleme. Also liegt es auch nicht am PHP Code.

Also nehme ich an, das es an TLS liegt. Weis jemand ob bei jedem ESP8266 
SSL/TLS integriert ist?

Ich konnte zum Beispiel keine Abfrage per AT+CIPSSLCCONF? machen, 
schickt immer nur ERROR retour.

Ich hab glaub noch ne recht frühe Version davon. Der Lag bestimmt 2-3 
Jahre in der Schublade....

von Stefan F. (Gast)


Lesenswert?

Lukas G. schrieb:
> Also nehme ich an, das es an TLS liegt. Weis jemand ob bei jedem ESP8266
> SSL/TLS integriert ist?

Der kann kein HTTPS, dafür ist er zu klein. Es gibt eine abgespeckte 
Variante ohne Prüfung der Zertifikate als Library.

Wenn du wirklich HTTPS brauchst, dann wechsle lieber zum ESP32.

von Klaus R. (klara)


Lesenswert?

Lukas G. schrieb:
> Ich versuche schon seit längerem mit einem ESP8266 (ESP-01) Daten übers
> Internet zu versenden per GET.

Schau mal hier.
https://randomnerdtutorials.com/projects-esp8266/
mfg klaus

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
Noch kein Account? Hier anmelden.