- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 3 von 3

Thema: [NodeMCU V0.9]HtpClient kommt nicht in's W-LAN

  1. #1

    [NodeMCU V0.9]HtpClient kommt nicht in's W-LAN

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    dies ist der leicht abgewandelte Code eines http-Client auf einem NodeMCU-Board ohne LUA (mit Arduino-IDE rein) aus einem der mitgelieferten Beispiele:
    Code:
    /**
     * BasicHTTPClient.ino
     *
     *  Created on: 24.05.2015
     *
     */
    
    #include <Arduino.h>
    
    #include <ESP8266WiFi.h>
    #include <ESP8266WiFiMulti.h>
    
    #include <ESP8266HTTPClient.h>
    
    #define USE_SERIAL Serial
    #define SSID RTk66S
    #define PASSWORD ddddd
    
    ESP8266WiFiMulti WiFiMulti;
    
    int ledState = LOW;
    
    void setup() {
    
        USE_SERIAL.begin(115200);
       // USE_SERIAL.setDebugOutput(true);
    
        USE_SERIAL.println();
        USE_SERIAL.println();
        USE_SERIAL.println();
    
        for(uint8_t t = 4; t > 0; t--) {
            USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
            USE_SERIAL.flush();
            delay(1000);
        }
    
        WiFiMulti.addAP("SSID", "PASSWORD");
        USE_SERIAL.print("W-LAN-Zugang durch.\n");
        pinMode(LED_BUILTIN, OUTPUT);
        digitalWrite(LED_BUILTIN, ledState);
    }
    
    void loop() {
        // wait for WiFi connection
            if (ledState == LOW)
          ledState = HIGH;  // Note that this switches the LED *off*
        else
          ledState = LOW;   // Note that this switches the LED *on*
        digitalWrite(LED_BUILTIN, ledState);
        if((WiFiMulti.run() == WL_CONNECTED)) {
    
            HTTPClient http;
    
            USE_SERIAL.print("[HTTP] begin...\n");
            // configure traged server and url
            http.begin("http://192.168.178.23/index.html"); //HTTP
    
            USE_SERIAL.print("[HTTP] GET...\n");
            // start connection and send HTTP header
            int httpCode = http.GET();
    
            // httpCode will be negative on error
            if(httpCode > 0) {
                // HTTP header has been send and Server response header has been handled
                USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode);
    
                // file found at server
                if(httpCode == HTTP_CODE_OK) {
                    String payload = http.getString();
                    USE_SERIAL.println(payload);
                }
            } else {
                USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
            }
    
            http.end();
        }
        else
        {
            USE_SERIAL.print("Keine Verbindung.\n");
        }
    
        delay(5000);
    }
    Anmerkung: Da da Internet ja nunmal für jeden offen ist, kasnn ich schlecht meine Netzwerk-Zugangsdaten einfach so hinausposaunen. Deshalb habe ich das Passwort hier geändert (aber nur hier). Beide Strings habe ich mit meinem Browser auf meinem DSL-Server (einer FritzBox) abgerufen und herauskopiert. Da sind also sicher keine Schreibfehler oder so drin. Trotzdem zeigt mir der serielle Monitor ständig (alle 5 sec, wie eingestellt) 'keine Verbindung.' an, also den String für den Fall, dass er nicht rein kommt.

    Was mache ich da falsch?

    Ach ja, der SSID-Wert ist auch kopiert, ich habe zuerst die SSID für das 2,4GHz-W-LAN eingetragen, dann für 5GHz. Die Passwörter sind da gleich. Es geht mit Beiden nicht.

    Jemand 'ne Idee?

    Tschüß

    Manni

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.12.2010
    Ort
    NRW
    Beiträge
    223
    hi,

    ich bin mir nicht ganz sicher, ob man sich nicht entscheiden musste zwischen Wifi und WifiMulti....in meinen Test Projekt habe ich nur mit WiFi gearbeitet

    Code:
      WiFi.begin(ssid, password);  
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.println("WiFi connected");

    Hier ein Beispiel Link eines anderen Projektes -> http://embedded-lab.com/blog/making-...sp8266-bme280/ und noch http://www.esp8266.com/viewtopic.php?f=29&t=6731
    cYa pig

  3. #3

    Huch! Das kommt dabei heraus, wenn man keine Ahnung hat ...

    Zitat Zitat von piggituX Beitrag anzeigen
    hi,

    ich bin mir nicht ganz sicher, ob man sich nicht entscheiden musste zwischen Wifi und WifiMulti....in meinen Test Projekt habe ich nur mit WiFi gearbeitet

    Code:
      WiFi.begin(ssid, password);  
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.println("WiFi connected");

    Hier ein Beispiel Link eines anderen Projektes -> http://embedded-lab.com/blog/making-...sp8266-bme280/ und noch http://www.esp8266.com/viewtopic.php?f=29&t=6731
    Es gibt also auch Wifi pur? Worin liegt der Unterschied? Ich probier's auf jeden Fall mal ohne Multi aus, mal sehen, was passiert.

    Tschüß

    Manni

    - - - Aktualisiert - - -

    Hallo,
    da klappt was nicht. Im BME280-Beispiel steht das Ganze so:
    Code:
    // Web Server on port 80
    WiFiServer server(80);
    
    // only runs once on boot
    void setup() {
      // Initializing serial port for debugging purposes
      Serial.begin(115200);
      delay(10);
      Wire.begin(D3, D4);
      Wire.setClock(100000);
      // Connecting to WiFi network
      Serial.println();
      Serial.print("Connecting to ");
      Serial.println(ssid);
     
      WiFi.begin(ssid, password);
      
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
    Das Problem: Die Variable WiFi ist nicht deklariert. Daher weis ich jetzt nicht, wie die typ-Variable in dem Fall heist. Einfach ohne Multi (also ESP8266WiFi ) jedenfalls nicht ... das habe ich erfolglos ausprobiert. Ich schätze, es hat mit der Variablen Server zu tun, doch da ich einen Client benutze, weis ich nicht, wie ich das nun ändern muss.

    Ergänzung: Hab`'s rausbekommen. Nur WiFi ohne Deklaration benutzen (wie im Beispiel) und es geht. Zumindest wird ein Programm daraus. Verbinden kann es sich immer noch nicht. Das Netz ist WPA2-gesichert. Muss man da irgendwo etwas ändern oder macht er das von alleine?

    Tschüß

    Manni

Ähnliche Themen

  1. NodeMCU v.1 Webserver wird nicht im WLANi-Netz gefunden/angezeigt
    Von oderlachs im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 4
    Letzter Beitrag: 18.10.2016, 13:38
  2. Anfänger kommt mit Atmel328 nicht klar
    Von ulli328 im Forum Assembler-Programmierung
    Antworten: 6
    Letzter Beitrag: 07.11.2011, 23:07
  3. Asuros Motor kommt nicht in die Gänge
    Von Magelan1979 im Forum Asuro
    Antworten: 9
    Letzter Beitrag: 18.01.2010, 20:14
  4. Anfänger kommt nicht weiter.
    Von Rick07 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 23.02.2008, 17:10
  5. Anfängerfrage? - Serieller Interrupt kommt nicht!!!
    Von Zentauro im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 01.10.2007, 11:36

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen