INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Mit Wemos D1 eine Webseite aufrufen
01.02.2020, 14:03
Beitrag #1
Mit Wemos D1 eine Webseite aufrufen
Hallo zusammen,

ich experimentiere zum ersten mal ein wenig mit dem Wemos D1 mini.
Eine erste Anleitung für das Schalten eines Relais funktioniert einwandfrei.

Allerdings basiert dieses Beispiel darauf, das sich sowohl Server als auch Client in ein vorhandenes WLan einloggen.

Nun möchte ich aber mit dem Netz autark sein und habe den Webserver zu einem Accesspoint umfunktioniert. Auch dies funktioniert einwandfrei.
Sobald ich mich nun zum Beispiel via Handy verbinde, kann ich eine Seite aufrufen und dadurch das Relais schalten.

Allerdings funktioniert nun mein Client nicht mehr.
Klar habe ich SSID, Kennwort und IP-Adresse angepasst und ich bekomme auch dir Rückmeldung das der Client verbunden ist, kann aber die Seite am Server nicht mehr aufrufen. Da passiert nichts mehr.

Wo liegt der Fehler? Im Prinzip bräuchte ich nur die Adresse http://IP/Relais_on aufrufen.

Code:
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

#define USE_SERIAL Serial

/* this can be run with an emulated server on host:
        cd esp8266-core-root-dir
        cd tests/host
        make ../../libraries/ESP8266WebServer/examples/PostServer/PostServer
        bin/PostServer/PostServer
   then put your PC's IP address in SERVER_IP below, port 9080 (instead of default 80):
*/

#define SERVER_IP "192.168.4.1"

#ifndef STASSID
#define STASSID "#######"
#define STAPSK  "xxxxxxxxxxx"
#endif

void setup() {

  USE_SERIAL.begin(9600);

  USE_SERIAL.println();
  USE_SERIAL.println();
  USE_SERIAL.println();

  WiFi.begin(STASSID, STAPSK);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    USE_SERIAL.print(".");
  }
  USE_SERIAL.println("");
  USE_SERIAL.print("Connected! IP address: ");
  USE_SERIAL.println(WiFi.localIP());

}

void loop() {
  RelaisOn();
  USE_SERIAL.println("On");
  delay(1000);
  RelaisOff();
  USE_SERIAL.println("Off");
  delay(1000);
}


void RelaisOn(){

  if ((WiFi.status() == WL_CONNECTED)) {
    WiFiClient client;
    HTTPClient http;

    http.begin(client, "http://" SERVER_IP "/relais_on"); //HTTP
    http.addHeader("Content-Type", "application/json");
    int httpCode = http.POST("http://192.168.4.1/relais_on");

    http.end();
  }

}

void RelaisOff(){

  if ((WiFi.status() == WL_CONNECTED)) {
    WiFiClient client;
    HTTPClient http;

    http.begin(client, "http://" SERVER_IP "/relais_off"); //HTTP
    http.addHeader("Content-Type", "application/json");
    int httpCode = http.POST("http://192.168.4.1/relais_off");

    //if (httpCode > 0) {
    //  if (httpCode == HTTP_CODE_OK) {
    //    const String& payload = http.getString();
    //    USE_SERIAL.println(payload);
    //  }
    //} else {
    //  USE_SERIAL.printf("[HTTP] POST... failed, error: %s\n", http.errorToString(httpCode).c_str());
    //}

    http.end();
  }

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2020, 14:09
Beitrag #2
RE: Mit Wemos D1 eine Webseite aufrufen
(01.02.2020 14:03)DO3GE schrieb:  Hallo zusammen,

ich experimentiere zum ersten mal ein wenig mit dem Wemos D1 mini.

Der Esp... ist kein Arduino!

Mod: Bitte verschieben.

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2020, 14:32 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2020 14:33 von Fips.)
Beitrag #3
RE: Mit Wemos D1 eine Webseite aufrufen
Dir fehlen die Grundlagen der Netzwerkkommunikation.

(01.02.2020 14:03)DO3GE schrieb:  http.addHeader("Content-Type", "application/json");
int httpCode = http.POST("http://192.168.4.1/relais_on");

Was du hier machst ist weder "application/json" noch "POST"!

int httpCode = http.POST("http://192.168.4.1/relais_on");

Der rot markierte Teil ist eine URL. Also eindeutig "GET".


