ESP8266 Datenübertragung an Website

OP #4437210
Lesenswert?

Hallo zusammen,

ich habe vor an mindestens 2 ESP8266 Module ein DHT22 Sensor 
anzuschließen. Diese Daten von dem DHT22 sollen jede Minute an eine 
Website übertragen werden.

Davor war das ganze mit einem Raspberry Pi so verwirklicht, das ein 
Python Script die Daten mit Hilfe der Libary urllib an eine URL sendete. 
Meine Website empfing diese Daten und speicherte diese teilweise in 
einer Datenbank oder zeigte diese nur an ohne zu speichern.

Die Frage ist nur wie ich das nun am besten mache mit dem ESP8266 ohne 
mein Script auf der Website zu ändern.

Würde mich über Tipps und Hinweise freuen.

Florian
#4437258
Lesenswert?

du macht ne tcp verbindung zu deinem server auf, auf port 80
da schreibst du rein:
1
GET /ptad/zu/deinem/script.php?temp=22 HTTP/1.1
2
Host: meinedomain.de

Dein zeilenende ist \n
am ende ist das zweite \n wichtig.
Danach kannst du deine Antwort lesen, falls dich das interessiert.
OP #4437336
Lesenswert?

Hallo,

ich habe erstmal noch ein ganz anderes Problem. Mein DHT22 läuft nicht, 
er sendet keine Daten. Ich habe schon überlegt ob es an den 3,3V liegt, 
allerdings laut Internet müsste er damit laufen, ich hatte zuerst einen 
Pull-up von 10k, jetzt hab ich ihn mal auf 4k7 runter gesetzt. 
Vergeblich. Leider funktioniert es nicht. Hat jemand eine Idee?

Mein Code:
1
#include <DHT.h>
2
 
3
#define DHTPIN 14     
4
#define DHTTYPE DHT22 //DHT11, DHT21, DHT22
5
 
6
DHT dht(DHTPIN, DHTTYPE);
7
 
8
void setup() 
9
{
10
  Serial.begin(9600); 
11
  Serial.println("DHT22 - Test!");
12
 
13
  dht.begin();
14
}
15
 
16
void loop() 
17
{
18
  float h = dht.readHumidity();     //Luftfeuchtigkeit
19
  float t = dht.readTemperature();  //Temperatur
20
  delay(20000);
21
  if (isnan(t) || isnan(h)) 
22
  {
23
    Serial.println("ERROR");
24
  } 
25
  else
26
  {
27
    Serial.println(t);
28
    //Serial.println(h);
29
  }
30
}
Gast #4437435
Lesenswert?

Ich kann das setting hier irgendwie nicht erkennen.

Wieso jetzt Arduino? Davon steht doch nirgendwo etwas.

So wie es beschrieben ist, ist doch nur ein ESP8266 und ein DHT22 
beteiligt.

Das müsste dann in die Firmware des ESP8266 eingebracht werden.

Viel Spaß
OP #4437461
Lesenswert?

Sorry, das habe ich vergessen zu erwähnen. Das war echt blöd von mir. 
Ich programmiere meine ESP8266er (ich habe die 12E Version), über die 
Arduino IDE über einen FTDI-Adapter und der Erweiterung für die Arduino 
IDE für die ESP8266 Boards.

Ich mache das prinzipiell wegen einen Ganz einfachen Grund: Ich habe vor 
da später evtl. noch andere Sensoren anzubinden, und ich finde diese 
Auswahl an Libaries hat man sonst nirgends.

Sorry das ich das mit der Arduino-IDE vergessen hatte
#4437955
Lesenswert?

Schon mal die nodemcu LUA Firmware angetestet? Damit ist das Auslesen 
und Versenden mit HTTP in 20 Zeilen Code erledigt.

Bei mir läuft auf dem HTTP-Server läuft dann ein php-Skript, welches die 
empfangenen Daten in einen Datenbank schreibt.

Visualisierung erfolgt dann mit der Lib von www.highcharts.com
#4438007
Lesenswert?

Pete K. schrieb:
> Bei einem delay macht der nämlich
> nichts, also wirklich nichts.
Die Verfasser der Doku sehen das nicht so.
1
Remember that there is a lot of code that needs to run on the 
2
chip besides the sketch when WiFi is connected. WiFi and TCP/IP 
3
libraries get a chance to handle any pending events each time the 
4
loop() function completes, OR when delay is called. If you have a 
5
loop somewhere in your sketch that takes a lot of time (>50ms) 
6
without calling delay, you might consider adding a call to 
7
delay function to keep the WiFi stack running smoothly.
OP #4438011
Lesenswert?

Hallo @pete77,

also das delay funktioniert bei den DS18S20 Sensoren bei mir. Habe nun 
jetzt einen dieser Sensoren angeschlossen und einfach mal die Werte im 
Seriellen Monitor ausgeben lassen. Funktioniert, und das delay was ich 
jetzt von 5 Sekunden testweise drin habe kommt hin.

Wie genau mache ich diese Firmware auf das Modul, oder wie schaue ich 
was ich für eine Firmware drauf habe. AT-Befehle klappten zwar am Anfang 
aber jetzt nicht mehr, ich meine klar es läuft auch ein Arduino Sketch.

Und wie sendest du es dann genau? Auch über eine URL? Ich habe eben ein 
php Script das die Daten entgegen nimmt aus der URL und auch in eine 
Datenbank speichert und auch den aktuellen Wert anzeigt.

Gruß Florian

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren