- 3D-Druck Einstieg und Tipps         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: ESP8266 boards per per Arduino-IDE programmieren?

  1. #1
    HaWe
    Gast

    ESP8266 boards per per Arduino-IDE programmieren?

    Anzeige

    Praxistest und DIY Projekte
    hallo,
    hat jemand schon erfolgreich mit ESP8266 boards (z.B. AI-Thinker ESP-12F Serial WIFI mit 80 MHz Tensilica L106 MCU ) per Arduino-IDE programmiert?
    Hat die Board-Verwalter lib zuverlässig funktioniert (hier: Generic ESP8266 Module) ?
    Wie waren die Erfahrungen mit der Integration ins eigene WiFi Heimnetz, als iot Programmierplattform und mit Handy-Apps als Interface zur Steuerung, und haben die Arduino-Libs für GPIOs, I2C und Internet-Libs (NTPClientLib, JsonListener,...) alle problemlos auch mit dem ESP8266 funktioniert?

    edit,
    ein fertig aufgelötetes Exemplar scheint es auch zu geben -
    http://www.ebay.de/itm/272435157381?...%3AMEBIDX%3AIT

    Klicke auf die Grafik für eine größere Ansicht

Name:	s-l1600.jpg
Hits:	7
Größe:	58,0 KB
ID:	32639

    Erfahrungsberichte trotzdem natürlich immer noch sehr willkommen!
    Geändert von HaWe (22.05.2017 um 11:02 Uhr)

  2. #2
    HaWe
    Gast
    update,
    danke an gkd für die Infos in diesem Thread:
    https://www.roboternetz.de/community...im-Kompilieren
    Geändert von HaWe (25.05.2017 um 20:23 Uhr)

  3. #3
    HaWe
    Gast
    Installation des Boards hat auf Anhieb funktioniert (Win 7 64 pro):

    ESP8266 12-F (80MHz, 4MByte)


    - ggf. USB-Serial Chip CH340/1 installieren

    - in "Datei - Voreinstellungen" unter "Zusätzliche Boardverwalter-URLs" Such-URL eingeben:
    http://arduino.esp8266.com/stable/pa...com_index.json

    - Menü "Werkzeuge – Board: …", "Boardverwalter"
    Eingabe im Suchfenster ESP8266 Eintrag "esp8266 by ESP8266 Community" auswählen + installieren

    - erneut Menü "Werkzeuge – Board: … – "Boardverwalter…",
    Auswahl von Eintrag "Generic ESP8266 Module",
    Einstellungen kontrollieren:
    Flashmode: QIO
    Flash Frequency: 40 MHz
    cpu Frequency: 80 MHz
    Flashsize: 4M (3M SPIFFS)
    Debug Port: disabled
    Debug Level: keine
    Reset Method: nodemcu
    Upload Speed: 115200



    die D-pins sind entgegen der Beispiele bei mir allerdings nicht sofort als D0, D1,... adressierbar, hier sind ein paar explizite #defines nötig:
    Code:
    #define D0    16
    #define D1     5
    #define D2     4
    #define D3     0
    #define D4     2
    #define D5    14
    #define D6    12
    #define D7    13
    #define D8    15
    #define D9     3
    #define D10    1
    #define D11    9
    #define D12   10
    ps,
    inzwischen festgestelt:
    Es gibt im Bordverwalter auch spezielle Bord-Module wie z.B. "NodeMCU ESP8266 E-12", die man dann alternativ zum "Generic ESP8266 Module" auswählen kann. Hierin sind bereits weitere Bord-Definitionen enthalten, auch z.B D* Pin Nummern statt der MCU GPIO Nummern.
    Geändert von HaWe (05.06.2017 um 09:45 Uhr)

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    16.02.2014
    Beiträge
    80
    Hey HaWe, danke für die ausführliche Beschreibung hier. Könnte hilfreich sein wenn ich mal ein ähnliches Projekt habe!

  5. #5
    HaWe
    Gast
    hallo,
    freut mich, wenn es hilfreich ist!

    habe jetzt die ersten Beispiele erfolgreich ausprobiert, auch die erste Website im Heimnetz zum LED ein/ausschalten:
    http://www.instructables.com/id/Quic...n-Arduino-IDE/

    Code:
    #include <ESP8266WiFi.h>
     
    const char* ssid = "Magesh";
    const char* password = "jayakumar";
     
    int ledPin = 13; // GPIO13
    WiFiServer server(80);
     
    void setup() {
      Serial.begin(115200);
      delay(10);
     
      pinMode(ledPin, OUTPUT);
      digitalWrite(ledPin, LOW);
     
      // 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.print("Use this URL to connect: ");
      Serial.print("http://");
      Serial.print(WiFi.localIP());
      Serial.println("/");
     
    }
     
    void loop() {
      // Check if a client has connected
      WiFiClient client = server.available();
      if (!client) {
        return;
      }
     
      // Wait until the client sends some data
      Serial.println("new client");
      while(!client.available()){
        delay(1);
      }
     
      // Read the first line of the request
      String request = client.readStringUntil('\r');
      Serial.println(request);
      client.flush();
     
      // Match the request
     
      int value = LOW;
      if (request.indexOf("/LED=ON") != -1)  {
        digitalWrite(ledPin, HIGH);
        value = HIGH;
      }
      if (request.indexOf("/LED=OFF") != -1)  {
        digitalWrite(ledPin, LOW);
        value = LOW;
      }
     
    // Set ledPin according to the request
    //digitalWrite(ledPin, value);
     
      // Return the response
      client.println("HTTP/1.1 200 OK");
      client.println("Content-Type: text/html");
      client.println(""); //  do not forget this one
      client.println("<!DOCTYPE HTML>");
      client.println("<html>");
     
      client.print("Led pin is now: ");
     
      if(value == HIGH) {
        client.print("On");
      } else {
        client.print("Off");
      }
      client.println("<br><br>");
      client.println("<a href=\"/LED=ON\"\"><button>Turn On </button></a>");
      client.println("<a href=\"/LED=OFF\"\"><button>Turn Off </button></a><br />");  
      client.println("</html>");
     
      delay(1);
      Serial.println("Client disonnected");
      Serial.println("");
     
    }
    Frage:
    wer kann einen Tipp geben, wie man das jetzt vom Heimnetz-Server ins www hochladen kann, erstmal testweise, kostenlos?

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Stichwort "Portweiterleitung"

    Du musst an deinem Router konfigurieren, dass Anfragen (Vorzugsweise auf Port 80) zu deinem ESP (ebenfalls auf Port 80) umgeleitet werden.
    Oder was genau meinst du?
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  7. #7
    HaWe
    Gast
    hallo,
    ganz einfach ausgedrückt: ich kann momentan von einem Handy aus meine ESP8266-Website aufrufen, wenn ich die IP des ESP8266 Servers (192.168.2.117) in den Chrome Browser eintippe, soweit ich mich mit dem Handy ebenfalls im häuslichen WLAN aufhalte.
    Ich möchte es jetzt aber auch von überall sonstwo machen können, also vom Arbeitsplatz-LAN-PC per DSL, vom Urlaubshotel-WLAN, oder per "mobile Daten" übers mobile Telefonnetz, und dazu bräuchte ich dann ja eine "externe" url, über die mein Programm (exakter ESP8266 Code wie oben, samt Sensoren, Aktoren und HTML-Website-Code) die eigene Website weltweit erreichbar macht, nur wie bekomme ich so eine?
    Bisher habe ich keine eigene Website. Es ist momentan ja auch nur eine Spielerei, und daher würde ich das gern über irgendeinen kostenlosen (Cloud?) Server mit stark begrenztem Volumen machen. Mein Telefonanbieter stellt so etwas leider auch nicht kostenlos zur Verfügung.
    Geändert von HaWe (07.06.2017 um 11:03 Uhr)

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    okay, da fehlen entscheidende grundlagen, ich fass das mal so für dich zusammen:

    wenn du von außen zugreifen willst, musst du dien "derzeitig" IP wissen (weil dein Provider dir mind. alle 24h eine neue IP zuweist ... besondere Verträge mal ausgenommen, aber davon gehe ich hier nicht aus)
    damit du die IP nicht jedes mal selber suchen und eingeben musst, kannst du einen dynamischen DNS Eintrag verwenden. Die meisten Router bieten sog. dynDNS Unterstützung an

    Was du brauchst: Ein Account z.B. bei dynDNS (klassischer Provider für dynamische DNS Einträge) und du musst deinem Router die Account-Daten geben, damit er die aktuelle IP immer frisch fröhlich zu dynDNS übermittelt. Vor dort aus kannst du dir eine dynDNS Domain anlegen, die dann immer automatisch zu deiner derzeitigen Ip zeigt, solange dein Router die Information updatet

    Jetzt stehst du schonmal an deiner virtuellen Haustür, was jetzt fehlt ist "klingeln" ... üblicherweise passiert das beim Browser über Port 80

    Also musst du deinem Router jetzt noch sagen, dass alle Anfragen auf Port 80 zu dem ESP im lokalen Netzwerk (ebenfalls port 80 der einfachheit) weitergeleitet werden

    Pro-Tipp: Weise in deinem Router (sofern Funktion vorhanden) an, deinem ESP IMMER die gleiche IP zu geben. Sollte dein ESP mal rebooten kann es leicht passieren, dass er sonst eine neue lokale Netzwerk IP bekommt, wenn der Router das Gerät nicht automatisch wiedererkennt. Denn wenn die lokale Netzwerk IP sich ändert, musst du auch die Weiterleitung neu einrichten.

    Ich habs bisher noch nicht probiert, aber ich meine es gäbe da auch so eine UPnP (UDP Plug'n'Play glaub ich der Name) Funktion/Lib für den ESP, dann kann er sofern es beim Router eingeschaltet ist, die Weiterleitung auch selber festlegen!
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  9. #9
    HaWe
    Gast
    ok, danke für die ausführliche Antwort!
    Um hinten anzufangen: die feste IP im Heimnetz kriege ich im ESP8266 Programm über
    IPAddress ip(192,168,2,117);
    IPAddress gateway(192,168,2,1);
    IPAddress subnet(255,255,255,0);
    WiFi.config(ip, gateway, subnet);

    aber in meinem WLAN Router mag ich nicht rumpfuschen (das ist extrem unübersichtlich, ich kenne mich darin überhaupt nicht aus, fürchte, dass ich irgendwas ins Nirwana schicke, und ich weiß noch nicht mal ob da überhaupt was derartiges einstellbar ist).

    Einen eigenen Account beantragen bei dynDNS : geht das kostenlos, und wenn ja, wie?

    Bleibt die Frage nach dem Webserver, dem Universum, und dem ganzen Rest.

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    >Einen eigenen Account beantragen bei dynDNS : geht das kostenlos, und wenn ja, wie?

    kalr kostenlos, google nach dynDNS

    ohne im router rum zu werkeln wird das aber nix

    ich begreif jetzt die frage nach einem webserver nicht, dein ESP stellt doch selber den webserver, du musst nur eine Verbindung von außen zum ESP schaffen (übr den router, oder UPNP mit viel glück, dann brauchst am router nichts einstellen)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. arduino ide mit esp8266
    Von NotEvil im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 4
    Letzter Beitrag: 12.01.2017, 15:17
  2. 2 Arduino-Boards via RS232 verbinden
    Von probot32 im Forum Arduino -Plattform
    Antworten: 3
    Letzter Beitrag: 23.10.2015, 19:21
  3. Bascom mit Arduino programmieren
    Von willswissen im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 14.04.2014, 12:39
  4. [ERLEDIGT] Arduino Pro mini 16 Mhz 5v Wie Programmieren ?!
    Von Projekt 2252 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 1
    Letzter Beitrag: 13.05.2012, 21:47
  5. FAQ / Erste Hilfe zu RN-Boards (Roboternetz Boards)
    Von Frank im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 0
    Letzter Beitrag: 07.11.2004, 15:19

Berechtigungen

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

Labornetzteil AliExpress