Aplicatie Utilizand Placa de Dezvoltare Raspberry Pi2

Aplicație utilizând placa de dezvoltare Raspberry PI2

Abstract (max. 300 cuvinte)

Lumea calculatoarelor este în continuă expansiune, acestea ajungând în ultima perioadă, la puteri de calcul mari și dimensiuni foarte mici. Un astfel de dispozitiv este Raspberry PI, un minicalculator cu un preț foarte scăzut. Acest minicalculator permite dezvoltarea de aplicații diverse, pornind de la divertisment (TV-Box, Media-Box) la automatizări. În această lucrare se prezintă un astfel de dispozitiv, împreună cu câteva aplicații care se pot realiza pe sistemul de operare raspbian. Aplicația realizată consta in realizarea unui server de streaming audio, comandat de la distanta, printr-o interfata web, dar si cu ajutorul telefoanelor inteligente. Interfata web care comanda playerul instalat pe raspberry este realizata in html si css, iar scriptul de exectutie este realizat in php.

Lucrarea de față, este structurată pe 5 capitole ce necesită parcurse pentru a înțelege și dezvolta ulterior funcțiile aplicației, sau chiar dezvoltarea altor aplicații.

Cuvinte cheie: Raspberry PI2, ARM, Raspbian, player.

Management and Control System

using ZigBee technology

Abstract

The world of computers is constantly expanding, now reaching at high computing power and very small dimensions. Such a device is the Raspberry PI, a mini PC with a very low price. This computer allows the development of various applications, from entertainment (TV-Box, Mediabox) to automation. In this study is presented such a device, along with some applications that can be made on raspbian operating system. The application consists into an audio streaming server, remotely controlled through a web interface and using smart phones. Web interface that command the player installed on raspberry is done in HTML and CSS. The execution script is done in php.

This study is divided into five chapters that need to be completed to understand and further develop the application functions or the development of other applications..

Keywords: Raspberry PI2, ARM, Raspbian, player.

Bibliografie:

Dragos Acostachioaie, Administrarea și configurarea sistemelor Linux, Polirom, 2002;

Sabin Buraga, Dragos Acostachioaie, Marius Marusteri, Primii pași în Linux, Polirom, 2006;

BCM2835 ARM – DataSheet;

www.raspbian.org/RaspbianDocumentation

Listă figuri

Listă tabele

Simboluri și abrevieri

Soc System on Chip

GPU Graphics Processing Unit

DSP Digital Signal Processing

CPU Central Processing Unit

GIPO General Purpose Input/Output

SPI Serial Peripheral Interface

LoSSI Low Speed Serial Interface

SSP Synchronous Serial Protocol

Cuprins

Introducere

Raspberry PI este un minicalculator cu preț foarte scăzut, care permite dezvoltarea multor aplicații din domenii diverse, de la automatizări la echipamente folosite în headend TV, pentru recepția de streeming video. Raspberry PI 2 vine cu un procesor de 700Mhz, o memorie RAM de 512Mb, o placă de rețea, 2 porturi USB, port HDMI și o iesire analogică video.

În lucrarea de față se prezintă o aplicație care utilizează modulul Raspberry PI 2, aplicația constă într-un server de streming audio, controlat dintr-o interfață web sau direct de pe telefonul mobil printr-o aplicație gratuită.

Aplicația propriu-zisă constă în realizarea unei interfețe web, care permite comanda playerului audio, instalat pe modulul Raspberry. Aplicația este scrisă în limbajul de programare PHP, interfața fiind realizată în html și css. Se fac și interogări asupra unei baze de date, ce memorează date despre utilizatorii care accesează streamingul, dar și despre persoanele care au dreptul la controlul playerului, DJ.

Lucrarea de față, este structurată pe 5 capitole care necesită parcurse pentru a înțelege și dezvoltă ulterior funcțiile aplicației, sau chiar dezvoltarea altor aplicații.

În capitolul 1 este prezentat modulul Raspberry PI 2, specificațiile acestuia, porturile funcționale, alimentarea modulului și portul GIPO, care nu este folosit în cadrul acestei lucrări.

Capitolul 2 face o scurtă prezentare a procesorului ARM BCM2835 care este utilizat pe placa de dezvoltare Raspberry PI. Acesta înglobează procesorul grafic, procesorul unității logice (CPU), memoria SDRAM, porturile USB și toate perifericele aferente.

