florian timm

Informatik

Seite: << | 1 | 2 | >>
27.07.2017

Mini-Wetterstation ADFB

Das erste Projekt mit dem Wemos D1 mini: Eine Mini-Wetterstation.

Dazu wurde der Temperatur- und Luftdrucksensor BMP280 mit dem Wemos über I2C verbunden. Auf dem Wemos läuft MicroPython, das Bootscript verbindet automatisch mit dem WLAN – den Rest erledigt das Script unten in Kombination mit der Bibliothek von Paul Cunnane

WeMos D1 mini BMP280
3V3 VCC
G G
D1 SCL
D2 SDA
R -> D0

Quellcode

import machine
import bme280
import urequests
import time

i2c = machine.I2C, sda=machine.Pin(4))
bme = bme280.BME280

def getData(): d = bme.read_compensated_data() t = d0/100. p = d1/25600. time.sleep(5) d = bme.read_compensated_data() t = t + d0/100. p = p + d1/25600. time.sleep(5) d = bme.read_compensated_data() t = t + d0/100. p = p + d1/25600.

t = t / 3. p = p / 3. return (t,p)
  1. Edit these to suit your particular situation
    api_key = ‘XXXXXXX

host = ‘https://api.thingspeak.com’

def sendData(): data = getData() path = ‘/update?api_key=’ + api_key + ‘&field1’ + ‘=’ + str(data0) + ‘&field2’ + ‘=’ + str(data1)

r = urequests.get(host+path)

sendData()

rtc= machine.RTC
rtc.irq(trigger = rtc.ALARM0, wake=machine.DEEPSLEEP)
rtc.alarm(rtc.ALARM0, 300000)
machine.deepsleep()


23.03.2017

sudo einrichten

Sich nicht ständig als root einloggen zu müssen, hat viele Vorteile – auch im Sinne der Systemsicherheit. Daher empfiehlt es sich, sudo zu installieren und zu nutzen. Damit lässt man zu, dass auch nicht root-User Befehle mit Adminrechten ausführen können.

Einloggen als Admin
su und nachfolgende Passwortabfrage

Installieren von sudo
apt-get install sudo

Nutzer zur sudo-Gruppe hinzufügen
adduser NUTZER sudo

Rechte anpassen
nano /etc/sudoers
und unter sudo ALL=(ALL:ALL) ALL folgendes einfügen
NUTZER __ ALL=(ALL:ALL) ALL__

root ausloggen
exit

sudo-Befehl testen
sudo dir


19.03.2017

Grundlegende Befehle

Oft benötigt man kleine Befehle in der Shell. Die häufigsten Befehle unter Linux sind hier aufgezählt.

In Ordner wechseln
cd /home/timm

In übergeordneten Ordner wechseln
cd ..

In Benutzer-Ordner wechseln
cd ~

Systemauslastung anzeigen (RAM/CPU)
top

Freien Speicher auf Festplatte anzeigen
df -h

System neustarten (root)
shutdown -r now tlw. auch Strg + Alt + Entf

Ausloggen
exit

Aktuellen Prozess abbrechen
Strg + C


19.03.2017

Massenimport in PostGIS

Zur Nutzung des Geoservers empfiehlt es sich, die Daten in eine Datenbank einzuspielen. Oft liegen Geodaten als Shape vor bzw. können leicht aus QGIS oder ArcGIS als solche exportiert werden. Die folgenden Befehle helfen beim Import vieler Shapefiles in einem Rutsch. Als Beispiel wird hier das Digitale Landschaftsmodell vom Bundesamt für Kartographie und Geodäsie importiert.

Wechsel in Nutzerverzeichnis
cd ~

Download der Daten vom BKG und entpacken dieser
wget http://sg.geodatenzentrum.de/web_download/dlm/dlm250-aaa/utm32s/shape/dlm250-aaa.utm32s.shape.ebenen.zip
unzip dlm250-aaa.utm32s.shape.ebenen.zip

Wechsel zu den entpackten Daten
cd dlm250.utm32s.shape.ebenen/dlm250_ebenen

Erstellen eines Bash-Scriptes zum Umformen der Daten in SQL-Dateien…
nano import1

…mit folgendem Inhalt:
for f in *.shp
do
__ shp2pgsql -s 25832 $f public.`basename $f .shp` > `basename $f .shp`.sql__
done

Und eines zweiten zum Import in die Datenbank
nano import2

Mit folgendem Inhalt:
for f in *.sql
do
__ psql -h myserver -d mydb -U myuser -f $f > /dev/null__
done

Die beiden Dateien werden anschließend ausführbar gemacht:
chmod +x ./import1
chmod +x ./import1

Außerdem wird eine Datei erzeugt, in der das Passwort der Datenbank gespeichert wird. Die Datei kann am Ende mittels rm ~/.pgpass gelöscht werden, damit kein Dritter Zugang zum Passwort erhält.
nano ~/.pgpass

Der Aufbau der Datei erflgt nach folgendem Muster:
hostname:port:db:user:passwort

Anschließend werden die Zugriffsrechte der Passwortdatei gesetzt:
chmod 600 ~/.pgpass

Zu guter Letzt werden die beiden Scripte ausgeführt:
.\import1
.\import2


19.03.2017

Geoserver einrichten

apt-get install postgresql-9.4 postgresql-contrib-9.4 sudo
sudo -u postgres psql postgres
\passwd
\quit
apt-get install postgis

Freischalten der Datenbank im Internet
nano /etc/postgresql/9.4/main/pg_hba.conf
Am Ende wird folgende Zeile eingefügt:
host all all * md5

nano /etc/postgresql/9.4/main/postgresql.conf
Die Zeile mit listen_addresses wird zu folgendem geändert:
listen_addresses=’*’
Wichtig: Nicht nur hinten ändern, sondern auch # vor der Zeile entfernen – der Fehler hat mit mehrere Stunden gekostet.

Dann wird der Service neugestartet
/etc/init.d/postgresql restart
…und die Firewall freigeschaltet
ufw limit postgresql

Alternativ:
SSH-Tunnel nutzen

Auf dem lokalen Rechner wird nun pgadmin3 installiert. Bei einem Linuxsystem erfolgt dieses mittels
apt-get install pgadmin3
PGAdmin wird nun gestartet und mit der Datenbank verbunden.

Es wird ein neuer Nutzer und eine neue Datenbank, die diesem Nutzer gehört, angelegt. Mit einem Rechtklick auf Extension der Datenbank kann eine neue Erweiterung hinzugefügt. Die Erweiterungen PostGIS und PostGIS-Topology werden hinzugefügt.

Installieren des TomCat-Servers und Freischalten der Firewall
apt-get install apache2 tomcat8
ufw limit 8080

cd ~
wget http://sourceforge.net/projects/geoserver/files/GeoServer/2.10.2/geoserver-2.10.2-war.zip
apt-get install unzip
unzip geoserver-2.10.2-war.zip geoserver.war
mv geoserver.war /var/lib/tomcat8/webapps/

apt install -t jessie-backports openjdk-8-jre openjdk-8-jre-headless openjdk-8-jdk ca-certificates-java
apt-get remove openjdk-7-jre openjdk-7-jre-headless openjdk-7-jdk default-jre-headless


18.03.2017

Debian-Server-Grundeinrichtung

Ein frischer Server benötigt natürlich einige Grundeinstellungen. Bewährt haben sich vorallem folgende Befehle und Installationen.

Ändern des Passwortes
passwd
(Abfragen folgen)

Neustart (wirft alle “Gäste” raus)
shutdown -r now

Neuer Benutzer
adduser nutzer
(Abfragen folgen)

SSH-Zugriff für root abschalten/Port ändern
nano /etc/ssh/sshd_config
PermitRootLogin yes auf PermitRootLogin no (speichern mit strg+o, schließen strg+x)
/etc/init.d/ssh restart

Firewall installieren / konfigurieren
apt-get install ufw fail2ban
ufw default deny
ufw limit 22 (oder anderen SSH-Port)
ufw enable
ufw status

Login als neuer Nutzer (testweise erstmal als root eingeloggt bleiben)
Neustart (wirft alle “Gäste” raus)
shutdown -r now

Updates installieren
apt-get update && apt-get upgrade

Updates automatisch installieren (außer dist-update)
apt-get install unattended-upgrades
dpkg-reconfigure -priority=low unattended-upgrades

Zeitzone setzen
dpkg-reconfigure tzdata
(Berlin auswählen)

ggf. Neustart
shutdown -r now


20.02.2017

Lightroom installieren

Unter Debian gibt es zwar auch alternativen zur BIldentwicklung wie darktable, doch die letzten 4 Jahre hatte ich nun Lightroom lieb gewonnen und hier auch alle meine Bilder katalogisiert. Auf diese wollte ich nicht verzichten, so dass eine Lösung her musste. Mit Wine wurde diese dann auch gefunden.
Wine stellt unter Linux unter anderem die Win32-API bereit, so dass auch normale WIndows-Programme drauf laufen. Auf der Website von Tobias Bauer fand ich eine Anleitung, wie dieses von staten gehen soll. Auf dieser Erklärung aufbauend, kam ich zu folgender Lösung.

sudo apt-get install wine winetricks
WINEARCH=win32 WINEPREFIX=~/.lightroom wine wineboot
WINEARCH=win32 WINEPREFIX=~/.lightroom winetricks win7
WINEARCH=win32 WINEPREFIX=~/.lightroom wine setup32.exe
WINEARCH=win32 WINEPREFIX=~/.lightroom winetricks corefonts gdiplus colorprofile

Von Lightroom 5.7.1 wird hier die 32-bit Version genutzt. Die obengenannten Befehle können im Terminal im Ordner, in dem die setup32.exe liegt (z.B. auf der Installations-DVD) ausgeführt werden.

Mit dem ersten Befehl sudo apt-get install wine winetricks wird nun Wine und das Hilfsskript winetricks heruntergeladen.
Darauffolgend wird mit WINEARCH=win32 WINEPREFIX=~/.lightroom wine wineboot ein Wine-Präfix angelegt, damit man Lightroom später auch einfach wieder löschen kann. Im Home-Verzeichnis unter .lightroom werden die Dateien gespeichert (normalerweise ist dieses Verzeichnis versteckt). Mit WINEARCH=win32 WINEPREFIX=~/.lightroom winetricks win7 wird dafür gesorgt, dass sich Wine als Windows 7 ausgibt. Dann wird das Setup gestartet mit WINEARCH=win32 WINEPREFIX=~/.lightroom wine setup32.exe (ggf. vorher mit cd in den richtigen Ordner wechseln). Hier muss nichts anders gemacht werden, als unter Windows. Abschließend werden noch paar zusätzliche Dateien installiert mit WINEARCH=win32 WINEPREFIX=~/.lightroom winetricks corefonts gdiplus colorprofile. Dies sorgt dafür, dass die Schriften vorhanden sind, die Fenster richtig dargestellt werden und das richtige Farbprofil vorhanden ist (sonst gibts keine Bilder).
Empfehlenswert ist abschließend noch WINEARCH=win32 WINEPREFIX=~/.lightroom winecfg auszuführen und die Laufwerksbuchstaben so zuzuordnen, wie man sie unter Windows hatte. Dann bleibt die Katalogdatei zwischen Windows und Debian austauschbar bzw. abwechselnd nutzbar. Die Einstellungen hierzu finden sich unter Laufwerke im erscheinenden Fenster.


Seite: << | 1 | 2 | >>