Mit ‘Arduino’ getaggte Artikel

Buchkritik: “Arduino Praxiseinstieg” von Thomas Brühlmann

Donnerstag, 26. August 2010

Auf der Froscon am letzten Wochenende habe ich mir “Praxiseinstieg Arduino” von Thomas Brühlmann gekauft. Mit knapp 25 Euro dürfte es noch in den taschengeld-tauglichen Bereich fallen. Es gefällt mir sehr gut, ist aber meines Erachtens nichts für Leute, die noch nie etwas mit Elektonik zu tun hatten. An einigen Stellen fallen halt Fachbegriffe, die für mich sehr unbekannt sind und zu denen ich gern etwas mehr Erklärung gehabt hätte.

Davon abgesehen zeigt das Buch eine Menge interessanter Beispiele und Ideen, von denen ich einige in der nächsten Zeit umsetzen werde.

Arduino und LoL Shield

Mittwoch, 25. August 2010

Mit dem LoL Shield gibt es eine einfache Möglichkeit, per Arduino ein LED Array zu steuern. Ich habe mein Shield am letzten Wochenende auf der Froscon (http://www.froscon.de) gekauft und unter sachkundiger Hilfe die fast 130 LEDs aufgelötet. Die Vorteile des Shields sind die schiere Masse an ansteuerbaren LEDs sowie die Tatsache, dass außer den LEDs selbst keine weiteren Bauteile zum Einsatz kommen.

Auf der Homepage des Schöpfers http://jimmieprodgers.com/kits/lolshield Beispiele für die Ansteuerung des Shields, hier zwei Beispiele (aufgenommen mit einer Canon 7D):

Youtube

Youtube

Arduino: Temperaturen aus der Datenbank auslesen

Montag, 26. Oktober 2009

Da die Temperatur-Daten jetzt in der Datenbank gespeichert werden, müssen wir sie auch auslesen:

<?php
 
echo "<h1>Temperaturen im Wohnzimmer</h1>";
 
$link = mysql_connect("<server>", <user>", "<password>") or 
	die("Keine Verbindung möglich: " . mysql_error());
 
mysql_select_db("<Database>") or die("Auswahl der Datenbank fehlgeschlagen");
// Die letzten 10 Werte
$query = "SELECT * FROM temperature ORDER BY TIMESTAMP DESC LIMIT 1,10"; 
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
 
while($row = mysql_fetch_object($result))
{
    echo $row->Timestamp ." ".$row->Temperature."<br/>";
}
 
mysql_close($link);
?>

Fritzing

Samstag, 24. Oktober 2009

Von Fritzing ist schon vor einem knappen Monat Version 0.3.8. alpha erschienen. Mit Fritzing lassen sich elektronische Schaltungen im Arduino-Umfeld sehr gut und einfach darstellen.

Grafische Ausgabe der Temperaturen vom Arduino

Sonntag, 11. Oktober 2009

Mit der pChart (http://pchart.sourceforge.net) Bibliothek habe ich eine einfache Möglichkeit gefunden, die Temperaturen grafisch darzustellen. Hier ein erstes Beispiel, anhand einer Vorlage aus der pChart Bibliothek. War recht einfach abzuändern, hat mich nur wenige Minuten gekostet, die Anpassungen vorzunehmen.

Example1.php

Arduino übermittelt Temperaturen

Samstag, 10. Oktober 2009

Ausgehend von Mats Vanselows getTemperatur() Funktion (http://www.mats-vanselow.de/2009/03/25/temperaturen-messen-mit-arduino und einem Beispiel aus der Ethernet Library habe ich einen kleinen Client geschrieben, der alle 10 Minuten die Temperatur aus einem LM35 Sensor ausliest und per HTTP-Request an ein PHP-Skript auf meiner Homepage schickt. Da der LM35 nicht genau kalibriert ist und wohl sowieso maximal auf ein halbes Grad genau ist, habe ich mittels zwei anderer Thermometer (die wiederum selbst voneinander abweichen) die ungefähre Abweichung des LM35 bestimmt und ziehe die 2° Celsius einfach ab.

Hier der entsprechende Processing-Code:

#include <Ethernet.h>
bool connected = false;
 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 99 };
// IP-Adresse des Webservers
byte serverIP[] = {111,111,111,111};
 
Client client(serverIP,80);
 
 
int inPin = 5;          // input pin 1
float inValTotal;
int i;
int runs = 5;          // Anzahl der Durchläufe
int waittime = 20;     // ms zwischen Durchläufen
int delayVal = 1000;   // Intervall für Serial Output
 
float getTemperatur() {
 
  inValTotal = 0;
  for(i = 0;i<runs;i++){
    inValTotal = inValTotal + analogRead(inPin);
    delay(waittime);
  }
 
  inValTotal = inValTotal / runs / 2;
  return(inValTotal-2);
}
 
 
void setup()
{
  Ethernet.begin(mac, ip);
  Serial.begin(9600);
  Serial.println("setup done");
 
}
 
void loop()
{
  Serial.println("Entered loop");
if (!connected){ 
   Serial.println("Not connected");
  if (client.connect()){
      connected = true;
      Serial.println("Connected to Server");
      Serial.println("Sending request to server");
      client.print("GET /storetemp.php?t=");
      client.print(getTemperatur());
      client.println(" HTTP/1.1");
      client.println("Host: www.mydomain.com");
      client.println("User-Agent: Arduino");
      client.println("Accept: text/html");
      client.println();
     } else {
        Serial.println("Cannot connect to server");
      }
    }   
  else {
    delay(500);
    while (client.connected() && client.available()) {
        char c = client.read();
        Serial.print(c);
      }
      Serial.println();
       client.stop(); 
       connected=false;
}
 
  Serial.println("Done now");
  delay(600000);
}

Hier der Code des PHP-Skripts, es schickt als Antwort Zeit und erhaltene Temperatur zurück zum Arduino und speichert die Temperatur mit Zeitstempel in einer Textdatei. Im nächsten Schritt werde ich wohl sicher eine MySQL-Datenbank hintersetzen, für den Moment reicht es aber völlig aus.

<?php
header('Content-type: text/plain');
echo date("d.m.Y-H:i:s") . " Temperatur= " . $_GET['t'];
 
$myFile = "testFile.txt";
$fh = fopen($myFile, 'a') or die("can't open file");
fwrite($fh, date("d.m.Y-H:i:s") . " Temperatur= " . $_GET['t']."\n");
fclose($fh);
?>
</php>

Und abschließend ein Auszug aus der Textdatei:

04.10.2009-09:22:29 Temperatur= 21.00
04.10.2009-09:22:37 Temperatur= 21.00
04.10.2009-09:22:44 Temperatur= 21.00
04.10.2009-09:22:52 Temperatur= 21.00
04.10.2009-09:23:00 Temperatur= 21.00
04.10.2009-09:23:07 Temperatur= 20.90
04.10.2009-09:23:15 Temperatur= 21.00
04.10.2009-09:23:33 Temperatur= 21.00

Arduino Webserver

Sonntag, 27. September 2009

Quellcode für einen einfachen Arduino Webserver findet man unter http://arduino.cc/en/Tutorial/WebServer.

Ich werde mal versuchen, die Temperatur eines LM35 auszulesen und als Webseite bereitzustellen. Mit dem Twittern per Arduino klappt es heute nicht, die Connection wird verweigert.

Nachtrag:

Mit dem Webserver-Beispielcode und der getTemperatur() Funktion von Mats Vanselow war der Temperatur-Webserver in fünf Minuten erledigt. Als nächste werde ich einen Webclient zusammenbauen (basierend auf der Ethershield library), der die Temperatur ausliest und an eine PHP-Datenbank schickt. Sollte am Wochenende zu erledigen sein.

Temperatur messen mit dem Arduino

Samstag, 26. September 2009

Heute habe ich mit dem Arduino mal Temperaturen eines LM35 Sensors ausgemessen. Glücklicherweise gibt es den Code fertig bei http://www.mats-vanselow.de/2009/03/25/temperaturen-messen-mit-arduino, allein hätt ich mich da schwer getan.

Als nächster Schritt bleibt das Twittern der Temperatur, erste Versuche waren nicht erfolgreich.

Neues Arduino Buch “Arduino – Physical Computing für Bastler, Designer & Geeks”

Freitag, 14. August 2009

Heute habe ich ein neues Arduino-Buch bekommen, das auf den schönen Namen “Arduino – Physical Computing für Bastler, Designer & Geeks” hört.

Hier mal das Inhaltsverzeichnis:

  1. Von Königen und Kondensatoren
  2. Physical Computing, elektrische Grundlagen und der Sprung ins kalte Wasser
  3. Workshop LED-Licht
  4. LEDs für Fortgeschrittene
  5. Sprich mit mir, Arduino
  6. Arduino im Netz
  7. Sensoren
  8. Ein kleiner Arduino-Roboter
  9. Musik-Controller mit Arduino
  10. Musik mit Arduino
  11. Anhang A: Arduino-Boards und Shields
  12. Anhang B: Arduino-Bibliotheken
  13. Anhang C: Sprachreferenz
  14. Anhang D: Händlerliste

Making Things Talk

Montag, 27. Juli 2009

Heute kam mein “Making Things Talk” Buch an, das es momentan recht günstig bei Amazon gibt. Die Untertitel “Practical Methods for Connecting Physical Objects” und “Projects and Ideas to Create Talking Objects from Anything” beschreiben das Buch ganz gut.

Hier mal die Kapitelüberschriften

  1. The Tools
  2. The Simplest Network
  3. A More Complex Network
  4. Look Ma! No Computer
  5. Communicating in (Near) Real Time
  6. Wireless Communication
  7. Sessionless Networks
  8. How to Locate (Almost) Anything
  9. Identification

Also genug Material für lange Winterabende… Oder Sommertage, bin schließlich IT-Freak ;-)