Montag, 16. Juli 2012

Temperatur mit Arduino und DS18B20 auf Pachube ausgeben

Hardware


 

 

 

 

 

Arduino Sketch

  /*
Pachube Data Out

Demonstrates use of the ERxPachube library. 
Push local sensor data to Pachube server.
If you don't have a Pachube account, register one first 
(http://www.pachube.com/).

To run this sketch, you need:
 1. Create a same feed as http://www.pachube.com/feeds/23408
    (A manual feed with three data streams with ids 0, 1, 2.)
 2. Use your API key to replace the space holer PACHUBE_API_KEY below. 
 3. Use your feed id to replace the space holer feed id 23408 below. 

Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13

* Created 22 April 2011
* By Jeffrey Sun
* http://code.google.com/p/pachubelibrary/

*/

#include <SPI.h>
#include <ERxPachube.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);

// replace the values with the MAC address of your Ethernet Shield:
byte mac[] = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa };

// provide an IP address for your Ethernet shield. The IP address below _might_ work:
byte ip[] = { 192, 168, 178, 30 };

#define PACHUBE_API_KEY "xyz" // fill in your API key PACHUBE_API_KEY
#define PACHUBE_FEED_ID 58347 // fill in your feed id

ERxPachubeDataOut dataout(PACHUBE_API_KEY, PACHUBE_FEED_ID);

void PrintDataStream(const ERxPachube& pachube);

void setup() {
  // start the ethernet connection and serial port:
  Ethernet.begin(mac, ip);
  Serial.begin(9600);
   // Start up the Dallas library
  sensors.begin();
dataout.addData(1);
}

void loop() {
    sensors.requestTemperatures(); // Send the command to get temperatures
    dataout.updateData(1, sensors.getTempCByIndex(0));  

int status = dataout.updatePachube();

 Serial.print("sync status code <OK == 200> => ");
 Serial.println(status);

 PrintDataStream(dataout);

 delay(5000);
}


void PrintDataStream(const ERxPachube& pachube)
{
 unsigned int count = pachube.countDatastreams();
 Serial.print("data count=> ");
 Serial.println(count);

 Serial.println("<id>,<value>");
 for(unsigned int i = 0; i < count; i++)
 {
  Serial.print(pachube.getIdByIndex(i));
  Serial.print(",");
  Serial.print(pachube.getValueByIndex(i));
  Serial.println();
 }
}

Ausgabe auf Pachube

Sonntag, 18. Oktober 2009

Probleme bei Update auf GoogleEarth 5

Nach Update keine Karte mehr:
Tools -> Optionen -> Grafikmodus X Abgesicherter Modus

Alle Punkte einer GPX-Datei in einem Punkt angezeigt:
Zeile einfügen in /usr/bin/googleearth:
export LC_ALL=us_US.UTF-8

Dienstag, 14. Juli 2009

Festplattenbackup vor Releasewechsel

Zielplatte als Slave jumpern (Brücke raus), von Live-CD booten und logische Namen der Platten feststellen mit:
sudo lshw -class disk

Spiegeln:
sudo dd if=/dev/sdQUELLE of=/dev/sdZIEL

zur Statusübersicht in zweitem Terminal
sudo kill -USR1 $(pidof dd)

oben: Maxtor SuSE Gutsy Intrepid Karmic
unten: Samsung Feisty Hardy Jaunty

Montag, 26. Januar 2009

kml aus Google Maps speichern

Rechte Maustaste auf "Link" über der Karte, "Link-Adresse kopieren".
In Adreßzeile einfügen, "&output=kml" anfügen und abschicken.

POI aus Google Earth

In Google Earth oder Google Maps erstellte kml-Dateien mit Wegpunkten können über GPSBabel direkt in Garmins POI konvertiert werden:

gpsbabel -i kml -f eingangsdatei.kml -o garmin_gpi,category=Kategorie,hide -F ausgangsdatei.gpi

(hide verhindert Verknüpfung mit Bitmap)
http://www.gpsbabel.org/htmldoc-development/fmt_garmin_gpi.html

Mittwoch, 3. Oktober 2007

JTable

String[] columnNames = {"1.", "2.", .... "n."};

Object[][] data = {{"eins", "zwei", ... "n"},
{"one", "two", .... "n"},
...
};

JTable table = new JTable(data, ColumNames);
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);

Patternvergleich mit java.util.regex.Pattern

Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaabb");
boolean b = m.matches();

oder in einem Schritt:
boolean b = Pattern.matches("a*b", "aaabb");