Hi, für meine Bachelorarbeit möchte ich zwei MPU6050 Accelerometer als Bewegungssensoren verwenden und Bewegungen analysieren. Ich hatte dafür ursprünglich den MPU, ein ESP8266 und ein Arduino Uno Board verwendet. Sprich Beschleunigungsdaten an Arduino Uno schicken, der schickt sie an ESP8266 und der via Wifi an meinen PC. Es lief alles auch schon so weit. Weil aber Arduino + MPU + ESP dann doch etwas unhandlich sind, vor allem wenn ich beides zwei mal brauche (ich will pro Handgelenk einen Sensor anbringen), will ich alles etwas verkleinern. Dazu würde ich gerne einen NodeMCU vernweden und den (ohne Arduino UNO) direkt mit dem MPU6050 koppeln. Dazu hätte ich einige Fragen: Muss ich beim Kauf vom NodeMCU auf etwas besonders achten? Ich hatte vor diesen hier (http://www.ebay.at/itm/201566780411?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT) zu kaufen, da der Händler aus Deutschland ist. Ich weiß schon, dass ich den NodeMCU auch mit der Arduino IDE programmieren kann, aber ist das auch praktisch? Ist es leichter mit Lua? So wie mein Setup momentan ist gehen MPU6050 SCA und SCL in Arduino Uno Pin A4 und A5. Der NodeMCU hat aber nur einen Analogen Input, wie beseitige ich dieses Problem? Danke, Niklars
Niklas S. schrieb: > Muss ich beim Kauf vom NodeMCU auf etwas besonders achten? > Ich hatte vor diesen hier > (http://www.ebay.at/itm/201566780411?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT) > zu kaufen, da der Händler aus Deutschland ist. Dieses Board ist leider nicht zu empfehlen, weil es das häufig "v3" oder "LoLin" genannte Board ist, das die gesamte Breite eines Breadboards einnimmt. Empfehlenswert sind die Boards, die wie das hier abgebildete aussehen: http://www.ebay.de/itm/NodeMcu-Lua-CP2102-ESP8266-Wireless-WIFI-Internet-Development-Board-Module-TE390/401079992277 (Man achte auf den USB<->seriell-Wandler-IC neben der USB-Buchse, daran kann man den Unterschied am schnellsten erkennen) > Ich weiß schon, dass ich den NodeMCU auch mit der Arduino IDE > programmieren kann, aber ist das auch praktisch? Ist es leichter mit > Lua? Da gehen die Meinungen auseinander, ich vermute, die meisten haben eh nie beides ausprobiert um wirklich Vor-/Nachteile aus eigener Erfahrung berichten zu können. Ist halt Geschmacksache, ich persönlich bevorzuge LUA, und mein Argument ist folgendes: Wenn ich merke, dass ein konkretes Problem in LUA schwer oder gar nicht zu lösen ist, dann kann ich bei der nodemcu-firmware immer noch "eine Ebene tiefer gehen" und ein entsprechendes Software-Modul in C schreiben. Bei Arduino muss ich in C programmieren. K.O.-Kriterium für LUA wäre aber z.B., falls Du etwas wirklich sehr RAM-intensives machen willst. Dadurch, dass da eben ein LUA-Interpreter läuft, sind mit LUA nur noch ca. 45kb RAM verfügbar. > So wie mein Setup momentan ist gehen MPU6050 SCA und SCL in Arduino Uno > Pin A4 und A5. Der NodeMCU hat aber nur einen Analogen Input, wie > beseitige ich dieses Problem? Ich verstehe nicht ganz - wo siehst Du das Problem? Der MPU6050 wird, sofern ich das richtig verstehe, doch per I2C angeschlossen - analoge Inputs brauchst Du demnach also doch gar nicht...
Noch ein kurzer Nachtrag, weil ich jetzt gleich weg muss: Auf folgender Webseite findest Du ein fertiges kleines LUA-Script für den ESP8266, das auf den gewünschten MPU6050 zugreift. Sofern Du Dich für LUA entscheidest, hättest Du da also schon mal einen guten Ausgangspunkt: http://www.limpkin.fr/index.php?post/2016/04/17/A-Small-Collection-of-NodeMCU-Lua-Scripts-for-Data-Collection
Danke für die Antwort, das hilft mir schonmal weiter. Hatte den Sketch für den MPU6050 von Github. Ich dachte der Input ist Analog. Ich habe sonst keiner Erfahrung mit den I2C und wusste auch bis vor kurzem nicht was das ist. Muss mich da also noch einlesen.
Hier gibts ein Beispiel, wie man das kleinste ESP Modul, den ESP-01, mit lua zum I2C Master macht. Noch ein paar Drähte zum MPU6050 und fertig https://primalcortex.wordpress.com/2015/08/21/nodemcu-and-i2c-how-to-start-and-using-the-pcf8574a-i2c-port-expander-on-esp-01-board/ MfG Klaus
Joachim S. schrieb: > Dieses Board ist leider nicht zu empfehlen, weil es das häufig "v3" oder > "LoLin" genannte Board ist, das die gesamte Breite eines Breadboards > einnimmt. Da du das in jedem ESP-Thread wiederholst: Das ist nur relevant, wenn du das Ding auch auf ein Breadboard stecken willst. Man kann auch direkt mit DuPont-Strippen an die Pins. Es gibt auch Breadboards nebeneinander. So viele Möglichkeiten, wie das Board eben doch in Ordnung ist. Du begehst da den Fehler, von dir auf andere zu schließen. Das passt wahrscheinlich oft, aber genau so oft auch nicht. Von daher solltest du den Tipp dann stets auch so begründen, anstatt das Gesetz auszugeben, dass das V3/LoLin unbrauchbar sei: Wenn du das Board auf einem Steckbrett nutzen willst, ist es sehr breit, da wäre folgendes besser: ... Mit deinem Argument ist übrigens jede STM-Disco unbrauchbar. Und das ist doch nachvollziehbar so was von falsch.
:
Bearbeitet durch User
Dirk K. schrieb: > Joachim S. schrieb: >> Dieses Board ist leider nicht zu empfehlen, weil es das häufig "v3" oder >> "LoLin" genannte Board ist, das die gesamte Breite eines Breadboards >> einnimmt. > > Da du das in jedem ESP-Thread wiederholst: Das ist nur relevant, wenn du > das Ding auch auf ein Breadboard stecken willst. > Man kann auch direkt mit DuPont-Strippen an die Pins. Es gibt auch > Breadboards nebeneinander. So viele Möglichkeiten, wie das Board eben > doch in Ordnung ist. > Du begehst da den Fehler, von dir auf andere zu schließen. Das passt > wahrscheinlich oft, aber genau so oft auch nicht. Von daher solltest du > den Tipp dann stets auch so begründen, anstatt das Gesetz auszugeben, > dass das V3/LoLin unbrauchbar sei: Wenn du das Board auf einem > Steckbrett nutzen willst, ist es sehr breit, da wäre folgendes besser: > ... Wobei man ein solches Board überhaupt nicht braucht. Ein ESP-01 ist Board genug. Die 2 freien IOs für I2C zum MPU, einen passenden 3,3V Regler und das wars schons. Zum Programmieren temporär RX/TX an einen USB-seriell Wandler. Das sind im Summe auch nicht mehr Leitungen, als man an das NodeMCU anschließen muß. Hier einen link, wie man I2C mit einem ESP-01 macht https://primalcortex.wordpress.com/2015/08/21/nodemcu-and-i2c-how-to-start-and-using-the-pcf8574a-i2c-port-expander-on-esp-01-board/ MfG Klaus
Noch was zum Praktischen: in einem anderen Thread wurde vorgeschlagen, den ESP ohne Regler mit einem LiFePo4 Akku zu betreiben. Ich habs probiert, funtioniert ganz hervorragend. Wird eine ganz simple Kiste: Akku, ESP-01 und MPU. Das wars. MfG Klaus
Oder einfach mit einem MCP1700-3002 und LiIon. EInfach, weil die besser erhältlich sind und da Ladebausteine wie Sand am Meer vorhanden sind. Geschützter 14500er mit 900mAh, genügsmaer 3,0V-LDO - in den letzten vier Wochen grade mal 90mV Spannungsabfall am Akku. Messung und Versand alle 5 Minuten. Allerdings inwzwischen mit ESP8285. Zuvor mit ESP-01 und ESP-12F, die sind an mehreren Stellen nun an Steckernetzeil mit diversen 3.0- und 3.3V-LDOs am Laufen. Habe aber auch die Breakout-Boards (V3, Wemos, ...) da. Allerdings zugegebenermaßen ungenutzt.
Dirk K. schrieb: > Da du das in jedem ESP-Thread wiederholst: Das ist nur relevant, wenn du > das Ding auch auf ein Breadboard stecken willst. > Man kann auch direkt mit DuPont-Strippen an die Pins. Es gibt auch > Breadboards nebeneinander. So viele Möglichkeiten, wie das Board eben > doch in Ordnung ist. > Du begehst da den Fehler, von dir auf andere zu schließen. Das passt > wahrscheinlich oft, aber genau so oft auch nicht. Von daher solltest du > den Tipp dann stets auch so begründen, anstatt das Gesetz auszugeben, > dass das V3/LoLin unbrauchbar sei: Wenn du das Board auf einem > Steckbrett nutzen willst, ist es sehr breit, da wäre folgendes besser: > ... > Von daher solltest du > den Tipp dann stets auch so begründen, anstatt das Gesetz auszugeben, > dass das V3/LoLin unbrauchbar sei: Wenn du das Board auf einem > Steckbrett nutzen willst, ist es sehr breit, da wäre folgendes besser: Lies bitte nochmal, was ich geschrieben habe: > Dieses Board ist leider nicht zu empfehlen, weil es das häufig "v3" > oder "LoLin" genannte Board ist, das die gesamte Breite eines > Breadboards einnimmt Du legst mir da Dinge in den Mund, die ich so nie gesagt habe. Ich habe nie von "unbrauchbar" gesprochen, sondern lediglich von "nicht empfehlenswert", und gebe das auch nicht als dogmatisches "Gesetz" aus, das nicht begründet werden muss, sondern gebe sehr wohl eine Begründung für diese Einschätzung an: Es ist so breit, dass es die gesamte Breite eines Breadboards einnimmt. Und aus der Begründung geht doch auch implizit hervor, dass dieser Nachteil natürlich speziell die Verwendung auf Breadboards betrifft? Dein Argument kann ich wirklich nicht nachvollziehen. > Mit deinem Argument ist übrigens jede STM-Disco unbrauchbar. Und das ist > doch nachvollziehbar so was von falsch. Der Vergleich hinkt. Ganz davon abgesehen, dass Du schon wieder suggerierst, ich hätte von "unbrauchbar" statt "nicht empfehlenswert" gesprochen - wenn es von diesem "STM-Disco"-Board(?) eh nur Varianten in voller Steckboard-Breite gibt, dann gibt es nun mal keine Variante, die in dieser Hinsicht empfehlenswert*er* ist. Beim "NodeMCU-DevKit" hingegen ist das halt anders, da sind auf dem Markt zwei Varianten weit verbreitet: Zum einen eben das auf dem veralteten v0.9-Design basierende "LoLin"/"v3"-Board, das als einzigen Vorteil einen ca. 70 Cent günstigeren Preis verbuchen kann, sonst aber nur Nachteile hat: - nicht "breadboard-friendly", weil die gesamte Breite eines Steckboards einnehmend - mit dem CH340 ein minderwertigerer und als problematischer betrachteter USB-UART-Konverter - deutlich (ca. 45%) grössere Platine Diese Nachteile hat man beim aktuellen und finalen v1.0-Design behoben; vor Allem durch den deutlich teureren CP2102 kosten die auf diesem Design basierenden Boards allerdings ca. 70 Cent mehr. Obwohl dieser Aufpreis für die meisten Leute hierzulande eher irrelevant sein dürfte, kaufen trotzdem gerade ESP8266-Einsteiger ganz oft die auf dem veralteten Design basierenden "LoLin"/"v3"-Boards. Meiner Einschätzung nach aber: meist wohl eher versehentlich, weswegen ich eben so oft vor den v3-Boards warne. Als ESP8266-Neulingen sind ihnen Existenz, Unterschiede bzw. Vor-/Nachteile der beiden Varianten glaube ich schlicht noch nicht bewusst, und auf den Produktfotos in Onlineshops sehen sie auf den ersten Blick halt fast identisch aus. Da man üblicherweise nach dem günstigsten Angebot schaut, landet man fast automatisch erst einmal bei einem LoLin/v3-Angebot - und da man ja bislang wenig Ahnung hat, geht man wegen der irreführenden "v3"-Bezeichnung sogar fälschlicherweise davon aus, dass das die neueste Version ist, obwohl genau das Gegenteil der Fall ist. Anyway, wer die v3/LoLin-Boards oder gar die ESP-01-Module tatsächlich für "empfehlenswert" hält: Ich hätte von beiden immer noch jeweils drei Stück anzubieten, die ich persönlich zwar nicht weiterempfehlen kann, aber als vermeintlichen Fehlkauf gerne unter Einkaufspreis weiterverkaufe. Ausgepackt und teilweise kurz auf Funktion überprüft, ansonsten aber komplett unbenutzt. Blitzversand direkt aus Deutschland, und preislich dennoch günstiger als das günstigste Angebot, das ihr bei AliExpress findet.
Joachim S. schrieb: > - mit dem CH340 ein minderwertigerer und als problematischer > betrachteter USB-UART-Konverter > - deutlich (ca. 45%) grössere Platine Auch hier wieder rein subjektiv deine Meinung. Der CH340 ist mitnichten minderwertig. Ein hervorragend funktionierender USB-zu-USART-Wandler. Ich wiederhole mich: Es ist natürlich dein gutes Recht, da voreingenommen und negativ gegenüber zu sein. Aber die Korrektur dieser Fehleinschätzung muss genauso erlaubt sein.
Dirk K. schrieb: > Joachim S. schrieb: >> - mit dem CH340 ein minderwertigerer und als problematischer >> betrachteter USB-UART-Konverter >> - deutlich (ca. 45%) grössere Platine > > Auch hier wieder rein subjektiv deine Meinung. Der CH340 ist mitnichten > minderwertig. Ein hervorragend funktionierender USB-zu-USART-Wandler. > > Ich wiederhole mich: Es ist natürlich dein gutes Recht, da > voreingenommen und negativ gegenüber zu sein. Aber die Korrektur dieser > Fehleinschätzung muss genauso erlaubt sein. Schon klar: Bei mir ist es nur eine "Meinung" - weil Du aber anderer Meinung bist, ist es strenggenommen dann doch nicht nur eine "Meinung", sondern vielmehr eine "Fehleinschätzung". Dass der CH340 bei Dir und vielen Anderen "hervorragend funktioniert" (was ich für meine persönliche Erfahrung durchaus bestätigen kann, ich hatte bislang noch keine Probleme) widerspricht in keinster Weise dem Umstand, dass der chinesische Billig-CH340 im Vergleich mit eben z.B. CP210x oder FT232 einen etwas schlechteren Ruf hat und als "minderwertig*ER*" betrachtet wird. Das schlägt sich ja auch im deutlich verminderten Wert (bzw. Verkaufspreis) des CH340 nieder: Der CH340 wird immer dann benutzt, wenn es so billig wie möglich sein soll; wäre er genauso teuer wie CP210x, FT232 & Co., würden die Hersteller eher diese ICs benutzen, Punkt.
Hi Leute, ich habe die Hardware endlich bekommen. Habe mich dafür entschlossen den NodeMCU mit Arduino zu programmieren, das funktioniert auch soweit sehr gut. Ich bin soweit, dass ich die MPU6050 Daten auslesen kann. Jetzt bin ich aber gerade am verzweifeln daran die Sensor Daten an den PC zu senden. Ich möchte also, sobald ich mich mit dem PC an den ESP-AP verbunden habe durchgehend (alle 100 ms) alle Sensordaten vom NodeMCU an den PC senden. Ich will als Basis den in der Arduino-ESP8266 IDE enthaltenen Beispielcode verwenden. Nur mal paar Fragen, da die Dokumentation teilweise nicht so gut ist und meine C++ Skills sehr begrenzt sind: Was macht server.on()? Was macht server.handleClient()? Wo gehört server.handleClient() hin? Würde mich freuen wenn mir jemand helfen könnte und mir sagen könnte wo das server.send() hingehört und was ich sonst ändern muss.
1 | /*
|
2 | * Copyright (c) 2015, Majenko Technologies
|
3 | * All rights reserved.
|
4 | */
|
5 | |
6 | #include <ESP8266WiFi.h> |
7 | #include <WiFiClient.h> |
8 | #include <ESP8266WebServer.h> |
9 | #include <Wire.h> |
10 | |
11 | long accelX, accelY, accelZ; |
12 | float gForceX, gForceY, gForceZ; |
13 | |
14 | long gyroX, gyroY, gyroZ; |
15 | float rotX, rotY, rotZ; |
16 | |
17 | |
18 | /* Set these to your desired credentials. */
|
19 | const char *ssid = "ESP"; |
20 | const char *password = "thereisnospoon"; |
21 | String tmp = ""; |
22 | |
23 | ESP8266WebServer server(80); |
24 | |
25 | /* Just a little test message. Go to http://192.168.4.1 in a web browser
|
26 | * connected to this access point to see it.
|
27 | */
|
28 | void handleRoot() { |
29 | server.send(200, "text/html", "<h1>You are connected</h1>"); |
30 | }
|
31 | |
32 | void setup() { |
33 | delay(1000); |
34 | Serial.begin(115200); |
35 | Serial.println(); |
36 | Serial.print("Configuring access point..."); |
37 | /* You can remove the password parameter if you want the AP to be open. */
|
38 | WiFi.softAP(ssid); |
39 | |
40 | IPAddress myIP = WiFi.softAPIP(); |
41 | Serial.print("AP IP address: "); |
42 | Serial.println(myIP); |
43 | server.on("/", handleRoot); |
44 | server.begin(); |
45 | Serial.println("HTTP server started"); |
46 | |
47 | //MPU
|
48 | Wire.begin(4, 5); |
49 | setupMPU(); |
50 | }
|
51 | |
52 | void loop() { |
53 | server.handleClient(); |
54 | delay(100); |
55 | recordAccelRegisters(); |
56 | recordGyroRegisters(); |
57 | tmp = String(gForceX) + " " + String(gForceY) + " " + String(gForceZ) + " " + String(rotX) + " " + String(rotY) + " " + String(rotZ) + "\r\n"; |
58 | Serial.print(tmp); |
59 | server.send(200, "text/plain", tmp); |
60 | }
|
Hier zur vollständigkeit noch der Rest vom Code (MPU Sensor Daten erheben):
1 | void setupMPU(){ |
2 | Wire.beginTransmission(0b1101000); //This is the I2C address of the MPU (b1101000/b1101001 for AC0 low/high datasheet sec. 9.2) |
3 | Wire.write(0x6B); //Accessing the register 6B - Power Management (Sec. 4.28) |
4 | Wire.write(0b00000000); //Setting SLEEP register to 0. (Required; see Note on p. 9) |
5 | Wire.endTransmission(); |
6 | Wire.beginTransmission(0b1101000); //I2C address of the MPU |
7 | Wire.write(0x1B); //Accessing the register 1B - Gyroscope Configuration (Sec. 4.4) |
8 | Wire.write(0x00000000); //Setting the gyro to full scale +/- 250deg./s |
9 | Wire.endTransmission(); |
10 | Wire.beginTransmission(0b1101000); //I2C address of the MPU |
11 | Wire.write(0x1C); //Accessing the register 1C - Acccelerometer Configuration (Sec. 4.5) |
12 | Wire.write(0b00000000); //Setting the accel to +/- 2g |
13 | Wire.endTransmission(); |
14 | }
|
15 | |
16 | void recordAccelRegisters() { |
17 | Wire.beginTransmission(0b1101000); //I2C address of the MPU |
18 | Wire.write(0x3B); //Starting register for Accel Readings |
19 | Wire.endTransmission(); |
20 | Wire.requestFrom(0b1101000,6); //Request Accel Registers (3B - 40) |
21 | while(Wire.available() < 6); |
22 | accelX = Wire.read()<<8|Wire.read(); //Store first two bytes into accelX |
23 | accelY = Wire.read()<<8|Wire.read(); //Store middle two bytes into accelY |
24 | accelZ = Wire.read()<<8|Wire.read(); //Store last two bytes into accelZ |
25 | processAccelData(); |
26 | }
|
27 | |
28 | void processAccelData(){ |
29 | gForceX = accelX / 16384.0; |
30 | gForceY = accelY / 16384.0; |
31 | gForceZ = accelZ / 16384.0; |
32 | }
|
33 | |
34 | void recordGyroRegisters() { |
35 | Wire.beginTransmission(0b1101000); //I2C address of the MPU |
36 | Wire.write(0x43); //Starting register for Gyro Readings |
37 | Wire.endTransmission(); |
38 | Wire.requestFrom(0b1101000,6); //Request Gyro Registers (43 - 48) |
39 | while(Wire.available() < 6); |
40 | gyroX = Wire.read()<<8|Wire.read(); //Store first two bytes into accelX |
41 | gyroY = Wire.read()<<8|Wire.read(); //Store middle two bytes into accelY |
42 | gyroZ = Wire.read()<<8|Wire.read(); //Store last two bytes into accelZ |
43 | processGyroData(); |
44 | }
|
45 | |
46 | void processGyroData() { |
47 | rotX = gyroX / 131.0; |
48 | rotY = gyroY / 131.0; |
49 | rotZ = gyroZ / 131.0; |
50 | }
|
Hallo, ich reihe mich hier mal kurz mit ein. Ich habe die von Joachim verlinkten NodeMCU Boards mit dem CP2102 drauf, leider machen die bei mir irgendwie ein paar Probleme. Ich programmiere die Module direkt aus der Arduino IDE. Hierbei nutze ich z.B. das Codebeispiel WIFIScan. Leider findet das Modul bei mir keinerlei WLAN-Netze. Mit der original Firmware per AT Befehle (AT+CWLAP) funktioniert der WIFIScan der NodeMCU Boards ohne Probleme. Ich habe auch "nackte" ESP8266-12 Module hier. Mit denen funktioniert der WIFIScan per Arduino Code ohne Probleme. In meiner Verzweiflung habe ich nun ein ESP8266 Modul vom NodeMCU Board ausgelötet und nur mal das Modul getestet. Auch hier funktioniert der Arduino Code tadellos. Irgendwie bin ich gerade ziemlich ratlos. Hat irgendjemand einen Tip für mich? Viele Grüße Ralle
Niklas S. schrieb: > Ich möchte also, sobald ich mich mit dem PC an den ESP-AP > verbunden habe durchgehend (alle 100 ms) alle Sensordaten vom NodeMCU an > den PC senden. > [...] > Würde mich freuen wenn mir jemand helfen könnte und mir sagen könnte wo > das server.send() hingehört und was ich sonst ändern muss. Ich sehe da drei Möglichkeiten: 1. Du bleibst bei dem Ansatz, dass auf dem ESP8266 selbst ein HTTP-Server läuft. In gewisser Hinsicht ist das der schlechteste Ansatz, denn die Accelerometer-Daten werden auf dem Esp8266 erzeugt, daher sollte dieser auch die Datenübertragungen initiieren; klassisches HTTP kennt aber keine Push-Nachrichten, daher musst Du es durch Polling lösen: Dein PC initiiert mehrmals pro Sekunde einen HTTP-Request an den ESP8266, z.B. an die fiktive URL http://<IP-Adresse des ESP8266>/get_current_accelerometer_data den der ESP beantwortet, indem er die gerade aktuellen Accelerometer-Werte zurückliefert. Andererseits hat dieser Ansatz den Vorteil, dass er wahrscheinlich am einfachsten und schnellsten umzusetzen ist, und Du auch ganz einfach die Frequenz ändern kannst, mit der Du die Accelerometer-Daten erfasst. 2. Der HTTP-Server läuft nicht auf dem ESP8266, sondern auf Deinem PC, wo dann z.B. durch einen HTTP POST-Request an die fiktive URL http://<URL Deines PCs>/add_accelerometer_data Daten hinzugefügt werden. Der ESP8266 initiiert dann mehrmals pro Sekunde einen HTTP POST-Request an an diese URL, und übergibt als Parameter die Accelerometer-Daten. 3. Du lässt HTTP ganz aussen vor, und benutzt ein dafür geeignetes Protokoll wie MQTT, das Push-Nachrichten unterstützt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.