În capitolul 3 se face o prezentare a modului de instalare și configurare a unuia dintre sistemele de operare pe care Raspberry Pi le suportă, și anume Raspbian. Acesta este un sistem de operare care are la bază versiunea de linux Debian, optimizată pentru specificațiile plăcii Raspberry PI. Sistemul de operare Raspbian este un sistem grauit, acesta fiind suportul nostru de lucru în cadrul aplicației.

În capitolul 4 sunt prezentate o serie de aplicații care stau la baza funcționării aplicației finale. Se prezintă modul de instalare și configurare al aplicațiilor necesare în construirea unui server de streeming audio. Tot în acest capitol este prezentat modul de funcționare al aplicației web, care controleaza playerul audio și o modalitate de control al acestui player utilizând o aplicație gratuită disponibilă pentru sistemele de operare android.

Capitolul 5 prezintă avantajele și dezavantajele unui server de streaming audio care să aiba ca suport hardware Raspberry PI, dar și cu o serie de îmbunătățiri ce pot fii aduse în continuarea proiectului.

Capitolul 1 – Placa de dezvoltare Raspberry PI2

Raspberry PI este un computer de mici dimensiuni capabil să ruleze sisteme de operare Linux. Acesta are inclus placa de rețea Ethernet, conector pentru ieșire video de tipul HDMI, două porturi pentru conexiune USB. Platforma are la bază un procesor de 700MHz de tipul ARM și o memorie RAM de 512MB. Procesorul, memoria RAM ți modulul video sunt regăsite într-un chip de tip-ul SoC (System on Chip). Platforma are posibilitatea de atașare de senzori, led-uri, butoane etc. Sistemele de operare pe care platforma le rulează sunt realizate special pentru puterea de calcul a plăcii. Raspberry PI s-a răspândit în foarte multe domenii și aplicații datorită faptului că are un preț foarte scăzut și o dimensiune mică, iar puterea de calcul este comparabilă cu ce-a a unui calculator obișnuit (de acum 5-6 ani).

Figura 1.1 Placa Raspberry PI

1.1 Specificații tehnice

Raspberry PI a fost realizat în primă fază în varianta cu procesor de 700MHz și o memorie RAM de 256MB, aceasta, purtând numele de Raspberry PI A și varianta a doua, folosită în aplicație, cu un procesor de 700MHz și o memorie RAM de 512MB.

Tabel 1.1 Specificații Raspberry PI

Figura 1.2 Dispunerea componentelor pe placa Raspberry PI

1.1.1 Alimentarea plăcii

Raspberry PI necesită o sursă de tensiune de 5V și minim 700mA pentru a deveni operațional, conectarea alimentării fiind făcută printr-o mufă microUSB. Alimentarea sistemului trebuie facută corect deoarece o sursă care nu oferă curent suficient poate duce la rezultate neplăcute în funcționare: resetări ale sistemului de operare, pierderi de date, blocarea cardului sau distrugerea ireversibilă a plăcii Raspberry PI (în cazul alimentării la o tensiune mai mare de 5V).

Figura 1.3 MicroUSB PinOUT

1.1.2 Ieșirea HDMI și TV-OUT

Raspberry PI suportă și o conexiune video HDMI, având posibilitatea de conectare a unui monitor, TV ce suportă o astfel de conexiune. Procesorul video al acestei plăci este dedicat (rulează independent de procesorul principal), astfel Raspberry PI, poate reda video și afișa imagini la o rezoluție FULL-HD.

Raspberry PI este dotat și cu un conector RCA folosit pentru TV-OUT cu Ieșire PAL sau NTSC, ce permite conectarea la un televizor de generație mai veche, în acest caz calitatea imaginii va fii scăzută și rezoluția va fii mai mică.

Raspberry PI nu are un port VGA ,dar poate totuși fii conectat printr-un adaptor HDMI-VGA.

1.1.3 Porturi Intrare/Ieșire

Tabel 1.2 Funcțiile pinilor conectorului GPIO

1.2 Sistemul de operare

Sistemele de operare pe care Raspberry PI le suportă au la bază diferite versiuni ale sistemului de operare linux, acestea fiind optimizate pentru specificațiile hardware ale plăcii Raspberry PI.

Lista sistemelor de operare ce pot fii instalate pe placa Raspberry Pi este următoarea:

Capitolul 2 – Procesorul ARM BCM2835

BCM2835 este un procesor de 700MHz care echipează placa de dezvoltare Raspberry PI. Acest procesor conține următoarele periferice care pot fi accesate:

Timers

Interrupt controller

GPIO

USB

PCM / I2S

DMA controller

I2C master

I2C / SPI slave

SPI0, SPI1, SPI2

PWM

UART0, UART1

2.1 Harta de memorie

