INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
UIPEthernet und DallasTemperature
24.03.2015, 20:04
Beitrag #1
UIPEthernet und DallasTemperature
Hallo zusammen,

ich habe Probleme mit folgendem Code. In Regelmäßigen abständen hört der Arduino auf zu senden. Teilweiße nach 10min, teilweiße erst nach 30min.

Ich nutze einen Arduino Nano und folgendes Ethernet Modul.

getFreeMemory = 276

Vielen Dank für eure Hilfe.

Code:
#include <UIPEthernet.h>        // Used for Ethernet
#include <OneWire.h>            // OneWire-Bibliothek einbinden
#include <DallasTemperature.h>  // DS18B20-Bibliothek einbinden
#include <MemoryFree.h>

byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };

EthernetClient client;
char server[] = "backend.de";  // IP Adres (or name) of server to dump data to
char sensorToken[] = "730a19c21dc7a1f1e2961";

signed long next;
const int interval = 5000;

#define LED_PIN 13

#define DS18B20_PIN 2                  // Pin für DS18B20 definieren Arduino D2
OneWire oneWire(DS18B20_PIN);          // OneWire Referenz setzen
DallasTemperature sensors(&oneWire);   // DS18B20 initialisieren

void setup()
{

  pinMode(LED_PIN, OUTPUT);

  Serial.begin(9600);
  Ethernet.begin(mac);
  delay(3000);
  Serial.println(Ethernet.localIP());

  sensors.begin();  // DS18B20 starten

  next = 0;
}

void loop()
{
  digitalWrite(LED_PIN, LOW);

  if (((signed long)(millis() - next)) > 0) {
    digitalWrite(LED_PIN, HIGH);
    next = millis() + interval;
    temp();
  }

  //delay(interval);
}

void temp() {

  float temp1 = 9999.99; // default
  char buffer1[10];

  float temp2 = 9999.99; // default
  char buffer2[10];

  sensors.requestTemperatures(); // Temperatursensor(en) auslesen
  temp1 = sensors.getTempCByIndex(0);
  temp2 = sensors.getTempCByIndex(1);

  String tempAsString1 = dtostrf(temp1, 1, 2, buffer1);
  String tempAsString2 = dtostrf(temp2, 1, 2, buffer2);

  String requestMsg = "{\"value\": \"" + tempAsString1 + "-" + tempAsString2 + "\", \"sensorToken\": \"" + sensorToken + "\"}";

  Serial.println(requestMsg);

  if (client.connect(server, 80)) {
    client.println("POST /value HTTP/1.1");
    client.print("Host: ");
    client.println(server);
    client.println("Content-Type: application/json");
    client.println("User-Agent: Arduino/1.0");
    client.print("Content-Length: ");
    client.println(requestMsg.length());
    client.println();
    client.println(requestMsg);
    client.println("Connection: close");
    client.println();

    Serial.println(getFreeMemory());

    //    client.stop();
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Fehler bei Einbindung von DallasTemperature guardian12300 0 1.448 18.05.2013 21:20
Letzter Beitrag: guardian12300

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste