domenica 23 luglio 2017

Orange Pi, facciamo amicizia!

Da qualche giorno mi e' arrivata la prima scheda Orange Pi ed ho cominciato subito a farci amicizia; naturalmente non si trovano in giro troppe informazioni, come nel caso di Raspberry Pi che ormai e' sul mercato da diversi anni, ma gia' con le prime informazioni che fornisce il costruttore, ed alcuni schemi dei Pin che sono stati ricavati da un appassionato come me, si riesce a combinare qualcosa.

Infatti la documentazione che il costruttore fornisce con la scheda e' piuttosto dettagliata e precisa nel fornire le indicazioni su come installare il sistema operativo, ma non  lo e' altrettanto nella descrizione dei Pin (forse perche' le altre informazioni sono analoghe a quelle necessarie per la scheda principale, piu' costosa e piu' curata, mentre i Pin della scheda Zero sono differenti rispetto all'altra).


Orange Pi

https://oshlab.com/orange-pi-zero-pinout/

Pandora in streaming su Orange Pi

Ho costruito una semplice riproduttore mp3 per mia madre, progettando anche la sua forma e stampando la stessa con la il staglio laser.
Avendo quindi la scatola gia' fatta ho pensato di costruire anche un sistema per me, un po' piu' complicato, ma che potesse consentirmi di sentire tutta la musica che voglio.
Mi sono ricordato che qualche anno fa avevo fatto dei test con Raspberry e Pandora, ed ho ripreso il progettino per calzarlo nella nuova casetta in legno appena progettata.

Partiamo dallo scaricare il sistema operativo necessario per far funzionare il nostro mostriciattolo prelevando il file da qui
Ho scelto questo sistema operativo sviluppato proprio per la Orange Pi, perche' appena lo ho istallato mi e' rimasto subito simpatico per la sua semplicita' di utilizzo per le cose di base che devono essere fatte per mettere su un progettino come questo.

Scaricato e scompattato il file del sistema operativo, e dopo aver preparato la SD formattandola fat32, sono passato alla creazione del disco da linux con:

sudo umount /dev/sdc*    (nel mio caso questo e' il percoso della microSD

sudo dd  if=/tutto_il_percorso_fino_al_file/Armbian_5.30_Orangepizero_Ubuntu_xenial_default_3.4.113.img of=/dev/sdc   (nel mio caso)

Istallata la microSd nella scheda, collegato il cavo di rete al router, .... via al primo accesso

 root   ed  1234  sono utente e password della prima accenzione

La prima volta che viene collegato questo sistema operativo ti costringe a cambiare la password ed a creare un nuovo utente, in maniera del tutto automatica.
Fatte queste operazioni e dato il primo reboot (che servira' al sistema operativo di assestarsi e compiere tutte le operazioni necessarie, come l'espansione del disco fino alla capacita' della scheda Sd scelta ecc..) si puo' finalmente cominciare .

sudo apt update (per aggiornare)

sudo apt upgrade

poi ci solleghiamo via wifi utilizzando il programma di interfaccia predisposto dalla distribuzione:

 sudo nmtui-connect

qui scegliere il proprio router e impostare la password

adesso si naviga anche in wifi!

istalliamo pianobar con
sudo apt-get install pianobar

appena terminato l'iter della istallazione il sistema gia' dovrebbe funzionare, bastera' chiamare  pianobar  e dare le credenziali di accesso al sistema di pandora, che dovete esservi gia' procurate facendo il signup sul sito.

Dall'italia non e' possibile collegarsi direttamente perche' per motivi di copyright, ill servizio e' dispopnibile solo in madrepatria (usa). Noi possiamo ovviare a questa storia di vil denaro! semplicemente modificando il DNS, con linux basta modificare il contenuto del file

 /etc/resolv.conf

inserendo i nuovi numeri di un server DNS che rende libero questo servizio:

Qui il contenuto del file  /etc/resolv.conf   dopo la modifica (oggi funziona ma potrebbero modificare gli indirizzi, mi e' gia' successo nel corso degli anni, vedi il precedente articolo)


# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver  107.170.15.247
nameserver 77.88.8.8
search lan

**************aggiornamento del 22 febbraio 2020

gli indirizzi sopra non funzionano piu', quando oggi ho ripreso la mia creatura per riaccenderla, la brutta notizia : non parte nulla.
Quindi mi sono messo in cerca di una soluzione: eccola

Primary:64.145.73.5
Secondary:209.107.219.5

Il file resolv.conf ad ogni reboot si modifica con le istruzioni che il sistema riceve dal DHCP, quindi questa operazione deve essere fatta tutte le volte che si accede a pianobar perche' si possa essere sicurti che tutto funzioni, io mi sono messo il file in una cartella nella home, ed ho costruito un file bash che ne copia il contenuto nella cartella corretta ad ogni chiamata di pianobar.

Piu' chiaramente ho costruito un file in una cartella chiamata radio

cd
mkdir radio 
vi /home/pi/radio/resolv_pandora.conf

qui ho copiato il contenuto di resolv.conf con i numeri del server DNS corretto

poi ho costruito il file  startpandora.sh

con :

cd
vi startpandora.sh

copiandoci dentro questo:
#!/bin/bash
sudo cp /home/pi/radio/resolv_pandora.conf /etc/resolv.conf 
exec pianobar


in questo modo ogni volta che chiamo ./startpandora.sh il sistema in automatico copia il file nella cartella di sistema sovrascrivendo l'altro creato dal sistema in fase di boot, e poi faccio partire pianobar.

Perche il programma funzioni correttamente si deve costruire un file di configurazione che il pianobar si va a leggere tutte le volte che parte.

cd
mkdir .config
mkdir .config/pianobar
cd .config/pianobar
vi config

Come spiega questa guida, questo e' il contenuto che deve essere copiato dentro config:

# This is an example configuration file for pianobar. You may remove the # from
# lines you need and copy/move this file to ~/.config/pianobar/config
# See manpage for a description of the config keys
#
# User
user = your@user.name
password = password
# or
#password_command = gpg --decrypt ~/password

# Proxy (for those who are not living in the USA)
#control_proxy = http://127.0.0.1:9090/

# Keybindings
act_help = ?
act_songlove = +
act_songban = -
act_stationaddmusic = a
act_stationcreate = c
act_stationdelete = d
act_songexplain = e
act_stationaddbygenre = g
act_songinfo = i
act_addshared = j
act_songmove = m
act_songnext = n
act_songpause = p
act_quit = q
act_stationrename = r
act_stationchange = s
act_songtired = t
act_upcoming = u
act_stationselectquickmix = x
act_voldown = (
act_volup = )

# Misc
#audio_quality = low
autostart_station = 123456
event_command = /home/pi/.config/pianobar/scripts/eventcmd.sh
fifo = /home/pi/.config/pianobar/ctl
#sort = quickmix_10_name_az
#love_icon = [+]
#ban_icon = [-]
#volume = 0

# Format strings
#format_nowplaying_song = [32m%t [0m by [34m%a [0m on %l [31m%r [0m%@%s
#format_nowplaying_station = Station [35m%n [0m
#format_list_song = %i) %a - %t%r

# high-quality audio (192k mp3, for Pandora One subscribers only!)
#audio_quality = high
#rpc_host = internal-tuner.pandora.com
#partner_user = pandora one
#partner_password = TVCKIBGS9AO9TSYLNNFUML0743LH82D
#device = D01
#encrypt_password = 2%3WCL*JU$MP]4
#decrypt_password = U#IO$RZPAB%VX2
tls_fingerprint = B0A1EB460B1B6F33A1B6CB500C6523CB2E6EC946




Naturalmente e' da personalizzare con il proprio account e la propria password di Pandora

Questo file come potete leggere, chiama un file bash eventcmd.sh che gestira' i comandi fisici (i pulsanti che saranno necessari per gestire il sistema )


Prima di tutto va costruito il file dove pianobar andra' a leggere i comandi esterni con il comando:

mkfifo /home/pi/.config/pianobar/ctl

Questo comando crea un file  ( ctl ) dentro cui transiteranno i comandi collegati ai pulsanti della radio  web che stiamo costruendo. Il comando consente a due processi di scambiarsi informazioni, prima uno scrive e poi l'altro legge, e si preoccupa di evitare che un comando non venga letto mettendo in attesa la scrittura del successivo comando fino alla lettura del precedente.

Il progetto originale ha una cartella pubblica su github che contiene i vari script e programmi in python per la gestione dei pulsanti, quindi a questo punto ce lo copiamo suil nostro sistema per prendere quanto necessario :

cd /home/pi/.config/pianobar
git clone git://github.com/AyMac/Pandoras-Box.git

cosi facendo ci siamo costruiti la nostra cartella Pandora-Box dentro pianobar, a noi servono i file contenuti nella cartella script che va copiata dentro pandora




martedì 29 novembre 2016

Giocherellando con Twitter

Oggi mi sono divertito ad installare e far girare un programma Python rimediato su github , TweetMonitor.
Il programma in questione non fa grandi cose, ma crea un canale con Twitter e monitora un (o una serie di) Tag,  che l'utente sceglierà alla partenza dello script.

Ciò che dobbiamo fare per installare il programma è piuttosto semplice, intanto installiamo git:
sudo apt-get install git

e poi facciamo il clone del repository
git clone https://github.com/upgoingstar/TweetMonitor


adesso abbiamo bisogno di installare pip che e' un sistema per l'installazione tipo apt-get, digitiamo quindi il comando:
sudo apt-get install python-pip


e dunque installiamo tweeppy con:
sudo pip install tweepy

Serve ancora la libreria elasticsearch
sudo pip install elasticsearch

entriamo nella cartella del programma con:
cd TweetMonitor/

editiamo con nano il file tweetmonitor.py per inserire i dati di autenticazione ricavati sul sito  https://dev.twitter.com/.

Riporto qui di seguito gli screenshot di come ottenere i dati necessari, ma potete seguire anche la guida di sparkfun a quersto indirizzo:













 e adesso via! chiamando il comando:
sudo python tweetmonitor.py -k ferrari

il parametro -k indica al programma quale Tag seguire, in questo caso "ferrari" ma possiamo scegliere qualsiasi termine vogliamo. Si possono anche monitorare più più termini, basta separarli con la virgola

Ecco cosa accade nella shell:
pi@EasyMeteo01:~/TweetMonitor $ sudo python tweetmonitor.py -k ferrari
----- Twitter bot kicked off ------
>>verZACeee posted: RT @HotFreestyle: Tyler The Creator and A$AP Rocky in the Ferrari https://t.co/XsGGLfdzrV
>>Ferrarinogazou posted: Ferrari画像 フェラーリ 高級車 スーパーカー RT https://t.co/9wYbkZvKtK
>>dannybelkin posted: This looks preposterous https://t.co/qADf8fr6be
>>genfe2 posted: RT @isragus78: Que bestia el Ferrari por detras !!!! Como vamos a disfrutar en los test de Bcn...@genfe2 @JaumeCiurana https://t.co/hLGcDde…
>>Reg_Spotter posted: T777SAT #2004 #Ferrari 360 #Modena  #Rare #uk #car #cars  #us #usa #numberplate #reg_spotter https://t.co/zkRsAmRzEA



Buon divertimento
TecnoGeppetto

Alcuni link interessanti sull'argomento:
https://www.sparkfun.com/news/1320
https://learn.sparkfun.com/tutorials/raspberry-pi-twitter-monitor?_ga=1.122161035.1620156107.1480440805