Mein ThingSpeak Setup

Schon etliche Jahre betreibe ich einen Temperatur Sensor DS18B20 bei ThingSpeak. Aber irgendwann dieses Jahr ist mir mein Raspberry abgeschmiert und lieferte keine Daten mehr.

Mein ThingSpeak Channel

Heute hatte ich endlich die Muse mich um das kleine Kästchen zu kümmern. Wie sich herausstellte ist die SD Card korrupt. Also der Supergau. Das Raspian stammte von Mai-2016 (nicht schlecht, 3 1/2 Jahre)

Dieser Beitrag zeigt wie ich meinen Raspberry wieder zum Leben erweckt habe. Also eine Komplettinstallation und die Installation meiner Python Tools und Skripte.

Das Basis Setup

Als erstes einmal das aktuelle Raspian heruntergeladen.

Wie man es installiert und auf die SD Karte bringt habe ich ja schon beschrieben. Siehe Quickstart V3 und Quickstart V2. Nur auf die WLAN Konfiguration habe ich verzichtet, da mein Raspi kein WLAN besitzt und auch bisher am LAN hängt.

Updating to STABLE Kernal

Bisher bin ich immer davon ausgegangen, dass

sudo rpi-update

den aktuellen, stabilen Linux kernel und Raspberry Pi firmware installieren.

Wie ich aber nun in der “Updating the Kernal” Seite lese, bekomme ich möglicherweise Beta und instabile Version. Das richtige Vorgehen ist:

sudo apt update
sudo apt install --reinstall raspberrypi-bootloader raspberrypi-kernel

Aktuelle Version des Bootloader und des Kernel abfragen:

uname -a
Linux pi-thingspeak 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l GNU/Linux

Hier noch einmal der komplette Update/Upgrade Weg:

First, update your system's package list by entering the following command:

# sudo apt update

Next, upgrade all your installed packages to their latest versions with the following command:

# sudo apt full-upgrade

Note that full-upgrade is used in preference to a simple upgrade, as it also picks up any dependency changes that may have been made. 

VNC aktivieren

Wie in meinem Post aus 2018 erklärt, ist RealVNC Teil der Installation. Einfach der Anleitung auf Raspberry.org folgen.

Python Files kopieren

Nachdem nun alles normal funktioniert:

  • SSH
  • VNC
  • User Settings
  • upgrade und update

kopiere ich meine BACKUP Dateien wieder in das pi Home Verzeichnis.

DS18B20 aktivieren

Als nächstes den Temperatur Sensor aktivieren und mit einem kleinen Script local testen. Infos zum Sensor habe ich in einem Beitrag zusammengefasst.

Device Treiber aktivieren. Das geht auch über das Rasp-Config Tool:

Sensor device am w1 bus identifizieren (könnte jetzt anders sein).

Mit Script example_ds18b20_sensor.py den Sensor local prüfen.

LED testen

Mein Script verwendet auch noch eine LED.

ThingSpeak manuell testen

Als erstes einmal das Testskript laufen lassen, das eine einfach Status Meldung absetzt:

Nun kommt der entscheidende Schritt. Das Python Script zum Senden eines Temperatur Wertes alle 15min starten.

Nun ein paar Stunden laufen lassen und prüfen, ob auch ThingSpeak allmählich eine Kurve erscheint und auch die anderen Daten vernünftig aussehen.

Skript im systemd etablieren

Dazu habe ich schon einen Beitrag geschrieben. Das Konfigurations Skript habe ich natürlich noch. Raspberry.org hat auch eine gute Beschreibung.

Die Raspberry Anleitung verweist auch auf diese Seite:

433MHz Kickstarter – zum Laufen bringen

Schon eine ganze Zeit liegt das Pi 433MHz Kickstarter Module bei mir herum. Nun habe ich mich einmal daran gemacht das Teil zum laufen zu bringen.

Die C-Files von der Webseite geladen und auf den Raspberry Pi übertragen. Mit gcc die Files kompliliert:

gcc -o send send.cgcc -o receive receive.cgcc -o socket socket.c

Da der Hope RFM69 über SPI an den Raspberry Pi angeschlossen ist, erst einmal SPI enablen:

sudo raspi-config
-- Interface Options
--- SPI

Der erste Versuch über socket die Pollin 433MHz Steckdose zu schalten schlug schon einmal fehl. Erst einmal den systemCode und unitCode herausfinden und im socket.c anpassen.

Funktionen prepareTxDataOn(void) und prepareTxDataOff(void) updaten.

Quellen:

https://pi433.de/index.html

Raspberry Pi – virtuelle Tastatur für 7”-Display

Always update apt-get:

$ sudo apt-get update

Install matchbox-keyboard:

$ sudo apt-get install matchbox-keyboard

Then, you can open the matchbox-keyboard by enter:

$ matchbox-keyboard

Noch ein Shellscript auf den Desktop packen:

#!/bin/bash
matchbox-keyboard

Quelle:

http://helloraspberrypi.blogspot.de/2017/05/install-virtual-keyboard-on-raspberry.html

https://sourceforge.net/projects/florence/?source=directory

Quickstart -v3

Hier mal wieder eine aktuelle Version zum Installieren eines neuen Raspian auf einer frischen SD-Karte.

Alle wesentlichen Installationsanweisungen des Quickstart – v2 sind nach wie vor gültig.

Die zwei wesentlichen und wichtigen Ergänzungen sind:

  1. SSH enable (für Headless)
  2. WIFI Konfiguration (für Headless)

SSH enable

Eine gute Anleitung findet sich in der Zwischenzeit auf raspberry.org selbst.

Ich habe mich dafür entschieden, nach dem flash der SD-Karte auf der Boot Partition SSH zu enablen. Dazu einfach auf der Boot Partition ein File mit dem namen ssh anlegen (ohne Inhalt).

WIKI Konfiguration (Raspbian Stretch)

Um die WIFI Konfiguration schon vorzudefinieren, wird auf die Boot Partition die Datei wpa_supplicant.conf mit folgendem Inhalt kopiert/erstellt:

# Datei wpa_supplicant.conf in der Boot-Partition (Raspbian Stretch)
country=DE  #omit if US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
       ssid="wlan-bezeichnung"
       psk="passwort"
       key_mgmt=WPA-PSK
}

So schaut nun die Boot Partition aus, bevor die SD-Karte in den Raspi gesteckt wird:

Boot Partition Dateien

Quellen:

WLAN schon vor der Inbetriebnahme konfigurieren

 

Spiegel und Infoboards

Hier eine Übersicht der Systeme, die ich mir bisher angesehen habe:

  1. DAKboard
    US based, sehr komfortabel, Daten liegen auf fremdem Server, kein https, kaum Hintergrund Informationen, nur web browser notwendig, läuft auf jeder Plattform.
  2. glancr (Mirr.os)
    DE based, sehr komfortabel, Module nachinstallierbar, eigene Erweiterungen möglich, läuft lokal auf dem Raspi.

Shutdown und Reboot Raspberry mit Taster

Heute beim Lesen der C’T 25/2017 stolperte ich über eine Notiz zum shutdown bzw. reboot des Kleincomputers Raspberry Pi mittels eines angeschlossenen Buttons.

So etwas wollte ich schon länger einmal in den Weiten des WWW suchen und bei einmal meiner Boards installieren. So spare ich mir die Suche.

Aktueller Anwendungsfall ist ein Raspi den ich zum Test verschiedener Mirror Display Software benutze. Da er noch lange nicht zu meiner Zufriedenheit im Dauerbetrieb läuft, kann ich mit dem Button ihn Abends bequem herunterfahren.

Original Beschreibung auf Gilyes

https://gilyes.com/pi-shutdown-button/

Original Artikel

Mit einem simplen Taster oder einer Kurzschlussbrücke (Jumper, Kabel) lassen sich Raspberry Pi und Raspi Zero auch ohne Tastatur und Monitor neu starten oder herunterfahren und anschließend wieder einschalten. Für Reboot und Shutdown benötigen Sie dazu das Programm Pi-Shutdown. Das Python-Programm wartet darauf, dass die Pins 5 (GPIO 3) und 6 (Minuspol) gebrückt werden. Werden die Pins für etwa eine Sekunde gebrückt und dann wieder geöffnet, so führt Pi-Shutdown einen Reboot durch.
Lassen Sie den Jumper drei bis fünf Sekunden lang gesteckt und entfernen ihn
dann wieder, schaltet sich der Raspi aus. Dass sich der Raspi ausschaltet, erkennen Sie daran, dass die grüne Aktivitäts-LED mindestens dreimal kurz blinkt.
Die Einrichtung von Pi-Shutdown ist einfach: Laden Sie das Python-Programm
pishutdown.py von GitHub herunter (siehe ct.de/y7ft) und speichern Sie es im Verzeichnis /usr/local/bin auf dem Raspi.
Damit Pi-Shutdown künftig automatisch bei jedem Start des Raspi geladen wird,
kopieren Sie den gleichnamigen Systemd-Job von ct.de/y7ft in das Verzeichnis
/etc/systemd/system und aktivieren Sie ihn mit folgendem Befehl:
sudo systemctl enable pishutdown
Damit Sie nicht erst neu starten müssen, bis Pi-Shutdown läuft, starten Sie es ab-
schließend noch manuell:
sudo systemctl start pishutdown
Haben Sie den Raspi heruntergefahren, können Sie ihn durch erneutes Kurzschließen der Pins 5 und 6 wieder hochfahren lassen, ohne ihn erst von der Stromversorgung zu trennen. Zusätzliche Software ist dazu nicht nötig.
(mid@ct.de)
Download und Systemd-Job für Pi-Shutdown:

Weiterführende Links

 

 

Raspberry Pi: 1-wire & DS18B20

DS18B20 Prinzip

Bei dem DS18B20 handelt es sich um einen kalibierten Temperatur Sensor. Er wird an einem 1-wire Draht betrieben und kommt somit mit drei Leitungen aus: +3.3V, GND, Data. Er wird in zwei Arten vertrieben: als Bausstein TO-92 Gehäuse (wie ein Transistor) als Outdoor gekapselter Sensor mit Drahtleitung.

DS18B20-TO92
Im TO-92 Gehäuse

DS18B20-WaterProof
Wasserdicht mit Kabel

DS18B20 Anschluss

An den Raspberry wird der DS18B20 wie in der folgenden Abbildung angeschlossen. Das Data Pin (4) kann variieren, muss dann aber im Treiber entsprechend konfiguriert werden.

Anschluss-DS18B20

DS18B20 Software Konfiguration

Als erstes muss der Device Treiber aktiviert werden. Dazu in der Datei /boot/config.txt den folgenden Eintrag ergänzen:

# enable 1-wire module for DS18B20
dtoverlay=w1-gpio,gpiopin=4

Über den optionalen parameter gpiopin kann auch ein anderer PIN am Raspberry gewählt werden. Danach den Raspberry rebooten!

 

Quellen

Pi Sound

Nachdem mein erster Versuch mit einem Pi3 Bluetooth und einer Bose Soundlink leider nicht besonders erfolgreich war (unveröffentlicher Artikel), hier nun ein zweiter Versuch mit einer USB Soundkarte.

Zum Einsatz kommt ein USB 2.0 Sound Adapter von LogiLink:

logilink-usb-audio-adapter

 

 

 

 

 

Start mit einer frischen Jessie Installation auf einem Pi2 (ohne Wifi&Bluetooth). Als erstes vor dem weiteren Start das System auf den aktuellen Stand gebracht:

sudo rpi-update
uname -a
Linux pisound 4.4.33-v7+ #927 SMP Sat Nov 19 18:15:38 GMT 2016 armv7l GNU/Linux

Als nächstes den USB Stick anstecken und prüfen ob er erkannt wurde (hier als “C-Media Electronics):

lsusb
Bus 001 Device 005: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter
Bus 001 Device 004: ID 24ae:2010
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

USB Soundkarte im ALSA Mixer als Default Device auswählen. Dazu erst einmal mit alsa -l die Liste der verfügbaren ALSA Geräte ausgeben:

aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA]
  Sub-Geräte: 8/8
  Sub-Gerät #0: subdevice #0
  Sub-Gerät #1: subdevice #1
  Sub-Gerät #2: subdevice #2
  Sub-Gerät #3: subdevice #3
  Sub-Gerät #4: subdevice #4
  Sub-Gerät #5: subdevice #5
  Sub-Gerät #6: subdevice #6
  Sub-Gerät #7: subdevice #7
Karte 0: ALSA [bcm2835 ALSA], Gerät 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: Set [C-Media USB Headphone Set], Gerät 0: USB Audio [USB Audio]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0


cat /proc/asound/cards
 0 [ALSA           ]: bcm2835 - bcm2835 ALSA
                      bcm2835 ALSA
 1 [Set            ]: USB-Audio - C-Media USB Headphone Set
                      C-Media USB Headphone Set at usb-3f980000.usb-1.5, full speed

Nun zwei Dinge rekonfigurieren (geht auch über die Oberfläche: Audio Device Settings):

  1. /usr/share/alsa/alsa.conf
  2. /etc/asound.conf  (oder ~/.aoundrc)
sudo nano /usr/share/alsa/alsa.conf

Original:
defaults.ctl.card 0
defaults.pcm.card 0

Updated:
defaults.ctl.card Set
defaults.pcm.card Set
sudo nano ~/.asoundrc

Original:
pcm.!default {
        type hw
        card 0
}

ctl.!default {
        type hw
        card 0
}

Update:
pcm.!default {
        type hw
        card Set
}

ctl.!default {
        type hw
        card Set
}

Nun ein REBOOT

Nun ein Test mit:

speaker-test -c2 -twav

Den AlsaMixer kann man auch von der Kommandozeile aus aufrufen:

alsamixer

 

 

 

 

Quellartikel die geholfen hatten:

 

Packetverwaltung am Raspberry

Schon länger interessiert mich, wie man in nach Paketen suchen kann. Heute habe ich mich einmal auf die Suche begeben und bin natürlich auch fündig geworden.

APT HOWTO auf der DEBIAN Seite.

apt-get

apt-cache search <text>

apt-cache show <packetname>

apt-file

apt-get

weitere Information zu apt-get konnte ich auf der ubuntu users webpage finden: apt-get. Hier ein paar wichtige Kommandos:

apt-get update     // Neueinlesen der Paketlisten
apt-get upgrade    // installierte Pakete wenn möglich aktualisieren
apt-get clean      // leeren des Paketcaches
apt-get check      // Überprüfen auf Abhängigkeitsfehler