• Du musst dich registrieren, bevor du Beiträge verfassen kannst. Klicke auf Jetzt registrieren!, um den Registrierungsprozess zu starten. Registrierte User surfen werbefrei, können Suchen durchführen und sehen die volle Darstellung des Forums mit vielen anderen Unterforen!!!

LowCost (10 €) Arduino WLAN BBQ Thermometer mit ESP8266

Morgen sollte das letzte noch fehlende Bauteil kommen, dann kann ich loslegen. Ich habe schonmal Thingspeak account vorbereitet und nen Steckbrett ;) ;P. Bleibt nur die Frage wo ich die IP herbekomme die ich in der dritten Zeile einsetzen muss anstelle der 199.199.199.199 ;) ;P ?
 
Code:
#define DST_IP "184.106.153.149" // IP der Internetseite Thinkspeak.com



//Vertbindung zum web server
String cmd = "AT+CIPSTART="AT+CIPSTART=\"TCP\",\"184.106.153.149\",80\""; //(sollte passen) ? make this command: AT+CPISTART="TCP","199.199.199.199",80 ?????
cmd += DST_IP;
cmd += "\",80";
Serial.println(cmd);

//warten auf Verlinkung
delay(300);

//HTTP GET Request
cmd = "GET /datei.php?Wert1="; // Datei des Internetservices aufrufen
cmd += Temperatur;
cmd += "&Wert2=";
cmd += Temperatur1;
cmd +="&VCC=";
cmd += vcc;
cmd += " HTTP/1.0\r\n";
cmd += "Host: 217.160.107.197\r\n\r\n"; // ?????

Woher krieg ich die Host-IP ? Woher weis der Arduino in welchen Channel die Daten sollen, und in welchen Kanal also wo kann ich einstellen das im Kanal Garraumtemperatur auch die Garraumtemperatur steht ? Muss ich nicht irgendwo den API-Code eintragen ? Ich seh den ESP8266 über mein Smartphone im WLan aber nicht im Modem scheint sich nicht zuverbinden. Wenn ich ihn über nen USB Konverter an den PC anschließe kann ich ihn ins Netzwerk einbinden, am Arduino passiert nüschts wenn ich ihn im Manager anspreche.
 
Könnte einer der Geeks mal versuchen das für Laien zuübersetzen? Ich mach seit Tagen nichts anderes als rumzuprobieren wie das ding laufen könnte ohne jeglichen Erfolg, zumal auf den hunderten von verscheidenen Seiten und Tutorials Videos immer etwas anderes erzählt wird, was nurnoch mehr verwirrt. Im moment ist es ein gutes Projekt um rauszukriegen wieviel Frust man verträgt bevor man aufgibt.
 
Hallo Henry,

sorry für die späte Rückmeldung.

Der Arduino sollte sich über dein Heim-Wlan mit der Internetseite verbinden und die Werte dann an Thinkspeak übermitteln. Du kannst das relativ simpel prüfen, der ESP leuchtet dann (zumindest meiner ) etwas länger blau. Ich habe mir eine eigene Internetseite geschrieben, wo die Werte in einer Datenbank gesammelt und dann ausgewertet werden.

Für die Temperaturberechnung schau dir mal bitte https://github.com/wvuong/bbqsmoker an, hier bekommst du weitere Infos.

Ich hoffe das hilft weiter.

Grüße
Markus
 
Es gibt viele ähnliche Projekte, aber nirgends antworten nur querverweise links die zu links führen, habe schon dutzende ähnlich Projekte angesehen nur ähnlich funktioniert eben nicht, da die entscheidenden faktoren zunächst die Firmwareversion vom Arduino ist und welche Sensoren verwendet werden, an zweiter stelle die Sprache anscheinend arbeiten viele gerne mit lua das funktioniert aber nicht wenn der rest c++ oder sonstwas ist. Das problem ist nicht das verbinden mit Thingspeak sondern das Temperaturauslesen und senden. Die meisten Projekte werden erweitert durch Displays, und andere gimmigs die den Code einfach nur unübersichtlich und unverständlich machen wenn man nicht viel damit zutun hat. Aber danke für den Link auch wenner nicht weiterhilft ;) ;P.

Wenn du zeit und lust hättest könnte ich dir mal den bisherigen Code schicken und du könntest versuchen die Thermometer zu implementieren.
 
Naja, etwas schwierig. Du schreibst ja nicht einmal, welche Fühler du verwendest.

Ansonsten steht im Code:
// configure probes <<<<<-----------
Probe p0 = Probe();
p0.name = "ET-732-1";
p0.pin = A1;
p0.A = 5.36924e-4;
p0.B = 1.91396e-4;
p0.C = 6.60399e-8;

hier müssen die spezifischen Werte der Messfühler eingetragen werden.

Abfragen kannst du die Werte dann auch über die serielle Konsole mit dem Befehl "Serial.println (Wert1);".
 
Ich verwende die Maverik fühler, daher geh ich von aus das die Werte die gleichen sind.
Bisher sieht der Code so aus:

Code:
/* http://thingspeak.com client for Arduino and ESP8266
   programmed by 'jurs' for Henry der Rote
   For ESP8266 ESP-01 firmware: [Vendor:www.ai-thinker.com Version:0.9.2.4]
   Alpha pre-release; Not fully working yet!!!
*/
#define BAUD 9600L  /// ESP8266 default baudrate
#define WLAN_SSID "xxxxx"         // your WLANs SSID
#define WLAN_PASS "xxxxx" // your WLANs password
#define APIKEY "xxxxx"    // your Thingspeak.com API-Key
#define APISERVER "api.thingspeak.com"
#define UPDATEINTERVAL 30000L        // Update each 30 seconds
#define espSerial Serial1            // define which serial port to use with ESP8266 module

int readTempSensor()
{ // replace with temperature reading, return integer value
  return 100+random(50);
}

char* readResponse(long timeout)
{
  static char str[21];
  int count=0;
  str[0]=0;
  unsigned long startTime=millis();
  while (millis()-startTime<timeout)
  {
    if (espSerial.available())
    {
      char c=espSerial.read();
      Serial.write(c);
      if (c>=32 && count<sizeof(str)-1)
      {
        str[count]=c;
        count++;
        str[count]=0;
      }
      if (c=='\n' && count==0)
      {
      }
      else if (c=='\n')
      {
        return str;
      }
    }
  }
  return NULL;
}

char* readATresponse(char* command, long timeout)
{
  static char str[81];
  int count=0;
  str[0]=0;
  espSerial.print(command);
  espSerial.println();
  unsigned long startTime=millis();
  while (millis()-startTime<timeout)
  {
    if (espSerial.available())
    {
      char c=espSerial.read();
      Serial.write(c);
      if (c>=32 && count<sizeof(str)-1)
      {
        str[count]=c;
        count++;
        str[count]=0;
      }
      if (c=='\n' && count==0)
      {
      }
      else if (c=='\n')
      {
//        Serial.print("Got: ");Serial.println(str);
        if (strcmp(command,str)==0)
        {
//          Serial.println("(is Echo)");
          count=0;
          str[0]=0;
        }
        else return str;
      }
    }
  }
  Serial.println("\n\rTIMEOUT");
  return NULL;

}


void waitShowResponse(long timeout)
{
  unsigned long startTime=millis();
  while (millis()-startTime<timeout)
  {
    if (espSerial.available()) Serial.write(espSerial.read());
  }
}

boolean thingSpeakUpdate()
{
  char buf[81];
  // prepare TCP connection
  snprintf(buf,sizeof(buf),"AT+CIPSTART=\"TCP\",\"%s\",80", APISERVER);
  char* str=readATresponse(buf, 5000);
  if (str!=NULL)
  {
    Serial.print("Response: "); Serial.println(str);
  }
//  waitShowResponse(2000); // wait for "Linked" message
  str=readResponse(3000);
  Serial.print("Link Connect State: ");
  if (str!=NULL) Serial.println(str); else Serial.println("NULL");

  // prepare GET string
  int temperature=readTempSensor();
  snprintf(buf,sizeof(buf),"GET /update?api_key=%s&field1=%d HTTP/1.0\r\n\r\n",APIKEY,temperature);
  char buf2[21];
  // prepare sending buffer length
  snprintf(buf2,sizeof(buf2),"AT+CIPSEND=%d",strlen(buf));
  str=readATresponse(buf2, 2000);
//  if (strcmp(str,">")==0)
  Serial.print(millis()/1000.0);Serial.println("+++");
  waitShowResponse(100);
  espSerial.print(buf);
  return true;
}

void initWifi()
{
  espSerial.println("AT+RST");
  waitShowResponse(4000);
  readATresponse("AT+CWQAP",1000); // quit from WIFI access point
  readATresponse("AT+CWMODE=1",1000);
  char buf[41];
  // connect to WIFI access point
  snprintf(buf,sizeof(buf),"AT+CWJAP=\"%s\",\"%s\"", WLAN_SSID, WLAN_PASS);
  readATresponse(buf,15000); // try connecting to WLAN router for 15 seconds
  readATresponse("AT+CIPMUX=0",1);
}


void setup()
{
  Serial.begin(BAUD);
  espSerial.begin(BAUD);
  Serial.println();
  Serial.println("ESP8266 Demo Test by 'jurs'");
  waitShowResponse(6000);
  for (int i=0;i<5;i++)
  {
    char* str=readATresponse("AT", 1000);
    if (strcmp(str,"OK")==0) break;
    waitShowResponse(2000);
  }


}

unsigned long lastUpdate;
void loop()
{
  if(espSerial.available()) Serial.write(espSerial.read());
  if(Serial.available())
  {
    char c=Serial.read();
    if (c=='#')
    {
      delay(10);
      while (Serial.available()) Serial.read();
      initWifi();
    }
    else
      espSerial.write(c);
   }
   if (millis()-lastUpdate>=UPDATEINTERVAL)
   {
     lastUpdate+=UPDATEINTERVAL;
     thingSpeakUpdate();
   }
}

Kannst du die Tempberechnung und Tempausgabe da so implementieren das sie funktioniert ?
 
So, simples copy & paste. Ich hoffe die Übergabe der Temperatur ist richtig.


Code:
/* http://thingspeak.com client for Arduino and ESP8266
   programmed by 'jurs' for Henry der Rote
   For ESP8266 ESP-01 firmware: [Vendor:www.ai-thinker.com Version:0.9.2.4]
   Alpha pre-release; Not fully working yet!!!
*/
#define BAUD 9600L  /// ESP8266 default baudrate
#define WLAN_SSID "xxxxx"         // your WLANs SSID
#define WLAN_PASS "xxxxx" // your WLANs password
#define APIKEY "xxxxx"    // your Thingspeak.com API-Key
#define APISERVER "api.thingspeak.com"
#define UPDATEINTERVAL 30000L        // Update each 30 seconds
#define espSerial Serial1            // define which serial port to use with ESP8266 module
String stringValue = "";
const int numProbes = 2;
const int bufferLength = 30;
int Temperatur;
int Temperatur1;
float temp;

// probe datastructure
struct Probe {
String name;
int pin;
double A;
double B;
double C;
int buffer[bufferLength];
int currentTemp;
int resistor;
};

// probes array
Probe probes[2];

int readTempSensor()
{ // replace with temperature reading, return integer value
  Temperatur;  // oder für Geber 2: Temperatur1
}

char* readResponse(long timeout)
{
  static char str[21];
  int count=0;
  str[0]=0;
  unsigned long startTime=millis();
  while (millis()-startTime<timeout)
  {
    if (espSerial.available())
    {
      char c=espSerial.read();
      Serial.write(c);
      if (c>=32 && count<sizeof(str)-1)
      {
        str[count]=c;
        count++;
        str[count]=0;
      }
      if (c=='\n' && count==0)
      {
      }
      else if (c=='\n')
      {
        return str;
      }
    }
  }
  return NULL;
}

char* readATresponse(char* command, long timeout)
{
  static char str[81];
  int count=0;
  str[0]=0;
  espSerial.print(command);
  espSerial.println();
  unsigned long startTime=millis();
  while (millis()-startTime<timeout)
  {
    if (espSerial.available())
    {
      char c=espSerial.read();
      Serial.write(c);
      if (c>=32 && count<sizeof(str)-1)
      {
        str[count]=c;
        count++;
        str[count]=0;
      }
      if (c=='\n' && count==0)
      {
      }
      else if (c=='\n')
      {
//        Serial.print("Got: ");Serial.println(str);
        if (strcmp(command,str)==0)
        {
//          Serial.println("(is Echo)");
          count=0;
          str[0]=0;
        }
        else return str;
      }
    }
  }
  Serial.println("\n\rTIMEOUT");
  return NULL;

}


void waitShowResponse(long timeout)
{
  unsigned long startTime=millis();
  while (millis()-startTime<timeout)
  {
    if (espSerial.available()) Serial.write(espSerial.read());
  }
}

