código fonte


/* Cosm Arduino sensor client
 *
 * This sketch demonstrates connecting an Arduino to Cosm (https://cosm.com),
 * using the new Arduino library to send and receive data.

**/

#include <SPI.h>
#include <Ethernet.h>
#include <HttpClient.h>
#include <Xively.h>
//**********************************************************


#define API_KEY "             " // Chave no Xively (adicionar a sua chave)
#define FEED_ID                        // ID no Xively (adicionar o ID do experimento)

// 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)


unsigned long lastConnectionTime = 0;                // ultimo instante de conexao no Xively
const unsigned long connectionInterval = 1000;      // delay para conexao no Xively milliseconds



// Define o mome que será exibido no grafico
char sensorId[] = "V_R_Pull_Down";  // para resistor em GND e LDR em +V
char sensorId2[] = "V_LDR_R_Pull_Up"; // para LDR em GND e Resistor em +V

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

// numero de sensores que serão monitorados
XivelyFeed feed(FEED_ID, datastreams, 2 /* number of datastreams */);

EthernetClient client;
XivelyClient xivelyclient(client);

void setup() {

  pinMode(9,OUTPUT);   // pino em que está conectado o LED que vai piscar durante a coleta de dados
  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(100);
  }

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

void loop() {
  // Loop principal

  if (millis() - lastConnectionTime > connectionInterval) {


    digitalWrite(9,HIGH); // acende o led do pino 9
    sendData(); // enviando dados para o Xively (led aceso)
    getData();
    digitalWrite(9,LOW); //apaga o led do pino 9
    sendData(); // enviando dados para o Xively LED apagado
    getData();// Lendo dados do Xively
    lastConnectionTime = millis(); // atualizar o tempo de conexão
  }
}

// Envia os valores fornecidos para Cosm, imprimindo alguma informação de depuração à medida que avançamos
void sendData() {

  int ResistorPull_Down = analogRead(A0);
  int ResistorPull_Up = analogRead(A1);

  float V_ResistorPull_Down= (5.0*ResistorPull_Down)/1024;
  float V_LDR_ResistorPull_Up= 5.0-(5.0*ResistorPull_Down/1024);

  datastreams[0].setFloat(V_ResistorPull_Down);
  datastreams[1].setFloat(V_LDR_ResistorPull_Up); //DHT11 humidity value*******


  Serial.print("V_ResistorPull_Down value");
  Serial.println(datastreams[0].getFloat());
  Serial.print("V_LDR_ResistorPull_Up value");
  Serial.println(datastreams[1].getFloat());
  Serial.println("Uploading to Xively");
  int ret = xivelyclient.put(feed, API_KEY);
  Serial.print("xivelyclient.put returned");
  Serial.println(ret);

  Serial.println();

}

// Pega o valor do fluxo de dados de Cosm, imprimindo o valor que recebemos
void getData() {

 
  Serial.println("Reading data from Xively");
  int ret = xivelyclient.get(feed, API_KEY);
  Serial.print("xivelyclient.get returned ");
  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.print("Datastream is: ");
    Serial.println(feed[1]);
    Serial.print("Sensor value is: ");
    Serial.println(feed[1].getFloat());

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

  Serial.println();
}

Link para acesso do código via google projects

Nenhum comentário:

Postar um comentário