Wlan Probleme mit Esp

Hallo Leute,
ich bin noch absoluter Anfänger deswegen entschuldigt die leichte Frage die ihr wahrscheinlich mit Links beantworten könnt.

Aber ich habe das Problem das ich zwei Wlan Netzwerke definieren möchte das habe ich hauptsächlich in der void setup getan. Dabei ist ein Wlan für unterwegs und eins für zuhause. Jedoch verbindet sich der Esp nicht. Das ist die Lösung die ich mir vorstelle. Macht es vielleicht trotzdem mehr sind das ganze über einen Access Point zu machen? Wenn ja wie?

Danke schon mal im voraus.

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

uint16_t z;
uint16_t h;
uint16_t g;
uint16_t r;
uint16_t b;
uint16_t p;
uint16_t w;
uint16_t o;
uint16_t e;
uint16_t gerade;

const char* ssid = "FRITZ!Box ";
const char* password = "";

ESP8266WebServer server(80);
#include <Adafruit_NeoPixel.h>
#define PIN D4
Adafruit_NeoPixel strip = Adafruit_NeoPixel(10, D4, NEO_GRB + NEO_KHZ800);

const int led = 13;


void handleRoot() {
  server.send(200, "text/plain", "usage:\n/rainbow");

}
unsigned long previousMillis = 1000000;
const long interval = 1000;



void handleNotFound() {
  digitalWrite(led, 1);
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET) ? "GET" : "POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i = 0; i < server.args(); i++) {
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
  digitalWrite(led, 0);
}
void orange(uint8_t) {
  uint16_t i;
  z = 1;
  h = 1;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 2;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 255, 69, 0);
  }
  strip.show();
  unsigned long currentMillis = millis();
}
void blue(uint8_t) {
  uint16_t i;
  z = 1;
  h = 1;
  g = 1;
  r = 1;
  b = 2;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 0, 0, 255);
  }
  strip.show();
  unsigned long currentMillis = millis();
}
void red(uint8_t) {
  uint16_t i;
  z = 1;
  h = 1;
  g = 1;
  r = 2;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;

  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 255, 0, 0);
  }
  strip.show();
  unsigned long currentMillis = millis();
}
void green(uint8_t) {
  uint16_t i;

  z = 1;
  h = 1;
  g = 2;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 0, 255, 0);
  }
  strip.show();
  unsigned long currentMillis = millis();
}

void pink(uint8_t) {
  uint16_t i;
  z = 1;
  h = 1;
  g = 1;
  r = 1;
  b = 1;
  p = 2;
  w = 1;
  o = 1;
  e = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 255, 0, 255);
  }
  strip.show();
  unsigned long currentMillis = millis();
}

void white(uint8_t) {
  uint16_t i;
  z = 1;
  h = 2;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 255, 255, 255);
  }
  strip.show();
  unsigned long currentMillis = millis();
}

void off(uint8_t) {
  uint16_t i;
  z = 1;
  h = 2;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 0, 0, 0);
  }
  strip.show();
  unsigned long currentMillis = millis();
}
void warmwhite(uint8_t) {
  uint16_t i;
  z = 1;
  h = 1;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 2;
  o = 1;
  e = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 255, 255, 120);
  }
  strip.show();
  unsigned long currentMillis = millis();

}
void rainbow(uint8_t) {


  z = 2;
  h = 1;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  uint16_t i, j;

  for (j = 0; j < 256; j++) {
    for (i = 0; i < strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i + j) & 255));
    }
    delay(50);
    strip.show();
  }
}
// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if (WheelPos < 85) {
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);

  }


  if (WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);

  }

  WheelPos -= 170;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);

}