boolean thingSpeakUpdate()
{
  char buf[81];
  // prepare TCP connection
  snprintf(buf,sizeof(buf),"AT+CIPSTART=\"TCP\",\"%s\",80", APISERVER);
  char* str=readATresponse(buf, 5000);
  if (str!=NULL)
  {
    Serial.print("Response: "); Serial.println(str);
  }
//  waitShowResponse(2000); // wait for "Linked" message
  str=readResponse(3000);
  Serial.print("Link Connect State: ");
  if (str!=NULL) Serial.println(str); else Serial.println("NULL");

  // prepare GET string
  int temperature=readTempSensor();
  snprintf(buf,sizeof(buf),"GET /update?api_key=%s&field1=%d HTTP/1.0\r\n\r\n",APIKEY,temperature);
  char buf2[21];
  // prepare sending buffer length
  snprintf(buf2,sizeof(buf2),"AT+CIPSEND=%d",strlen(buf));
  str=readATresponse(buf2, 2000);
//  if (strcmp(str,">")==0)
  Serial.print(millis()/1000.0);Serial.println("+++");
  waitShowResponse(100);
  espSerial.print(buf);
  return true;
}

void initWifi()
{
  espSerial.println("AT+RST");
  waitShowResponse(4000);
  readATresponse("AT+CWQAP",1000); // quit from WIFI access point
  readATresponse("AT+CWMODE=1",1000);
  char buf[41];
  // connect to WIFI access point
  snprintf(buf,sizeof(buf),"AT+CWJAP=\"%s\",\"%s\"", WLAN_SSID, WLAN_PASS);
  readATresponse(buf,15000); // try connecting to WLAN router for 15 seconds
  readATresponse("AT+CIPMUX=0",1);
}


void setup()

{
 
 
  // configure probes
Probe p0 = Probe();
p0.name = "ET-732-1";
p0.pin = A2;
p0.A = 5.36924e-4;
p0.B = 1.91396e-4;
p0.C = 6.60399e-8;

p0.resistor = 22000;
probes[0] = p0;

Probe p1 = Probe();
p1.name = "ET-732-2";
p1.pin = A4;
p1.A = 5.36924e-4;
p1.B = 1.91396e-4;
p1.C = 6.60399e-8;

p1.resistor = 22001;
probes[1] = p1;

delay(2000);

  Serial.begin(BAUD);
  espSerial.begin(BAUD);
  Serial.println();
  Serial.println("ESP8266 Demo Test by 'jurs'");
  waitShowResponse(6000);
  for (int i=0;i<5;i++)
  {
    char* str=readATresponse("AT", 1000);
    if (strcmp(str,"OK")==0) break;
    waitShowResponse(2000);
  }


}

unsigned long lastUpdate;
void loop()
{
  int sensorValue = 0;
int outputValue = 0;

// loop für jeden Geber
for (int i = 0; i < numProbes; i++) {
Probe *ptr = &probes[i];

// Wert einlesen:
outputValue = readAndOverSample((*ptr).pin, (*ptr).A, (*ptr).B, (*ptr).C, (*ptr).resistor);

// Wert in den Buffer schreiben
(*ptr).currentTemp = outputValue;

for (int i = bufferLength -1; i >= 1; i--) {
(*ptr).buffer[i] = (*ptr).buffer[i-1];
}
(*ptr).buffer[0] = outputValue;
}

for (int i = 0; i < numProbes; i++) {
Probe *ptr = &probes[i];

// maximal 4 Geber!

int x; int y;
if (i % 2 == 0) {
x = 0;
}
else if (i % 2 == 1) {
x = 8;
}
if (i / 2 == 0) {
y = 0;
}
else if (i / 2 == 1) {
y = 1;
}
}
delay(10000);

int per = 50000/numProbes/5000;

for (int p = 0; p < per; p++) {
for (int i = 0; i < numProbes; i++) {
Probe *ptr = &probes[i];

// Durchschnitt errechnen 5 Minuten
int five, fifteen, thirty;
int accum = 0;
for (int i = 0; i < 5; i++) {
if ((*ptr).buffer == 0) {
accum = 0;
break;
}
accum += (*ptr).buffer[i];
}
five = accum/5;

// Durchschnitt errechnen 15 Minuten
accum = 0;
for (int i = 0; i < 15; i++) {
if ((*ptr).buffer == 0) {
accum = 0;
break;
}
accum += (*ptr).buffer[i];
}
fifteen = accum/15;

// Durchschnitt errechnen 30 Minuten
accum = 0;
for (int i = 0; i < 30; i++) {
if ((*ptr).buffer == 0) {
accum = 0;
break;
}
accum += (*ptr).buffer[i];
}
thirty = accum/30;
}
}

  if(espSerial.available()) Serial.write(espSerial.read());
  if(Serial.available())
  {
    char c=Serial.read();
    if (c=='#')
    {
      delay(10);
      while (Serial.available()) Serial.read();
      initWifi();
    }
    else
      espSerial.write(c);
   }
   if (millis()-lastUpdate>=UPDATEINTERVAL)
   {
     lastUpdate+=UPDATEINTERVAL;
     thingSpeakUpdate();
   }
}
int readAndOverSample(int apin, double A, double B, double C, int resistor) {
int sensorvalue = 0;
unsigned int accumulated = 0;
int numsamples = 64;
int n = 0;

sensorvalue = analogRead(apin);
delay(2);

// einlesen der 64 samples
for (int i = 0; i < numsamples; i++) {
sensorvalue = analogRead(apin);
if (sensorvalue == 0 || sensorvalue >= 1023) {
return -1;
}
accumulated += sensorvalue;
n++;
delay(2);
}

unsigned int ADCmax = (1 << 13) - 1;
unsigned int ADCval = accumulated >> 3;
float R, T;
R = log( resistor / ((ADCmax/(float)ADCval) - 1.0f));
T = 1.0f / ((C * R * R + B) * R + A);
temp = (T - 273.15f);

// Serial.print("temp="); Serial.println(temp);

if (resistor > 22000) {
Temperatur = temp; // Wert für Internetseite speichern
}

else {
Temperatur1 = temp; // Wert für Internetseite speichern
}
}
 
Nicht ganz so simple man muss zumindest wissen was man wo hin kopieren muss. Seh ich das richtig das du jetzt als Pin für die Sensoren A2 und A4 nimmst und nichtmehr A1 und A2 ;) ;P ?
 
Was nu wieder ;) ?

Code:
ESP8266 Demo Test by 'jurs'
AT


TIMEOUT
AT


TIMEOUT
AT


TIMEOUT
AT


TIMEOUT
AT


TIMEOUT
AT+CIPSTART="TCP","api.thingspeak.com",80


TIMEOUT
Link Connect State: NULL
AT+CIPSEND=58


TIMEOUT
43.14+++
GET /update?api_key=xxxxx&field1=0 HTTP/1.0
Response: T /update?api_key=xxxxx&field1=0 HTTP/1.0

AT+CIPSTART="TCP","api.thingspeak.com",80
Link Connect State: AT+CIPSTART="TCP","a
AT+CIPSEND=58


TIMEOUT
65.67+++
GET /update?api_key=xxxxx&field1=0 HTTP/1.0
Response:  /update?api_key=xxxxx&field1=0 HTTP/1.0

AT+CIPSTART="TCP","api.thingspeak.com",80
Link Connect State: AT+CIPSTART="TCP","a
AT+CIPSEND=58


TIMEOUT
98.33+++
 
Massekabel war rausgehüpft nu kommt diese Meldung:
Code:
GET /update?api_key=xxxxx&field1=0 HTTP/1.0

Response:  /update?api_key=xxxxx&field1=0 HTTP/1.0

ERROAT+CIPSTART="TCP","api.thingspeak.com",80

Link Connect State: ERROAT+CIPSTART="TCP
AT+CIPSEND=58

busy p...
249.31+++

OK
Linked
GET /update?api_key=xxxxx&field1=0 HTTP/1.0

Response:  /update?api_key=xxxxx&field1=0 HTTP/1.0

ERROAT+CIPSTART="TCP","api.thingspeak.com",80

Link Connect State: ERROAT+CIPSTART="TCP
ALREAY CONNECT
279.62+++
AT+CIPSEND=58

> GET /update?api_key=xxxxx&field1=0 HTTP/1.0


Response:  /update?api_key=xxxxx&field1=0 HTTP/1.0
SEND AT+CIPSTART="TCP","api.thingspeak.com",80

Link Connect State: SEND AT+CIPSTART="TC
ALREAY CONNECT
309.93+++
AT+CIPSEND=58

>
 
Hallo liebe community,
Ich habe exact das selbe vor!
Habe meinen UDS so umgebaut, dass die luftzufuhr über nen lüfter gesteuert wird...
Habe ne Druckkammer 80x80 aus edelstahlblechen geschweißt...von da aus gehts per Schlauch in nen Luftverteiler, der wiederum mit 3 Schläuchen in den Smoker geht um optimale Luftverteilung zu gewährleisten.
Steuern will ich das komplette Teil mit einer Arduino Mega...

Habe alles besorgt aber das programmieren macht mir zu schaffen da ich zwar Elektriker bin, mir jedoch die Programmierkenntnisse fehlen!

Hier mein Setup:
Arduino Mega
Wishield 2.0 (Wlan-Modul)
2x Maverick Sonden mit 2,5mm klinke anschlüssen sowie passende buchsen
Protoboard
1x LCD display mit knöpfen dran
1x PT100 messsonde für Garraumtemperatur
1x 230v relaus zum ansteuern einer heizspirale um den UDS fernzuzünden
Heizspirale


Hab da was im internet gefunden und mich an die "Anleitung" gehalten....
Jedoch bin ich wie gesagt ziemlich mit dem Programmieren überfordert...hat nämlich nicht geklappt!

Verdrahtet hab ich das Ding so:
schematic.png

Die Anleitung gibts hier:
http://www.smokingmeatforums.com/t/90085/the-how-to-for-making-an-arduino-controlled-smoker

Sobald ich Versuche den code auf die arduino zu implementieren tut sich nix mehr!
Wär super geil wenn mir jmd von euch evtl paar tips geben könnte...

Danke im Vorraus und schönen Abend noch
 

Anhänge

  • schematic.png
    schematic.png
    11,9 KB · Aufrufe: 2.105
Sobald ich Versuche den code auf die arduino zu implementieren tut sich nix mehr!

Hallo,
ich programmiere zwar "nur" ein bisschen in Delphi aber ich bin gerade am c lernen. Ich habe mir auch einige Teile für den Arduino bestellt sind aber noch nicht da.
Zum Problem ich würde sagen das liegt daran das der Code den du vermutlich übernommen hast ist für den Ardunio Due ist. Da du den Mega hast könnte das das Problem sein. Desweiteren hast ein anderes Wlan shield als in deinem Link oder?
Ich würde versuchen nicht alles auf einmal zu implementieren sondern Stück für Stück. Zuerst die Temperatur fühler dann das wlan dann die Steuerung und dazwischen testen ob es funzt so sind Fehler leichter zu finden. Aber ohne Grundkenntnisse im programmieren wird das schwer. (Meiner Meinung nach )
Gruß Markus
 
Sooooo,
Ich hab jetzt das selbe setup wie der Grillmeister27 und möchte nun die Zuluft mit nem 12v lüfter steuern.
Gibt es ein update zu dem schon geposteten informationen bezüglich pinbelegungen?
Ich würde gerne die informationen zusätzlich auf einem lcd display sehen können und manuell am Gerät die temperatur steuern bzw einstellen.
wie gesagt ich bin eine absolute programmierniete aber hab meinen smoker nun komplett umgebaut um den nur mit der steuerung zu betreiben.
Es wär super wenn mir hier evtl jemand einen perfekten "copy und paste" code mit dem dazugehörigen verdrahtungsplan zukommen lassen würde...
ich bin am verzweifeln und will endlich wieder smoken.

MfG
Christian Meller
 
so sieht mein baby bis jetzt aus...ist quasi in den letzten zügen!
Die kiste wird von unten unter die arbeitsplatte geschraubt und das lcd display darin eingelassen.
der lüfter kommt in die druckkammer und wird im luftverteiler optimal über 3 schläuche verteilt.

IMG_20150807_185630.jpg


IMG_20150807_185642.jpg


IMG_20150807_185657.jpg


IMG_20150807_185712.jpg


IMG_20150807_185725.jpg
 

Anhänge

  • IMG_20150807_185630.jpg
    IMG_20150807_185630.jpg
    231,7 KB · Aufrufe: 2.096
  • IMG_20150807_185642.jpg
    IMG_20150807_185642.jpg
    145,9 KB · Aufrufe: 2.041
  • IMG_20150807_185657.jpg
    IMG_20150807_185657.jpg
    136 KB · Aufrufe: 2.042
  • IMG_20150807_185712.jpg
    IMG_20150807_185712.jpg
    155,2 KB · Aufrufe: 2.049
  • IMG_20150807_185725.jpg
    IMG_20150807_185725.jpg
    120,9 KB · Aufrufe: 2.080
Zurück
Oben Unten