INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
ESP8266 mit externer Antenne ?
10.02.2020, 14:48
Beitrag #49
RE: ESP8266 mit externer Antenne ?
(10.02.2020 14:46)Nicole schrieb:  Du hast gesagt nach der If Anweisung muss alles in den Klammern stehen das zusammen gehört.
Und wo in Deinem Code sehe ich das?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.02.2020, 15:15
Beitrag #50
RE: ESP8266 mit externer Antenne ?
Hier mal ein Versuch den ich getestet habe.

Code:
void loop() {

  long currentMillis = millis();

  if (currentMillis - lastScanMillis > Suche_neu) {        
    Serial.println("Suche");

    byte available_networks = WiFi.scanNetworks();
    for (int network = 0; network < available_networks; network++) {

      if (WiFi.SSID(network) == target_ssid) {
        Serial.print("Gerade");
        Serial.print("Online");
        Serial.println("");
      }
      if (currentMillis - lastBlinkMillis > blinken) {
        digitalWrite(led, ledState);
        ledState = !ledState;
        lastBlinkMillis = currentMillis;
      }
    }
  }
}

Code:
if (currentMillis - lastScanMillis > Suche_neu) {
Soll ja die Scan Geschwindigkeit definieren.
Somit müsste hier die Anweisung beginnen.

Code:
if (WiFi.SSID(network) == target_ssid) {
Wenn das Handy gefunden ist, führe folgendes aus.

Code:
if (currentMillis - lastBlinkMillis > blinken) {
Soll die blink Geschwindigkeit definieren aber meiner Meinung nach gehört dieser Bereich doch noch zum Code darüber.
Warum ? wenn das Handy gefunden ist soll ja die LED zu blinken beginnen.
Somit darf ich die Klammer hier doch noch nicht schließen...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.02.2020, 15:39 (Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2020 16:00 von Tommy56.)
Beitrag #51
RE: ESP8266 mit externer Antenne ?
Die LED soll doch eine bestimmte Zeit blinken, die länger ist, als die Suchzeit.
Du hast also 3 verschiedene Zeiten, die Du steuern musst:

1. Die Scanzeit (3s) - lastScanMillis
2. Die Blinkzeit an/aus (500 ms) - lastBlinkMillis
3. Die Blinkdauer (5s) - lastDauerMillis

Ob die Zeiten jetzt stimmen, weiß ich nicht, da Du ja nur den Loop schreibst. Ist aber egal.

Wenn Du etwas gefunden hast, setzt Du nur ein Flag (blinkenAn) und die lastBlinkDauer auf millis.
Das Blinken machst Du im Loop außerhalb der Suche/gefunden-Klammer.

Unklar ist noch, wenn Du nach 3 Sekunden neu suchst/findest, was Du mit dem Blinken machen willst. Retriggern (also 5s neu starten oder ignorieren).

Bitte zeige in Zukunft den ganzen Sketch, damit man auch die Deklaration der Variablen sieht.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.02.2020, 19:55
Beitrag #52
RE: ESP8266 mit externer Antenne ?
(09.02.2020 12:25)Nicole schrieb:  eine Fritzbox habe ich leider nicht.

Dann solltest du ernsthaft darüber Nachdenken diese Investition zu tätigen.

Warum muss die Led unbedingt blinken, wenn das Handy in Reichweite ist?

Einfach an oder aus würde es für dich einfacher machen.

Gruß Fips

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.02.2020, 20:02
Beitrag #53
RE: ESP8266 mit externer Antenne ?
Hallo Fips,

die Version mit an oder aus habe ich schon und diese läuft soweit sehr gut.
Aber das habe ich mit Delay geregelt.

Das möchte ich nicht, steht ja auch überall geschrieben das man Delay vermeiden soll Wink
Und was ist in der heutigen Zeit schon einfach ?
Ich möchte es lernen wie es funktioniert, somit muss man da durch.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.02.2020, 20:11
Beitrag #54
RE: ESP8266 mit externer Antenne ?
(10.02.2020 20:02)Nicole schrieb:  Ich möchte es lernen wie es funktioniert, somit muss man da durch.

Blinken mit millis() in einer Zeile.

Gruß Fips

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.02.2020, 21:45
Beitrag #55
RE: ESP8266 mit externer Antenne ?
Hallo Fips,

danke für den Link.

Ich habe es jetzt mal ganz anders versucht.

Und zwar habe ich alles aus dem void loop Bereich entfernt und Step by Step getestet.
Ohne jeglichen anderen Code funktioniert es Problemlos und ohne Fehler.

Sobald ich anfange weiteren Code einzufügen bzw. mit den Klammern zu arbeiten passen die blink Zeiten nicht mehr zusammen.

Code:
void loop() {
  const auto TIME_OFF = 500; // 200 ms aus  // 6e4 für 60 Sekunden aus // 18e5 für 30 Minuten aus
  const auto TIME_ON = 100;  // 400 ms an   // 3e4 für 30 Sekunden an  // 36e5 für 60 Minuten an
  digitalWrite(LED_PIN, millis() % (TIME_OFF + TIME_ON) >= TIME_ON);
}

Mir kommt es so vor als ob dieser Teil alles blockiert.

Code:
Serial.println("Suche");

    byte available_networks = WiFi.scanNetworks();
    for (int network = 0; network < available_networks; network++) {

      if (WiFi.SSID(network) == target_ssid) {
        Serial.print("Gerade");
        Serial.print("Online");
        Serial.println("");

Darf ich eigentlich die Zeiten auch schon oben im Code deklarieren ?
Code:
const auto TIME_OFF = 500; // 200 ms aus  // 6e4 für 60 Sekunden aus // 18e5 für 30 Minuten aus
const auto TIME_ON = 100;  // 400 ms an   // 3e4 für 30 Sekunden an  // 36e5 für 60 Minuten an

Habe es mal getestet und es hat auch ohne Probleme funktioniert.
Die Frage ist nur ob das so richtig ist oder muss dieser Teil unbedingt im void loop Bereich sein ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.02.2020, 07:53
Beitrag #56
RE: ESP8266 mit externer Antenne ?
Du musst den WLAN-Scan asynchron starten, sonst wartet WiFi.scanNetworks auf das Ende des Scans und die LED wird nicht blinken.
Ich habe Dir mal einen Sketch erstellt und diesen ausführlich kommentiert:
Code:
#include <ESP8266WiFi.h>

const char* TARGET_SSID = "Vodafone-AAEC"; // SSID, die gefunden werden soll
const uint8_t SCAN_LED = LED_BUILTIN;      // Pin, an dem die Scan-LED angschlossen ist
const bool LED_LOW_ACTIVE = true;          // Ist diese LED low-aktiv (leuchtet bei 0 am Ausgang)?

bool ledState = 0, connectState = 0, scanState = 0;
uint32_t nowMillis, lastMillis, blinkMillis;

void setup() {
  Serial.begin(115200);
  digitalWrite(SCAN_LED, ledState ^ LED_LOW_ACTIVE);
  pinMode(SCAN_LED, OUTPUT);
  Serial.println(F("Setup done."));
}

void loop() {
  nowMillis = millis();
  if (connectState && nowMillis - blinkMillis > 500) { // wenn SSID in Reichweite, dann blinken
    ledState ^= 1;                                     // den LED-Status umkehren (XOR 1)
    digitalWrite(SCAN_LED, ledState ^ LED_LOW_ACTIVE); // die LED entsprechend ein-/ausschalten
    blinkMillis = nowMillis;                           // die Millis merken
  }
  if (!scanState && nowMillis - lastMillis > 5000) {   // wenn der letzte Scan abgeschlossen ist und mehr als 5s um sind
    WiFi.scanNetworks(true);                           // Networkscan starten (1.Parameter = true = asynchroner Scan)
    scanState = 1;                                     // der Scan wurde gestartet
    lastMillis = nowMillis;                            // die Millis merken
  }
  int n = WiFi.scanComplete();                         // Abfrage, ob der Scan abgeschlossen ist
  if (scanState && n > 0) {                            // wenn ja und min. 1 Netz gefunden wurde (n > 0)
    connectState = 0;                                  // den Connect-Status erstmal auf "aus" setzen
    for (int i = 0; i < n; i++) {                      // alle gefundenen SSIDs durchgehen
      Serial.println(WiFi.SSID(i));                    // zum testen, die SSID auf der seriellen Schnittstelle ausgeben
      if (!strcmp(WiFi.SSID(i).c_str(), TARGET_SSID)){ // wenn die SSID mit der Ziel-SSID uebereinstimmt (strcmp gibt 0 zurueck)
        connectState = 1;                              // und den Status merken (fuer das blinken oben)
      }
    }
    Serial.print(F("Status: "));                       // den Status auf der seriellen Schnittstelle ausgeben
    Serial.println(connectState ? F("Online!") : F("Offline!"));
    ledState = connectState;                           // den Status auch auf den LED-Status kopieren
    digitalWrite(SCAN_LED, ledState ^ LED_LOW_ACTIVE); // die LED entsprechend ein-/ausschalten
    scanState = 0;                                     // der Scan ist abgeschlossen
  }
}

Ob das Ganze aber wirklich praxistauglich ist, wage ich zu bezweifeln. Oder willst Du jedes Mal, wenn Du nach Hause kommst den Hotspot von Deinem Handy aktivieren?
Ich würde eher den ESP mit dem heimischen WLAN verbinden und dann regelmäßig scannen, ob sich das Handy auch eingeloggt hat.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ESP8266-12E & Pullup I2C rev.antun 32 977 Gestern 12:47
Letzter Beitrag: rev.antun
  Abgespeckter Sketch für ESP8266 -WLAN Anbindung / Anfänger mizieg 7 313 26.02.2021 17:45
Letzter Beitrag: N1d45
  ESP8266 OTA und Verwendung von TXD0/RXD0 rev.antun 27 900 22.02.2021 19:43
Letzter Beitrag: hotsystems
  GPS-Synchronisierung mit NodeMCU-ESP8266 Floke4 3 227 22.02.2021 19:33
Letzter Beitrag: rev.antun
  esp8266 zu html gk_1 9 433 19.02.2021 19:41
Letzter Beitrag: Tommy56
  ESP8266 SD CSV Datei Zeilen rückwärtz RobertHQ 7 425 14.02.2021 19:29
Letzter Beitrag: Corvus
  ESP8266 Webserver nach Zeit nicht mehr verfügbar. ESPWolf 21 1.979 02.02.2021 17:54
Letzter Beitrag: Tommy56
  ESP8266 - DLNA, Chromecast, Firestick & YouTube rev.antun 8 743 27.01.2021 21:31
Letzter Beitrag: nbk83
  Fernbedienung mit ESP8266 hardyy 3 464 27.01.2021 08:34
Letzter Beitrag: hardyy
  NodeMCU-ESP8266 Floke4 13 800 25.01.2021 18:17
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste