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…)

Raspberry PI – Relais schalten

Hat man mehrere Relais am PI hängen, möchte man vermutlich dafür ein Script haben, um die Relais komfortabel schalten zu können :

cat /bin/relais
#!/bin/bash

case $1 in
1) pin=21; ;;
2) pin=20; ;;
3) pin=26; ;;
4) pin=16; ;;
5) pin=19; ;;
6) pin=13; ;;
7) pin=12; ;;
8) pin=6; ;;
*)
 for (( x=1 ; $x<=8 ; x++ ))
 do
  /bin/relais $x
 done
exit 0 ;;

esac

if test "$2" == ""
then
 if test "$(cat /sys/class/gpio/gpio$pin/value)" == "0"
 then
  echo 1
 else
  echo 0
 fi
else

 if test "$2" == "1"
 then
  v=0
 else
  v=1
 fi
 #gpio -g mode $pin output
 #gpio -g mode $pin $1

 echo "$pin" > /sys/class/gpio/export 2>/dev/null
 echo "out" >  /sys/class/gpio/gpio$pin/direction
 echo "$v" > /sys/class/gpio/gpio$pin/value

# echo "$(date) $1 $(whoami)" >> /tmp/strom.log
fi

Weiters ist es von Vorteil, die Ausgänge beim Booten zu initialisieren, damit ein definierter Zustand herrscht :

cat /etc.rc.local
...
for (( r=1; $r<=8; r++)); do /bin/relais $r 0; done

Läuft sowieso schon ein Webserver mit PHP, dann bietet sich auch noch ein PHP Script an, um via Webinterface schalten zu können. (Achtung ! das hat keinen Passwortschutz eingebaut) :

index.php :
index_relais_schalten.php

visudo :

...
www-data ALL=(ALL) NOPASSWD: /bin/relais
...

Analog Digital Converter DS2450 am Raspberry PI

Wollte nun mal einen DS2450 am PI anschliessen.
Leider funktioniert das NICHT mit dem Kernel Modul.
(dzt. kein Treiber vorhanden, es taucht nur ein „rw“ device auf…)

D.h. man muss – leider – den Umweg über einen USB-RS232 Converter gehen.

apt instal owfs

Server starten :

owhttpd –passive=/dev/ttyUSB0 -p 4444

Im Browser eingeben, um die Adresse des ds2450 herauszufinden :
http://PI_ADRESSE:4444/bus.0

Ergebnisse in einem Script verwenden :
v=$(wget -qO- http://127.0.0.1:4444/uncached/text/20.xxxxxxxxxxxx/volt.ALL | tr ‚,‘ ‚ ‚)

Test
while (true) do wget -qO- http://127.0.0.1:4444/uncached/text/20.xxxxxxxxxxxx/volt.ALL; done

Atx Schaltnetzteil die zweite

Hab noch so ein Netzteil ausgegraben.
Diesmal ein Noname.

Dieses kommt völlig ohne Optokoppler aus.
Sind nur drei Trafos verbaut.
1x für die Hilfsspannung, dürfte ungeregelt sein
1x Trafo, um die Leistungstransistoren anzusteuern
1x Leistungstrafo

Hab dazu sogar einen Schaltplan gefunden. Dürfte – zumindest bis auf die Lüftersteuerung passen :
http://www.eejournal.org/wp-content/uploads/2010/10/PC-SMPS-2003-schematic1.gif

Hab zuerst Mal alle Kabel bis auf die schwarzen und die gelben ausgelötet.

Dann alle unnötigen Spannungen abgeklemmt. (Grosse Ringkerndrossel)

Zuguterletzt von dem k7500 Pin 4 unterbrochen und auf Masse (Pin 7) gelegt. Das legt alle Schutzschaltungen lahm.

Ach ja – und die Spannungsregelung so umgebaut, dass nur mehr die 12 V Seite geregelt wird. (Natürlich gleich auf 13,8 Volt)

Anm.: Die Schutzschaltungen sind jetzt wirklich inaktiv. Ein versehentlicher Kurzschluss hat das bewiesen; meine dünnen Kroko Kabel sind dabei sofort in Rauch aufgegangen. Abgeschaltet hat nix. 🙂

Hab dann noch von dem kaputten Schaltnetzteil einen Optokoppler genommen, um später via Raspberry PI Steuerung die Übersetzung beeinflussen zu können. Somit sollte auch eine MPPT Betriebsart möglich sein….

Leider braucht das Netzteil etwa 5,5 Watt ohne Last. Vielleicht werd ich da noch was optimieren(z.b. auch noch regeln)….

Atx Schaltnetzteil Umbau die erste

Hab mir Mal ein HP Schaltnetzteil zwecks Umbau als solar lade Netzteil vorgenommen.
Auf der Platine befinden sich 3 Optokoppler.
Offenbar werden die von aussen nach innen wie folgt verwendet :
1 Regelt die gesamte Ausgangsspannung
2 Schaltet NT ein
3 regelt offensichtlich die permanent vorhandene Hilfsspannung

Hab ich empirisch ermittelt, d.h. 1-3 jeweils den Ausgang Mal kurzgeschlossen.

Bei 3 gabs dabei Augenblicklich einen mega Knall.

-> ist jetzt kaputt. 🙂
-> muss ein anderes umbauen