Pages: [1]   Go Down
Author Topic: Esiste esempio (sketch) Cosm --> Arduino ?  (Read 1500 times)
0 Members and 1 Guest are viewing this topic.
Online Online
Full Member
***
Karma: 0
Posts: 129
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
al momento utilizzo un emontx che invia dati su COSM (utilizzando un NANODERF).
Tutto funziona alla perfezione al momento.

Adesso vorrei rigirare questi dati che COSM riceve, sul mio Arduino Mega.

Esistono esempi in merito ? Googlando, trovo solo esempi per inviare dati a COSM.

Io vorrei il contrario.

Saluti
Remo
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5491
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ho mai visto ciò che chiedi in rete, non ti convereebbe salvare tutto in un db, inviarli al tuo mega ed a cosm tramite due separati script in php/asp o similari ?
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Online Online
Full Member
***
Karma: 0
Posts: 129
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

purtroppo nn so programmare ne php ne Asp.
Ho qualche nozione in c non di più.

Saluti
Remo
Logged

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2291
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,
devi partire dalle api di cosm (se non proprio dal link che allego, da qualcosa di simile):
https://cosm.com/docs/v2/feed/show.html
Trovi svariati esempi sia per l'interpertazione di xml, che di json.
Senza parlare di csv, che di fatto è testo semplice senza markup particolari.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6975
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io di Api conosco solo questa...

Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Genova
Offline Offline
Faraday Member
**
Karma: 38
Posts: 3255
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io di Api conosco solo questa...

lol  smiley-lol
Logged

no comment

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2291
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Io di Api conosco solo questa...
 
smiley-lol
attento perchè quella può anche pungere, quelle di cosm no
Logged

Online Online
Full Member
***
Karma: 0
Posts: 129
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti, grazie delle risposte.
Cosm ha messo a disposizione un nuovo sketch (data gennaio 2013), il quale ti permette di inviare un valore su Cosm, e allo stesso tempo rileggerlo, sempre con il medesimo sketch.
E un punto di partenza, ho provato a smanettarci sopra ieri eliminando la parte di post, utilizzando solo la parte Get , purtroppo ricevo sempre l'errore -403.
Posto qui sotto il Codice originale messo a disposizione da Cosm. Se qualcuno ha qualche idea.
P.S. il valore = 2777 l'ho messo io per testarlo.
Grazie
R.
-----------------------------------

 /**
 * Cosm Arduino sensor client example.
 *
 * This sketch demonstrates connecting an Arduino to Cosm (https://cosm.com),
 * using the new Arduino library to send and receive data.
 *
 * Requirements
 *   * Arduino with Ethernet shield or Arduino Ethernet (board must use the
 *     Wiznet Ethernet chipset)
 *   * Arduino software with version >= 1.0
 *   * An account at Cosm (https://cosm.com)
 *
 * Optional
 *   * An analog sensor connected to pin 2 (note we can still read a value from
 *     the pin without this)
 *
 * Created 8th January, 2013 using code written by Adrian McEwen with
 * modifications by Sam Mulube
 *
 * Full tutorial available here: https://cosm.com/docs/quickstart/arduino.html
 *
 * This code is in the public domain.
 */

#include <SPI.h>
#include <Ethernet.h>
#include <HttpClient.h>
#include <Cosm.h>

#define API_KEY "xxxxxxxxxxx" // your Cosm API key
#define FEED_ID xxxxxxx // your Cosm feed ID



// MAC address for your Ethernet shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// Analog pin which we're monitoring (0 and 1 are used by the Ethernet shield)
int sensorPin = 2;

unsigned long lastConnectionTime = 0;                // last time we connected to Cosm
const unsigned long connectionInterval = 15000;      // delay between connecting to Cosm in milliseconds

// Initialize the Cosm library

// Define the string for our datastream ID
char sensorId[] = "sensor_reading";

CosmDatastream datastreams[] = {
  CosmDatastream(sensorId, strlen(sensorId), DATASTREAM_FLOAT),
};

// Wrap the datastream into a feed
CosmFeed feed(FEED_ID, datastreams, 1 /* number of datastreams */);

EthernetClient client;
CosmClient cosmclient(client);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  Serial.println("Cosm Sensor Client Example");
  Serial.println("==========================");

  Serial.println("Initializing network");
  while (Ethernet.begin(mac) != 1) {
    Serial.println("Error getting IP address via DHCP, trying again...");
    delay(15000);
  }

  Serial.println("Network initialized");
  Serial.println();
}

void loop() {
  // main program loop
  if (millis() - lastConnectionTime > connectionInterval) {
    // read a value from the pin
    int sensorValue = 2777.25;
    // send it to Cosm
    sendData(sensorValue);
    // read the datastream back from Cosm
    getData();
    // update connection time so we wait before connecting again
    lastConnectionTime = millis();
  }
}

// send the supplied value to Cosm, printing some debug information as we go
void sendData(int sensorValue) {
  datastreams[0].setFloat(sensorValue);

  Serial.print("Read sensor value ");
  Serial.println(datastreams[0].getFloat());

  Serial.println("Uploading to Cosm");
  int ret = cosmclient.put(feed, API_KEY);
  Serial.print("PUT return code: ");
  Serial.println(ret);

  Serial.println();
}

// get the value of the datastream from Cosm, printing out the value we received
void getData() {
  Serial.println("Reading data from Cosm");

  int ret = cosmclient.get(feed, API_KEY);
  Serial.print("GET return code: ");
  Serial.println(ret);

  if (ret > 0) {
    Serial.print("Datastream is: ");
    Serial.println(feed[0]);

    Serial.print("Sensor value is: ");
    Serial.println(feed[0].getFloat());
  }

  Serial.println();
}
------------------------------------
Logged

Roma sud
Offline Offline
Newbie
*
Karma: 1
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
al momento utilizzo un emontx che invia dati su COSM (utilizzando un NANODERF).
Tutto funziona alla perfezione al momento.

Scusa... il Tuo Topic mi ha fatto venire la curiosità di sapere cosa è COSM. Ho dato una sbirciata al sito web ufficiale, ma non ci ho capito molto, visto che è tutto in inglese.

Potresti, cortesemente, spiegarmi tu cosa è?
Logged

Online Online
Full Member
***
Karma: 0
Posts: 129
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

COSM è un sito/server su cui puoi inviare i tuoi dati (quasi in realtime).
COSM provvederà a generare un grafico e a tenere una tracciabilità dei tuoi dati.
In allegato uno screenshot del mio.

Saluti
R.


* cosm.JPG (120.62 KB, 1589x1020 - viewed 31 times.)
Logged

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2291
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@remino
se i dati che vuoi monitorare principalmente son legati ai consumi, prova a dare un 'occhiata a OpenEnergyMonitor:
www.openenergymonitor.org

Il funzionamento è molto simile a Cosm, la cosa interessante è che esiste anche una versione non cloud che puoi installarti su tuo server (fisico o vps che sia).
Puoi farti un'idea di OpenEnergyMonitor, dando un'occhiata al tutorial base che trovi sul playground:
http://bit.ly/aplgtmns
Logged

Online Online
Full Member
***
Karma: 0
Posts: 129
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao Pitusso,
Da Ottobre mando dati su Emoncms utilizzando sia il mio Server Locale che quello messo a disposizione da Emoncms stesso.

Il mio Intento, sarebbe quello di poter convogliare tutti i dati presenti su COSM , su un mio terzo Arduino, da li gestirli ed implementarli con altri dati già presenti in casa (controllo elettrodomestici luci ecc....).

Al momento la via piu facile è quella di COSM che ha Sketch che fanno questo (ma appunto con errori o sono io che non ci riesco), Emoncms invece ha bisogno di uno script PHP (cosa che io purtroppo non so programmare/modificare)

Risultato finale sarebbe quello di poter monitorare il tutto su un tablet, visibile a tutti i componenti della famiglia.
Il mio progetto è composto da :
1x Emontx che legge 3 sensori di corrente e li invia utilizzando un RF.
2x NanodeRF che ricevono i dati da Emontx e li inviano , uno su Emoncms l'altro su Cosm.
1X Arduino Mega che gestisce Temperatura,distanza,vibrazioni,e luminosita.(E altro che sto studiando)

Saluti
Remo

Logged

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2291
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao

Quote
Al momento la via piu facile è quella di COSM che ha Sketch che fanno questo (ma appunto con errori o sono io che non ci riesco), Emoncms invece ha bisogno di uno script PHP (cosa che io purtroppo non so programmare/modificare)

questo non è vero, su emoncms è possibile anche recuperare i dati dei vari feed (e se consideri che ogni feed può essere il risultato di uno o più input...).

Per esempio, valore testuale (no json o xml) di un feed:
<server path>/feed/value.json?apikey=<api_key>&id=<feed_id>
valore json di tutti i feed
<server path>/feed/list.json&apikey=<api_key>

poi ovviamente vedi tu cosa preferisci fare
Logged

Pages: [1]   Go Up
Jump to: