Author Archive

Arduino übermittelt Temperaturen

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

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Programming Interactivity: Unlock the Power of Arduino, Processing, and OpenFrameworks

Habe ein neues Buch zu Arduino & Co: Programming Interactivity: Unlock the Power of Arduino, Processing, and OpenFrameworks von Joshua Noble. Was mir an den über 700 Seiten sehr gut gefällt, ist das Hintergrundwissen, das in das Buch eingeflossen ist. Also nicht nur „Pack den Draht da hin und schließ ihn da an“ sondern auch eine Menge an Zusatzinformationen. Habe die fast 40 Euro nicht bereut.

Hier mal die Kapitelübersicht:

  1. Introducing Interaction Design
  2. Programming Basics
  3. Processing
  4. Arduino
  5. Programming Revisited
  6. openFrameworks
  7. Sound and Audio
  8. Physical Input
  9. Programming Graphics
  10. Bitmaps and Pixels
  11. Physical Feedback
  12. Protocols and Communication
  13. Graphics and OpenGL
  14. Detection and Gestures
  15. Movement and Location
  16. Interfaces and Controls
  17. Spaces and Environments
  18. Further Resources

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Raubfliegen im Garten

Im Garten meiner Eltern habe ich eine Raubfliege gefunden, die gerade Beute gemacht hatte.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Mit Powershell Windows Shares auslesen

Hab ich grad in den Weiten des Netzes gefunden:

Get-ChildItem \\bigboy\share  -recurse | where {$_.PSIsContainer} | Get-Acl | Select-Object Path, Owner -ExpandProperty Access

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

LaTeX und Apache Ant

Apache Ant ist das Build-Tool der Wahl für Java. DokuTransData ( >= Homepage hat mit ant_latex ein Tool veröffentlicht, mit dessen Hilfe man LaTeX in den Build-Prozess integrieren kann.

<?xml version="1.0" encoding="UTF-8"?>
 
<project name="AntLaTeX" default="doLaTeX" basedir=".">
 
    <description>Compiles a LaTeX file.</description>
  <taskdef name="latex"    
   classname="de.dokutransdata.antlatex.LaTeX"  
     classpath="ant_latex.jar"/>
 
    <property name="ltx2.file" value="Antrag071105.tex"/>
 
  <target name="doLaTeX">  
    <latex  
      latexfile="${ltx2.file}"  
      verbose="on"  
      clean="on"  
      pdftex="off"  
      workingDir="${basedir}"  
    />  
  </target>
 
</project>

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Mikrotypographie

Typographie läßt sich in Makro- und Mikrotypographie unterteilen. Während sich Makrotypographie mit Dingen wie Satzspiegel und Layout beschäftigt, zählt man zur Mikrotypographie den richtigen Satz von Symbolen, Anführungszeichen und Zahlen. Folgende Dokumente geben einen guten Überblick:

  • Mikrotypographie-Regeln, Teil I von Marion Neubauer PDF
  • Mikrotypographie-Regeln, Teil II von Marion Neubauer PDF
  • Typographische Grundregeln und ihre Umsetzung in LaTeX von Werner Struckmann PDF
  • typokurz – Einige wichtige typografische Regeln von Christoph Bier PDF

Mikrotypografie1:
http://www.dante.de/dante/DTK/PDF/komoedie_1996_4.pdf
Seite 12ff

Mikrotypografie2:
http://www.dante.de/dante/DTK/PDF/komoedie_1997_1.pdf
Seite 25ff

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Broschüre zu LaTeX

Eine kleine LaTeX-Broschüre, die auf zwei Seiten all die Vorzüge des Satzsystems beschreibt, findet man mit den Quellen unter http://latex.silmaril.ie/brochure.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Formulare mit pdfLaTeX

Mit pdfLaTeX lassen sich auch Formulare erstellen, die am Rechner ausgefüllt werden können. Eine gute deutschsprachige Zusammenfassung der verschiedenen Befehle findet man unter http://www.ctan.org/tex-archive/info/pdf-forms-tutorial/de/forms.pdf. Mit PHP lassen sich die Formulareingaben auch kostengünstig weiterverarbeiten, Details finden sich auf http://www.dynamic-webpages.de/php/ref.fdf.php.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Via Batch alle *.tex Dateien übersetzen

Mit der folgenden kleinen Batch-Datei lassen sich unter Windows alle LaTeX Dateien in einem Verzeichnis übersetzen.

For /F %%F IN ('DIR /B *.tex') DO (
CALL pdflatex %%F
)

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Din A4 zum Ausklappen

Einige Seiten einer Diplomarbeit sollen ausgeklappt werden, d.h. auf der rechten Seite einer DIN A3 Seite gedruckt werden, die dann gefaltet und eingebunden wird. Lösungsweg Nr. 1, mit Acrobat Pro eine leere Seite vorn einfügen und dann mit dem PDF-Drucker zwei Seiten auf eine drucken, schlug fehl. Acrobat zeigt in der neuen Datei den Rahmen der einzelnen Seiten. Lösungsweg Nr. 2 lief dann über LaTeX und das pdfpages-Paket.

Für jede der zu druckenden Seiten hatte ich mit Acrobat ein 2-Seiten-Dokument angelegt (wäre natürlich auch mit LaTeX gegangen, ging aber schneller). Seite 1 blieb leer, Seite 2 enthielt die auszuklappende Seite. Schritt 2 war folgendes kleines LaTeX-Dokument:

\documentclass[a3paper]{article}
\usepackage[a3paper,landscape]{geometry}
\usepackage{pdfpages}
\begin{document}
 
\includepdf[nup=2x1,pages=1-2]{79beide.pdf}
 
\end{document}

Mit pdfpages lassen sich PDF-Seiten sehr einfach in ein bestehendes Dokument integrieren, damit war die Angelegenheit in knapp 10 Minuten erledigt. Das leere Dokument habe ich auch mit LaTeX erzeugt:

\documentclass[a4paper]{article}
 
\begin{document}
\phantom{foobar}\pagestyle{empty}
 
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website