sieht doch schon mal gut aus :D die brücke hattest du umgelötet auf dem WEMOS D1 ?
so sah mein Aufbau aus
http://piggitux.ignorelist.com:8085/IMG_6736.jpg
Druckbare Version
sieht doch schon mal gut aus :D die brücke hattest du umgelötet auf dem WEMOS D1 ?
so sah mein Aufbau aus
http://piggitux.ignorelist.com:8085/IMG_6736.jpg
die brücke zu der externen antenne? ja...
dann bin ich mal auf deine Tests gespannt, wie weit du kommst
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?
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.
genauso hab ich es gemacht. ich habe festgstellt wenn du 31DB hast, dann ist die Verbindung getrennt worden.
Zitat:
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
}
hi,
danke erstmal für die tipps :-)
ich bin jetzt weitergekommen, mechanisch und elektronisch sind die beiden module fertig, der code sieht so aus:
clientserverCode:#include <ESP8266WiFi.h> // Include the Wi-Fi library
const int ledPin_rt = D5;
const int ledPin_gn = D6;
const int ledPin_bl = D7;
uint8_t schalter = LOW;
int ledState_rt = LOW; // LED-Status
int ledState_gn = LOW;
int ledState_bl = LOW;
const char* ssid = "fahrrad-echo-server";
const char* password = "12345678";
void setup()
{
pinMode(ledPin_rt, OUTPUT);
pinMode(ledPin_gn, OUTPUT);
pinMode(ledPin_bl, OUTPUT);
digitalWrite (ledPin_rt, HIGH);
schalter = HIGH;
Serial.begin(115200);
Serial.println("code ---- /home/georg/Arduino/fahr_rad/entfernung_messen/2020_06_28/fahrrad_echo_client_1");
Serial.println('\n');
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.print("Connecting to ");
Serial.print(ssid); Serial.println(" ...");
int i = 0;
while (WiFi.status() != WL_CONNECTED)
{ // Wait for the Wi-Fi to connect
delay(1000);
Serial.print(++i); Serial.print(' ');
}
Serial.println('\n');
Serial.println("Connection established!");
Serial.print("IP address:\t");
Serial.println(WiFi.localIP());
}
void loop()
{
/*
if ((schalter == HIGH)) // && (WiFi.softAPgetStationNum() == 0))
{
WiFi.begin(ssid, password);
digitalWrite (ledPin_rt, LOW);
digitalWrite (ledPin_gn, HIGH);
schalter = LOW;
}
else if ((schalter == LOW) && (WiFi.softAPgetStationNum() == 1))
{
WiFi.disconnect();
digitalWrite (ledPin_gn, LOW);
digitalWrite (ledPin_rt, HIGH);
schalter = HIGH;
}
*/
}
ich versuche das abbrechen der verbindung mit dem registrieren von verbundenen geräten zu realisieren ( WiFi.softAPgetStationNum() ) , habe dabei allerdings ein problem. Die verbindung wird ja ziemlich abruppt beendet, und der server merkt es nicht :-(...Code:#include <ESP8266WiFi.h>
const int ledPin_rt = D5;
const int ledPin_gn = D6;
const int ledPin_bl = D7;
uint8_t schalter = LOW;
int ledState_rt = LOW; // LED-Status
int ledState_gn = LOW;
int ledState_bl = LOW;
void setup()
{
pinMode(ledPin_rt, OUTPUT);
pinMode(ledPin_gn, OUTPUT);
pinMode(ledPin_bl, OUTPUT);
digitalWrite (ledPin_rt, HIGH);
schalter = HIGH;
Serial.begin(115200);
Serial.println("code ---- /home/georg/Arduino/fahr_rad/entfernung_messen/2020_06_28/fahrrad_echo_server_1");
Serial.println();
Serial.print("Konfiguriere soft-AP ... ");
boolean result = WiFi.softAP("fahrrad-echo-server", "12345678");
Serial.print("Verbindung wurde ");
if (result == false)
{
Serial.println("NICHT ");
}
Serial.print("erfolgreich aufgebaut!");
}
void loop()
{
boolean result = WiFi.softAP("fahrrad-echo-server", "12345678");
if ((schalter == HIGH) && (WiFi.softAPgetStationNum() == true))
{
//boolean result = WiFi.softAP("fahrrad-echo-server", "12345678");
digitalWrite (ledPin_rt, LOW);
digitalWrite (ledPin_gn, HIGH);
schalter = LOW;
}
//else if (WiFi.softAPgetStationNum() == LOW)
// else
else if ((schalter == HIGH) && (WiFi.softAPgetStationNum() == false))
{
// client.stop();
digitalWrite (ledPin_gn, LOW);
digitalWrite (ledPin_rt, HIGH);
schalter = HIGH;
}
Serial.printf("Anzahl der Verbundenen Geräte= %d\n", WiFi.softAPgetStationNum());
delay(3000);
}
Welche möglichkeit habe ich in diesem fall die verbindung vom server aus zu beenden, bzw. den abbruch quasi zu legalisieren? Hab schon einiges probiert, es klappt nicht. Bei einer verbindung mit einem smartphone wird der abbruch der wifi-verbindung korrekt erkannt, auch wenn ich das wlan einfach abschalte findet ein reconnect statt, bei den modulen, bzw. meinem code klappt es nicht :-(
ich habe noch vergessen zu erwähnen, dass beim verwenden dieser zeilen beim server
nur "31" ausgegeben wird. Egal, ob das "client"-modul eingeschaltet ist, oder nicht. Die module liegen dicht beienander...Code:uint8_t rssi = WiFi.RSSI();
Serial.println (rssi);
Habe dann nach ursachen gesucht, keine finden können, deshalb der versuch mit dem zählen der verbundenen geräte...
Wo könnte ich da ein problem haben?
EDIT:
ok, RSSI wird am client detektiert, da läuft es, reagiert auf veränderungen der entfernung...
die letzten tests waren überaus erfolgreich! Das signal, dass den "abbruch" der verbindung signalisieren soll, kommt nach 130 schritten, geschätzt also nach 100 metern...
Eigentlich ist das projekt nun abgeschlossen, allerdings ist es nur eine rudimentäre grundfunktion, mehr kommt noch, vielleicht auch noch die eine oder andere frage...
Halt uns doch bitte trotzdem mal auf dem Laufenden.
Z.B interessiert mich bennend, unter welchen Bedinungen du so eine Reichweite schaffst- und unter welchen nicht.
Erfahrungsgemäss hat da nämlich Funk so seine Tücken: je nach Standort (und anderen Bedingungen) komme ich mit meinem Amateurfunkgerät problemlos 70-80 km weit, oder auch nur 2.