ESP8266 mit static IP

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ESP8266 mit static IP

    Hallo,

    hat jemand von euch einen Schaltserver mit static IP auf dem ESP8266 am laufen?

    In dem Sketch von ganele Schaltserver ESP8266 mit RCSwitch

    ist der teil der static IP aaskommentiert.

    Quellcode

    1. //Netzwerk Initialisieren
    2. // uint8_t mac[6] = {0x00,0x01,0x02,0x03,0x04,0x0A}; //MAC Adresse
    3. // IPAddress ip(192, 168, 0, 203); //IP Adresse
    4. Serial.println();
    5. Serial.println();
    6. Serial.print("Connecting to ");
    7. Serial.println(ssid);

    Jetzt habe ich aus dieser Anleitung den code zur static IP eingebaut, was auch funktioniert.


    Quellcode

    1. #include <ESP8266WiFi.h>
    2. const char *ssid = "YourSSID";
    3. const char *pass = "YourPassword";
    4. // Update these with values suitable for your network.
    5. IPAddress ip(192,168,0,128); //Node static IP
    6. IPAddress gateway(192,168,0,1);
    7. IPAddress subnet(255,255,255,0);
    8. void setup()
    9. {
    10. WiFi.begin(ssid, pass);
    11. WiFi.config(ip, gateway, subnet);
    12. //Wifi connection
    13. while (WiFi.status() != WL_CONNECTED) {
    14. delay(500);
    15. Serial.print(".");
    16. }
    17. Serial.println("");
    18. Serial.print("WiFi connected, using IP address: ");
    19. Serial.println(WiFi.localIP());
    20. }
    21. void loop()
    22. {
    Alles anzeigen
    Wie gesagt, static IP funktioniert, nur Pin 2 ist ein Eingang lässt sich dann nicht lesen und Pin 0 mit einer LED lässt sich schalten. Das seltsame hier ist aber, dass wenn diese mittels count down geschaltet wird, geht sie an, aber nicht mehr aus. Ohne meine Änderungen funktioniert alles. Im Router eine IP zuweisen möchte ich hier eigentlich nicht.


    Hier der Code, wie ich ihn eingefügt habe


    C-Quellcode

    1. /**
    2. * Schaltserver für SHC mit ESP8266
    3. *
    4. * Benötigte Hardware:
    5. * - ESP8266-01
    6. * @author Oliver Kleditzsch
    7. * @copyright Copyright (c) 2015, Oliver Kleditzsch
    8. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
    9. * @since 1.0.0
    10. * @version 1.0.0
    11. * edited by "ganele" to use with ESP8266
    12. */
    13. #include <SPI.h>
    14. #include <ESP8266WiFi.h>
    15. const char* ssid = "Replow";
    16. const char* password = "xxxyyyxxx";
    17. //Konfiguration
    18. #define SERIAL_DEBUG 1 //ausgeführte Befehle auf die Serielle Schnittstelle ausgeben
    19. #define SWITCHSERVER_PORT 9274 //Port des Schaltservers
    20. //Funktionsdeklarationen
    21. String readRequest(WiFiClient* client);
    22. //Initalisieren
    23. WiFiServer server = WiFiServer(SWITCHSERVER_PORT);
    24. WiFiClient client;
    25. //Netzwerk Initialisieren
    26. uint8_t mac[6] = {0x00,0x01,0x02,0x06,0x04,0x0A}; //MAC Adresse
    27. IPAddress ip(192, 168, 178, 215); //IP Adresse Schaltserver
    28. IPAddress gateway(192,168,178,1);
    29. IPAddress subnet(255,255,255,0);
    30. void setup(){
    31. //Serielle Verbindung initalisieren
    32. if(SERIAL_DEBUG) {
    33. Serial.begin(115200);
    34. delay(10);
    35. }
    36. WiFi.begin(ssid, password);
    37. WiFi.config(ip, gateway, subnet);
    38. //Wifi connection
    39. while (WiFi.status() != WL_CONNECTED) {
    40. delay(500);
    41. Serial.print(".");
    42. }
    43. Serial.println("");
    44. Serial.print("WiFi connected, using IP address: ");
    45. Serial.println(WiFi.localIP());
    46. Serial.println(ssid);
    47. server.begin();
    48. Serial.println("Server started");
    49. Serial.println(WiFi.localIP());
    50. }
    51. void loop() {
    Alles anzeigen
    Nicht wundern, den Code für rcswitch und für die Status LED's habe ich schon vorher mit Erfolg entfernt. Daran liegt es nicht.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • ---------------------------------
    -- STA Modus
    wifi.setmode(wifi.STATION)
    -- SSID, Passwort
    wifi.sta.config("ssid","wlanpass")
    ---------------------------------


    if wifi.sta.getip() == nil then


    -- Statische IP


    wifi.sta.setip({ip="192.168.0.43",netmask="255.255.254.0",gateway="192.168.0.254"})
    print("The module MAC address is: " ..wifi.sta.getmac())
    print(wifi.sta.getip())
    else


    -- Static IP


    print("Dynamic IP\n")
    print("The module MAC address is: " ..wifi.sta.getmac())
    print(wifi.sta.getip())
    end
    habe SHC aufgegeben.
  • Danke für die schnelle Antwort.

    Der Code ist aber aus den LUA scripts.

    Mit der AT Firmware sieht er wohl anders aus.

    Ich vermute mal, das ganele das auch nicht hinbekommen hat, da er in seinem script die IP aaskommentiert hat.

    Sitze schon wieder mal für Stunden an der Problematik.

    Habe jetzt im Netz einen kurzen Sketch zum auslesen der MAC Adresse des ESP gefunden. (AT Firmware)


    Quellcode

    1. #include <ESP8266WiFi.h>
    2. uint8_t MAC_array[6];
    3. char MAC_char[18];
    4. void setup() {
    5. Serial.begin(115200);
    6. Serial.println();
    7. WiFi.macAddress(MAC_array);
    8. for (int i = 0; i < sizeof(MAC_array); ++i){
    9. sprintf(MAC_char,"%s%02x:",MAC_char,MAC_array[i]);
    10. }
    11. Serial.println(MAC_char);
    12. }
    13. void loop() {
    14. }
    Alles anzeigen
    Vielleicht kann es ja auch jemand gebrauchen.

    Werde da noch ein wenig suchen und wenn es nicht geht, mach ich es doch über den Router.

    BTW: Gibt es denn, oder hat jemand mittlerweile einen Sketch (AT oder LUA Firmware) welcher GPIO's lesen und schreiben kann, sowie DS18b20 und / oder DHT22 lesen und an den SHC Master senden kann?
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • ach du meintest ein AT Firmware.

    Das mit der MAC Adresse stammt von den LAN Modulen, die keine eigene MAC besitzen. Das ist beim ESP absolut nicht benötigt weil die ja eine eigene feste MAC haben (kann man aber auch ändern). (würde mal sagen schlecht zusammen copiert)

    Dir ist aber bewusst das ein ESP, wenn er mit der Arduino IDE geflasht wird auch keine AT Firmware drauf hat.

    Zumindestens ist es egal was vorher auf dem ESP war. Die IDE schreibt eine eigene Firmware drauf.

    Schaltserver und Sensorsender in einem gibt es bis jetzt nur mit einem Raspi.

    Weder ESP pur noch ESP / Arduino können das. Ausser der Kunstgriff von GMaN mit seinen Einbaumodulen. wifi-relais-schalter-einbau Aber da wird geschummelt.
    Das ist ein Schaltserver der über die Trick zum pseudo Sensorsender wird. Frag da mal GMaN direkt.

    Also ich mag eh keine festen PIs in irgend welchen Geräten. Ich weise die immer über Ein DHCP Server zu. Feste Lease. Mit der Fritte sollte es auch gehen.

    In den ESP (lua) Scripten steht die zwar mit drin, das hatte aber den Grund das diese Teile ab und zu sich keine PI holen wollten.
    habe SHC aufgegeben.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von bin dann weg ()

  • Danke für die Antwort.

    Bezüglich der MAC Adresse habe ich das auch gefunden, dass die beim ESP vorgegeben ist. Lässt sich zwar ändern, ist aber nicht nötig.


    C-3po schrieb:

    Zumindestens ist es egal was vorher auf dem ESP war. Die IDE schreibt eine eigene Firmware drauf.
    Das war mir neu, habe ich wieder was gelernt.

    Hier habe ich noch was gefunden, was ich mal probiere.

    C-Quellcode

    1. #include <ESP8266WiFi.h>
    2. #include <WiFiClient.h>
    3. #include <IPAddress.h>
    4. const char* ssid = ".....";
    5. const char* password = ".....";
    6. void setup(void)
    7. {
    8. Serial.begin(115200);
    9. // Connect to WiFi network
    10. WiFi.begin(ssid, password);
    11. //set static ip part
    12. WiFi.config(IPAddress(192,168,1,118), IPAddress(192,168,1,1), IPAddress(255,255,255,0));
    13. // Wait for connection
    14. while (WiFi.status() != WL_CONNECTED) {
    15. delay(200);
    16. }
    17. Serial.println(WiFi.localIP());
    18. }
    Alles anzeigen
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • Static IP mit ESP8266 funktioniert!

    Ich habe den Fehler gemacht, den SHC nicht neu zu starten, nachdem ich die Änderungen im ESP Sketch vorgenommen habe.

    Ohne Neustart des SHC Masters ließen sich keine Eingänge lesen und das Schalten der GPIO mittels Countdown ging nicht.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • Nach sehr langem googeln und probieren habe ich es nun endlich hin bekommen einen ESP zu Programmieren. (wenn man weiß wie, eigentlich ganz einfach.)

    Ich habe einen ESP 12 mit dem schaltserver bespielt (diese datei ), der wird von shc auch erkannt. zum testen bin ich allerdings noch nicht gekommen.
    wie läuft das mit den pin`s? im SHC kann ich 0 - 15 auswählen wenn ich den ESP 12 einstelle und laut dieser Seite sehe ich D0 - bis D5 und dann geht es weiter mit D12 - D16. macht bei dem 12er ESP 11 digitale ein / Ausgänge, oder habe ich da was falsch verstanden? die Nummern D0 .... sind ja übereinstimmend mit den pin nummer in SHC, oder gibt es da auch eine Verschiebung, ähnlich wie beim Raspi mit pin zu bmc zu wiringpi?
    wenn ich dieses Bild zugrunde lege kann ich gpio D1 und D3 nicht nutzen, habe aber dafür vor kopf noch gpio D9 und D10. wie viele ein / ausgänge habe ich denn an einem ESP 12 die ich nutzen kann?
    Gruß

    Matthias
    1x RasPi b, 3x RasPi b+, 1x RasPi 2, 2x RasPi 3, 2x RasPi Zero, 1x RadPi 4 (4GB) 1x BananaPi M1, 1x BananaPi R1, 1x BananaPi M3, 2x OrangePi Zero, 1x OrangePi One

    BTC: 1AJgWX9SXzH6wpoQ9d5HpkLcct6kAuatvJ
    NMC: N9fF4858aVWpY3Zu5xSxBV4XLvZ73D8eKV

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von adm1n ()