Olen copy-paste koodaaja ja nyt tuli eteen ongelma johon en vastausta InternetistÀ osaa etsiÀ. Periaatteessa tiedÀn miten tuo homma pitÀisi tehdÀ, mutta tuo kÀÀntÀjÀ on vahvasti erimielinen.
KyseessÀ on cosm.com esimerkkikoodi jota olen lÀhtenyt muokkaamaan. linkki.
Tuossa siis lĂ€hetetÀÀn kolme arvoa tuonne Cosm (ex. Pachube) -palveluun. Data lĂ€hetetÀÀn âCosmDatastreamâ datatyypissĂ€ jonka rakenne on seuraava:
CosmDatastream(sensorId1, strlen(sensorId1), DATASTREAM_FLOAT)
Esimerkkikoodin pohjalta sain tehtyÀ toimivan ratkaisun jokainen sensori on nimetty erikseen:
[code]
char sensorId1[11];
char sensorId2[11];
char sensorId3[11];
CosmDatastream datastreams[3] = {CosmDatastream(sensorId1, strlen(sensorId1), DATASTREAM_FLOAT),
CosmDatastream(sensorId2, strlen(sensorId2), DATASTREAM_FLOAT),
CosmDatastream(sensorId3, strlen(sensorId3), DATASTREAM_FLOAT)};[/code]
Kysymys kuuluu: Miten saan poimittua nuo sensorId:t taulukosta? Olen yrittÀnyt seuraavalla tavalla, mutta ei onnistu (vain oleelliset osat mukana):
[code]prog_char sensor_0[] PROGMEM = âMiddleâ; // Sensor names stored to PROGMEM (max 10 char)
prog_char sensor_1[] PROGMEM = âRightâ;
prog_char sensor_2[] PROGMEM = âLeftâ;
PROGMEM const char *sensorName_table[] = // Sensor names in table
{
sensor_0,
sensor_1,
sensor_2 };
char buffer[11]; // Sensor name buffer
CosmDatastream datastreams[3] = CosmDatastream(sensorId, strlen(sensorId), DATASTREAM_FLOAT);
void CosmUpload() {
for(int x=0;x<sensors;x++) {
strcpy_P(buffer, (char*)pgm_read_word(&(sensorName_table[0])));
strcpy(sensorId, buffer);
datastreams[x].setFloat(get_temperature(sensors_address[x]));
delay(2000);
}
Serial.println(âUploading it to Cosmâ);
Serial.println(feed);
int ret = cosmclient.put(feed, APIKEY);
}[/code]
TÀmÀ toimisi muuten, mutta ongelmana on se ettÀ kaikilla kolmella anturilla on sama nimi. Eli jotenkin tuo SensorId pitÀisi saada talletettua erikseen jokaiseen datastreams[x] datatyyppiin.
Yritin myös siten ettĂ€ tuossa datatyypissĂ€ vaihtaisin tuon sensorIdn muotoon sensorId[], mutta se meni vielĂ€ enemmĂ€n metsÀÀnâŠ
Nyt tosin tuli mieleen ratkaisuksi se ettÀ lÀhetÀnkin nÀmÀ kaikki mittaukset yksittÀisinÀ erillisinÀ paketteina. TÀmÀ tosin lisÀÀ hieman nettiliikennettÀ, mutta tuolla ongelma olisi ratkaistu.
â
oj