Raspberry Pi: Software Inhalt Raspbian: Debian Stretch Headless Setup DHCP und DNS Server Webserver: Apache und PHP GPIOs schalten: WiringPi I2C und SPI Bus: Anwendungen Achim Vollhardt PHY 250 Elektronik - 1 - Raspberry Pi Software, Mai 2019 Operating Systems: NOOBS • NOOBS (New Out Of Box Software) Installer: Auswahl zwischen mehreren OS • Raspbian (Debian Stretch) • Arch Linux (minimalistisches Linux) • Pidora (Fedora Linux) • RISC OS • Raspbmc/LibreELEC/OpenELEC (Mediacenter) PHY 250 Elektronik - 2 - Raspberry Pi Software, Mai 2019 Raspbian: Debian Stretch • Raspbian ist eine Linux Distribution, welche für den Raspberry Pi optimiert ist und auf Debian Stretch basiert • hohe Verbreitung • aktuelle Kernel Version: 4.14 • Paketverwaltung dpkg, Frontend apt PHY 250 Elektronik - 3 - Raspberry Pi Software, Mai 2019 SD Karte Vorbereiten • Download der IMG Datei: https://www.raspberrypi.org/downloads/raspbian/ • IMG Datei mit Etcher auf SD Karte schreiben (dd unter Linux, einfached kopieren reicht nicht) • Partitionierung nach Etcher: • kleine (42MB) FAT32 Partition: boot ist von Windows/macOS aus sichtbar • grosse (4.xx GB) ext4 Partition • Rest ist zunächst nicht-allokiert PHY 250 Elektronik - 4 - Raspberry Pi Software, Mai 2019 Headless Setup • häufige Anwendung: Server oder autonomer Controller • kein Monitor oder Tastatur • headless setup: einrichten ohne Monitor oder Tastatur • benötige Netzwerkzugang • SSH aktivieren • WLAN konfigurieren • user: pi, pass: raspberry PHY 250 Elektronik - 5 - Raspberry Pi Software, Mai 2019 SSH aktivieren • aus Sicherheitsgründen ist ssh standardmässig deaktiviert, beim headless setup muss dieser Default irgendwie gedreht warden • Lösung: erzeuge Datei ssh in boot Partition • beim Startvorgang erkennt Raspbian die Datei und aktiviert ssh PHY 250 Elektronik - 6 - Raspberry Pi Software, Mai 2019 WLAN konfigurieren wpa_supplicant.conf in boot Partition ablegen: country=CH ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="NAME" scan_ssid=1 psk="PASSWD" key_mgmt=WPA-PSK } PHY 250 Elektronik - 7 - Raspberry Pi Software, Mai 2019 root und sudo • root: User mit Administrator-Rechten, ist für viele Installationen und Systemzugriffe zwingend • aus Sicherheitsgründen ist dem user ‘root’ der login via ssh nicht gestattet • mit dem Befehl sudo können User der Benutzer-Gruppe ‘sudo’ temporär root-Rechte erlangen • ‘sudo –i’ für root-Konsole PHY 250 Elektronik - 8 - Raspberry Pi Software, Mai 2019 APT: Software Paketmanager sudo apt-get update # Update der lokalen Paketdatenbank sudo apt-get upgrade # Upgrade aller installierten Pakete sudo apt-get install ‘paketname’ # Paket installieren sudo apt-get remove ‘paketname’ # Paket deinstallieren sudo apt-get autoremove # nicht benötigte Pakete deinstallieren sudo apt-get dist-upgrade # Kernel Upgrades installieren PHY 250 Elektronik - 9 - Raspberry Pi Software, Mai 2019 DHCP Server Raspberry Pi statische IP im Heimnetz zuteilen in /etc/dhcpcd.conf: interface eth0 static ip_address=192.168.1.2/24 static routers=192.168.1.1 static domain_name_servers=127.0.0.1 192.168.1.1 195.186.4.162 195.186.1.162 8.8.8.8 static domain_name=home.local static domain_search=home.local (Finger weg von /etc/network/interfaces unter Debian Stretch) sudo apt-get install isc-dhcp-server nicht vergessen: bisherigen DHCP Server (z.B. im Router) deaktivieren, sonst beissen sich die Systeme ... PHY 250 Elektronik - 10 - Raspberry Pi Software, Mai 2019 DHCP Server: feste IPs für Clients Konfiguration des DHCP Lease Range in /etc/dhcp/dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { authoritative ; range dynamic-bootp 192.168.1.64 192.168.1.99; } feste IP Zuteilung für Clients basierend auf MAC Adresse host ubuntu { fixed-address 192.168.1.41; hardware ethernet 04:f0:21:1b:b1:15; } Definition eines lokalen DNS Servers für die Clients option domain-name-servers 192.168.1.10; PHY 250 Elektronik - 11 - Raspberry Pi Software, Mai 2019 DNS Server Möglichkeit der Nutzung eigener Hostnamen im Heimnetz (ubuntu.home.local ist einfacher zu merken als 192.168.1.30) benötigtes Paket: bind9 sudo apt-get install bind9 sudo /etc/init.d/bind9 stop # Nameserver vorerst stoppen, Einträge fehlen Defnition der Zonendateien in /etc/bind/named.conf.local zone "domainname" { type master; file "/etc/bind/db.domainname"; }; zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/db.0.168.192"; }; PHY 250 Elektronik - 12 - Raspberry Pi Software, Mai 2019 DNS Server: Zonendateien Beispiel Forward-Lookup (db.domainname) ;; db.domainname ;; Forwardlookupzone für domainname ;; $TTL 2D @ IN SOA rechnername.domainname. mail.domainname. ( 2006032201 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 3H ) ; NX (TTL Negativ Cache) @ IN NS rechnername.domainname. IN MX 10 mailserver.domainname. IN A 192.168.0.10 rechnername IN A 192.168.0.10 localhost IN A 127.0.0.1 rechner1 IN A 192.168.0.200 mailserver IN A 192.168.0.201 PHY 250 Elektronik - 13 - Raspberry Pi Software, Mai 2019 DNS Server: Zonendateien Beispiel Reverse-Lookup (db.0.168.192) ;; db.0.168.192 ;; Reverselookupzone für domainname ;; $TTL 2D @ IN SOA rechnername.domainname. mail.domainname. ( 2006032201 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 2D ) ; TTL Negative Cache @ IN NS rechnername.domainname. 10 IN PTR rechnername.domainname. 200 IN PTR rechner1.domainname. 201 IN PTR rechner2.domainname. Achtung: Syntax einhalten (bind9 ist penibel), Punkt am Ende der Einträge nicht vergessen! PHY 250 Elektronik - 14 - Raspberry Pi Software, Mai 2019 Apache und PHP Apache (aktuell Version 2.4): vielseitiger und weit verbreiteter Webserver sudo apt-get install apache2 # Konfigurationsdatei: /etc/apache2/apache2.conf # Pfad zu HTML Dateien: /var/www/html/ PHP (Personal Home Page tools): Skriptsprache zur Erstellung dynamischer Webseiten sudo apt-get install php libapache2-mod-php -y PHY 250 Elektronik - 15 - Raspberry Pi Software, Mai 2019 GPIOs schalten: WiringPi WiringPi ist bei den aktuellen Raspbian Installationen vorinstalliert. Beispiel: blink.c #include <wiringPi.h> int main (void) { wiringPiSetup () ; pinMode (0, OUTPUT) ; for (;;) { digitalWrite (0, HIGH) ; delay (500) ; digitalWrite (0, LOW) ; delay (500) ; } return 0 ; } PHY 250 Elektronik - 16 - Raspberry Pi Software, Mai 2019 GPIOs schalten: WiringPi direkte shell Kommandos ebenfalls möglich (nicht sehr effizient, aber manchmal praktisch: gpio mode <pin> in/out/pwm/clock/up/down/tri gpio write <pin> 0/1 gpio read <pin> gpio pwm <pin> <value> #value: 0-1023 PHY 250 Elektronik - 17 - Raspberry Pi Software, Mai 2019 I2C und SPI Bus: Installation • I2C und SPI müssen im Kernel erst aktiviert werden sudo raspi-config # 5 Interfacing options --> P4 und P5 • nach Reboot, Schnittstellen prüfen ls /dev/*spi* ls /dev/*i2c* • I2C Tools installieren sudo apt-get install -y i2c-tools # i2cget, i2cset zum lesen, schreiben von i2c Slaves PHY 250 Elektronik - 18 - Raspberry Pi Software, Mai 2019 i2cdetect: Output • i2cdetect sucht nach angeschlossenen I2C Slaves pi@raspberrypi:~/$ i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- PHY 250 Elektronik - 19 - Raspberry Pi Software, Mai 2019 Temperatursensor DS18B20 1-wire Temperatursensor • 1-wire Pin in Kernel aktivieren (vgl. I2C) • Rot an Pin 1 (3.3V) • Schwarz an Pin 6 (GND) • Gelb an Pin 7 (GPIO4), 4.7kOhm zu Pin 1 (Pull-Up) sudo modprobe w1-gpio pullup=1 # Kernel Module laden sudo modprobe w1-therm cat /sys/bus/w1/devices/10-000802cfb15d/w1_slave 1-wire Adresse 33 00 4b 46 ff ff 02 10 f4 : crc=f4 YES 33 00 4b 46 ff ff 02 10 f4 t=25625 25.625 Grad PHY 250 Elektronik - 20 - Raspberry Pi Software, Mai 2019 Relais Karte 3-Kanal Relay Karte 250V/10A schaltbar Steuerung über GPIOs PHY 250 Elektronik - 21 - Raspberry Pi Software, Mai 2019 Portsdown DVB-S Sender 70-2400 MHz DVB-S max. 1 mW Symbolrate: 66 kS – 4000 kS PHY 250 Elektronik - 22 - Raspberry Pi Software, Mai 2019 Portsdown DVB-S Sender 70-2400 MHz DVB-S max. 1 mW Symbolrate: 66 kS – 4000 kS PHY 250 Elektronik - 23 - Raspberry Pi Software, Mai 2019.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages23 Page
-
File Size-