Die Hardware des Solar-Logger

So hat alles angefangen

Die erste Umgebung für die Entwicklung des Solar-Loggers war ein altes HP Notebook auf dem ich Suse 10.2 installiert hatte.

Der Stromverbrauch des Notebooks war ca. 20 bis 45W was einem Jahresverbrauch von ca 365kWh und Kosten von 73€ pro Jahr bei einem Preis von 0,2€ je kWh entspricht.

Das Alix 1.C Bord erster Versuch

Nach einigem hin und her Überlegen hab ich mich dann irgend wann dazu entschlossen ein Alix Bord zu kaufen um den Solar-Logger stromsparender zu betreiben.

Das Alix Bord benötigt maximal 8W was einem Jahresverbrauch von ca. 15€ pro Jahr entspricht.

Der erste Schritt um dieses Bord zum Leben zu erwecken ist es ein Linux auf eine CF Karte zu istallieren. Ich habe mich für ein Debian Linux entschieden. Um nun ein Linux bootfähig auf eine CF Karte zu bringen, benötigt man zuerst einen Rechner auf dem ein Linux läuft. Dort lät man sich die Datei boot.img.gz vom Debian Server im Verzeichniss

/hd-media/
herunter und spielt das Image auf die CF Karte die ich mit hilfe eines PCMCIA Adapteurs in mein Notebool gesteckt habe. Der Befehl hierführ lautet
# zcat boot.img.gz > /dev/hde
wobei hde die CF Karte bezeichnet. Anschließend muss man die Karte mit dem Befehl
# mount /dev/hde /mnt
mounten und die Datei initrd.gz mit der gleichnahmigen Datei vom Server aus dem Verzeichniss
/netboot/debian-installer/i386/
ersetzen, da sonst keine Netzwerkunterstützung bei der Installation vorhanden ist.

Wenn man jetzt die CF Karte in das Alix Bord steckt und einschaltet startet eine Debian Linux Installation, die die nötigen Daten zur Installation aus dem Internet läde. Nachdem man alle Fragen beantwordet und möglichst wenig installiert hat, hat man ein Linux das ungefähr 500MB von von der CF Karte belegt.





Das Alix 1.C Bord aktuelle Version

Da eine CF Karte bekanntlich nicht so lange hält wenn sie Ständig geschrieben wird habe ich mein Alix Bord um eine Festplatte erweitert und Debian noch einmal neu mit Hilfe eines USB CD-Rom Laufwerkes installiert. Die Installation verlief problemlos.








Als nächstes habe ich das Packet "ssh" instaliert um mit PuTTy und WinSCP3 auf das Alix Bord zugreifen zu können. Um das Packet zu instalieren muss man den Befehl

# apt-get install ssh
als root User eingeben.

Dann braucht man natürlich auch noch einen WebServer, den man mit folgendem Befehl installiert:

# apt-get install apache2

PHP wäre auch nicht schlecht:

# apt-get install php5

und nen MySQL Server braucht man auch noch:

# apt-get install mysql-server-5.0

Damit sich PHP mit dem MySQL Server verträgt braucht man auch noch:

# apt-get install php5-mysql
Jetzt muss man noch in der Datei
/etc/php5/apache2/php.ini
noch den ";" vor der Zeile
extension=mysql.so
entfernen.

und damit apache2 mit PHP kann noch das Packet:

# apt-get install libapache2-mod-php5
Nun muss man noch den WebServer neu starten mit
# apache2ctl restart
Wenn man jetzt auf einem Webbrowser im Netz die IP Adresse des Alix Bords eigibt sieht man die Default Seite des WebServers.

Damit man PHP Skripte von der Shell aus starten kann braucht man:

# apt-get install php5-cli

Jetzt kann man seine Eigene Webseite im Verzeichniss "/var/www" ablegen und die CGI Skripte in Verzeichniss "/usr/lib/cgi-bin/".

Zur besseren Verwaltung des MySQL Servers habe ich dann noch "phpmyadmin" instaliert.

# apt-get install phpmyadmin

Wenn man jetzt "http://(IP-Adresse)/phpmyadmin/" aufruft kann man sehen ob phpmyadmin funktioniert. Mit Hilfe der Seite "http://(IP-Adresse)/phpmyadmin/scripts/setup.php" kann man jetzt eine Konfiguration erstellen, die man im Verzeichniss "/etc/phpmyadmin" ablegen muss. Mit einem weiteren Aufruf von "http://(IP-Adresse)/phpmyadmin/" kann man jetzt die MySQL Datenbank verwalten.