void setup(void) {

  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
 
  while (WiFi.status() != WL_CONNECTED){
  if (gerade % 2 == 0) {

    WiFi.begin(ssid, password);
    Serial.println("");

    // Wait for connection

    delay(500);
    Serial.print(".");
    gerade++;
  }
  else {
    const char* ssid = "Esp";
    const char* password = "";
    WiFi.begin(ssid, password);
    Serial.println("");

    // Wait for connection

    delay(500);
    Serial.print("Hello");
    gerade++;
  }
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("instead")) {
    Serial.println("MDNS responder started");
  }
 
  server.on("/", handleRoot);

  server.on("/rainbow", []() {
    server.send(500, "text/plain", "rainbow");

    rainbow(1);
    z = 2;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 1;

  }
  ); server.on("/orange", []() {
    orange(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 2;
  }
  ); server.on("/warmwhite", []() {
    server.send(700, "text/plain", "warmwhite");

    warmwhite(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 2;
    o = 1;
    e = 1;
  }

  ); server.on("/hold_on", []() {
    server.send(500, "text/plain", "hold_on");

    white(1);
    z = 1;
    h = 2;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 1;
  }
  ); server.on("/pink", []() {
    server.send(500, "text/plain", "pink");

    pink(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 2;
    w = 1;
    o = 1;
    e = 1;
  }
  );  server.on("/blue", []() {
    server.send(500, "text/plain", "blue");

    blue(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 2;
    p = 1;
    w = 1;
    o = 1;
    e = 1;
  }
  );  server.on("/red", []() {
    server.send(500, "text/plain", "red");

    red(1);
    z = 1;
    h = 1;
    g = 1;
    r = 2;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 1;
  }
  ); server.on("/green", []() {
    server.send(500, "text/plain", "green");

    green(1);
    z = 1;
    h = 1;
    g = 2;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 1;
  }
  );  server.on("/off", []() {
    server.send(500, "text/plain", "off");

    off(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 2;
    e = 1;
  }

                                                                                                              ); server.onNotFound(handleNotFound);

  server.begin();
  Serial.println("HTTP server started");
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop(void) {
  server.handleClient();
  if (z == 2) {
    server.handleClient();
    rainbow(1);
    server.handleClient();
  }
  if (h == 2) {
    white(1);
  }
  if (g == 2) {
    green(1);
  }
  if (r == 2) {
    red(1);
  }
  if (b == 2) {
    blue(1);
  }
  if (p == 2) {
    pink(1);
  }
  if (w == 2) {
    warmwhite(1);
  }
  if (0 == 2) {
    off(1);
  }
  if (e == 2) {
    orange(1);
  }
}

Edit: Da es anscheinend nicht eilt, ziehe ich meinen Beitrag zur Lösungsfindung zunächst zurück!

Gruß Fips

Hallo Fips,

enschuldige meine Abwesenheit über diese Drei Tage. Ich war im Urlaub als ich die Frage stellte. Und am Samstag hatte ich damit zu tun zuhause meine Koffer auszupacken. Am Sonntag gebe ich zu hätte ich online gehen können aber da ich das ganze aus Sicherheitsgründen nur über den Laptop mache hatte ich einfach an diesem Tag keine Lust. Tja und jetzt sitze ich wieder zuhause nachdem ich heute entweder bei Freunden war oder sie bei mir und beantworte deine Frage. Nachdem ich Vormittags meinem Tagwerk nachgegangen bin. Ich kann dich verstehen, bitte verzeih mir.

Und jetzt zu der Frage die ich auf dem Handy gesehen hatte. Mein Ziel ist es das der Esp versucht sich in mein Netzwerk einzuwählen und wenn dies nicht Gelingt soll er versuchen sich in den Hotspot einzuwählen den ich mit dem Handy gebe weil es halt um eine Portable Lampe geht. Und meine Frage an euch war ob das generell mehr Sinn über einen Access Point macht.

Meeriefreak:
Mein Ziel ist es das der Esp versucht sich in mein Netzwerk einzuwählen und wenn dies nicht Gelingt soll er versuchen sich in den Hotspot einzuwählen den ich mit dem Handy gebe weil es halt um eine Portable Lampe geht. Und meine Frage an euch war ob das generell mehr Sinn über einen Access Point macht.

Warum willst du das mit einen Hotspot machen?
Mein Weg wäre es, mit dem ESP8266 einen Soft-Access-Point aufmachen auf den du mit deinem Klingelkasten zugreifst.

Egal ob Hotspot oder Access Point, mit dieser Abfrage ist es machbar.

if (WiFi.status() == WL_NO_SSID_AVAIL)

Ich habe das mal vor ner weile für ein Sonoff gebaut.

Kannst du hier nachlesen.

Einzig die LED PINs passen dann nicht.
Welch einen Esp du verwendest hast du ja noch nicht verraten.

Soll es unbedingt mit einem Hotspot sein musst du im Sketch, wo jetzt der Soft AP gestartet wird, ein zweites "WiFi.begin(ssid_2, password_2);" mit den Daten für den Hotspot einbauen.

Wenn was unklar ist dann frag nach, bevor du wieder Verreist.

Gruß Fips

Ok Danke für die Hilfe ich probiere jetzt einfach erstmal weiter ich denke das hat mir geholfen. Aber eine Frage habe ich noch.

Was genau ist ein Soft Acess Point?

Hi

So was wie 'Soft-Serial' ... eine Nachbildung in Software - also ein 'AP-Programm'.

MfG

Meeriefreak:
Was genau ist ein Soft Acess Point?

Wie "postmaster-ino" schon schrieb steht "Soft" für Software.
Auch I2C ist beim Esp.... keine Hardware.

Gruß Fips

Danke für die vielen Antworten hat auf jeden Fall geholfen.

Es wäre im Sinne des Forums, wenn Du dann Das Ergebnis für die Nachwelt dokumentieren würdest.

Gruß Tommy

Ok lade ich hoch wenn ich dann die letzten Probleme raus hab.

uint16_t gerade;
uint16_t strobe;
uint16_t yellow;

const char* ssid = "Esp";
const char* password = "";

const char* ssid_2 = "FRITZ!Box 7490 ";
const char* password_2 = "";

void handleRoot() {
  server.send(200, "text/plain", "usage:\n/rainbow");

}
unsigned long previousMillis = 1000000;
const long interval = 1000;



void handleNotFound() {
  digitalWrite(led, 1);
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET) ? "GET" : "POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i = 0; i < server.args(); i++) {
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
  digitalWrite(led, 0);
}
void strober(uint8_t){
  uint16_t i;

  z = 1;
  h = 1;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  strobe = 2;
  yellow = 1;
  if (gerade%2 == 0){
    white(1);
  }
  else{
    off(1);
  }
}
void orange(uint8_t) {
  uint16_t i;
  z = 1;
  h = 1;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 2;
  strobe = 1;
  yellow = 1;
  
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 255, 69, 0);
  }
  strip.show();
  unsigned long currentMillis = millis();
}
void blue(uint8_t) {
  uint16_t i;
  z = 1;
  h = 1;
  g = 1;
  r = 1;
  b = 2;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  strobe = 1;
  yellow = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 0, 0, 255);
  }
  strip.show();
  unsigned long currentMillis = millis();
}
void red(uint8_t) {
  uint16_t i;
  z = 1;
  h = 1;
  g = 1;
  r = 2;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
strobe = 1;
  yellow = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 255, 0, 0);
  }
  strip.show();
  unsigned long currentMillis = millis();
}
void green(uint8_t) {
  uint16_t i;

  z = 1;
  h = 1;
  g = 2;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  strobe = 1;
  yellow = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 0, 255, 0);
  }
  strip.show();
  unsigned long currentMillis = millis();
}

