die brücke zu der externen antenne? ja...
die brücke zu der externen antenne? ja...
gruß inka
dann bin ich mal auf deine Tests gespannt, wie weit du kommst
cYa pig
naja, jetzt erstmal das zweite gehäuse drucken, zusammenbauen und sich mit den beispielen der wifi lib beschäftigen... wird schon ein paar tage dauern...
Wo sollte ich da mit der auswertung der wifi-signalstärke ansetzen? ich blick da noch nicht so richtig durch - wifi server und client sagen mir schon ein bischen was, aber letzetndlich weiss ich nicht viel davon...
Ich wollte eigentlich auch, dass die anzeige der verlorenen verbindung auf beiden seiten gemerkt wird - geht das überhaupt?
gruß inka
Das ist recht simpel:
https://www.arduino.cc/en/Reference/WiFiRSSI
Das Ergebnis kannst du aufdröseln und an ne RGB-Led (ich würd da ne WS2812 nehmen) schicken, und fertig.
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
genauso hab ich es gemacht. ich habe festgstellt wenn du 31DB hast, dann ist die Verbindung getrennt worden.
void loop() { rssi = WiFi.RSSI(); // eg. -63
// Draw the RSSI eg. -63db
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(20,2);
display.print(rssi);
display.println("dB");
display.display();
// miniature bitmap display
display.drawBitmap(54, 0, wlan100_10, 10, 10, 1);
display.display();
if (rssi = 31) {
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, HIGH);
}
else {
digitalWrite(RED_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
}
delay(1000); // Adjust this to change graph speed
}
Geändert von piggituX (26.06.2020 um 14:34 Uhr)
cYa pig
die testergebnisse gibt's hier immer wieder mal, jetzt sind wir eher mit den e-bikes unterwegs als im winter
was mich jetzt beschäftigt, ist die bisher nur einseitige benachrichtigung. Eigentlich ist es ja nur der client, der eine neue wie auch eine abgebrochne verbindung signalisiert:
- beim server geht das RSSI ja nicht, weil es ja mehrere clients geben kann, die eine verbindung haben - das vermute ich als grund für das nicht funktionieren
- auch mit dem zählen der verbindungen beim server (die funktion (WiFi.softAPgetStationNum() ), da wird eine neue verbindung recht schnell bemerkt und signalisiert, bei einer abgebrochnen verbindung dauert es elend lange, bis die meldung kommt, da ist man mit dem rad leicht 300/400 meter gefahren. Das übersteigt die (meine) toleranzgrenze beim weiten...
Das sind die zwei möglichkeiten, die ich bisher ausprobiert habe, was gibt's noch? Geht da was nur mit dem webserver und einer "normalen" zeichenübertragung?
gruß inka
Du könntest versuchen, die Laufzeit eines Signals zu messen. Zum Server hinschicken, der schickt es direkt zurück und Du ermittelst, wie lange das gedauert hat. Vielleicht ist das brauchbarer. Das Signal/Zeichen kann auch vom Server kommen, der Client schickt es zurück und Du ermittelst die Laufzeit auf dem Server.
MfG
ok, dann kenne ich die laufzeit - was mache ich dann damit? Oder meinst du eine unendlich lange laufzeit ist ein zeichen für eine abgebrochene verbindung?
Auf dem client habe ich ereignisse, die ich direkt in signale der RGB led umwandeln kann, die werden dann auf dem clientmodul ausgewertet und eben in die optischen signale umgewandelt...
Eine solche möglichkeit auf dem server, die ebenfalls eine direkte umwandlung in optische signale der RGB led ermöglicht fehlt mir. Die Suche ich...
Mit dem zeichen senden dachte ich eher daran, dass der client irgendein vereinbartes zeichen in vereinbarten intervallen an den server sendet. Bleibt diese sendung aus, heisst es verbindungsabbruch und RGB-led des servermoduls geht auf rot...
gruß inka
mit der korrespondenz in einer richtung mit UDP funktioniert es, die LED wird an- und ausgeschaltet. Für das versenden des echos zurück habe ich diesen
da Du ja schon UDP-erfahrungen hast, kannst Du mir bitte ein wenig auf die sprünge helfen wie das mit der registration des echos auf der gegenseite funktioniert? Da komme ich nicht so recht weiterCode:void echo_senden() { if (Udp.parsePacket()) { // Fetch received message int len=Udp.read(udp_buffer,sizeof(udp_buffer)-1); udp_buffer[len] = 0; // Display the message Serial.print(F("Received from ")); Serial.print(Udp.remoteIP()); Serial.print(":"); Serial.print(Udp.remotePort()); Serial.print(": "); Serial.println(udp_buffer); // Send echo back Udp.beginPacket(Udp.remoteIP(), Udp.remotePort()); Udp.print(F("Echo: ")); Udp.print(udp_buffer); Udp.endPacket(); } }![]()
gruß inka
Lesezeichen