BCM2835 include un al doilea MMU pentru maparea adreselor fizice ale ARM de pe adresele bus-ului sistemului.

Adresele în ARM Linux sunt:

Mapate într-o adresă fizică de MMU ARM

Mapate într-o hartă a adreselor de bus

Utilizate pentru selectarea corespunzătoare a perifericelor sau locației RAM

Emise ca adrese virtuale de nucleul ARM

Principalele spații de adrese care prezintă interes sunt prezentate în figura 2.1.

Figura 2.1 Diagrama principalelor zone de memorie

2.2 UART, SPI1 și SPI2

Dispozitivul are trei periferice auxiliare: un mini-UART și două master SPI. Aceste trei periferice sunt grupate împreună ca ele să împartă aceiași zonă de memorie. Acestea au o întrerupere comună și de asemenea, toate trei sunt controlate de un registru auxiliar.

Există două registre auxiliare care controlează toate cele trei dispozitive. Unul dintre ele se ocupă cu starea de întrerupere, iar cel de-al doilea registru cu starea de activare/dezactivare a perifericelor.

Tabel 2.1 Registrul de stare al întreruperilor AUXIRQ Register (0x7E21 5000)

Tabel 2.2 Registrul de activare al perifericelor AUXENB Register (0x7E21 5004)

2.3 External Mass Media Controller

External Mass Media Controller (EMMC) încorporează MultiMedia și SD card într-o Interfață furnizată de Arasan. Acesta este compatibil cu următoarele standarde:

SD Host Controller

SDIO card

SD Memory Card

SD Memory Card

SD Memory Card Security

MMC

Modulul EMMC trebuie să fie selectat în Interfața GIPO, deoarece aceasta are în comun pini cu alte funcții.

Figura 2.2 Arhitectura EMMC

2.4 Portul GPIO (General Purpose I/O)

Există 54 de porturi I/O împărțite în două categorii. Toate porturile GPIO au cel puțin două funcții alternative. Funcțiile alternative sunt de obicei pentru perifericele I/O, acestea pot apărea în ambele categorii pentru a permite o flexibilitate cu privire la alegerea tensiunii de I/O.

Perifericul GPIO are trei linii de întrerupere dedicate. Aceste linii sunt declanșate de către setarea de biți detectată în registrul de stare.

Schema bloc a unui pin GIPO este reprezentată în figura următoare:

Figura 2.3 Diagrama bloc a unui pin GIPO

2.5 PCM/I2S Audio

Interfața audio PCM este un periferic APB pentru furnizare de intrare și de Ieșire pentru telefonie sau pentru fluxuri audio de înaltă calitate. Acesta suportă mai multe formate clasice PCM, printre care și I2S.

Interfața audio PCM are 4 semnale de Interfață:

PCM_CLK – bit clock

PCM_FS – frame sync signal

PCM_DIN – serial data input

PCM_DOUT – serial data output

Figura 2.4 Interfața audio PCM diagrama bloc

Interfața audio PCM conține transmisie și primire FIFOs separată. Dacă cadrul conține două canale de date, acestea trebuie să aibă același FIFO și astfel datele de canal vor fii intercalate. Blocul poate fi condus prin “votare”, o metodă bazată pe întrerupere sau direct prin control DMA.

2.6 Pulse Width Modulator

Controlerul PWM are următoarele caracteristici:

două ieșiri independente de fluxurile de biți, cu frecvență de ceas fixă;

configurație individuală de fluxuri de biți, PWM sau Ieșire serială;

ieșirile PWM dispun de variabile de intrare și reglarea rezoluției la Ieșire;

mod serial pentru citire/încărcare date dintr-o stivă de tip FIFO care poate stoca cuvinte de 32 biți;

ceasul este 100MHz, dar poate fi variat prin managerul de ceas.

Figura 2.5 Diagrama bloc

2.7 Modulul SPI

Această interfață serială are următoarele caracteristici:

Implementează un protocol serial de 3 firsta suportă mai multe formate clasice PCM, printre care și I2S.

Interfața audio PCM are 4 semnale de Interfață:

PCM_CLK – bit clock

PCM_FS – frame sync signal

PCM_DIN – serial data input

PCM_DOUT – serial data output

Figura 2.4 Interfața audio PCM diagrama bloc

Interfața audio PCM conține transmisie și primire FIFOs separată. Dacă cadrul conține două canale de date, acestea trebuie să aibă același FIFO și astfel datele de canal vor fii intercalate. Blocul poate fi condus prin “votare”, o metodă bazată pe întrerupere sau direct prin control DMA.

2.6 Pulse Width Modulator