Um Backups der MySQL Datenbank sehr konfortabel erstellen zu können ist das Programm PhpMyBackupPro sehr zu empfehlen.

Um den PC mit Hilfe eines Brousers zu Konfigurieren ist das Projekt "Webmin" echt super. Zu finden ist es hier: http://www.webmin.com/

Webmin ist ein Tool, mit dem man über einen Browser ein Linux-System administrieren kann. Vor einiger Zeit war Webmin in den offiziellen Paketlisten zu finden und konnte über “apt-get install webmin” installiert werden, dies ist allerdings leider nicht mehr der Fall. Es gibt aber eine andere Möglichkeit, Webmin zu installieren. Zuerst einmal muss man die benötigten Pakete installieren:

# apt-get install libauthen-pam-perl libio-pty-perl libmd5-perl libnet-ssleay-perl

Danach läd man sich das Webmin “Debian Package” von der offiziellen Webmin-Seite runter. Das geht am besten direkt in dem Debian, auf dem man den Webmin installieren möchte.

# wget link_zum_webmin_paket.deb

Nach dem herunterladen installiert man das Paket

# dpkg -i paketname.deb

Nach der erfolgreichen Installation kann man den Webmin erreichen über folgende Adresse:

# https://name_oder_ip:10000

Nach der erfolgreichen Anmeldung kann die Administration beginnen .

Um die Uhrzeit des Rechners automatisch zu Setzen ist dieses Packet ganz nützlich:

# apt-get install chrony

Wenn man jetzt eigene Programme übersetzen will braucht man noch ein paar Tools:

# apt-get install make
# apt-get install gcc
# apt-get install patch

Wenn man SVN nutzen will muss man noch folgendes ausführen:

# apt-get install subversion

Um die aktuellste Version des RRD Tools zu bekommen folgendes ausführen:

# apt-get install rrdtool

Nun ist es Zeit den Solar-Logger zu installieren.

Zuerst benötigen wir "YASDI". Dazu wechseln wir in folgendes YASDI Verzeichnis und führen dort ein make aus.

# cd ~/Solar-Logger-0.3/LIBs/lib_yasdi-1-7-2-src+patch/projects/linuxlib
# make

Wenn wir jetzt versuchen YASDI mit

# ./yasdishell

kann es sein das eine Fehlermeldung ähnlich dieser ausgegeben wird.

./yasdishell: error while loading shared libraries: libyasdimaster.so: cannot open shared object file: No such file or directory

Um dieses Problem zu beheben müssen wir alle ".so" Dateien noch ins Richtige Verzeichnis kopieren.

# cp *.so /lib/

Danach sollte sich YASDI starten lassen.
Um jetzt die Verbindung zu den WR zu testen muss man jetzt noch die yasdi.ini abändern.
Bei mir schat sie so aus:

[DriverModules]
Driver0=libyasdi_drv_serial;

[COM1]
Device=/dev/ttyS0;
Media=RS485;
Baudrate=1200;
Protocol=SMANet;


Als nächstes benötigen wir die FTP Lib.
Dazu wechseln wir in das Verzeichnis und führen dort make aus.

# cd ~/Solar-Logger-0.3/LIBs/lib_ftpLIB/ftplib-klaus
# make

Dann noch die ".so" Dateien an die richtige Stelle kopieren

# cp *.so* /lib/

Dann noch mit folgendem Aufruf testen ob die FTP Lib funktioniert.

# ./qftp

Wenn keine Fehlermeldung ausgegeben wird waren wir erfolgreich.

Nun müssen wir noch den Solar-Logger übersetzen.

# cd ~/Solar-Logger-0.3
# make

Anschliesend müssen noch alle INI Dateien bearbeitet werden.
Ist das geschehen kann der Solar-Logger mit dem Befehl

# ./Solar-Logger -d

gestartet werden. Der Logger läuft jetzt als Deamon.

Um MySQL in einem C Programm nutzen zu können benötigt man folgendes Packet:

# apt-get install libmysqlclient15-dev

Im makefile kann man die folgenden Skipte verwenden:

$(mysql_config --cflags)
$(mysql_config --libs)

Die Startzeit des Alix Bordes beträgt bei mir ca. 2 min mit Monitor. Wenn ich den Monitor abstecke kann es aber bis zu 30min dauern da Debian dann vergeblich einen Monitor sucht. Das Problem kann behoben werden indem man an stelle des Monitors einen Stecker, mit einem 220 Ohm Widerstand zwischen Pin 5 und 12, an den Monitoranschluss steckt. Mit diesem Stecker startet Debian wieder in gewohnter Zeit ca. 2 min.