RaspberryPi

Aus www.electronic-man.randschtoischlotzer.de
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Updates & Upgrades

sudo apt-get update
sudo apt-get upgrade

AVM FRITZ!WLAN USB Stick installieren/einrichten

  • Konrolle ob Hardearetyp "zutrifft":
lsusb

eingeben.

  • Die Ausgabe sollte so aussehen:
ID 057c:8401 AVM GmbH Fritz!WLAN N [Atheros AR9001U]
  • Freie Firmware intallieren:
sudo apt-get install firmware-linux-free
  • WLAN-Key einstellen/angeben
sudo pico /etc/wpa_supplicant/wpa_supplicant.conf
  • Inhalt der Datei anpassen + speichern. Z. B.:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={ ssid="yyy" scan_ssid=1 proto=RSN group=CCMP pairwise=CCMP key_mgmt=WPA-PSK psk="xxxxxxxxxxxxxxxx" }

  • In der Zeile ssid="yyy" den Netznamen (SSID) eintragen.
  • In der Zeile psk="xxxxxxxxxxxxxxxx" den WLAN-Schlüssel eintragen.
  • Test ob WLAN/WiFi-Netze gefunden werden:
sudo ifdown wlan0 
sudo ifup  wlan0 
sudo iwlist wlan0 scan

oder

sudo iwlist wlan0 scan |grep "ESSID\|Quality"

Realtek RTL8188CUS Mini-USB Stick installieren/einrichten

  • Kontrolle ob Hardwaretyp "zutrifft":
lsusb

eingeben.

  • Die Ausgabe sollte so aussehen:
0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
ifconfig

eingeben.

  • Die Ausgabe sollte so ähnlich aussehen:

wlan0     Link encap:Ethernet  Hardware Adresse 00:13:ef:90:4b:2a
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

  • nach verfügbaren Netzwerken scannen:
sudo iwlist wlan0 scan
  • Die Ausgabe sollte so ähnlich aussehen:

wlan0     Scan completed :
          Cell 01 - Address: 24:65:11:86:E7:53
                    ESSID:"xxx"
                    Protocol:IEEE 802.11bgn
                    Mode:Master
                    Frequency:2.412 GHz (Channel 1)
                    Encryption key:on
                    Bit Rates:300 Mb/s
                    Extra:rsn_ie=3014010xxxxxx040100000fac040100000xxc020000
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown:    DD6F0050F204104A0001101044000102103B00010310470010E5F1E6174F806C1C241124651186E74F1021000341564D1023000446426F78102400043030303010420004303030301054 000800060050F20400011011000446426F78100800022788103C0001031049000600372A000120
                    Quality=81/100  Signal level=63/100 

  • WLAN-Key einstellen/angeben
sudo pico /etc/wpa_supplicant/wpa_supplicant.conf
  • Inhalt der Datei anpassen + speichern. Z. B.:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={ ssid="yyy" key_mgmt=WPA-PSK psk="xxxxxxxxxxxxxxxx" }

  • In der Zeile ssid="yyy" den Netznamen (SSID) eintragen.
  • In der Zeile psk="xxxxxxxxxxxxxxxx" den WLAN-Schlüssel eintragen.
  • Neu starten
sudo reboot
  • Test ob IP-Adresse bezohen wurde:
sudo ifconfig wlan0
  • Ausgabe sollte so Änlich aussehen:

wlan0     Link encap:Ethernet  Hardware Adresse 00:13:ef:xx:xx:xx
          inet Adresse:192.168.xxx.xxx  Bcast:192.168.xxx.xxx  Maske:255.xxx.xxx.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:45 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:15320 (14.9 KiB)  TX bytes:1398 (1.3 KiB)

Quelle:

  • Stromsparmodus abschalten:

dazu eine Datei mit:

sudo nano /etc/modprobe.d/8192cu.conf

anlegen.

  • Inhalt:
# Disable power saving
options 8192cu rtw_power_mgnt=0 rtw_enusbss=0  

Kontrolle:

cat /sys/module/8192cu/parameters/rtw_power_mgnt
cat /sys/module/8192cu/parameters/rtw_enusbss

Mögliche Parameter anzeigen:

ls /sys/module/8192cu/parameters/


