IOT

IOT

dilluns, 20 de març del 2017

Sistema de so Multiroom III (Client Squeezelite per a Orange Pi)

Client Squeezelite per a Orange Pi





En aquest article anem a presentar un client Squeezelite super econòmic muntat en una Orange Pi Zero.

El hardware
La principal avantatge es el seu preu reduït, el poc espai que ocupa, i que inclou la targeta d’expansió amb la sortida de so integrada, així com la carcassa per contenir-ho tot.
A la data de redactar el present article, podem trobar a la pàgina d’Aliexpress aquest kit per 17,66 € transport inclòs.




El kit inclou la Orange Pi Zero, targeta d’expansió, i carcassa contenidora. Evidentment necessitarem una micro SD i un alimentador micro USB de 2A.


El sistema operatiu
Per començar necessitarem descarregar el sistema operatiu de la pàgina del projecte Armbian: https://www.armbian.com/orange-pi-zero/ , clicarem a l’opció “Debian Jessie”., (a data de març de 2017 es baixa el fitxer:  Armbian_5.25_Orangepizero_Debian_jessie_default_3.4.113.7z).

Un cop descarregada, la haurem de descomprimir per extreure la imatge amb extensió img.
Gravarem la imatge en una targeta micro Sd tal i com expliquem a l’article: https://iotpasaapas.blogspot.com.es/2017/02/installacio-del-sistema-operatiu.html

Seguidament introduirem la targeta a la Orange pi, connectarem un cable de dades (Ethernet) al la nostre xarxa (o router).

Donat que aquesta placa no disposa de sortida directa de vídeo, la manera més senzilla per configurar-la serà mitjançant terminat remot. Des de Windows farem servir Putty, però prèviament haurem de saber quina adreça IP li ha assignat el nostre router per DHCP.

Per obtenir-la fàcilment tenim eines com Advanced IP Scanner http://www.advanced-ip-scanner.com/es/ , que es una aplicació gratuïta la qual ens ajudarà en aquest propòsit. Serà suficient amb executar-la i escollir l’opció d’engegar sense instal·lació, seguidament cliquem a la icona Explorar, i un cop finalitzat l’escaneig prenem nota del que hagi detectat. Seguidament alimentarem la Orange pi pel port micro Usb, i passats uns segons tornem a escanejar amb l’IP Scanner i observem el que ens mostra, les diferencies amb l’anterior escaneig seran les dades de la nostre Orenage. D’aquí prendrem nota de l’adreça IP i la Mac.

A partir d’aquest moment ja podrem executar el Putty introduint a “Host Name” l’adreça obtinguda. La resta de paràmetres com indica la següent imatge:   

 

Un cop establim la connexió obtindrem la següent pantalla:


Introduirem l’usuari: root i la contrasenya: 1234


Seguidament tintem accés root però haurem de respondre una sèrie de preguntes com el canvi de contrasenya i l’activació d’un nou usuari.

Finalment ja tindrem la terminal preparada per actualitzar-la i configurar-la.

La configuració

Com en el cas de la Raspberry el primer de tot serà posar al dia el sistema.

apt-get update
apt-get upgrade

(Si no hem fet el login com a root haurem de posar sudo davant de cada instrucció).

Seguidament configurarem la zona horària:

dpkg-reconfigure tzdata


Continuarem per configurar la connexió Wifi:
Accedirem amb la instrucció:

nmtui


Entrant a “Activate a connection” podrem escollir la xarxa Wifi on connectar-se. Si us passa com a mi que no veig la meva xarxa, haureu de treure l’antena fora de la caixa.


Seleccionem la nostre wifi i introduïm la contrasenya.

Des del menú principal de nmtui en la darrere opció, també podrem canviar el nom a la placa (per si tenim més d’una poder-les identificar).

La instal·lació del Software

A partir d’aquí la instal·lació es gaire be la mateixa que a la Raspberry.

Biblioteques

Instal·larem les biblioteques necessàries per l’àudio mitjançant les següents instruccions:

sudo apt-get install libfaad2 libflac-dev libmad0 -y
sudo apt-get install -y libflac-dev libfaad2 libmad0 -y

Instal·lació de Squeezelite

Crearem un directori de treball per Squeezelite i descarregarem els fitxers:

mkdir squeezelite

cd squeezelite

