Forum: Mikrocontroller und Digitale Elektronik Daten an den ESP8266 via POST senden


von piUser (Gast)


Lesenswert?

Hallo,

ich habe einen Raspberry Pi und einen ESP8266 im selben WLan-Netz auf 
dem Pi läuft ein Webserver mit einer Website.

Auf dem ESP8266 läuft das Beispiel Webserver-Programm:

https://blog.thesen.eu/stabiler-http-1-1-wlan-webserver-mit-dem-esp8266-microcontroller/

Ich möchte nun auf der Webseite des Pi's einen Button drücken und somit 
den GPIO2 des ESP8266 auf 1 oder 0 setzen

die Funktioniert in dem man dem ESP http://192.168.0.10/?pin=FUNCTION1ON
sendet.

also indem ich im Browser die IP des ESP's eingebe und der Variable pin 
= FUNKTION1ON oder FUNCTION1OFF zuweise.

ein html Button  href = 192.168.178.61/?pin=FUNCTION1OFF funktioniert 
zwar leitet mich aber zur Seite des ESP's weiter ich möchte aber auf der 
Website des Pi's bleiben nach dem der Button gedrückt wurde.

ich habe schon folgendes mit javascript probiert:
1
<script>
2
                var http = new XMLHttpRequest();
3
                var url ="http://192.168.0.10";
4
                var params ="pin=FUNCTION1OFF";
5
                http.open("POST", url, true);
6
                http.send(params);
7
</script>

Dies funktioniert aber leider nicht! Weiß jemand wo der Fehler ist oder 
wie ich es sonst realisieren kann???

von Joe F. (easylife)


Lesenswert?

Lasse doch die Webseite mit dem Button auf dem ESP laufen.
Da gehört sie ja auch hin.


http://randomnerdtutorials.com/esp8266-web-server/

: Bearbeitet durch User
von Steven M. (8023)


Lesenswert?

Oder du lässt den pi selbst die seite im hintergrund aufrufen

von Frank (Gast)


Lesenswert?

http://192.168.0.10/?pin=FUNCTION1ON
Hier wird ein GET verwendet, nicht POST

von piUser (Gast)


Lesenswert?

Das stimmt da habe ich mich vertan, sollte es dann funktionieren?

von jamicon (Gast)


Lesenswert?

Wieso denn mittels POST? Du willst die Daten doch über die URL 
übertragen. Und dazu musst du GET verwenden.
Pass mal die URL im Skript an, lösch 'params' und ändere POST in GET.

Wenn es nicht klappt starte mal die Entwicklertools im Browser, geh auf 
Console und schau ob da was steht.

PS: Bin nicht 100% sicher ob das "script" somit wirklich funktioniert 
bzw. vollständig ist. Ist schon etwas her und habs jetzt nicht getestet.

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.