Controlerul PWM are următoarele caracteristici:

două ieșiri independente de fluxurile de biți, cu frecvență de ceas fixă;

configurație individuală de fluxuri de biți, PWM sau Ieșire serială;

ieșirile PWM dispun de variabile de intrare și reglarea rezoluției la Ieșire;

mod serial pentru citire/încărcare date dintr-o stivă de tip FIFO care poate stoca cuvinte de 32 biți;

ceasul este 100MHz, dar poate fi variat prin managerul de ceas.

Figura 2.5 Diagrama bloc

2.7 Modulul SPI

Această interfață serială are următoarele caracteristici:

Implementează un protocol serial de 3 fire, numit Serial Peripheral Interface (SPI) sau Synchronous Serial Protocol (SSP);

Implementează o versiune pe 2 fire de SPI, care folosește un singur fir ca un fir de date bidirecțional, în loc de un fir în fiecare direcție ca în standardul SPI;

Implementează un LoSSI Master (Low Speed Serial Interface).

Figura 2.6 Schema bloc a interfeței SPI

2.7.1 Modul SPI master

În modul SPI master protoculul folosește 3 fire. Modul de conectare al dispozitivelor este reprezentat în figura următoare:

Figura 2.7 Utilizarea normală în modul SPI master

2.7.2 Modul Bidirecțional

În modul bidirecțional de master SPI, același standard este pus în aplicare, cu excepția faptului că se utilizează un singur conductor pentru date (MIMO). Modul bidirecțional este utilizat într-un mod asemănător cu modul standard, diferența este că înainte de încercarea de primire de date de la SLAVE este necesar să se anunțe citirea. Acest lucru se face setând bitul SPI_REN din controlul SPI și bitul din registrul de stare SPI_CS.

Figura 2.8 Utilizarea normală în modul bidirecțional SPI master

2.7.3 Modul LoSSI

Standardul LoSSI ne permite transmiterea de comenzi pentru periferice și transferul de date de la acestea, dar și între ele. Comenzile și parametrii LoSSI au o lungime de 8 biți, dar vine în plus cu un bit care indică dacă octetul trimis este o comandă sau date. Acest bit suplimentar este setat pe valoare HIGH pentru parametru și valoare LOW pentru comandă. Rezultatul valorii octetului este serializat la ieșire.

Figura 2.9 Utilizarea normală a modului LoSSI

Capitolul 3 – Instalarea și configurarea minimală a sistemului Raspbian

Raspbian este un sistem de operare gratuit, care are la bază sistemul de operare Debian, optimizat pentru hardware-ul plăcii Raspberry PI. Sistemul de operare Raspbian dispune de un set de programe și utilitare care face sistemul Raspberry PI funcțional.

Sistemul de operare Raspbian poate fii pus pe cardul SD fie prin copierea imaginii direct din calculator pe cardul SD fie prin instalare. Pașii folosiți pentru instalarea sistemului sunt:

Descărcarea fișierelor necesare instalării;

Pregătirea cardului de memorie – formatarea cu o singură partiție de tip FAT32 și copierea fișierelor pe cardul de memorie;

Conectarea plăcii Raspberry PI la un monitor și o tastatură;

Conectarea plăcii la o rețea de internet – instalarea se va face din rețea (fișierele vor fi descărcate automat).

3.1 Pregătirea cardului SD

Pentru a putea scrie imaginea cu sistemul de operare Raspbian pe un card SD, trebuie mai întâi să îl pregătim. Pregătirea constă în formatarea acestuia în format FAT32. Acest lucru se poate face în mai multe moduri, unul dintre acestea îl reprezintă formatarea cu utilitarul gratuit SDFormatter. Pașii care trebuiesc urmați pentru formatarea cardului sunt:

alegerea cardului selectând litera corespunzatoare driverului;

din meniul Option se allege FULL (Erase);

Se apasă butonul Format și se așteaptă până când formatarea este gata.

3.2 Scrierea imaginii cu ajutorul utilitarului Win32 Disk Imager

Acest utilitar este gratuit. După descărcare este necesară extragerea fișierelor din arhiva descărcată. Pentru a putea scrie imaginea pe cardul SD, avem nevoie de imaginea cu sistemul Raspbian descărcat.

Pașii care trebuiesc urmăriți sunt:

deschiderea utilitarului Win32 Disk Imager;

se alege calea către imagine cu sistemul de operare;

se alege driverul în care este introdus cardul SD;

se pornește scrierea prin apăsarea butonului Write;

3.3 Configurarea pachetului pentru remote control desktop

Dacă dorim să ne conectăm remote desktop pe placa raspberry este necesar să instalăm aplicația tighvncserver. Pentru a face această operațiune, ne conectăm ssh pe sistemul nostru Raspbian, după ce acesta este conectat la un router. Pentru această operațiune se folosește programul gratuit Putty.

Utilizatorul și parola cu care se face logarea în ssh sunt:

După logare este recomandat să facem un update la ultimele versiuni de aplicatii pe care sistemul Raspbian le aduce. Acest lucru se face executând lina următoare de comandă:

>>sudo apt-get update

Instalarea pachetului tighvncserver se face executând comanda:

>> sudo apt-get install vnc-server

Se va alege Yes prin apăsarea tastei Y și Enter.

Executarea programului instalat se face prin tastarea comenzii:

>>vncserver

>>[Password]: Se alege o parolă

>>[Verify]: Se introduce din nou parola

Pentru conectare remote se deschide aplicația TightVNC Viewer instalată pe computerul nostru, se introduce adresa IP atribuită sistemului Raspberry urmată de portul pe care se face conectarea, implicit acesta este: 5901, și parola aleasă la instalarea aplicației pe sistemul Raspberry.

Capitolul 4 – Implementarea aplicației

Aplicația constă în realizarea unui server de streaming audio, la care să se poată conecta utilizatorii. Conectarea se va face pe bază de nume de utilizator și parolă, atat pentru utilizatorii care doresc să trimită un mesaj administratorului (DJ) cât și administratorilor. Aplicația are ca suport hardware placa de dezvoltare Raspberry PI modelul B.

4.1 Instalare și configurare IceCast2

IceCast2 este o aplicație de server gratuită, folosită pentru servere de streaming. Scopul acestei aplicații este acela de a oferii un flux audio pe care ascultătorii îl pot accesa atunci când se conectează la server.

Pentru a instala Aplicația IceCast2 este necesară executarea comenzii următoare:

>>sudo get-apt install icecast2

O să alegem să configurăm Icecast2 în timpul instalării.

Numele de domeniu care va fii folosit ca prefix pentru stream-urile audio va fi setat astfe:

Icecast2 hostname: localhost

La acest pas se va folosi o parolă cu ajutorul căreia ne conectăm cu sursa streamului. Sursa poate fi una găzduită pe același server, sau pe un alt calculator de unde se face emiterea (vezi 4.3 – Configurare player extern).

Aplicația Icecast2 are posibilitatea de folosire și pe post de releu de retrasmitere, acest lucru ne ajută atunci când numarul de ascultători de pe primul server ajunge la maxim sau când conexiunea de internet de pe primul server nu mai face față. Pentru a folosi această funcție este necesar să setăm o parolă. Această parolă se setează la acest pas.

Icecast2 dispune și de o interfață web de unde utilizatorii își pot descărca fișierul pentru streaming audio. Tot în această interfață administratorul poate verifica câte persoane sunt conectate la server sau să facă anumite operații. Pentru a accesa interfața de administrare va trebuii să setăm o parolă.

4.2 Instalare și configurare player audio

Avem nevoie de Media Player Clasic (MPC) și Media Player Daemon (MPD). Pentru instalare se vor executa comenzile următoare:

>>sudo apt-get install mpc

>>sudo apt-get install mpd

Pentru a nu primi o eroare, datorată protocolului de rețea ipv6 pentru care nu avem suport este necesară încărcarea acestuia în modulul karnel prin executarea comenzii:

>>sudo modprobe ipv6

Urmează configurarea ieșirii playerului Media Player Daemon (mpd). Este necesară introducerea rândurilor din figura 4.1 și modificarea adresei liniei bind_to_address "localhost" cu bind_to_address “127.0.0.1” în fișierul mpd.conf. Editarea acestui fișier se face cu comanda nano.

>>sudo nano /etc/mpd.conf

Figura 4.1 Modificări în fișierul mpd.conf

Setările făcute în acest fișier permite transmiterea unui stream audio la serverul icecast2 pe portul 8000, folosind ca punct de montare /mpd. Acest stream audio va fi codificat pe 16 biți, mp3 stereo cu o rată de biți de 128 kbits.

După efectuarea acestor setări este necesară repornirea playerului MPD. Acest lucru se face prin executarea comenzii:

>>sudo /etc/init.d/mpd restart

Pentru a verifica dacă noua ieșire audio a fost activată este necesar să executăm următoarea linie de comandă:

>>mpc outputs

Output 1 (My ALSA Device) is enabled

Output2 (Radio Licenta) is enabled

Pentru a verifica ce ieșiri audio avem disponibile pentru ascultare pe tcp executăm comanda:

