Günstiges Speicher Oszilloskop

Im Internet gibt es etliche verschiedene Bausätze zu kaufen. Fängt bei etwa 20 Euro incl. Versand an. (ohne Netzteil, ohne Gehäuse, nur 4 Füsse damit die Platine nicht direkt am Untergrund aufliegt und mit entsprechned langer Lieferzeit…)
Je nach Bausatz sind SMD Bauteile schon aufgelötet. Bei meinem war das nicht so. (Nur der Prozessor, der auf allen 4 Seiten Anschlüsse hat, war schon drauf. Aber selbst das wär vermutlich kein Problem gewesen…)

Das Ding besteht leider aus sehr vielen analogen Bauteilen. Und die sind noch dazu fast alle unterschiedlich. -> Da braucht man schon 2-3 Stunden, um die richtigen Bauteile aus dem Haufen zusammenzusuchen, und das alles zusammenzubruzeln…

Erst ein paar Bauteile eingelötet :

Noch 1 oder 2 mehr :

Sehr schön gelöst : Wenn man der Anleitung folgt, prüft man zuerst die 3,3 Volt Versorgung, erst dann wird ein Jumper geschlossen, und der Prozessor mit der Stromversorgung verbunden. So geht bei kleinen Fehlern nicht gleich alles in Rauch und Flammen auf…

Und schon funkts – hehe :

Ist zwar mit 1Ms/s nicht grad das Schnellste, aber mehr als mit einem Multimeter sieht man auf jeden Fall…

Stromversorgung mittels 9V Block ist zwar möglich, aufgrund des von mir gemessenen Stromverbrauchs (etwa 100mA) aber nicht zu empfehlen. Dürfte kaum mehr als 1 Stunde mit einer Batterie laufen.

Dafür ist aber eine Buchse für einen Hohlstecker drauf. Fuktioniert ab etwa 9V. Mehr als 12V sollten nicht angeschlossen werden. (Es sind ausschliesslich Linearregler verbaut)

Die USB Buchse dürfte nutzlos sein. (Stromversorgung darüber offenbar nicht möglich, evtl. löte ich dafür aber noch eine Drahtbrücke rein, PC erkennt darüber aber rein gar nix…)

Fenster via Raspberry auf und zumachen

Die „Leistungselektronik“ ist nicht recht aufregend. 1 Sicherung, ein Leistungswiderstand zur Strombegrenzung und -erkennung, und 2 Wechslerrelais von der 8 Kanal Relaisplatine :

Sehr vorteilhaft : nur eine 2polige Leitung geht zum Fenster, die Endschalter befinden sich dort, und unterbrechen via MosFET die entsprechende Drehrichtung. Ob alles geklappt hat, kann die Software via Stromerkennung auswerten :

In Wahrheit ist das alles recht simpel aufzubauen. Die beiden FETs stammen aus einem ausgemusterten Mainboard (SMD). Halten 20V und 30A aus :

Raspberry PI automatisch hoch und runterfahren

Hab einen meiner PIs auf meiner Photovoltaik Inselanlage laufen. Der benötigt zwar nur etwa 2 Watt, allerdings ist mir sogar das für den Winterbetrieb zuviel. Hauptsächlich erfasst der ja nur den Ladestrom von der PV Anlage. (Macht auch noch ein paar andere Dinge, aber die müssen in der Nacht nicht unbedingt laufen.)

Darum wär es ja toll, den PI einfach vom permanent versorgten PI hoch- und runterfahren zu lassen. Im Prinzip ginge das ja recht einfach. Z.B. via Relais einfach den Strom einschalten, und – wenn es abend wird – ein „shutdown“ schicken, und z.B. nach 1 Minute den Strom wieder ausschalten.

Leider kann es in der Praxis allerdings vorkommen, dass das Runterfahren einmal länger, einmal kürzer dauern kann. -> Eine Fixe Zeit ist deshalb natürlich eher ein Glücksspiel; irgendwann muss der PI noch Swap leeren, was auf seine SD Karte, oder auf den Netzwerkspeicher schreiben. -> Dann kommts früher oder später zu einem Datenverlust…

Zum Glück gibts für so ein Problem schon eine (relativ schlecht dokumentierte) Anleitung, bzw. sogar einen Bausatz im Internet. Ist allerdings mit programmierbarer Echtzeituhr und allem möglichen anderen Glim Bim doch recht aufwändig. Drum hab ich mir eine – stark vereinfachte – Schaltung selber aufgebaut :

Das hat auch gleich den Vorteil, dass der Step-Down-Converter im ausgeschalteten Zustand dann nicht mehr läuft.

Die beiden Pins (links unten) werden an den permanent laufenden PI angeschlossen, und schalten den PI ein.

Damit das Ausschalten korrekt funktioniert, muss noch ein Kernelmodul geladen werden. Eigentlich sollte dass via /boot/config.txt gehen. Das hat bei mir allerdings nicht funktioniert.

-> In die rc.local (vor dem exit 0) muss folgendes rein :

dtoverlay gpio-poweroff gpiopin=4 active_low

Raspberry PI Grafana

Für den PI gibts auch ein Grafana und eine InfluxDB.

Das Paket, welches Raspbian mitbring ist leider zu alt.

-> Am Besten so eins verwenden :
https://github.com/fg2it/grafana-on-raspberry/releases

In die InfluxDB kann man dann so reinschreiben :

echo -e "Photovoltaik1,component=LadeStrom value=$v1\nPhotovoltaik1,component=EntladeStrom value=$v2\nPhotovoltaik1,component=WandlerSpannung value=$v3\nPhotovoltaik1,component=AkkuSpannung value=$v4\n" | \
curl -i -XPOST http://$influxhost:$influxport/write?db=$influxdb --data-binary @-

Damit lassen sich dann solche Grafen darstellen :

Im übrigen gibt es bei dieser Version sogar die Möglichkeit, als DataSource eine MySQL auszuwählen.
Leider ist das allerdings noch nicht so richtig ausgereift.
Damit geht folgendes NICHT :
*) 2 Y-Achsen (f. Strom/Spannung in einem Grafen)
*) Farben frei wählen (alle Kurven haben nach dem Speichern die gleiche Farbe)
*) Kurven benennen (steht immer nur „unknown“)

Raspberry PI als Webradio verwenden und Endstufe automatisch ein und ausschalten

Es gibt einige Möglichkeiten, ein Software Webradio zu basteln.
Ich hab es mit mpd gemacht, weil sich der recht einfach via Android APP (Droid MPD Client) steuern lässt.

Normalerweise kann man den einfach mit „apt install mpd“ installieren.
Leider ist das Raspbian Paket im Moment (30.Juli 2017) scheinbar kaputt.

Darum muss man das selber kompilieren :

https://www.musicpd.org/doc/user/install_source.html

—————————————-

Das funktioniert soweit recht gut (via USB Soundkarte), schaltet man einen Endstufe via Relais ein und aus, ist das allerdigs ein recht manueller Vorgang.
-> Das gehört natürlich automatisiert.

cat endstufeautoeinaus.sh
#!/bin/bash

relaisnummer=3

o=0
w=2

while (true) do
 s=$(cat /proc/asound/card1/stream0 | grep Status | head -n 1)
 if test "$s" != "$o"
 then
  if test "$s" == "  Status: Running"
  then
   echo ein
   curl http://10.0.9.6/relais/?nummer=$relaisnummer\&wert=1
  else
   sleep 2
   s=$(cat /proc/asound/card1/stream0 | grep Status | head -n 1)
   if test "$s" != "  Status: Running"
   then
    echo aus
    curl http://10.0.9.6/relais/?nummer=$relaisnummer\&wert=0
    w=1
   fi
  fi
  o="$s"
 fi
 sleep $w
 w=2
done

Das Script überwacht die USB Soundkarte, sobald sie im Status „running“ ist, wird das entsprechende Relais eingeschaltet, fürs Ausschalten gibt es eine vernünftige Verzögerung, weil die Endstufe eine ca. 10 Sekunden andauernde Einschaltverzögerung hat. (Das würde sonst stören, gibt sonst immer wieder lange Verzögerungen beim Umschalten…)