Go Down

Topic: ESP8266 wil nicht (Read 9454 times) previous topic - next topic

fckw

wie gesagt ich musste nur den obigen Pfad angeben (so wird alles automatisch eingebunden) und mich nicht mit irgendwelchen libraries für den ESP8266 rumschlagen, ich arbeite momentan mit 1.6.9, keine Probleme.

Atwist

Ich weiß jetzt überhaupt nicht mehr was mein Fehler ist.

Hab http://arduino.esp8266.com/stable/package_esp8266com_index.json eingebunden (sehe Screenshot)

Code: [Select]
/arduino-nightly/Projecten/libraries/ESP8266WiFi/src/WiFiClient.h:127:17: error: 'buffer' was not declared in this scope
     source.read(buffer.get(), will_send);


Ich denke das ich die Librarys von der esp8266 alle gefunden habe.


Was mach ich falls?????????


Mit schöne grüße aus Emsland,

Andreas

HotSystems

Du hast hier zwar schon reichlich Vorschläge und Links erhalten und ich möchte dich nicht noch zusätzlich verwirren, aber sieh dir mal diese Seite an, die beschreibt den Einsatz des ESP8266 sehr verständlich.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

fckw

du solltest auch einfach mal detailiert dein genaues Vorgehen beschreiben,vorallem deinen sketch zeigen etc.

Atwist

Wenn es keinen zwingenden Grund gibt unbedingt den Uno mit dem ESP zu koppeln würde ich dir empfehlen den ESP allein laufen zu lassen.

Schau dir mal den stabilen Webserver an - der läuft super!

Den ESP kannst du auch mit der Arduino IDE laden. Und wenn du mehr Anschlüsse brauchst gibt es neben dem -01 auch den ESP-201 oder den ESP nodeMCU gleich mit USB dran.
Hab diesen von Stefan benutzt und hier mit bekomme ich die Fehler Meldungen


Alle Tipps die ich hier bekommen hab, hab ich nach meine Meinung ausprobiert.

Mit schöne grüße aus Emsland,

Andreas

HotSystems

Was bringt es dir oder uns, wenn du es testet, es aber nicht funktioniert, du uns aber keine Fehlermeldung postest.

Also zeig uns deinen Sketch inkl. Fehlermeldung oder sollen wir weiter raten?
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Atwist

#21
May 29, 2016, 06:07 pm Last Edit: May 29, 2016, 06:23 pm by Atwist
Nein man muss nicht raten, aber ich bin ratlos  :(

Code: [Select]
/*--------------------------------------------------
HTTP 1.1 Webserver for ESP8266
for ESP8266 adapted Arduino IDE

Stefan Thesen 04/2015

Running stable for days
(in difference to all samples I tried)

Does HTTP 1.1 with defined connection closing.
Reconnects in case of lost WiFi.
Handles empty requests in a defined manner.
Handle requests for non-exisiting pages correctly.

This demo allows to switch two functions:
Function 1 creates serial output and toggels GPIO2
Function 2 just creates serial output.

Serial output can e.g. be used to steer an attached
Arduino, Raspberry etc.
--------------------------------------------------*/

#include <ESP8266WiFi.h>

const char* ssid = "KKA";
const char* password = "test";

unsigned long ulReqcount;
unsigned long ulReconncount;


// Create an instance of the server on Port 80
WiFiServer server(80);

void setup()
{
  // setup globals
  ulReqcount=0;
  ulReconncount=0;
  
  // prepare GPIO2
  pinMode(2, OUTPUT);
  digitalWrite(2, 0);
  
  // start serial
  Serial.begin(9600);
  delay(1);
  
  // inital connect
  WiFi.mode(WIFI_STA);
  WiFiStart();
}

void WiFiStart()
{
  ulReconncount++;
  
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());
}

void loop()
{
  // check if WLAN is connected
  if (WiFi.status() != WL_CONNECTED)
  {
    WiFiStart();
  }
  
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client)
  {
    return;
  }
  
  // Wait until the client sends some data
  Serial.println("new client");
  unsigned long ultimeout = millis()+250;
  while(!client.available() && (millis()<ultimeout) )
  {
    delay(1);
  }
  if(millis()>ultimeout)
  {
    Serial.println("client connection time-out!");
    return;
  }
  
  // Read the first line of the request
  String sRequest = client.readStringUntil('\r');
  //Serial.println(sRequest);
  client.flush();
  
  // stop client, if request is empty
  if(sRequest=="")
  {
    Serial.println("empty request! - stopping client");
    client.stop();
    return;
  }
  
  // get path; end of path is either space or ?
  // Syntax is e.g. GET /?pin=MOTOR1STOP HTTP/1.1
  String sPath="",sParam="", sCmd="";
  String sGetstart="GET ";
  int iStart,iEndSpace,iEndQuest;
  iStart = sRequest.indexOf(sGetstart);
  if (iStart>=0)
  {
    iStart+=+sGetstart.length();
    iEndSpace = sRequest.indexOf(" ",iStart);
    iEndQuest = sRequest.indexOf("?",iStart);
    
    // are there parameters?
    if(iEndSpace>0)
    {
      if(iEndQuest>0)
      {
        // there are parameters
        sPath  = sRequest.substring(iStart,iEndQuest);
        sParam = sRequest.substring(iEndQuest,iEndSpace);
      }
      else
      {
        // NO parameters
        sPath  = sRequest.substring(iStart,iEndSpace);
      }
    }
  }
  
  ///////////////////////////////////////////////////////////////////////////////
  // output parameters to serial, you may connect e.g. an Arduino and react on it
  ///////////////////////////////////////////////////////////////////////////////
  if(sParam.length()>0)
  {
    int iEqu=sParam.indexOf("=");
    if(iEqu>=0)
    {
      sCmd = sParam.substring(iEqu+1,sParam.length());
      Serial.println(sCmd);
    }
  }
  
  
  ///////////////////////////
  // format the html response
  ///////////////////////////
  String sResponse,sHeader;
  
  ////////////////////////////
  // 404 for non-matching path
  ////////////////////////////
  if(sPath!="/")
  {
    sResponse="<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL was not found on this server.</p></body></html>";
    
    sHeader  = "HTTP/1.1 404 Not found\r\n";
    sHeader += "Content-Length: ";
    sHeader += sResponse.length();
    sHeader += "\r\n";
    sHeader += "Content-Type: text/html\r\n";
    sHeader += "Connection: close\r\n";
    sHeader += "\r\n";
  }
  ///////////////////////
  // format the html page
  ///////////////////////
  else
  {
    ulReqcount++;
    sResponse  = "<html><head><title>Demo f&uumlr ESP8266 Steuerung</title></head><body>";
    sResponse += "<font color=\"#000000\"><body bgcolor=\"#d0d0f0\">";
    sResponse += "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">";
    sResponse += "<h1>Demo f&uumlr ESP8266 Steuerung</h1>";
    sResponse += "Funktion 1 schaltet GPIO2 und erzeugt eine serielle Ausgabe.<BR>";
    sResponse += "Funktion 2 erzeugt nur eine serielle Ausgabe.<BR>";
    sResponse += "<FONT SIZE=+1>";
    sResponse += "<p>Funktion 1 <a href=\"?pin=FUNCTION1ON\"><button>einschalten</button></a>&nbsp;<a href=\"?pin=FUNCTION1OFF\"><button>ausschalten</button></a></p>";
    sResponse += "<p>Funktion 2 <a href=\"?pin=FUNCTION2ON\"><button>einschalten</button></a>&nbsp;<a href=\"?pin=FUNCTION2OFF\"><button>ausschalten</button></a></p>";
    
    //////////////////////
    // react on parameters
    //////////////////////
    if (sCmd.length()>0)
    {
      // write received command to html page
      sResponse += "Kommando:" + sCmd + "<BR>";
      
      // switch GPIO
      if(sCmd.indexOf("FUNCTION1ON")>=0)
      {
        digitalWrite(2, 1);
      }
      else if(sCmd.indexOf("FUNCTION1OFF")>=0)
      {
        digitalWrite(2, 0);
      }
    }
    
    sResponse += "<FONT SIZE=-2>";
    sResponse += "<BR>Aufrufz&auml;hler=";
    sResponse += ulReqcount;
    sResponse += " - Verbindungsz&auml;hler=";
    sResponse += ulReconncount;
    sResponse += "<BR>";
    sResponse += "Stefan Thesen 04/2015<BR>";
    sResponse += "</body></html>";
    
    sHeader  = "HTTP/1.1 200 OK\r\n";
    sHeader += "Content-Length: ";
    sHeader += sResponse.length();
    sHeader += "\r\n";
    sHeader += "Content-Type: text/html\r\n";
    sHeader += "Connection: close\r\n";
    sHeader += "\r\n";
  }
  
  // Send the response to the client
  client.print(sHeader);
  client.print(sResponse);
  
  // and stop the client
  client.stop();
  Serial.println("Client disonnected");
}


Und hier die Fehlermeldungen.

Code: [Select]





WARNUNG: Bibliothek ESP8266WiFi behauptet auf [esp8266] Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrem derzeitigen Board, welches auf [avr] Architektur(en) ausgeführt wird.
In file included from /home/andre/arduino-nightly/libraries/ESP8266WiFi/src/ESP8266WiFi.h:32:0,
                 from /home/andre/Afbeeldingen/ESP_Webserver_HTTP11/ESP_Webserver_HTTP11.ino:23:
/home/andre/arduino-nightly/libraries/ESP8266WiFi/src/WiFiClient.h: In member function 'size_t WiFiClient::write(T&, size_t)':
/home/andre/arduino-nightly/libraries/ESP8266WiFi/src/WiFiClient.h:116:3: error: 'unique_ptr' is not a member of 'std'
   std::unique_ptr<uint8_t[]> buffer(new uint8_t[unitSize]);
   ^