Wir haben das Thema auch erst vor kurzem Ausführlich durchgekaut.

Bitte berücksichtige den Thread.

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2020, 15:09
Beitrag #4
RE: Mit Wemos D1 eine Webseite aufrufen
Zitat:int httpCode = http.POST("http://192.168.4.1/relais_on");
Der rot markierte Teil ist eine URL. Also eindeutig "GET".


Wenn ich aber
int httpCode = http.GET("http://192.168.4.1/relais_on");
versuche bekomme ich eine Fehlermeldung: no matching function for call to 'HTTPClient::GET(const char [29])'
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2020, 15:28
Beitrag #5
RE: Mit Wemos D1 eine Webseite aufrufen
(01.02.2020 15:09)DO3GE schrieb:  int httpCode = http.GET("http://192.168.4.1/relais_on");
versuche bekomme ich eine Fehlermeldung: no matching function for call to 'HTTPClient::GET(const char [29])'
Natürlich. Dass der Compiler beim PUT nicht meckert, ist auch nur Zufall und nicht das was Du willst.

Schau Dir doch einfach mal die Beispiele zur HTTPClient-Lib an, z.B. das hier.
Die hast Du auch in Deiner IDE.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2020, 15:40 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2020 15:41 von Fips.)
Beitrag #6
RE: Mit Wemos D1 eine Webseite aufrufen
(01.02.2020 15:28)Tommy56 schrieb:  Schau Dir doch einfach mal die Beispiele zur HTTPClient-Lib an, z.B. das hier.
Die hast Du auch in Deiner IDE.

Oder das Beispiel für POST.

Man sollte sich immer an die Beispiele der IDE halten.
Um eigene Erweiterungen zu bauen ist es dann unbedingt Notwendig in die Library zu schauen, was noch möglich ist.
Wildes ausprobieren führt nur selten zum Erfolg.

Get erlaubt keine Argumente!


Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2020, 17:46
Beitrag #7
RE: Mit Wemos D1 eine Webseite aufrufen
(01.02.2020 15:40)Fips schrieb:  Oder das Beispiel für POST.

Genau das war ja mein Ausgangssource ganz oben.
Ich bekomme es einfach nicht ans laufen...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2020, 17:52 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2020 18:11 von Tommy56.)
Beitrag #8
RE: Mit Wemos D1 eine Webseite aufrufen
Dann drucke mal beide aus, lege sie nebeneinander und schaue, ob sie gleich sind, wie Du behauptest.

Gruß Tommy

Edit: Aber für solche einfachen an/aus-Sachen nimmt man eigentlich get. Put eher für die Übertragung von Daten.

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  WeMos D1 mini ESP8266 error: <bits/c++config.h> AnFi 17 4.435 27.08.2020 13:47
Letzter Beitrag: dna
  Zwei Wemos D1 Mini übereinander stecken. N1d45 16 1.162 16.08.2020 09:52
Letzter Beitrag: hotsystems
  mit einem Wemos D1 mini mit Alexa eine Rolllade steuern SiR WonG 27 2.442 27.07.2020 15:49
Letzter Beitrag: hotsystems
  WS2812b am Wemos mini - Idee, warum's nicht geht? a-stern.1 10 1.479 03.07.2020 05:17
Letzter Beitrag: N1d45
  WEMOS D1 mini pro nach 4 Jahren gestorben Tommy56 1 614 02.07.2020 05:52
Letzter Beitrag: amithlon
  ESP8266 (Wemos D1 Mini) - WifiManager und TimerInterrupt fiberman 10 1.471 30.06.2020 06:24
Letzter Beitrag: amithlon
  i2c LCD Display am Wemos D1 Mini mit mqtt klappt nach modifikation nicht raspido 5 858 15.06.2020 22:19
Letzter Beitrag: stw
  Wemos D1 R2, Kein Reset wenn 5V Ausgang belegt ist LutzS 14 1.591 24.05.2020 21:07
Letzter Beitrag: LutzS
Question Wie vom code aus url im Browser aufrufen? Triax16 9 1.336 06.05.2020 14:04
Letzter Beitrag: Tommy56
  Wemos D1 mini (ESP8266) wechselt nicht mehr in auto-sleep Zipfel1 5 1.042 27.04.2020 14:07
Letzter Beitrag: rev.antun

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste