OpenKontrol Gateway – RF Daten senden an COSM
0 Comments Published Mai 11th, 2013 in Arduino, Projekt, SensorDas OpenKontrol Gateway ist ein optimales Internet-Gateway um meine Sensordaten an die IoT-Plattform Cosm zu senden.
Im nachfolgenden Beispiel werden die Daten von Node 13 an Cosm gesendet. Dabei werden 2 Datenstreams, Temperatur und Batteriespannung übertragen.
Das Senden der Daten an Cosm wird mit der Bibliothek ERxPachube realisiert.
Auf dem Arduino-basierenden Gateway zeigt Pin 17 mittels Status-LED den Empfang von Daten an.
//
// OpenKontrol Gateway - sending rf data to COSM
// Date: 10.05.13
// www.arduino-praxis.ch
#include <SPI.h>
#include <Ethernet.h>
#include <JeeLib.h>
#include <Arduino.h>
#include <HardwareSerial.h>
#include <ERxPachube.h>
// Ethernet
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xAD };
byte ip[] = { 10, 0, 1, 101 };
byte gateway[] = { 10, 0, 1, 1 };
byte subnet[] = { 255, 255, 255, 0 };
// Cosm API-Key
#define PACHUBE_API_KEY "YourAPIKey"
// Cosm Feed ID
#define PACHUBE_FEED_ID YOURFEEDID
// Status senden 1:OK
int sendenStatus = 0;
ERxPachubeDataOut dataout(PACHUBE_API_KEY, PACHUBE_FEED_ID);
void PrintDataStream(const ERxPachube& pachube);
// Fixed RF12 settings
#define MYNODE 3 //node ID of the receiever
#define freq RF12_433MHZ //frequency
#define group 210 //network group
typedef struct {
int rxD; // sensor value
int supplyV; // tx voltage
} Payload;
Payload rx;
int nodeID;
int value;
int millivolts;
// Data received
const int LEDpin=17;
void setup()
{
Serial.begin(9600);
rf12_initialize(MYNODE, freq,group); // Initialise the RFM12B
Ethernet.begin(mac, ip);
// 2 Datenstreams Sensor Node 13
// Temp Inside
dataout.addData(0);
// Battery
dataout.addData(1);
// Daten empfangen
pinMode(LEDpin, OUTPUT);
digitalWrite(LEDpin,HIGH);
Serial.println("TinyTX Simple Receive Example");
Serial.println("-----------------------------");
Serial.println("Waiting for data");
Serial.println(" ");
}
void loop()
{
if (rf12_recvDone() && rf12_crc == 0 && (rf12_hdr & RF12_HDR_CTL) == 0) {
nodeID = rf12_hdr & 0x1F; // get node ID
rx = *(Payload*) rf12_data;
value = rx.rxD;
millivolts = rx.supplyV;
Serial.println("Received a packet:");
Serial.print("From Node: ");
Serial.println(nodeID);
Serial.print("Value: ");
Serial.println(value);
Serial.print("TX Millivolts: ");
Serial.println(millivolts);
Serial.println("--------------------");
if (nodeID== 13)
{
digitalWrite(LEDpin,HIGH);
sendenStatus=1;
}
}
// Daten an Cosm senden
if (sendenStatus == 1) {
Serial.println("Sendig Data to COSM");
float data0 = value;
float data1 = millivolts;
data0=data0/100;
dataout.updateData(0, data0);
dataout.updateData(1, data1);
// Show Status
int status = dataout.updatePachube();
Serial.print("Status: ");
Serial.println(status);
// Daten senden
PrintDataStream(dataout);
sendenStatus=0;
// turn off status LED to indicate
// succesful data receive and online posting
digitalWrite(LEDpin,LOW);
}
}
void PrintDataStream(const ERxPachube& pachube)
{
unsigned int count = pachube.countDatastreams();
Serial.print("data count=> ");
Serial.println(count);
Serial.println(",");
for(unsigned int i = 0; i < count; i++)
{
Serial.print(pachube.getIdByIndex(i));
Serial.print(",");
Serial.print(pachube.getValueByIndex(i));
Serial.println();
}
}
Suchen
Aktuelles
- Arduino Praxiseinstieg, 5. Auflage erschienen
- Arduino UNO R4 offiziell vorgestellt
- Review: PCB Service von WellPCB
- Review: SMD-Bestückungs-Service von JLCPCB
- Portable Power Supply – VoltBot
- Leiterplatten-Panel bei JLCPCB
- Arduino Praxiseinstieg, 4. Auflage erscheint am 29.04.2019
- Klein, kleiner, ganz klein – ATtiny10
- Review – Leiterplatten (PCB) von JLCPCB
- Arduino Day 2018
Kommentare
- Review: PCB Service von WellPCB 2
ArduinoPraxis [...] - Arduino UNO R4 offiziell vorgestellt 2
ArduinoPraxis [...] - Review - Leiterplatten (PCB) von JLCPCB 4
Werner Smidt [...] - Review: SMD-Bestückungs-Service von JLCPCB 2
ArduinoPraxis [...] - Projekt: drahtloses Display für Oregon Scientific Wetterstation 3
Oliver [...]
Kategorien
Archive
- Dezember 2023
- Juni 2023
- Juli 2020
- Dezember 2019
- Oktober 2019
- Juni 2019
- April 2019
- Juli 2018
- Mai 2018
- November 2017
- Oktober 2017
- September 2017
- Juli 2017
- April 2017
- März 2017
- Februar 2017
- Dezember 2016
- November 2016
- September 2016
- Mai 2016
- Januar 2016
- Dezember 2015
- August 2015
- Mai 2015
- März 2015
- Januar 2015
- Dezember 2014
- September 2014
- August 2014
- Juli 2014
- Juni 2014
- Mai 2014
- April 2014
- März 2014
- Februar 2014
- Januar 2014
- Dezember 2013
- Oktober 2013
- September 2013
- August 2013
- Juni 2013
- Mai 2013
- April 2013
- März 2013
- Februar 2013
- Januar 2013
- Dezember 2012
- November 2012
- Oktober 2012
- September 2012
- August 2012
- Juli 2012
- Juni 2012
- Mai 2012
- April 2012
- Februar 2012
- Januar 2012
- Dezember 2011
- November 2011
- Oktober 2011
- September 2011
- August 2011
- Juli 2011
- Juni 2011
- Mai 2011
- April 2011
- März 2011
- Januar 2011
- Dezember 2010
- November 2010
- Oktober 2010
- September 2010
- August 2010
- Juli 2010
- Juni 2010
- Mai 2010
No Responses to “OpenKontrol Gateway – RF Daten senden an COSM”
Please Wait
Leave a Reply