Hier ist der passende Quellcode.
Nun bauen wir etwas Struktur in unsere Datei ein. Wir verwenden eine Überschrift (header - h1), einen Absatz (paragraph - p) und eine nicht nummerierte Liste (ul) mit Listeneinträgen (li). Wie in html üblich werden die entsprechenden Tags <geöffnet> und hinterher wieder </geschlossen>. Ein offensichtlicher Slash / macht hier den Unterschied.
Dazu obiger Quelltext in einer Datei.
Noch sieht die Datei nicht sehr schön aus. Standartmäßig wird eine schwarze Roman-Schriftart verwendet, der Hintergrund ist weiss. Das kann man mit Angaben zum Stil (style) ändern.
Auch hier wieder der Quelltext in einer Datei.
Für interaktive Eingaben wäre es doch schön, wenn man.
Hier die HTML-Datei mit Hinweis auf die Javascript-Datei im Kopf (head).
Wie schon Javascript wird auch CSS in eine extra Datei ausgelagert, da die Formatierung der Darstellung vom eigentlichen Text getrennt werden soll. Außerdem kann man so eine einheitliche Darstellung erreichen, Angaben für viele Dateien verwenden und sehr leicht zentral ändern. Beginnen wir wieder mit der HTML-Datei und dem Link im Kopf (head):
Das erste "Hallo Welt" in VBA ist in 5 Schritten erreicht. Wir öffen ein leeres Excel-Dokument und drücken F11. Unter Start - Neu - Formular erstellen wir ein leeres Template. Dorthin fügen wir einen Button ein. Das war's für das Formular
Nun müssen wir noch eine Aktion für den Button progammieren. Einfach einen Doppelklick und es öffnet sich ein neuer Reiter mit "whatsoever".
Dieses einfache Progamm ist in den Beispielen (auf englisch) standardmäßig unter "Blink" enthalten. Dennoch beschreiben wir hier die ersten Schritte bis zum ersten ausgeführten Programm. Es funktioniert mit Arduino uno, nano oder einem selbstgebautem Computer aus ATmega328 auf einem Breadboard. Im NaWi-Kurs der 5. Klassen an der Eichenschule haben wir jenen am 12. Januar 2016 aufgebaut. So sah er dann aus:
Beispielhaft verwenden wir im weiteren den Arduino Uno. Jenen kann man auf ebay für 3,89 € aus Hongkong versandkostenfrei bestellen. Das passende USB-Kabel ist dabei. Auf unserem PC installieren wir die Software Arduino von www.arduino.cc. Danach verbinden wir den Arduino per USB. Die passenden Treiber werden automatisch installiert. Die Software öffnet mit einem leeren Gerüst für ein Programm:
Unter Punkt 1 haben wir bereits den selbstgebauten Arduino betrachtet. Die Idee dazu stammte von einem englischen Video auf Youtube. Kurz zusammengefasst benötigen wir die folgenden Bauteile:
Beschreibung.
Beschreibung.
Beschreibung.
Im Bundle mit einem Arduino Uno kostet das Set nur etwa 11,-€. Das TFT-Display hat eine Auflösung von 320x200 Punkten und wird von einem H4323 mit 48kByte RAM angesteuert. Damit hat das Display mehr Speicher als unser Arduino. Ganze Bilder passen nur zu einem Bruchteil in den Speicher des Arduino. Daher ist gleich ein SD-Kartenleser unter den Display angebracht. Hier können mehr als genug Dateien abgelegt werden.
Beschreibung.
Als Bausatz erhält man eine nutzlose Box für 12 Euro. Doch mit einem Arduino kann man ihr sogar etwas wie ein Eigenleben schenken. Das sieht dann so aus:
Oder auch so (im Duell).
Für die obigen Projekte benötigt man einige Bibliotheken, die man vor dem Compilieren einbinden muss. Ich habe diese hier einmal zusammengefasst:
Neuestes Build von OpenWrt auf den WR703N flashen. (z.B. attitude adjustment r33212 mit kernel 3.3.8 von 2012-08-21) Am LANport ist jetzt 192.168.1.1, dorthin mit telnet connecten. passwd eingeben und damit das rootpasswort ändern. Neue Verbindung auf 192.168.1.1 über ssh Ändern der IP in /etc/config/network
Der Router soll als Client im WLAN registriert werden. Dazu das LAN-Kabel anschließen. Seine IP ist jetzt 192.168.1.2. Wir verbinden uns per putty über ssh mit Usernamen und Passwort. Die WLAN-Einstellungen können wir unter /etc/config/wireless
verändern. Eine neue IP wird automatisch per dhcp zugewiesen.
Die Paketverwaltung unter OpenWRT erfolgt mit opkg. Für unseren Temperaturserver benötigen wir owfs (One Wire File System). Dazu geben wir ein:
Nach dem Start von owfs werden alle 1wire-Devices in das Verzeichnis /tmp/1wire/
gemountet. Unsere Messdaten schreiben wir nach /tmp/owdata/
.
Wir erstellen nun einige Scripte, die die Messdaten auslesen, speichern und per ftp auf einen Server laden. Unser erstes Script heißt startowfs
und soll ein Verzeichnis /tmp/1wire erstellen (so nicht vorhanden) und owfs in diesem Verzeichnis starten:
Das Script tempscript
liest die Temperatur aus und schreibt die Daten in eine Datei $datum.log. Es wird später regelmäßig aufgerufen, zum Beispiel alle 10 Minuten.
Das nächste Script upload
lädt eine beliebige Datei (Übergabe des Dateinamens einfach hinter dem Script, abgefragt mit $1) per ftp auf die Webseite hoch:
Am Anfang jeder Stunde (erste Minute) wird die aktuelle Temperatur, Auslastung der CPU etc. in eine Javascriptdatei data.js
exportiert und durch folgendes uploadscript
hochgeladen. So hat man stündlich die aktuellen Temperaturwerte beim Aufruf der Webseite:
Die aktuellen Messungen des Tages werden zur 58. Minute hochgeladen. Damit erhält man stündlich das Update der Messungen der letzten Stunde und überschreibt nicht die Werte des Vortages, sondern hat 2 Minuten vor Mitternacht alle Daten des Tages aktualisiert. Das Script heißt einfach uploadday
.
Im Verzeichnis /usr/1wire
befinden sich jetzt also fünf Scripte: startowfs
, tempscript
, upload
, uploadscript
und uploadday
. Diese sollten regelmäßig aufgerufen werden. Das erledigt die Datei crontab
in /etc/crontabs/root
und sieht wie folgt aus:
Das erste Script wird jeden Monat/Woche/Tag/Stunde im Abstand von jeweils 10 Minuten aufgerufen. Das zweite Script wird stündlich zur ersten Minute gestartet, das letzte Script stündlich in der 58. Minute. Nun müssen wir den cron-Daemon durch /etc/init.d/S60cron
starten und unsere crontab ausführen lassen:
Das ganze sollte auch nach dem Booten neu ausgeführt werden, daher wird in /etc/init.d/example
das Folgende eingetragen:
Nun sind die Dateien im Verzeichnis des Webspace. Sie müssen aber noch angezeigt werden. Dazu schreiben wir eine entsprechende html-Datei. Ausgewertet werden die beiden Dateien /data/JJJJMMTT.log
mit den Einträgen JJJJMMTT HH:MM Temperatur
untereinander und Werten von allen 10 Minuten. Weiterhin wird die Datei /data.js
mit Einträgen zur uptime_now, Temperatur tempe und dem Wlansignal wlan eingebunden. Der Quelltext einer möglichen index.html sieht folgendermaßen aus:
Es sind offensichtlich 5 Scripte eingebunden: data.js für oben angegebene Daten, dann jquery zum Auswerten der Daten in JJJJMMDD.log und Einbinden in die html-Datei. Von Google ist google.com/jsapi für den Graphen eingebunden. Vorübergehend werden auch die Daten von tempdata eingelesen und ausgewertet und schlussendlich ist noch dynamic.js eingebunden, um mit jquery und Google die Daten auszuwerten. Letztgenannte hat folgenden Inhalt:
Diese gesamte Beschreibung gibt es auch als PDF-Datei auf dieser Seite. Der Quelltext und alle Dateien finden sich in der temperatur.zip zum Herunterladen.
Projektbeschreibung folgt. Zieladresse light.hofkoh.de