>>sudo netstat –ltpn

Figura 4.2 Starea conexiunilor active pe server

4.3 Server Apach și Mysql

Aplicațiile necesare pentru serverul apach și mysql sunt următoarele:

Apache2

Mysql server

php5

php-mysql 5

Instalarea se face executând pe rând comenzile următoare, în ordinea prezentării lor în lucrarea de față.

Pentru instalare server apache2 se execută comanda următoare:

>> sudo apt-get install apache2

Pentru serverul de Mysql este nevoie să stabilim o parolă cu ajutorul căreia ne putem conecta la baza de date. Această parolă este atribuită în mod implicit numelui de utilizator root.

>> sudo apt-get install mysql-server

>> sudo apt-get install php5

>> sudo apt-get install php5-mysql

4.4 Instalare și configurare FTP

Pentru a ne putea face un cont de FTP pe noul server instalat, avem nevoie să instalăm și pachetul vsftpd. Instalarea se face prin executarea comenzii:

>>sudo apt-get install vsftpd

După terminarea instalării se va edita fișierul vsftpd.conf aflat în directorul etc. Pentru editarea acestuia se va folosi următoarea comandă:

>>sudo nano /etc/vsfpd.conf

Modificările ce trebuiesc aduse în acest fișier sunt următoarele:

anonymous_enable=YES se schimbă cu  anonymous_enable=NO

#local_enable=YES se schimbă cu local_enable=YES

#write_enable=YES se schimbă cu write_enable=YES

și se adaugă linia: force_dot_files=YES la sfârșitul fișierului

După efectuarea acestor schimbări este necesară repornirea aplicației pentru FTP. Acest lucru se face executând comanda:

>>sudo service vsftpd restart

Pentru stabilirea userului și parolei necesare conectării în contul de ftp, se vor urma comenzile:

>>sudo –i

>>passwd root

Se va introduce o parolă care va fii atribuită userului root.

>>exit

>>exit

Se deschide o noua sesiune SSH pentru care o să folosim ca username: root și parola setată la pasul precedent.

>>usermod –d /var/www pi

Se va închide această sesiune și se va deschide din nou o sesiune SSH de această dată cu userul PI și parola raspberry.

>>sudo –i

>>usermod –L root

>>exit

4.5 Instalare și configurare phpmyadmin

Este o aplicație gratuită, cu ajutorul căruia putem accesa într-un mod mult mai ușor, baza de date mysql. Această aplicație permite administrarea bazelor de date MySQL prin interfața web. Instalarea pe serverul nostru se face urmărind pașii următori:

De pe site-ul oficial se va descărca arhiva zip care conține fișierele aplicației;

Se dezarhivează fișiere și se vor încărca pe serverul web într-un director nou (phpmyadmin);

Accesarea noului soft instalat la adresa:

http://ip-raspberry/phpmyadmin (ex: http://192.168.10.14/phpmyadmin)

Numele de utilizator și parola pe care trebuie să le folosim pentru logare sunt cele pe care le-am folosit atunci când am facut instalarea serverului MySQL. În cazul nostru acestea sunt:

User: ROOT | Parola: licență

4.6 Controlul playerului MPC utilizând PHP

Pentru a reușii controlul playerului MPC fără să executăm comenzile în lina de comandă, s-a încercat realizarea unei aplicații simple care are la bază un cod php.

Funcția care ne permite executarea comenzilor în shell, folosind limbajul de programare php este funcția shell_exec(). Această funcție are proprietatea pe langă faptul că execută comanda în shell, că și returnează mesajul complet primit în cadrul executării comenzii.

Comenzile principale pe care playerul MPC le are atribuite sunt prezentate în tabelul următor, o parte dintre acestea au fost implementate în interfața web realizată special pentru controlul acestui player:

Tabel 4.1 Comenzi shell MPC

Comenzile sunt transmise către server prin intermediul fișierului, comanda php, care primeste indicativul comenzii respective prin metoda GET. Valorile transmise și respectiv funcțiile care sunt executate la primirea comenzii sunt afișate în tabelul 5.2.

Tabel 4.2 Lista valorilor trimise prin GET și comanda executată de server

Secvența de cod care se ocupă cu primirea și transmiterea comenzilor de executie către server este următoarea:

$var=$_GET['id'];