/home/andre/arduino-nightly/libraries/ESP8266WiFi/src/WiFiClient.h:116:26: error: expected primary-expression before '[' token
   std::unique_ptr<uint8_t[]> buffer(new uint8_t[unitSize]);
                          ^
/home/andre/arduino-nightly/libraries/ESP8266WiFi/src/WiFiClient.h:116:27: error: expected primary-expression before ']' token
   std::unique_ptr<uint8_t[]> buffer(new uint8_t[unitSize]);
                           ^
/home/andre/arduino-nightly/libraries/ESP8266WiFi/src/WiFiClient.h:116:58: error: there are no arguments to 'buffer' that depend on a template parameter, so a declaration of 'buffer' must be available [-fpermissive]
   std::unique_ptr<uint8_t[]> buffer(new uint8_t[unitSize]);
                                                          ^
/home/andre/arduino-nightly/libraries/ESP8266WiFi/src/WiFiClient.h:116:58: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/home/andre/arduino-nightly/libraries/ESP8266WiFi/src/WiFiClient.h:123:17: error: 'buffer' was not declared in this scope
     source.read(buffer.get(), will_send);
                 ^
exit status 1
Fehler beim Kompilieren.


https://www.dropbox.com/s/5vrm5oe9gb4a4p6/KYbW1.png?dl=0

Mit schöne grüße aus Emsland,

Andreas

HotSystems

Du verwendest keine Widerstände in Datenleitung zum ESP und auch den Elko finde ich nicht.

Die Fehlermeldung sagt aus, das die Library nicht kompatibel zu deinem System (Arduino) ist.
Ob das nun stimmt, kann ich nicht sagen, solltest du aber prüfen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Atwist

Du verwendest keine Widerstände in Datenleitung zum ESP und auch den Elko finde ich nicht.

Das stimmt die meiste Anleitungen die ich angeschaut habe waren ohne Elko und Widerstand, wird es auch mal wieder versuchen mit einen Elko und Widerstand.
Mit schöne grüße aus Emsland,

Andreas

stoni99

Der ESP zieht satt Strom in den Spitzen und brachte mir schon haarsträubende Fehlersuchen. Ich mache immer einen 1000µF ELKO direkt an den ESP ran.

Die Stromversorgung 3,3V über den UNO halte ich nicht für brauchbar.

Hast du schon mal probiert den ESP direkt über einen 3,3V Programmer zu laden?

Atwist

#25
May 30, 2016, 09:12 am Last Edit: May 30, 2016, 09:57 am by Atwist Reason: Bild zugefugt
Habe einen experimentier board mit einen externe 3,3 und 5 Volt Einspeisung.

Einen USB 3,3Volt Programmer hab ich und dass auch mal Probiert aber krieg ich auch nicht hin.

Normale weiße wurde ich Sachen dass die ESP kaputt ist aber ich habe 3 Stuck und dann alle drei kaputt dass glaube ich nicht.
Die Fehler liegt bei mir oder der Arduino Software wobei ich hier wieder Tippe auf meine Kenntnisse
Mit schöne grüße aus Emsland,

Andreas

Theseus

Du hast wohl irgendwie einen Misch-Masch in deinen ESp-Boarddateien. Versuch mal die IDE mit allen Dateien zu löschen. Bitte denke auch an die versteckten Verzeichnisse, unter WIndows unter "C:\Users\[angemeldeter Nutzer]\AppData\Local\Arduino

Ich hatte mir durch spielen an Boarddefinitionen auch die IDE verkurbelt, bis nichts mehr richtig lief. Erst löschen aller Stellen, wo Boardinformationen hinterlegt sind und auch eine Deinstallaton evtl. überleben, hat was gebracht.

ElEspanol

Schau mal die Pfade der Dateien in den Fehlermeldungen, da steht was von nightly build.

Daraus schließe ich mal, dass die Installation der IDE und das Einbinden der Esp Board Dateien nicht stimmt.

Also solltest du, wie Theseus schon schrieb, dort ansetzen.

Dass der Sketch nicht kompiliert, hat garantiert nichts mit der Beschaltung oder irgendwelchen Kondensatoren zu tun.

Atwist

Habe jetzt nach meine meinung alles sauber gemacht die neuste Arduino IDE 1.6.10 (Screenshot)

Und noch bekomme ich diesen Fehler wieder  :smiley-confuse:  :smiley-confuse:

Ich verstehe es nicht mehr, was könnte es jetzt noch sein.

Mit schöne grüße aus Emsland,

Andreas

Theseus

Hallo,

endlich ein aussagekräftiger Screenshot.

Du kompilierst für den Uno. Das muss schief gehen, da die Dateien für den ESP8266 direkt gedacht sind. Du musst unter "Boards" dein ESP-Modul auswählen. Die IDE nutzt dann den zum ESP passenden Compiler und die dazugehörigen Libs. 
Falls du den ESP dort nicht findest, musst du noch im Boardverwalter nachinstallieren, nachdem du die im Thread genannte JSON-Datei für die ESPs eingebunden hast.

Go Up