void pink(uint8_t) {
  uint16_t i;
  z = 1;
  h = 1;
  g = 1;
  r = 1;
  b = 1;
  p = 2;
  w = 1;
  o = 1;
  e = 1;
  strobe = 1;
  yellow = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 255, 0, 255);
  }
  strip.show();
  unsigned long currentMillis = millis();
}

void white(uint8_t) {
  uint16_t i;
  z = 1;
  h = 2;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  strobe = 1;
  yellow = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 255, 255, 255);
  }
  strip.show();
  unsigned long currentMillis = millis();
}

void off(uint8_t) {
  uint16_t i;
  z = 1;
  h = 2;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  strobe = 1;
  yellow = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 0, 0, 0);
  }
  strip.show();
  unsigned long currentMillis = millis();
}
void warmwhite(uint8_t) {
  uint16_t i;
  z = 1;
  h = 1;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 2;
  o = 1;
  e = 1;
  strobe = 1;
  yellow = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 255, 255, 60);
  }
  strip.show();
  unsigned long currentMillis = millis();

}
void yellowe(uint8_t) {
  uint16_t i;
  z = 1;
  h = 1;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  strobe = 1;
  yellow = 1;
  for (i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, 255, 255, 0);
  }
  strip.show();
  unsigned long currentMillis = millis();
}
void rainbow(uint8_t) {


  z = 2;
  h = 1;
  g = 1;
  r = 1;
  b = 1;
  p = 1;
  w = 1;
  o = 1;
  e = 1;
  strobe = 1;
  yellow = 1;
  uint16_t i, j;

  for (j = 0; j < 256; j++) {
    for (i = 0; i < strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i + j) & 255));
    }
    delay(50);
    strip.show();
  }
}

uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if (WheelPos < 85) {
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);

  }


  if (WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);

  }

  WheelPos -= 170;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);

}

void setup(void) {
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");

  uint16_t k;
  k=1;
 while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    k++;
    if(k==35){
      goto jmp;
    }
 }
 uint16_t s;
 s=0;
 if(s==3){
 

 jmp:

   WiFi.mode(WIFI_STA);
  WiFi.begin(ssid_2, password_2);
  Serial.println("");

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

  if (MDNS.begin("instead")) {
    Serial.println("MDNS responder started");
  }
  server.on("/", handleRoot);

  server.on("/rainbow", []() {
    server.send(500, "text/plain", "rainbow");

    rainbow(1);
    z = 2;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 1;
strobe = 1;
  yellow = 1;
  }
  ); server.on("/orange", []() {
    orange(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 2;
    strobe = 1;
  yellow = 1;
  }
  ); server.on("/warmwhite", []() {
    server.send(700, "text/plain", "warmwhite");

    warmwhite(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 2;
    o = 1;
    e = 1;
    strobe = 1;
  yellow = 1;
  }

  ); server.on("/hold_on", []() {
    server.send(500, "text/plain", "hold_on");

    white(1);
    z = 1;
    h = 2;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 1;
    strobe = 1;
  yellow = 1;
  }
  ); server.on("/pink", []() {
    server.send(500, "text/plain", "pink");

    pink(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 2;
    w = 1;
    o = 1;
    e = 1;
    strobe = 1;
  yellow = 1;
  }
  );  server.on("/blue", []() {
    server.send(500, "text/plain", "blue");

    blue(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 2;
    p = 1;
    w = 1;
    o = 1;
    e = 1;
    strobe = 1;
  yellow = 1;
  }
  );  server.on("/red", []() {
    server.send(500, "text/plain", "red");

    red(1);
    z = 1;
    h = 1;
    g = 1;
    r = 2;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 1;
    strobe = 1;
  yellow = 1;
  }
  ); server.on("/green", []() {
    server.send(500, "text/plain", "green");

    green(1);
    z = 1;
    h = 1;
    g = 2;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 1;
    strobe = 1;
  yellow = 1;
  }
  );  server.on("/off", []() {
    server.send(500, "text/plain", "off");

    off(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 2;
    e = 1;
    strobe = 1;
  yellow = 1;
  }
 );  server.on("/yellow", []() {
    server.send(500, "text/plain", "yellow");

    yellowe(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 1;
    yellow = 2;
    strobe = 1;
  }
  );  server.on("/strobe", []() {
    server.send(500, "text/plain", "strobe");

    strober(1);
    z = 1;
    h = 1;
    g = 1;
    r = 1;
    b = 1;
    p = 1;
    w = 1;
    o = 1;
    e = 1;
    yellow = 2;
    strobe = 1;
   server.onNotFound(handleNotFound);
  }
);  server.begin();
  Serial.println("HTTP server started");
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}


void loop(void) {
  server.handleClient();
  if (z == 2) {
    server.handleClient();
    rainbow(1);
    server.handleClient();
  }
  if (h == 2) {
    white(1);
  }
  if (g == 2) {
    green(1);
  }
  if (r == 2) {
    red(1);
  }
  if (b == 2) {
    blue(1);
  }
  if (p == 2) {
    pink(1);
  }
  if (w == 2) {
    warmwhite(1);
  }
  if (0 == 2) {
    off(1);
  }
  if (e == 2) {
    orange(1);
  }
  if (strobe== 2) {
    strober(1);
    gerade++;
}
if (yellow == 2) {
  yellowe(1);
}
}

Musste ich kürzen. Sorry