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

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

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+PubSubClient und MQTT/ioBroker Arduino4Fun 10 5.333 08.09.2020 10:22
Letzter Beitrag: biologist
Lightbulb SPIFFS DOWNLOAD UPLOAD & DELETE Esp8266 NodeMCU Fips 31 24.145 05.09.2020 19:59
Letzter Beitrag: guenni71
  ESP8266 Datenlogger für Google Sheets xuino 3 257 31.08.2020 14:43
Letzter Beitrag: hotsystems
  Esp8266 GPIO default In- oder Out-put? N1d45 0 233 29.08.2020 06:58
Letzter Beitrag: N1d45
  WeMos D1 mini ESP8266 error: <bits/c++config.h> AnFi 17 4.364 27.08.2020 13:47
Letzter Beitrag: dna
  ESP8266 AP-Modus Android N1d45 2 347 20.08.2020 07:58
Letzter Beitrag: N1d45
  ESP8266 über AT-Befehle Jens Jung 2 369 19.08.2020 15:08
Letzter Beitrag: Jens Jung
  ESP8266 core for Arduino 2.7.0 Fips 15 2.917 09.07.2020 07:01
Letzter Beitrag: Fips
  Erster Versuch mit "ESP8266 NodeMCU V3" Mathias 6 1.016 03.07.2020 18:14
Letzter Beitrag: Mathias
  ESP8266 (Wemos D1 Mini) - WifiManager und TimerInterrupt fiberman 10 1.456 30.06.2020 06:24
Letzter Beitrag: amithlon

Gehe zu:


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