ESP866 - Wifi scan - Abfrage ob Netz bekannt/unbekannt ist

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo, ich hab mal wieder ne Frage. Irgendwie kapier ich das nicht so ganz ;)

    Ich möchte meinem ESP8266 in einem Array Zugangsdaten für mehrere bekannte Netzwerke hinterlegen. Dann alle verfügbaren Netze scannen, ob diese bekannt sind oder nicht und dies entsprechend anzeigen. Er zeigt mir irgendwie zu viel an und ich weiß nicht wie ich das "beschränken" kann. Danke für eure Denkanstöße

    Mein Code sieht so aus:

    als Ergebnis bekomme ich:

  • ESP866 - Wifi scan - Abfrage ob Netz bekannt/unbekannt ist? Schau mal ob du hier fündig wirst!

  • Hi.

    Die Liste macht genau das was sie soll.

    Ich bin jetzt nicht der Crack in C aber versuch es mal so :

    (aus der Hand raus ohne Anspruch auf Lauffähigkeit)

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Habs selbst hinbekommen. Geht das noch komfortabler?

    Neuer Code:

    Ausgabe:

    Einmal editiert, zuletzt von mischtkrabb (1. Dezember 2020 um 15:12)

  • Du kannst in C nicht strings mit == vergleichen. Das sind zwei pointer, die auf total verschiedene Stellen in Speicher zeigen.

    Du musst strcmp benutzen. Und die Dokumentation der Funktion *GENAU* lesen.

    Wenn du einfach == benutzen willst, muss es C++ und sein std::string Datentyp sein.

    Und für solche Listen arbeitet man üblicherweise mit sentinel Werten. Also zb zweimal NULL als letztem Argument. Dann kann man dynamischer damit arbeiten.

    Oder auch hier gleich C++ und seine diversen Container Typen, hierfür zb std::map.

  • Das liegt daran, dass du String verwendest. Das ist ähnlich zu std::string

    Und man vergleicht auch keine Wahrheitswerte nochmal mit true oder false. Die SIND ja schon true oder false.

    Du vergleichst also

    true == true

    was wieder

    true

    Ergibt. Das kann man sich sparen. Man prüft also

    if(bekannt)

    oder

    if(!bekannt)

  • if (aktuellesNetz == Logins[num][0])
    {
    bekannt = true;
    break;
    }

    und was soll dann passieren?

    Ich habe die Bekannten nach höchstem Pegel sortiert und verbinde mich dann mit dem höchsten Pegel!

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • ich habe 2 interne Bekannte, einige externe Bekannte und noch das Handy als AP somit läuft es praktisch überall, je nach dem wo ich baue.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • dann hilft es selber einen AP aufzumachen dem Vater das PW mitzuteilen 12345 oder hallopapa und dann kann er sein PW selber eingeben, welches der ESP speichert, ist zwar nicht dauerhaft kann aber mit I2C EEPROM (auch in einer RTC) oder mit FRAM erweitert werden für Spannungsausfall

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Ich versteh nicht so ganz warum ich einen AP auf machen soll. Er hat ein bestehendes WLAN zuhause und da soll sich der ESP drauf connecten. Nur soll der ESP merken ob er bei mir oder bei ihm ist und entsprechend handeln. Und wenn das nicht dauerhaft ist taugt das schon nichts. Der ganze PC, Arduino usw. Kram ist nix für so alte Leute, die mit ach und krach grade mal so ein Smartphone bedienen können aber sonst keine Ahnung von der Materie haben.

    @__deets__

    kann es sein, dass es ein std::string beim Arduino gar nicht gibt ? D.h. ich müsste hier extra Bibliotheken für einbinden? googeln hat mich hier leicht verunsichert

  • Ich versteh nicht so ganz warum ich einen AP auf machen soll.

    um evtl. ein Passwort ändern zu können, du hast es doch selber geschrieben!:conf:

    wenn ich ihm was fertiges per Post schicke, dass ausversehen Fehler bei den Zugangsdaten sind, wenn ich vergesse die auf sein Netz umzuswitchen ...

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Er hat ein bestehendes WLAN zuhause und da soll sich der ESP drauf connecten. Nur soll der ESP merken ob er bei mir oder bei ihm ist und entsprechend handeln.

    Wenns Dir nur darum geht, da gibts doch etwas fertiges und robustes...WIFIMulti, das findest Du in den ESP8266 Beispielen. Funktioniert ganz hervorragend.

  • Der ESP sollte das haben. Hast du das entsprechende include <string> angegeben? Ohne das gehts nicht.

    Es ist aber im Zweifel auch ok den arduino String zu benutzen, er geht ja auch. Ich benutze den nicht, weil ich C++ und das pure ESP SDK benutze, nicht Arduino.

  • jar

    Ja ich habs geschrieben. Aber wenn ich da über ne Webseite was eingebe ist es wieder weg wenn man dem ESP den Stecker zieht ... Und wie gesagt möchte ich vermeiden irgendwas wo eingeben zu müssen. Das muss Out of the Box laufen. Ich will damit meiner eigenen Vergesslichkeit vorbeugen ;)

    STF

    ja davon habe ich schon wo was gelesen, mich aber nicht näher damit beschäftigt. Ich will das selbst irgendwie hinbekommen. dabei lern ich viel mehr wie einfach nur was kopieren und zu verändern bis es geht

  • Ich will das selbst irgendwie hinbekommen.

    DAS ist natürlich ein Argument. Ich wollte auch nur drauf hinweisen, dass ich dies bereits nutzte und es funktioniert. Viel Erfolg.:thumbup:

  • Das muss Out of the Box laufen. Ich will damit meiner eigenen Vergesslichkeit vorbeugen ;)

    jetzt wird es konfus, ich verstehe deinen Text nicht!

    Wenn du Fehler machst kann man nichts ändern, es sei denn dein ESP macht einen AP auf an dem man umkonfigurieren kann.

    Es funktioniert nur wenn dann auch noch ein Speicher vorhanden ist der sich das ohne Power merkt!

    Sortiere bitte mal deine Gedanken!

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Er will nix ändern. Er hinterlegt eine Liste bekannter Netzwerke, und wenn er eines findet, bucht er sich ein. Und diese Liste ist im Programm & dann im Flash. Das ist auch nicht konfus. Sondern klar.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!