wget -O squeezelite-armv6hf http://ralph_irving.users.sourceforge.net/pico/squeezelite-armv6hf-noffmpeg

Mourem el fitxer descarregat al directori /usr/bin i el farem executable:

sudo mv squeezelite-armv6hf /usr/bin

sudo chmod a+x /usr/bin/squeezelite-armv6hf

Ajustar el nivell de so

Tot seguit ajustarem els nivells de so de la nostre targeta per evitar que se senti massa fluís, o que distorsioni per excés de volum.
Executarem:

alsamixer


Amb la tecla F6 seleccionarem la targeta de sortida de so, en aquest cas podem seleccionar tant default com audiocodec, donat que son la mateixa targeta.


Ajustarem el volum de sortida de l’audio (lineout) mitjançant les tecles amunt i avall, seleccionant el màxim nivell possible sense arribar a la zona vermella.


Amb la tecla fletxa dreta, passarem a la resta de seleccions i anirem baixant el nivell al mínim (tecla fletxa avall) per evitar interferències. Malgrat aquest consell, jo he acabat donant-li més volum al Lineout, donat que hem quedava una mica fluix.

Ara haurem de prémer la tecla Esc per enregistrar els canvis i sortir.

Configuració de la instrucció d’engegada.

Avanç d’iniciar el reproductor, haurem de localitzar la ruta de la nostre targeta de so.
Començarem per llistat els dispositius:

sudo /usr/bin/squeezelite-armv6hf -l


En aquest cas farem servir la sortida per defecte, “default:CARD=audiocodec”, (si proveu altres opcions trobareu que la música va massa ràpida).

Així compondrem l’ordre d’engegada segons el següent:

squeezelite-armv6hf -o default:CARD=audiocodec -n gemma -m C6:7B:B1:08:42:C7 -s 192.168.1.90

El funcionament d’aquesta instrucció es el següent:

“squeezelite-armv6hf”  Es l’aplicació pròpiament dita.
“-o default:CARD=audiocodec Indica la sortida (output) escollida per treure el so.
“-n gemma”  Dona nom al client (en aquest exemple gemma)
“-m C6:7B:B1:08:42:C7  Indica l’adreça Mac del client (la obtenim des del IpScan o amb l’ordre ifconfig)
“-s 192.168.1.90”  Indica l’adreça IP del servidor
Per sortir prenem Control + C.

Inici de Squeezelite al arrencar

Al objecte de que el nostre client arrenqui de manera automàtica cada vegada que iniciem la placa, haurem de configurar unes petites instruccions que s’executin a cada arrencada.

Ens desplacem al directori Squeezelite:

cd
cd squeezelite

Crearem el script per executar l’aplicació amb la nostre configuració:

sudo nano startup.sh

I enganxeu aquest text (adaptant-lo a la vostre instrucció creada a l’apartat anterior):

#!/bin/bash
squeezelite-armv6hf -o default:CARD=audiocodec -n gemma -m C6:7B:B1:08:42:C7 -s 192.168.1.90

Sortim i enregistrem amb Control X, Y, Intro.

I convertirem el script en executable:

sudo chmod +x startup.sh

Seguidament inclourem el fitxer en la seqüencia d’arranc:
sudo VISUAL=nano crontab -e

Al final del document engatxarem aquesta línia:

@reboot /root/squeezelite/startup.sh

I per verificar-ho reiniciem amb:

sudo reboot

Un cop reiniciada la placa podrem verificar que la tenim disponible mitjançant l’entorn web del LMS, explicat a l’article https://iotpasaapas.blogspot.com.es/2017/02/sistema-de-so-multiroom-i-servidor-lms.html.

Nota: Com que ja he instal·lat més d’un client SqueezeLite connectats al mateix servidor LMS, vaig detectar que aquest últim es confonia i no sabia qui era qui. Per solucionar-ho, vaig haver d’afegir el paràmetre –m indicant l’adreça Mac de la targeta de xarxa (tan se val si poseu la ethernet o la wireless), i d’aquesta manera hem va identificar correctament tots els clients.

Un altre problema el vaig tenir amb la velocitat en la reproducció, que vaig solucionar seleccionant la sortida d’àudio més adient (default:CARD=audiocodec), com ja he detallat al seu apartat.   


Salut.

Cap comentari:

Publica un comentari a l'entrada