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 ?
04.02.2020, 02:52
Beitrag #33
RE: ESP8266 mit externer Antenne ?
Ich habe jetzt einiges versucht, leider funktioniert es noch nicht so wie es sein soll.

Hätte da noch ein paar Fragen an Euch.

Der esp soll jede 3 Sekunden einen neuen Scan durchführen und schauen ob das Handy in der Nähe ist.

Ist das Handy in der Nähe geht die rote LED für 5 Sekunden an.
Das ganze habe ich mit millis versucht da delay alles blockiert, es funktioniert soweit auch nur eben nicht so wie es sein soll.

Wo ist das Problem ?

Ich sage der roten LED sie soll für 5 Sekunden leuchten wenn das Handy in der Nähe ist.
Der esp Scant aber alle 3 Sekunden neu, somit schneidet er mir immer bei jedem neuen Scan die 2 Sekunden Rest Zeit ab Undecided

Warum das so ist verstehe ich, da der Loop ja nach den 3 Sekunden von neuem beginnt.

Jetzt ist es so:
Scan startet ---- Handy gefunden ---- LED geht an ---- 3 Sekunden warten
Neues Scan startet ---- LED Geht aus ----- Handy gefunden ---- LED geht an.

Die Frage ist jetzt nur, wie kann ich die rote LED 5 Sekunden leuchten lassen obwohl der esp nach den 3 Sekunden einen neuen Scan startet ?

Benötige ich eine zweite Routine bzw. einen zweiten loop ?
Oder wie löst man solch ein Problem ?

Eine zweite Lösung die mir noch eingefallen ist wäre, die rote LED so lange leuchten zu lassen wie das Handy in der Nähe ist.
Aber auch hier muss man dem esp sagen er darf die rote LED bei einem neuen Scan nicht abschalten da das Handy ja noch in der Nähe ist.

Die Frage ist ja auch, ob bei einem neuen Scan alle Netze gelöscht werden oder ob er nur nach neuen Netzen Scant die gerade nicht in der Liste sind ?

Weil wenn alle Netze bei einem neuen Scan gelöscht werden, müsste man ja die LED immer um die Zeit länger leuchten lassen wie der neue Scan dauert somit würde sich die LED bei einem neuen Scan nicht mehr abschalten.

Ich hoffe Ihr habt ein paar Tipps für mich.

Vielen Dank
Nicole
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.02.2020, 11:05
Beitrag #34
RE: ESP8266 mit externer Antenne ?
Du darfst die LED nicht am Anfang des loop wieder ausschalten, sondern erst, wenn die 5 Sekunden um sind.
Ein loop, der 3 Sekunden braucht, ist übrigens ein unbrauchbarer loop.

Stelle doch mal den aktuellen Sketch ein.

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
07.02.2020, 00:09 (Dieser Beitrag wurde zuletzt bearbeitet: 07.02.2020 03:04 von Nicole.)
Beitrag #35
RE: ESP8266 mit externer Antenne ?
Hallo,

ich habe jetzt viel versucht doch leider funktioniert es nicht so wie ich es gerne möchte.

Ich glaube mein größtes Problem ist, ich denke viel zu viel Dodgy
Für mich ist das ganze nicht so einfach.

Ich lese und teste sehr sehr viel und trotzdem ist der Code und ich noch kein Freund Rolleyes
Es tut mir sehr leid, dass ich Euch immer belästigen muss.

Hier mal mein Code:

Code:
#include "ESP8266WiFi.h"

#define blinken 5000
#define Suche_neu 3000

int led = 14;
boolean ledState;


long lastBlinkMillis;
long lastScanMillis;

const char* target_ssid = "";


void setup() {

  pinMode(led, OUTPUT);
  
  Serial.begin(115200);

  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
  Serial.println("Fertig");
  Serial.println();
}
String encryptionTypeStr(uint8_t authmode) {
    switch(authmode) {
        case ENC_TYPE_NONE:
            return "NONE";
        case ENC_TYPE_WEP:
            return "WEP";
        case ENC_TYPE_TKIP:
            return "TKIP";
        case ENC_TYPE_CCMP:
            return "CCMP";
        case ENC_TYPE_AUTO:
            return "AUTO";
        default:
            return "?";
    }
}
void loop() {
  
      long currentMillis = millis();
  
      if (currentMillis - lastScanMillis > Suche_neu)
  
      Serial.println("Suche");
      Serial.println("");
  
      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;
      
      
}
}
}

Aktuell ist mein Problem, wenn ich das blinken auf 5000 einstelle leuchtet die LED nicht wenn das Handy gefunden wurde.

Stelle ich das Blinken auf 100 ein leuchtet auch die LED.
Aber auch nicht mit 100 sondern im 2 Sekunden Takt Huh

Es kommt mir so vor, als würde die Zeit von der Suche greifen.
Das kann aber normal nicht sein, da die Zeit der Suche auf 3 Sekunden eingestellt ist und die LED blinkt alle 2 Sekunden.

Auch im Serial Monitor wird alle 2 Sekunden neu gesucht.
Somit ist doch irgendwo ein Fehler oder ?

Ich habe das ganze mit den millis mit einer LED versucht.
Hier funktioniert es Problemlos, auch wenn ich die Zeit ändere leuchtet die LED schneller oder langsamer.

Nur wenn ich versuche den Code hier einzubauen funktioniert es nicht.

Ich hoffe Ihr habt ein paar Tipps für mich.

Vielen Dank
Nicole
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.02.2020, 10:50
Beitrag #36
RE: ESP8266 mit externer Antenne ?
Wichtigster Tipp: Formatiere Deinen Code ordentlich (Einrückungen). <Strg>+T in der IDE hilft Dir dabei. Lasse auch unnötige Leerzeilen weg, sie gaukeln Dir ein Verhalten vor, dass nicht da ist.
z.B.:
Code:
if (currentMillis - lastScanMillis > Suche_neu)
  
      Serial.println("Suche");
      Serial.println("");
Das tut nicht das, was Du Dir vorstellst. In Abhängigkeit von der Bedingung wird nur das erste Serial.println("Suche") ausgeführt. Der Rest wird immer ausgeführt.

Dir fehlen eindeutig wesentliche Grundlagen. Hast Du Dir schon die hier im Forum verlinkte Referenz zu Gemüte geführt? Da solltest Du besonders den Abschnitt über geschweifte Klammern verstehen.

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
07.02.2020, 13:07
Beitrag #37
RE: ESP8266 mit externer Antenne ?
Hallo Tommy,

das mit dem Code werde ich beachten vielen Dank für den Tipp.

Ich habe mir das Verhalten im Serial Monitor angeschaut.
Da hast du Recht, ich dachte das ist so normal Blush

Du hast Recht, das habe ich ja auch gesagt !
Ich versuche wirklich viel zu lesen und zu verstehen.
Doch leider fällt es mir nicht gerade leicht.

Ich habe die Referenz hier aus dem Forum nicht nur angeschaut sondern viele viele Stunden gelesen und auch vieles getestet.
Du meinst bestimmt diesen Satz:

Auf eine öffnende “{” Klammer muss immer eine schließende “}” Klammer folgen.

Es wäre sehr nett, wenn Du mir sagen könntest wo genau meine Fehler in dem Code sind und warum es nicht funktioniert wie es soll ?

Du sollst mir nicht den ganzen Code neu schreiben !
Ich möchte es ja selbst lernen, darum bitte nur einzelne Stichwörter die ich selbst in den Code einbauen kann.

Vielen Dank
Nicole
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.02.2020, 19:15
Beitrag #38
RE: ESP8266 mit externer Antenne ?
Du musst alles was Du nach dem If gemeinsam behandeln willst in einegemeinsames Paar {} einschließen.

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
07.02.2020, 23:47
Beitrag #39
RE: ESP8266 mit externer Antenne ?
Danke für den Tipp.

Ich habe gerade ein paar Varianten versucht.
Leider noch nicht das richtige gefunden.

Jetzt nochmals langsam für mich Blush
Wir sprechen ja über den Loop Teil richtig ?

Für mich gehören diese Teile zusammen.

Code:
void loop() {
  
      long currentMillis = millis();
  
      if (currentMillis - lastScanMillis > Suche_neu)
      Serial.println("Suche");
      Serial.println("");

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

   // Teil 1 endet hier

   // Teil 2 startet hier

      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;
}
}
}
}

Oder ist das so falsch gedacht ?

Im Teil 2 prüft er ja ob das Handy in der Nähe ist.
Ist das der Fall, soll im Serial Monitor Gerade Online ausgegeben werden und die LED schaltet sich ein.

Das macht er auch, aber das Timing passt überhaupt nicht.
Woher wisst Ihr den genau wo Ihr die Klammern setzen müsst ?

Da muss es doch ein System geben.

Wenn ich eine neue Klammer setze schreibt die Arduino Software die zweite Klammer ja gleich mit dazu.
Das ist schön und gut, nur ab wann muss eine neue Klammer eröffnet werden und was muss ich alles in die Klammer mit rein schreiben Undecided
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.02.2020, 07:02
Beitrag #40
RE: ESP8266 mit externer Antenne ?
(07.02.2020 10:50)Tommy56 schrieb:  Wichtigster Tipp: Formatiere Deinen Code ordentlich (Einrückungen). <Strg>+T in der IDE hilft Dir dabei.

Das solltest du unbedingt solange üben bis es dir gelungen ist!

Entweder auf deiner Tastatur "<Strg>+T" oder mit der Maus im Menü unter Werkzeuge/Automatische Formatierung.


Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen 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.383 08.09.2020 10:22
Letzter Beitrag: biologist
Lightbulb SPIFFS DOWNLOAD UPLOAD & DELETE Esp8266 NodeMCU Fips 31 24.163 05.09.2020 19:59
Letzter Beitrag: guenni71
  ESP8266 Datenlogger für Google Sheets xuino 3 276 31.08.2020 14:43
Letzter Beitrag: hotsystems
  Esp8266 GPIO default In- oder Out-put? N1d45 0 244 29.08.2020 06:58
Letzter Beitrag: N1d45
  WeMos D1 mini ESP8266 error: <bits/c++config.h> AnFi 17 4.424 27.08.2020 13:47
Letzter Beitrag: dna
  ESP8266 AP-Modus Android N1d45 2 359 20.08.2020 07:58
Letzter Beitrag: N1d45
  ESP8266 über AT-Befehle Jens Jung 2 388 19.08.2020 15:08
Letzter Beitrag: Jens Jung
  ESP8266 core for Arduino 2.7.0 Fips 15 2.954 09.07.2020 07:01
Letzter Beitrag: Fips
  Erster Versuch mit "ESP8266 NodeMCU V3" Mathias 6 1.038 03.07.2020 18:14
Letzter Beitrag: Mathias
  ESP8266 (Wemos D1 Mini) - WifiManager und TimerInterrupt fiberman 10 1.468 30.06.2020 06:24
Letzter Beitrag: amithlon

Gehe zu:


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