switch ($var) {

case 1:

$output = shell_exec('mpc play');

break;

case 2:

$output = shell_exec('mpc pause');

break;

case 3:

$output = shell_exec('mpc stop');

echo 'STOP';

break;

case 4:

$output = shell_exec('mpc next');

break;

case 5:

$output = shell_exec('mpc prev');

break;

case 6:

$_SESSION['volum']= $_SESSION['volum']-10;

if($_SESSION['volum']<10)

$_SESSION['volum']=0;

$output = shell_exec('mpc volume "'.$_SESSION['volum'].'"');

echo $vol;

break;

case 7:

$_SESSION['volum']= $_SESSION['volum']+10;

if( $_SESSION['volum']>100)

$_SESSION['volum']=100;

$output = shell_exec('mpc volume "'.$_SESSION['volum'].'"');

echo $vol;

break;

case 8:

$output = shell_exec('mpc repeat');

break;

case 9:

$output = shell_exec('mpc random');

break;

case 10:

$output = shell_exec('mpc update');

$output = shell_exec('mpc ls | mpc add');

break;

case 11:

$output = shell_exec('mpc single');

break;

case 12:

$output = shell_exec('mpc consume');

break;

}

Valoarea trimisă prin GET, preluată si memorată în variabila $var. Acesta este argumentul funcției SWICH în funcție de valoarea acesteia (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) se execută comanda specifică. Volumul are și o funcție de control, deoarece variabila xx din linia de cod ce trebuie introdusă pentru controlul volumului mpc volume xx trebuie sa fie o valoare întreagă și naturală nu trebuie să prindă valori negative sau mai mari de 100.

4.7 Interfața de control web a serverului de streamning audio

Interfața de control este realizată în limbajele de programare HTML și CSS, iar scriptul care se ocupa cu comanda directa a playerului este realizat în limbajul de programare PHP. Interfața dispune de două secțiuni principale: secțiunea utilizatorului și secțiunea administratorului (DJ), ce urmează a fi prezentate în contiunarea lucrării.

Secțiunea utilizatorului se poate accesa direct prin încărcarea adresei serverului de streamning pe portul 80 (port folosit implicit pentru conexiune http).

Opțiunile pe care utilizatorul le are sunt următoarele:

Acasa – întoarcere la prima pagină din interfață

Dedicații – o sectiune unde se pot transmite dedicații celui care este în emisie

Intrare în emisie – se ajunge la secțiunea dedicată administratorilor

Asculta live – posibilitate de acces direct a streamingului audio

Pentru a putea transmite o dedicație este nevoie sa avem un cont de utilizator. Pentru a crea un astfel de cont este necesar completarea unui formular simplu de înregistrare. Inregistrarea și activarea contului de utilizator se face imediat.

Figura 4.3 Formular de înregistrare utilizator

După înregistrare, ne putem autentifica cu numele de utilizator și parola aleasă la crearea contului de utilizator. Imediat după autentificare putem trimite dedicații către DJ-ul care se afla în emisie. Toate mesajele trimise sunt memorate într-un tabel din baza de date, împreună cu ora și data la care acest mesaj a fost trimis. În contul tau, aceste mesaje sunt vizibile, doar DJ-ul având posibilitatea de ștergere a acestora.

Figura 4.4 Interfața utilizatorului după autentificare

Secțiunea administratorului. Se poate ajunge în această secțiune prin accesarea link-ului din meniul utilizatorului Intră în emisie sau prin accesarea directa a link-ului format din adresa serverului urmată de administrator. Un exemplu este acesta: http://192.168.10.14/administrator. La fel ca și în secțiunea utilizatorului, accesul se face pe bază de nume și parolă. Spre deosebire de secțiunea de dedicații a utilizatorului, unde se puteau creea conturi, aici lipseste aceasta optiune. Conturile se pot creea doar dintr-un cont deja creat.

Opțiunile pe care le are la dispoziție un administrator sunt următoarele:

Ieșire – Ieșire din cont

Controlul playerului – poate controla playerul audio, folosind comenzile disponibile în interfață, acestea fiind prezentate în capitolul 4.5. din lucrarea de față.

Vizualizarea și ștergerea mesajelor primite de la utilizatori – este singurul care poate șterge mesajele primite de la utilizatori.

Figura 4.5 Interfața de administrare (DJ)

4.8 Controlul playerului utilizând un telefon cu android

Răspândirea din ce în ce mai mult a telefoanelor inteligente, aduce în discutie și coplayerului audio gazduit pe serverul de radio utilizând un telefon inteligent. În lucrarea de față se prezintă controlul playerului utilizând sistemul de operare android, folosind o aplicație gratuită, descarcată din Android Market. Aplicația se numește MPRemote. Configurarea se face doar în 3-4 pași, prezentați în continuarea lucrării.

Pasul 1: Deschiderea aplicației și intrarea în meniul de setare.

Pasul 2: Se alege Configure MPD servers după care se va adauga un nou rand de setări prin apasare pe semnul +.

Pasul 3: Se vor completa cele 4 câmpuri cu valorile atribuite serverului pe care se va face conectarea, în cazul nostru serverul găzduit pe placa Raspberry. Câmpurile vor fii completate astfel:

Tabel 4.3 Configurare Remote MPD

Pasul 4: Se revine la player. Din acest moment, smartphone-ul nostru este conectat la serverul Raspberry, afișându-ne lista de melodii care este disponibilă în playlistul nostru.

Controlul playerului este complet, aplicația având toate funcțiile de care dispune playerul mpd, mai puțin volumul, care nu poate fii reglat.

Capitolul 5 – Rezultate și concluzii

S-a reușit realizarea unei aplicații de streaming audio, cu control din interfață, atât pentru utilizatori cât și pentru administratori. Aplicația are ca principale caracteristici:

consumul de energie foarte mic;

dimensiunea și spatiul ocupat sunt reduse;

fiabilitate;

nu necesită sistem de răcire;

zgomot nul.

Dezavantajele pe care sistemul le prezintă sunt:

nu există posibilitate de upgrade, decât prin atașarea altui modul;

număr mic de conexiuni simultane suportate (max. 100);

fără intrare audio analogică.

Aplicația poate fii dezvoltată, prin preluarea directă a semnalului audio analogic dintr-o ieșire a unui mixer audio, făcând astfel posibilă transmiterea live a semnalului dintr-un studio. Acest lucru ar fii posibil doar atașând o placă de sunet externă pe unul din porturile USB ale acestui modul. Se poate mări performanțele sistemului, împărțind task-urile, pe 3-4 sisteme Raspberry PI astfel:

1 – Raspberry PI folosit pe post de server web, putând astfel dezvolta și aplicația web, trecând la o aplicație de tipul web2.0;

2 – Raspberry PI folosit pe post de server de streaming audio, cu preluare de semnal audio analogic direct dintr-o ieșire analogică a unui mixer audio și în același timp echipat și cu playerul MPC pentru redare în mod playback;

3 și 4 – Raspberry PI folosit pe post de releu de retrasmisie, acest lucru făcând posibil conectarea a cel puțin 300 utilizatori (fiecare modul suportând în acest caz aprox. 150 utilizatori).

Principala caracteristică a acestui sistem construit astfel va fi consumul de energie redus, deoarece emisia se va face 24 din 24 ore, 7 zile din 7.

Tabel 5.1 Consumul unui sitem cu 4 Raspberry + HDD 1 TB

Tabel 5.2 Consumul unui server dedicat

Se constată că pentru un sistem cu Raspberry PI consumul maxim pe lună ajunge la aproximativ 16 kV, față de un server dedicat care poate ajunge la un cosum maxim de 360 kW în aceiași perioadă. Consumul sistemului construit cu Raspberry PI este de 22 ori mai mic. Pe langă acest lucru sistemul care are la bază Raspberry PI nu necesită sistem de racire, dacă se dorește totuși implementarea unui astfel de sistem, el poate fi construit doar cu un singur sistem de ventilație, reducând astfel foarte mult zgomotul.

În lucrarea de față s-a prezentat un sistem bazat pe mai multe aplicații gratuite disponibile în sistemul de operare Raspbian. Aplicațiile cu acest modul Raspberry PI sunt nenumărate, făcând din acest modul un sistem foarte flexibil, ce poate fii folosit de la aplicații hobby până la aplicații industriale.

Bibliografie

Cărți, articole de specialitate, lucrări de licență/disertație

Dragos Acostachioaie, Administrarea și configurarea sistemelor Linux, Polirom, 2002;;

Sabin Buraga, Dragos Acostachioaie, Marius Marusteri, Primii pași în Linux, Polirom, 2006;

BCM2835 ARM

BCM2835 ARM Datasheet

Raspberry

www.raspbian.org/RaspbianDocumentation;

www.raspberrypi.org;

www.php.net;

Bibliografie

Cărți, articole de specialitate, lucrări de licență/disertație

Dragos Acostachioaie, Administrarea și configurarea sistemelor Linux, Polirom, 2002;;

Sabin Buraga, Dragos Acostachioaie, Marius Marusteri, Primii pași în Linux, Polirom, 2006;

BCM2835 ARM

BCM2835 ARM Datasheet

Raspberry

www.raspbian.org/RaspbianDocumentation;

www.raspberrypi.org;

www.php.net;

Similar Posts