Quelle1: Quelle2: Quelle3:

TFTP-Server installieren

  • Server installieren:
sudo apt-get install tftpd-hpa
  • Einstelllungen anpassen:
sudo nano /etc/default/tftpd-hpa

Inhalt der Datei wie folgt ändern:

TFTP_USERNAME=”tftp”
TFTP_DIRECTORY=”/srv/tftp”
TFTP_ADDRESS=”0.0.0.0:69″ 
TFTP_OPTIONS=”–secure -4
  • Server neu starten:
sudo service tftpd-hpa restart

Quelle:

Hinweis: Dateien in /srv/tftp ablegen.

FTP-Server installieren:

sudo apt-get install vsftpd
  • FTP-Server konfigurieren:
sudo nano /etc/vsftpd.conf
  • Folgende Änderungen (Auskommentieren) machen:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
local_umask=022
  • Neuen Nutzer hinzufügen
sudo useradd -m -s /sbin/false -g users ftpuser
  • Kennwort setzen
 sudo passwd ftpuser
  • Sicherheitseinstellungen vornehmen:
sudo nano /etc/pam.d/vsftpd
  • PAM konfigurieren (Auskommentieren)
#auth   required        pam_shells.so
  • Server neu starten:
sudo service vsftpd restart
  • Berechtigungen setzen:
sudo chmod a-w /home/ftpuser

Quelle:

Python -Setuptools installieren:

sudo apt-get install python-setuptools

PIP installieren:

sudo apt-get install python-pip

Feedparser installieren:

sudo pip install feedparser

Quelle:

Cron-Logging einstellen

sudo pico /etc/rsyslog.conf
  • Auskommentieren (Rubrik:
###############
#### RULES ####
###############)
# cron.*                          /var/log/cron.log

zu:

cron.*                          /var/log/cron.log 
  • Cron neu starten:
sudo /etc/init.d/rsyslog restart

Quelle:

Uhrzeit per NTPDATE synchronisieren

sudo apt-get purge ntp 
sudo dpkg-reconfigure tzdata
sudo apt-get install ntpdate

Quelle:

Cron - Einstellungen aus Datei "Einstellungen_crontab.txt" importieren:

sudo crontab ./Einstellungen_crontab.txt

Fernseher über HDMI-CEC steuern

CEC-Client installieren, normales Paket

sudo apt-get install cec-utils

CEC-Client installieren, Neue Anleitung

CEC-client installieren:
  • das Erste ist den RPI auf die letzen Paketstand zu bringen:
sudo apt-get update && sudo apt-get dist-upgrade
sudo rpi-update
sudo reboot
  • als nächstes installiere die Voraussetzungen um libcec zu schaffen:
sudo apt-get install git cmake g++-4.8 checkinstall liblockdev1-dev libudev-dev libxrandr-dev python-dev swig
  • clone das pluse-eight libcec repository:
cd /usr/src 
sudo git clone --recursive git://github.com/Pulse-Eight/libcec.git
  • erzeuge die Platformbibliothek:
cd /usr/src/libcec/src/platform
sudo mkdir build
cd build
cmake -DCMAKE_CXX_COMPILER=g++-4.8 ..
sudo cmake -DCMAKE_CXX_COMPILER=g++-4.8 ..
sudo make
sudo checkinstall
  • bilde letzlich libcec:
cd /usr/src/libcec
sudo mkdir build
cd build
sudo cmake -DRPI_INCLUDE_DIR=/opt/vc/include -DRPI_LIB_DIR=/opt/vc/lib -DCMAKE_CXX_COMPILER=g++-4.8 -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=1 ..
sudo make
sudo -s
export LIBRARY_PATH=/opt/vc/lib
checkinstall

Quelle:

cec-client installieren

sudo apt-get install autoconf build-essential git liblockdev1-dev libtool libudev-dev pkg-config
git clone git://github.com/Pulse-Eight/libcec.git

cd libcec/
./bootstrap
./configure --with-rpi-include-path=/opt/vc/include --with-rpi-lib-path=/opt/vc/lib --enable-rpi 
make
sudo make install
sudo ldconfig


Quelle

Test

cec-client -l

Fernseher per CEC-Client einschalten

echo "on 0" | sudo cec-client -s -d 1

Fernseher per CEC-Client ausschalten

echo "standby 0" | sudo cec-client -s -d 1

Power-Status per CEC-Client auslesen

echo "pow 0" | sudo cec-client -s -d 1

Fernseher per CEC-Client auf HDMI1 umschalten

echo "tx 4F 82 10 00" | cec-client -s

Fernseher per CEC-Client auf HDMI4 umschalten

echo "tx 4F 82 40 00" | cec-client -s

Fernseher wieder auf TV umschalten

echo "txn 40 9D 00 00" | cec-client -s

Quelle

Sprache des Fernsehers rausfinden

echo 'lang 0' | cec-client -t p -p 1 -d 1 -s | tail -n1 | grep 'language' | awk '{print $3}'

Quelle

Befehle von "cec-client" anzeigen

echo h | cec-client -s -d 1

Ausgabe:

opening a connection to the CEC adapter...

================================================================================
Available commands:

[tx] {bytes}              transfer bytes over the CEC line.
[txn] {bytes}             transfer bytes but don't wait for transmission ACK.
[on] {address}            power on the device with the given logical address.
[standby] {address}       put the device with the given address in standby mode.
[la] {logical address}    change the logical address of the CEC adapter.
[p] {device} {port}       change the HDMI port number of the CEC adapter.
[pa] {physical address}   change the physical address of the CEC adapter.
[as]                      make the CEC adapter the active source.
[is]                      mark the CEC adapter as inactive source.
[osd] {addr} {string}     set OSD message on the specified device.
[ver] {addr}              get the CEC version of the specified device.
[ven] {addr}              get the vendor ID of the specified device.
[lang] {addr}             get the menu language of the specified device.
[pow] {addr}              get the power status of the specified device.
[name] {addr}             get the OSD name of the specified device.
[poll] {addr}             poll the specified device.
[lad]                     lists active devices on the bus
[ad] {addr}               checks whether the specified device is active.
[at] {type}               checks whether the specified device type is active.
[sp] {addr}               makes the specified physical address active.
[spl] {addr}              makes the specified logical address active.
[volup]                   send a volume up command to the amp if present
[voldown]                 send a volume down command to the amp if present
[mute]                    send a mute/unmute command to the amp if present
[self]                    show the list of addresses controlled by libCEC
[scan]                    scan the CEC bus and display device info
[mon] {1|0}               enable or disable CEC bus monitoring.
[log] {1 - 31}            change the log level. see cectypes.h for values.
[ping]                    send a ping command to the CEC adapter.
[bl]                      to let the adapter enter the bootloader, to upgrade
                          the flash rom.
[r]                       reconnect to the CEC adapter.
[h] or [help]             show this help.
[q] or [quit]             to quit the CEC test client and switch off all
                          connected CEC devices.
================================================================================

CEC-Codes herausfinden

Quelle

alle HDMI-CEC Geräte anzeigen

echo scan | cec-client -s -d 1

Python HDMI-CEC

Link1 Link2

Projekt: Raspberry spielt mit IR-Lichtschranke als Sensor eine MP3-Datei ab

Lichtschranke.png

Materialien:

Hardware:

  • IR-Lichtschranke aus Ausbildung zum Kommunkationselektroniker bei der DBP/Deutschen Telekom Modul 2.11.06 bestehend aus:
  1. Sender
  2. Empfänger mit Relais
    Datei:IR-Lichtschranke Modul 2-11-06.pdf
  • 2 SteckerNetzteile mit möglichst guter Gleichrichtung. Eingang: 230V ~ Ausgang: 12V min. 200mA
  • RaspberryPi Model B
  • 1 SteckerNetzteil mit MiniUSB-Anschluss zum Betrieb des RaspberryPi (z. B. Ansmann Micro USB Charger 1A). Eingang: 230V ~ Ausgang: 5V max. 1A
  • 16 GB SD-Karte
  • "Aktive" Lautsprecherboxen (am besten mit Lautstärkeregler) für PC mit 3,5mm Klinkenstecker-Anschluss oder passendem Adapter.

Software:

  • NOOBS 1.4.0 (Release date: 2015-02-18) Quelle:
  • SD Formatter 4.0 for SD/SDHC/SDXC Quelle:

Hardware Installation:

  • Die zwei Relaiskontakte für dem Schliesser der Lichtschranke (3-poliger Schraubverbinder am DIL-Relais auf der Platine) mit 2 Drähten:
    1x an PIN (Ground)
    1x an PIN (GPIO24)
    des GPIO-Steckers des RaspberryPi anschliessen:

GPIO LightBarrier.png

Software Installation:

  • NOOBS installieren wie hier beschrieben
  • SD-Karte in RaspberryPi stecken
  • Strom anschliessen und booten
  • in der grafischen Oberfläche "Deutsch + Deutsche Tastatur" einstellen
  • Raspbian auswählen und installieren lassen
  • Neu starten
  • raspi-config ausführen - Punkte:
 configure_keyboard - Set keyboard layout
 change_pass - Change password for 'pi' user
 change_locale - Set locale

Anmerkung: Am besten alle 3 deutschen 'locales' auswählen + die mit UTF-8 als aktuelle setzen.

 change_timezone - Set timezone

durcharbeiten.

Einrichten

  • Raspbian auf den "neusten Stand" bringen:
sudo apt-get update
sudo apt-get upgrade
  • MP3-Software installieren (alternativ geht auch aplay , dann eben mit .wav-files (sollte vorinstalliert sein):
sudo apt-get install mpg321
  • ALSA-Sound-Werkzeuge (falls nicht vorhanden):
sudo apt-get install alsa-utils
  • optional - Wenn man später mit Python arbeiten will (falls nicht vorhanden):
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio
  • Dateien:
lightbarrier.sh
lightbarrier_ini.sh
hwk.mp3

Nach Verzeichnis /home/pi kopieren. Z. B. über FTP-Zugriff oder vom Raspberry aus über sudo wget --ftp-user=Benutzer --ftp-password=Kennwort ftp://ftp.server.net/hwk.mp3

  • Rechte der Dateien z. B. mit
sudo chmod 755 *

auf ausführbar setzen.

  • Datei /etc/rc.local editieren:
sudo nano /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sudo /home/pi/lightbarrier_ini.sh
sudo /home/pi/lightbarrier.sh
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi
exit 0
  • Audio Ausgang auf 3,5mm Klinke (grüne Buchse) einstellen
sudo amixer cset numid=3 1
  • Kontrolle:
 sudo amixer cget numid=3 1

sollte so ausehen:

numid=3,iface=MIXER,name='PCM Playback Route'
  ; type=INTEGER,access=rw------,values=1,min=0,max=2,step=0
  : values=1
  • Lautstärke auf Maximum setzen:
amixer sset 'PCM' 100%
  • Raspberry neu booten
sudo reboot

bash-Scripte

  • /home/pi/lightbarrier_ini.sh:
#!/bin/bash

# export GPIO pin 24 and set to input with pull-up
echo "24" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio24/direction
echo "high" > /sys/class/gpio/gpio24/direction
  • /home/pi/lightbarrier.sh:
#!/bin/bash

# export GPIO pin 24 and set to input with pull-up is done by seperate script "lightbarrier_ini.sh" because this should be done only once

# monitor GPIO pin 24 (wiringPi pin 5) for light-barrier signal

# wait for pin to go low
while [ true ]
do
if [ "$(cat /sys/class/gpio/gpio24/value)" == '0' ]
then
 echo "playing mp3 ..."
 #exit 0
 mpg123  /home/pi/hwk.mp3
fi
sleep .1
done

Fehlersuche, Tuning ...

  • Die sleep-Anweisung in obigem Script ist eine Art "Auslöse-Hysterese" ... je nach Länge der MP3-Datei ...
  • Zugriffsrechte auf z. B.
 audio:x:29:pi,root
 sys:x:3:pi,root
 gpio:x:1003:pi,root
anpassen.
  • Kontrolle:
less /etc/group
  • Ändern z. B.:
sudo usermod -aG gpio pi
  • Lautstärkeregler (ALSA) "aufgedreht" + Regler an Aktivboxen + eingeschaltet?
  • richtiger Audio-Ausgang mit amixer gesetzt?
  • Verkabelung des Relaiskontaktes? Kontrolle ob am GPIO24 richtig eingelesen wird:
cat /sys/class/gpio/gpio24/value

USB-Sticks komfortabel mounten

  • Werkzeuge installieren:
sudo apt-get install usbmount 
  • Rechte (Schreiben) anpassen:
sudo nano /etc/usbmount/usbmount.conf

Zeile in:

FS_MOUNTOPTIONS="-fstype=vfat,gid=users,dmask=0007,fmask=0117"

ändern

Quelle:

Windows-Netzwerkfreigabe mounten

  • CIFS-Software installieren
sudo apt-get install cifs-utils
  • Verzeichnis erstellen
mkdir /media/nas
  • Freigabe mounten:
sudo mount.cifs //<IP-Adresse des Servers>/<Freigabename> /media/nas -o user=<Benutzername>,pass=<Passwort>,sec=ntlm

[Quelle: http://www.forum-raspberrypi.de/Thread-freigegebenen-ordner-einbinden?pid=41711#pid41711]

... automatisch bei Boot

  • z. B. Bash-Script mountscript.sh mit folgendem Inhalt erstellen:
#!/bin/bash
sudo mount.cifs //server/share /media/y: -o user=Benutzer,pass=Kennwort,sec=ntlm,iocharset=utf8
  • script ausführbar machen:
sudo chmod +x mountscript.sh
  • Script bei boot aufrufen - dazu in /etc/rc.local vor der Zeile mit exit 0 einfügen:
/home/pi/mountscript.sh &
  • per:
sudo raspi-config

im Punkt:

3 Boot Options                 Configure options for start-up

den Unterpunkt:

B2 Wait for Network at Boot Choose whether to wait for network connection during boot line

auf:

 Waiting for network on boot is enabled

stellen.

RaspberryPi per Script sichern

  • Script downloaden:
wget http://www.linux-tips-and-tricks.de/raspiBackupInstall.sh -O raspiBackupInstall.sh -q && sudo bash raspiBackupInstall.sh
  • Script ausführen:
sudo /usr/local/bin/raspiBackup.sh -p /media/nas -t dd -z -v

Quelle:

RDP einrichten

  • X-VNC-Server deinstallieren (bei neueren RPi-Images ~nach 6/2016)
sudo apt-get purge realvnc-vnc-server
sudo apt-get install xrdp 
  • weitere Einstellmöglichkeiten (nicht getestet):
/etc/xrdp/xrdp.ini und /etc/xrdp/sesman.ini

Quelle: Quelle2:

Email einrichten

https://rpi.tnet.com/project/faqs/smtp

Proxy einstellen (Raspbian)

Falls sich Ihr Raspberry Pi hinter einem Proxy-Server befindet, müssen Sie diesen für ausgehende HTTP-, HTTPS- und möglicherweise auch FTP-Verbindungen eintragen. Dazu erstellen Sie die Datei /etc/profile.d/proxy.sh mit einem Editor.

pi@raspberrypi ~ $ sudo vi /etc/profile.d/proxy.sh
  • Fügen Sie die folgenden Zeilen in die Datei ein und passen die IP-Adressen und Portnummern entsprechend Ihrem Proxy-Server an.
export http_proxy=http://192.168.10.1:3128
export https_proxy=http://192.168.10.1:3128
export ftp_proxy=http://192.168.10.1:3128
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$https_proxy
export FTP_PROXY=$ftp_proxy

Sollte für den Zugriff auf den Proxy-Server eine Authentifizierung mit Benutzername und Passwort nötig sein, können Sie diese Daten wie folgt angeben.

export http_proxy="http://username:password@192.168.10.1:3128"
export https_proxy="http://username:password@192.168.10.1:3128"
export ftp_proxy="http://username:password@192.168.10.1:3128"
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$https_proxy
export FTP_PROXY=$ftp_proxy

Wenn Sie Ihre aktuelle Terminal-Sitzung beenden und sich erneut anmelden, werden die Einstellungen automatisch geladen.

Quelle:

sudo nano /etc/apt.conf.d/10proxy
  • Inhalt:
Acquire::http::Proxy "http://proxy_server_address:port";

Quelle2:

sudo nano ~/.profile
  • Inhalt:
# Proxy server (example: http://username:password@10.0.0.1:8080). User/pass optional.
export http_proxy=http://[user]:[pass]@[proxy_server_address]:[port]
# Proxy exclusions (don't use the proxy server for these hostnames and IP addresses).
export no_proxy=localhost,127.0.0.0/8

Quelle3:

SMB-Freigabe einrichten

Software installieren

sudo apt-get update
sudo apt-get install samba samba-common smbclient
  • Prüfen ob die Dienste aktiv sind:
sudo service smbd status
sudo service nmbd Status

Konfiguration

  • Für die Samba-Grundkonfiguration gibt es eine zentrale Konfigurationsdatei "/etc/samba/smb.conf". Diese Datei ist in der Vorkonfiguration äußerst umfangreich und dadurch unübersichtlich. Für eine einfache Grundkonfiguration empfiehlt sich die Datei umzubenennen und neu zu erstellen.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf_alt
sudo nano /etc/samba/smb.conf
  • Die folgende Grundkonfiguration ist nicht allgemeingültig, sondern für die meisten Anwendungen sinnvoll und zweckmäßig anzusehen. Das heißt, für den Anfang reicht es aus. Später muss sie vielleicht individuell angepasst werden.
[global]
workgroup = WORKGROUP
security = user
encrypt passwords = yes
  • Dann testen wir diese Konfigurationsdatei. Das hat den Vorteil, dass wenn wir etwas falsch oder fehlerhaft eintragen, dann können wir den Fehlstart des Samba-Servers vermeiden.
testparm
  • Nach jeder Änderung an der Konfigurationsdatei müssen die Samba-Dienste neu gestartet werden. Erst dann wird die Konfiguration übernommen.
sudo service smbd restart
sudo service nmbd restart

Quelle:

Sprachausgabe

  • Paket herunterladen:
wget http://www.dr-bischoff.de/raspi/pico2wave.deb
  • Voraussetzungen installieren:
sudo apt-get install libpopt-dev
  • zusätzlich falls nicht vorhanden:
sudo apt-get install aplay 
  • Paket installieren:
sudo dpkg --install pico2wave.deb
  • ausprobieren:
sudo amixer cset numid=3 1
pico2wave --lang=de-DE --wave=/tmp/test.wav "hallo welt hier spricht der räspberri pei"; aplay /tmp/test.wav;rm /tmp/test.wav
  • Deeinstallation:
sudo apt-get remove pico2wave

Quelle:

Beispiele für Sprachausgabe

  • mit espeak:
ipadd=$(ifconfig wlan0 | grep "inet " | awk -F' ' '{print $2}' | tr -d "Adresse:") &&
/usr/bin/espeak -vde "meine Weeh-LAhN ei pie Adresse lautet" &&
espeak -s 150 -v german ${ipadd//./punkt} && ipadd=""
  • mit pico2wave:
ipadd=$(ifconfig wlan0 | grep "inet " | awk -F' ' '{print $2}' | tr -d "Adresse:") &&
pico2wave --lang=de-DE --wave=/tmp/test.wav "meine Weeh-LAhN ei pie Adresse lautet"; aplay /tmp/test.wav;rm /tmp/test.wav &&
pico2wave --lang=de-DE --wave=/tmp/test.wav ${ipadd//./punkt}; aplay /tmp/test.wav;rm /tmp/test.wav &&
ipadd=""

Radio hören

 mpg123 -@ http://swr-mp3-m-swr3.akacast.akamaistream.net/7/720/137136/v1/gnl.akacast.akamaistream.net/swr-mp3-m-swr3

Interessante Links

Putty (für Windows) "richtig" einstellen:

Putty1.png

Putty2.png

VNC Viewer

  • mit
sudo raspi-config

unter

Advanced Options

scrollen

VNC > Yes

den VNC-Server einschalten

Quelle:

Download des VNC-Viewers (z. B. für Windows-PC

https://www.realvnc.com/download/viewer/

Bildschirmauflösung anzeigen lassen

  • Die aktuelle Auflösung des angeschlossenen Bildschirms anzeigen:
/opt/vc/bin/tvservice -s
  • Unterstützte Auflösungen des HDMI-Bildschirms mit CEA:
/opt/vc/bin/tvservice -m CEA
  • Unterstützte Auflösungen des HDMI-Bildschirms mit DMT:
/opt/vc/bin/tvservice -m DMT

Quelle:

Bildschirmauflösung fest einstellen

  • Möglichkeit 1:
    • im Auswahlpunkt "Advanced Options / Resolution“ die Auflösung einzustellen.
sudo raspi-config
  • Möglichkeit 2:

Die Auflösung kann man in der folgenden Konfigurationsdatei festlegen:

sudo nano /boot/config.txt

Zuerst nehmen wir eine sinnvolle Grundkonfiguration vor. Die folgenden Zeilen fügt man einfach in der Datei unten an.

# HDMI auch ohne Monitor in Betrieb nehmen (optional)
hdmi_force_hotplug=1
# Audio über HDMI ausgeben (optional)
hdmi_drive=2
# DMT-Betriebsmodus aktivieren
hdmi_group=2

Anschließend legen wir die Auflösung nach DMT fest (nur eine davon):

# Auflösung: 1024x768 / 60 Hz
hdmi_mode=16
# Auflösung: 1280x768 / 60 Hz
hdmi_mode=23
# Auflösung: 1366x768 / 60 Hz
hdmi_mode=81
# Auflösung: 1920x1080 / 60 Hz (1080p)
hdmi_mode=82

Quelle:

RPi an unterbechungsfreier Stromversorgung USV (USB-Anbindung)

  • USB-Tools installieren:
sudo apt-get usbutils
  • Prüfen ob USV angeschlossen ist:
ls usb
  • Ausgabe sollte z. B. sein:
Bus 001 Device 004: ID 0463:ffff MGE UPS Systems UPS 
  • Networktools installieren
sudo apt-get install nut-client nut-server
  • konfigurieren:
sudo nano /etc/nut/ups.conf 
  • einfügen:
[EllipseECO1200]
       driver = usbhid-ups
       port = auto
       desc = "EATON Ellipse ECO 1200 UPS 1200VA"
  • Rechte setzen, Verzeichniss anlegen + neu starten:
sudo mkdir /var/run/nut
sudo chown root.nut /var/run/nut/
sudo chmod 770 /var/run/nut/
sudo upsdrvctl start
sudo reboot
  • Dienst starten:
sudo upsdrvctl start
  • anzeigen ob Dienste "laufen":
ps -ef | grep ups
  • Ergebnis:
nut        937     1  0 11:26 ?        00:00:13 /lib/nut/usbhid-ups -a EllipseECO1200
nut        953     1  0 11:26 ?        00:00:00 /lib/nut/upsd
root       958     1  0 11:26 ?        00:00:00 /lib/nut/upsmon
nut        959   958  0 11:26 ?        00:00:00 /lib/nut/upsmon
pi        1161  1051  0 12:41 pts/0    00:00:00 grep --color=auto ups
  • konfigurieren:
sudo nano /etc/nut/upsd.conf
  • einfügen:
LISTEN 127.0.0.1 3493
LISTEN 10.207.22.16 3493
  • konfigurieren:
sudo nano /etc/nut/upsd.users
  • einfügen
 [admin]
        password = <Kennwort>
        actions = SET
        instcmds = ALL

#
# --- Configuring for a user who can execute tests only
#
[testuser]
        password  = <Kennwort>  
        instcmds  = test.battery.start
        instcmds  = test.battery.stop

#
# --- Configuring for upsmon
#
# To add a user for your upsmon, use this example:
#
[upsmon_local]
        password  = <Kennwort>
        upsmon master
[upsmon_remote]
        password  = <Kennwort>
        upsmon slave
 
  • konfigurieren:
sudo nano /etc/nut/upsmon.conf 
  • einfügen:
MONITOR EllipseECO1200@localhost 1 upsmon_local local_pass master 
  • konfigurieren:
sudo nano /etc/nut/nut.conf 
  • einfügen:
MODE=none
ändern in
MODE=netserver
  • testen:
upsc EllipseEco1200
  • mögliche Kommandos anzeigen:
upscmd -l  EllipseEco1200

WinNut für Windows einstellen

  • in upsmon.conf eintragen:
MONITOR EllipseECO1200@10.207.22.16:3493 1 upsmon_remote <Kennwort> slave 
  • falls nichts funktioniert: Firewall(s) der Antivierensoftware pürfen etc. oder z. B. firewall.cpl aufrufen und winNut eintragen.

Mailversand einrichten

  • STMP installieren:
sudo apt-get install ssmtp mailutils
  • konfigurieren:
sudo nano /etc/ssmtp/ssmtp.conf
  • eintragen/ändern:
mailhub=<Mailserver>
  • Test:
echo "Test Email von RPi" | mail -s "Test Email von RPi" empfänger@firma.de

Mailversand von NUT einstellen

  • konfigurieren:
sudo nano /etc/nut/upsmon.conf
  • eintragen:
NOTIFYCMD /etc/nut/upssched-cmd.sh
NOTIFYFLAG ONLINE       SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT       SYSLOG+WALL+EXEC
  • Rechte usw. ändern:
sudo chown nut:nut /etc/nut/upssched-cmd.sh
sudo chmod 700 /etc/nut/upssched-cmd.sh
  • Test:
sudo /etc/nut/upssched-cmd.sh "This is a test message"
  • neu starten:
sudo service nut-client restart

Webseite einrichten

  • Webserver installieren:
sudo apt-get install apache2 -y
  • Test
http://10.207.22.16

(Webseite aus /var/www/html wird angezeigt)

  • CGI "einschalten"
sudo a2enmod cgi
sudo service apache2 restart
  • Nut-cgi installieren (Ziel: /usr/lib/cgi-bin/nut/...)
sudo apt-get install nut-cgi
  • konfigurieren
sudo nano /etc/nut/hosts.conf
  • eintragen:
MONITOR EllipseECO1200@localhost "EllipseECO1200@req8e0"
  • Test
http://10.207.22.16/cgi-bin/nut/upsstats.cgi?host=EllipseECO1200@localhost
http://10.207.22.16/cgi-bin/nut/upsstats.cgi


Link Link Link2 Doku und Projektseite

SNMP einrichten

  • SNMP installieren
sudo apt-get update
sudo apt-get install snmpd snmp
  • SNMP konfigurieren. Am besten gleich mit dem einfachen Konfigurator/Setup, welches das SNMP-Paket mitbringt
sudo snmpconf -g basic_setup -p
  • Konfig-Datei noch an das richtige Ort kopieren:
sudo cp -p /usr/share/snmp/snmpd.conf /etc/snmp/
  • evtl. noch editieren:
sudo nano /etc/snmp/snmpd.conf
  • eintragen/ändern:
agentAddress udp:127.0.0.1:161

in:

agentAddress 161
  • # entfernen:
#rocommunity public localhost

in:

rocommunity public localhost      


Quelle:

  • SNMP neu starten:
sudo /etc/init.d/snmpd restart

Quelle

NUT-SNMP einrichten

  • scripte downloaden:
sudo mkdir /etc/nut/snmpagent
cd /etc/nut/snmpagent
wget https://github.com/luizluca/nut-snmpagent/archive/master.zip

  • entpacken
unzip nut-snmpagent-master.zip
  • konfigurieren:
sudo nano /etc/snmp/snmpd.conf 
  • eintragen
pass_persist .1.3.6.1.4.1.26376.99 /etc/nut/snmpagent/nut-snmpagent-master/snmp-static.nut

Link Quelle:

RPi Temperatur

Quelle:

DMM Digitalmultimeter Metex/Voltcraft M3850 auslesen

  • DMM mit COM/USB-Wandler und Adapterkabel anschliessen und einschalten
  • pyserial installieren (je nach Python Version):
sudo apt-get install python-serial

oder

sudo apt-get install python3-serial
  • read_dmm.py erstellen:
nano read_dmm.py
  • einfügen:
import serial

# 1200 baud, 7 data bits, 2 stop bits, no parity, no flow control.
comm = serial.Serial("/dev/ttyUSB0", 1200, 7, "N", 2, timeout=1.)

# DTR line must be set to high, RTS line must be set to low.
comm.setDTR(1)
comm.setRTS(0)

# The instrument sends back currently displayed measurement each time
# you send 'D' over the line.
comm.write('D')

# This returns 14 characters that show type of measurement, value and
# unit - for example "DC  0.000   V\n".
print comm.readline()
  • speichern
  • read_py aufrufen:
python read_dmm.py

Quelle: