Raspberry pi som vekkerklokke

Har blitt rimelig lei av å bli vekt av samme ringe-tone kvar dag, så då lagde eg like greit ei vekkerklokke av min nye og deilige raspberry pi.

Ved hjelp av ein awesome shell based spotify, despotify. på vanlige Raspbian “wheezy” og litt triksing med screen, bash og crontab. var det ingen sak.

Prosjektet vart litt større ein som så. Eg ville på ein eller anna måte få bruke GPIO (genneral purpose Input/output) til å styre alt, så eg slepper skjerm, tastatur eller ssh sesion oppe. Det endte opp med att eg brukte ein sweet trådlaus rellè boks, med ein tilhøyrandes fresh fjærnkontroll med 4 knapper. som eg programmerte til. Random sang i lista, neste liste, (play) starte spotify i screen og samtidig starte ein sang og stopp

 

Kvarleis eg har gjort det:

Først og fremst må despotify installerast, det lettaste er å kompilere rett i fra kjelda. Det er eindel dependencies som krevest for å kompile desoitfy, usikker nøyaktig ka. Men det står noko her. http://despotify.sourceforge.net/ (Brukte litt tid på det, men feilmeldinga under kompileringa er stortsett så nøyaktig att du lett kan installere det som mangler utifrå den)

Last ned tar fila, extract og kompiler:

http://despotify.svn.sourceforge.net/src/

tar -xvwf despotify.tar.gz

cd despotify/src && make && sudo make install

Når det er installert kan du teste om den fungerer.

despotify/clients/simple/./simple.sh <bruker> <passord>

 

Neste steg blir å lage eit script som kan starte ein sang, eg fant ut det var lettare å kjøre despotify i ein screen.

screen -S <navn> -m -d /despotify/clients/simple/./simple.sh <bruker> <passord>

-S <navn> er sesion navn du må bruke for å nå det seinare. -m -d er får å starte screenen deatached.

Så sende komandoer til screen sesisionen <name>

screen -S <navn> -X stuff ‘list ^m’

sleep 0.5

screen -S <navn> -X stuff ‘list 1 ^m’

sleep 0.5

screen -S <navn> ‘play 1 ^m’

Legger du dei komandoane i eit script og kjører vill despotify spele av sang 1 i liste 1. (greit med ein sleep, despotify bruker litt tid førse gang å finne lista)

Scriptet legger du rimelig lett i crontab.

crontab -e

Så får du opp ein editor med din crontab.

00 08 * * * /bin/sh /path/til/ditt/script.sh

Med den kommandoen der vil den starte ditt skript klokka 08:00 kvar dag.

Raspberry pi GPIO (General Purpose Input/output)

 

Det var faktisk ikkje så vanskelig  å sende signal inn på i/o pinnane. Det er simpel 3V logik det er snakkom, er pinnen +3V vil fila ha verdien 1, er pinnen 0V(gnd) vil fila ha verdien 0. Pass foresten på att når pinnen er urørt vil den kunne på grunn av forstyrringer(støy) vere o eller 1 til ein kvar tid. Ein motsand til jord på kvar pinne, så kopplar du ein bryter mellom 3V og pinnen.

For å kunne lese av pinnane må du “invoke” dei. det gjere du med å kjøre følgandes kommando som root.

echo “4″ > /sys/class/gpio/export

Det må gjerast for ein kvar GPIO pinne du skall bruke, kan vere smart å lage script som kjører under oppstart.

Dei her GPIO pinnane kan du bruke som Inn og utgang

4,17,18,21,22,23,24,25

For å lese verdien til ein spesifik GPIO pinne:

cat /sys/class/gpio/gpio4/value

Når det var gjort var det ingen sak å lage ei større script som behandler knappetrykk.

Liten film av systemet i action

Det er berre å spørre om det er noko som er uklart. Eller om det er noko du vil eg skall gå i meir detalj på.

 

 

This entry was posted in Uncategorized. Bookmark the permalink.

2 Responses to Raspberry pi som vekkerklokke

  1. reaVen says:

    Kunne du forklart hvordan man kan få spotify til å funke med openelec på raspberry pi. Jeg har alt annet enn musikk-streaming på min nå. xbmc + plex funker utmerket, men finner ikke en guide på hvordan få spotify til å funke med openelec.

  2. Svein Ove Undal says:

    Hmm, har ikkje våre særlig borti openelec. Men lurer på om det er lettare å bruke ein spotify plugin til xbmc, som spotyxbmc

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>