Projects > DIY/Making

Arexx Templogger -> Arduino -> Xively

(1/3) > >>

afx2000:
Mein zweites Projekt soll Temperatur- und Feuchtigkeitswerte von Arexx-Sensoren an Xively schicken:

* Arexx Sensoren (http://www.arexx.com/templogger/html/de/index.htm) senden Daten an:
* Arexx BS-1000 LAN RECEIVER, welcher die Daten per XML zur Verfügung stellt, wo sie von einem
* Arduino Uno mit Ethernet Shield abgeholt (textfinder) und dann mit der
* Xively Library (https://github.com/xively/xively_arduino) zu
* Xively geschickt werden sollen
Das Problem ist nun, dass es abschmiert wenn ich mehr als 1 Sensorwert an Xivley schicke.
Also habe ich es mal mit einem Switch-Konstrukt versucht. Sprich: Pro Sensorwert ein Feed an Xively schicken anstatt 6 Werte in einem. Das konnte ich dann allerdings nicht parsen: Redeclaration von XivelyDatastream.

Beispielcode der Lib:

--- Code: ---XivelyDatastream datastreams[] = {
  XivelyDatastream(sensorId, strlen(sensorId), DATASTREAM_FLOAT),
};

--- End code ---

Gemäss Example würden mehrere Werte so funzen:

--- Code: ---XivelyDatastream datastreams[] = {
  XivelyDatastream(sensorId, strlen(sensorId), DATASTREAM_FLOAT),
  XivelyDatastream(bufferId, strlen(bufferId), DATASTREAM_BUFFER, bufferValue, bufferSize),
  XivelyDatastream(stringId, DATASTREAM_STRING)
};

--- End code ---

Das Beispiel hat funktioniert, meine Adaption dann leider wieder nicht. (Sonderzeichen-Starwars im Serial Monitor)

Wenn ich diese Zeilen mehrmals in switch/case verwende, habe ich dieses Problem.

Obwohl bei jedem Durchgang ja nur einmal was definiert wird. Habe schon einige "vor-Deklarationen" mit leeren Werten versucht, um n den switch/cases nur noch anderen Inhalt abzufüllen. Ergab div. Fehler. Entweder nicht richtig deklariert, redeklariert oder out of scope.

Dann habe ich das ganze mal mit If-Schlaufen anstatt Switch/Case versucht. Parsen ging so, ich habe einfach vor der if-Schlaufe ein mit Beispiel-Text befülltes datastream[0] erstellt und in den If-Schlaufen jeweils [1] überschrieben. Aber im Serial Monitor wurde der Output plötzlich mit jensten Sonderzeichen gemixt (=das Problem mit mehr als einem Wert wie vorhin beschrieben).

Geht also auch nicht. Ich bin mir sicher es liegt an der Deklaration, schnalle das Programmieren aber nicht. Kann mir da jemand helfen?
Code habe ich zuhause, kann ich später noch reinstellen.

Gruss
Mario

arduinopraxis:
@Mario

Hast du schon mal das Beispiel der Xively-Library mit MultipleUploads getestet?

Ich würde im ersten Schritt die Werte manuell eintragen im Beispielsketch eintragen und so testen.

Die Deklaration deines Datenstreams muss am Anfang des Programms einmalig gemacht werden. Dabei müssen die einzelnen Strings mit den Namen der einzelnen Datenfeeds genau mit deiner Konfiguration übereinstimmen.

Im Beispiel sieht das so aus:


--- Code: ---char sensorId[] = "sensor_reading";
char bufferId[] = "info_message";
String stringId("random_string");
--- End code ---

Anschliessend können dann die jeweiligen Werte den einzelnen Feeds zugeordnet werden:


--- Code: ---datastreams[0].setFloat(sensorValue);
datastreams[1].setBuffer("a message to upload");
datastreams[2].setString(stringValue);

--- End code ---

Bei Sensoranwendungen sind vermutlich alle Werte als Float zu setzen.

Für genaue Problemanalyse musst du dein Sketch hier publizieren.

Gruss
Thomas

afx2000:
Komisch, kriege nicht mehr mal das Beispiel zum Laufen. Error 403: Rate Limit: https://xively.com/dev/docs/api/communicating/usage_limits/

Kann ja nicht sein oder? Ich setze 1 Request alle 15s = 4x pro Minute Limit ist gemäss https://xively.com/pricing/ bei 25/min:


--- Quote ---Developer Account API limit 25 API calls per minute, 3 minute moving average.
--- End quote ---

arduinopraxis:

--- Quote ---Komisch, kriege nicht mehr mal das Beispiel zum Laufen. Error 403
--- End quote ---
Ich würde nochmals einen neuen Datenfeed einrichten und mit diesem testen oder den bisherigen Feed löschen und neu einrichten.

afx2000:
Habe ich versucht, selbes Problem.

Gibt es keine self hosted data logging apps? Das wäre mir fast am liebsten.
Habe schon viel gegoogelt aber nix gefunden :(

Navigation

[0] Message Index

[#] Next page

Go to full version