Forum: Mikrocontroller und Digitale Elektronik NodeMCU + MPU6050


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Niklas S. (nicklarrs)


Bewertung
0 lesenswert
nicht lesenswert
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 
(Ebay-Artikel Nr. 201566780411) 
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

von Joachim S. (oyo)


Bewertung
0 lesenswert
nicht lesenswert
Niklas S. schrieb:

> Muss ich beim Kauf vom NodeMCU auf etwas besonders achten?
> Ich hatte vor diesen hier
> 
(Ebay-Artikel Nr. 201566780411)
> 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:
Ebay-Artikel Nr. 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...

von Joachim S. (oyo)


Bewertung
0 lesenswert
nicht lesenswert
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

von Niklas S. (nicklarrs)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Klaus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Niklas S. (nicklarrs)


Bewertung
0 lesenswert
nicht lesenswert
Danke, sehr hilfreich die Information :)

von Dirk K. (dekoepi)


Bewertung
0 lesenswert
nicht lesenswert
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
von Klaus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Klaus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Dirk K. (dekoepi)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Joachim S. (oyo)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Dirk K. (dekoepi)


Bewertung
-1 lesenswert
nicht lesenswert
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.

von Joachim S. (oyo)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Niklas S. (nicklarrs)


Bewertung
0 lesenswert
nicht lesenswert
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
}

von ralle76 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Joachim S. (oyo)


Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.