Cu Raspberry Pi 2 şi resin.io se poate transmite temperatura prin voce

23 IUNIE 2015

Sursa: Posted by ResinIO, publicat de DesignSpark

Diverse PC-uri de mici dimensiuni, precum Raspberry Pi au evoluat în dispozitive de calcul mai puternice. Astfel diferite platforme, de exemplu resin.io, vă permit să obțineți aplicații (programe) ce rulează printr-un singur click.
Spre exemplificare pentru o astfel de aplicație având în vedere noile tehnologii, vă propunem următorul proiect de bază: cum puteți transmite prin voce temperatura. Prin acest proiect vă expune cât de simplu poate fi să produceți (dezvolta) astăzi un program pentru hardware.

Raspberry Pi 2 Model B

Pentru început vă reamintim câteva caracteristici de bază ale mini PC-ului Raspberry Pi 2, deoarece acesta se folosește în exemplu.

Raspberry PI este un calculator de dimensiunea unui card bancar. Este utilizat în aproximativ tot ceea ce se poate face şi cu un PC obisnuit. Dar, faţă de acesta, Raspberry PI oferă posibilitatea realizării unor conexiuni hardware directe cu alte dispozitive prin intermediul pinilor GPIO, precum diverşi senzori de temperatură, lumină sau umiditate, dar şi presiune atmosferică, relee, drivere de motoare şi altele. Pinii GPIO sunt aşezaţi în zona din lateralul plăcii şi pot fi controlaţi din orice limbaj de programare care rulează pe această placă Raspberry PI (Python, C, C+ +, Java, PHP, .NET etc).
Raspberry Pi 2 are un factor de formă identic cu precedentul (Pi 1) Model B+ și are compatibilitate completă cu Raspberry Pi 1. Tot ceea ce puteați să faceți cu modelele anterioare se poate lucra și cu acesta, dar la performanţe de şase ori mai bune.

Aurocon COMPEC vă propune Raspberry PI deoarece reprezintă o alegere bună pentru proiecte din domeniile robotică, staţii meteo, servere web, jocuri sau imprimare 3D, ftp dar şi multe alte domenii.

APLICAȚIA DE TRANSMITERE A TEMPERATURII PRIN VOCE

Primul pas: Alegerea componentelor
Se face cald aici?
Se utilizează noul Raspberry Pi 2, un termo-senzor şi motorul Google pentru conversie din text în vorbire pentru a citi valoarea temperaturii la apăsarea unui buton.

Detaliat:
• Raspberry Pi 2 (se poate lucra şi cu B+, A+)
• Senzor de temperatură W1(DS18S20, DS1822, DS18B20)
• Buton
• Cabluri
• Placă de dezvoltare (opţional)
• Difuzor
• Rezistenţă (~4,7KΩ – 10KΩ)

Al doilea pas: Dezvoltarea aplicației
Următorul pas pe care trebuie să îl faceţi este de a conecta dispo­zitivul dvs. la resin.io. Utilizând resin.io, puteţi să transmiteţi programul către Pi prin aer, simplificându-se puternic procesul de instalare a sistemului de operare.
Un alt avantaj al utilizării resin.io este abilitatea de a păstra o bază de program comună pe mai multe dispozitive – de exemplu să ne imaginăm că avem o serie întreagă de astfel de senzori de temperatură în jurul casei sau în oraş – de fiecare dată când vreţi să actualizaţi programul va trebui să transferaţi manual ssh în fiecare Pi. Resin simplifică această muncă.
Înscrieţi-vă la resin.io. Veţi fi solicitat să introduceţi cheia ssh publică, care este folosită pentru a vă permite transferul sigur al programului dvs. către dispozitiv.
Odată conectat în aplicaţia numită “tempToSpeech”, se va alege ‘Raspberry Pi 2’ ca tip dispozitiv.

Apoi, se va descărca imaginea sistemului de operare OS şi se va selecta configuraţia de reţea dorită.

Odată ce imaginea este descărcată complet, va trebui să o scrieţi pe cardul SD. Dacă sunteţi pe un sistem bazat pe Unix, puteţi instala imaginea cu un GUI precum pifiller, altfel va trebui să utilizaţi următoarele comenzi.

Verificaţi discurile conectate

$ mount
Căutaţi cardul SD în listă – al meu era conectat ca ‘/dev/disk2s1’. Apoi deconectaţi discul.
$ sudo umount /dev/disk2s1
Acum scrieţi imaginea înlocuind imaginea dvs. şi locaţia cardului respectiv (din nou, actualizaţi dispozitivul de ieşire specificat de – /dev/rdisk)
$ sudo dd bs=1m if=~/Downloads/resin-myApp-0.1.0-0.0.4. img of=/dev/rdisk2
Dacă utilizaţi Windows puteţi apela la windisk2
( http://sourceforge.net/projects/win32diskimager/)
Înseraţi cardul SD în PI-ul dvs., porniţi-l şi asiguraţi-vă că sunteţi conectat la internet. După 5-10 minute, dispozitivul dvs. va apărea pe panoul aplicaţiei resin.io

Dacă el nu apare pe panoul dvs., verificaţi lumina ACT. Dacă clipeşte într-un ciclu de 4 semnale lungi atunci PI nu se poate conecta la Internet. Dacă lumina ACT nu clipeşte deloc, este probabil că SD cardul dvs. are probleme.

Apoi trebuie să conectăm componentele noastre la Pi, astfel că se va scoate alimentarea cu tensiune a Pi.
Se va conecta apoi butonul la Pi. Aceasta însemnă conectarea simplă a unui terminal la masă şi a celuilalt la o intrare GPIO, în cazul exemplului nostru utilizând pinul 17.
Conectaţi senzorul de temperatură la Pi. Asiguraţi-vă că pinul de date este conectat la pinul 4, iar rezistenţa de ~4,7KΩ – 10KΩ se conectează pe deasupra liniilor de date şi de 3,3V.
Puteţi găsi o explicaţie mai detaliată a montării la: https://learn.adafruit.com/adafruits-raspberry-pi-lesson-11-ds18b20-temperature-sensing/hardware
Conectaţi difuzorul prin conectorul jack corespunzător.

Acum dispozitivul nostru este gata să primească programe.
Clonaţi proiectul nostru temp-to-speech pe maşina dvs. locală.
$ git clone https://github.com/resin-projects/temp2speech.git
Înainte de a transmite acest cod către dispozitiv, haideţi să aruncăm o privire rapidă asupra sa.
Este un proiect simplu cu 3 fişiere. temp_to_speech.py citeşte temperatura şi o trimite ca şir de caractere către string to speech.sh. Acest script trimite şirul de caractere către serverul Google text-to-speech care returnează un fişier audio şi apoi îl rulează cu mplayer.
Dockerfile spune resin.io cum să construiţi imaginea, ce elemente trebuie instalate şi ce să execute când codul se află pe dispozitivul dvs.
În cazul în care nu aţi mai utilizat până astăzi un Dockerfile, să discutăm un minut despre acesta. Un Dockerfile este un set de instrucţiuni utilizate de motorul resin.io pentru a construi un container pentru a rula pe dispozitivul dvs.
FROM resin/rpi-raspbian:jessie-2015-01-15
Linia de mai sus transmite către resin.io să construiască un container cu jessie ca sistem de operare. Dar puteţi selecta dintr-o varietate de versiuni Raspbian din registrul docker al resin.io.
Dacă doriţi mai multe informaţii asupra acestui aspect puteţi accesa: http://en.wikipedia.org/wiki/Operating-system-level_virtualization

RUN apt-get update && apt-get install -y python python-dev python-pip mplayer
RUN pip install RPi.Gpio w1thermsensor

Comanda RUN este executată pe serverul construit al resin.io. Am instalat câteva elemente necesare pentru acest proiect.
ADD./app
Această instrucţiune adaugă baza codului nostru curent (dockerfile + temp_to_speech.py + speech.sh) într-un director numit app. Este o bună practică să nu aruncaţi proiectul în rădăcina containerului nostru.
CMD [„python”, „/app/temp_to_speech.py”]
CMD rulează numai pe dispozitiv odată ce containerul a început să ruleze. El spune pur şi simplu containerului să ruleze temp_to_speech.py.
Acum că aţi înţeles cum construieşte resin.io containerul dvs. putem trece la transfer!
Pentru început veţi avea nevoie să asociaţi depozitul nostru local cu depozitul de la distanţă necesar aplicaţiei.
Asiguraţi-vă că sunteţi în directorul proiectului.
$ cd resin-temp-to-speech
$ git remote add resin git@git.resin.io:username/temptospeech.git
Acum este o simplă problemă de transfer a programului către Pi.
$ git push resin master
Această comandă trimite programul către serverul resin.io, unde este construit containerul, com­pilat programul şi des­cărcat pentru a rula pe arhitectura Pi. Puteţi vi­zu­aliza progresul des­căr­cării de pe panou după un transfer de succes.
Odată ce programul a fost descărcat pe dispozitivul dvs. şi containerul a pornit trebuie apăsat butonul!
Dacă vă gândiţi la conversia între Celsius şi Fahrenheit, suntem acoperiţi – se poate face o configurare utilizând funcţia de variabile de mediu a resin.io, care vă permite să operaţi cu variabile de mediu pe panoul dvs.
Pentru a specifica unitatea preferată, navigaţi printre variabilele de mediu ale aplicaţiei şi adăugaţi una cu o cheie a unităţii, apoi intro­duceţi unitatea dorită ca valoare (Celsius, Fahrenheit sau Kelvin). Containerul va porni acum cu unitatea de măsură preferată.

În temp_to_speech.py noi primim această variabilă de mediu şi o stabilim ca “unitate” variabilă.
unit = os.getenv(‘UNIT’, ‘celsius’)
os.getenv acceptă două argumente: primul este cheia variabilei pe care aţi dat-o, iar al doilea este o valoare în caz că prima nu este atribuită, sau dacă nu există. În cazul nostru rezerva este Celsius.

Aurocon Compec vă propune Raspberry Pi 2 Modelul B pentru utilizare, deoarece oferă o mai mare flexibilitate pentru dumneavoastră, astfel fiind mult mai util pentru proiecte de tip prototip și proiecte integrate, care necesită un consum redus de energie.
Raspberry Pi 2 se poate comanda acum online de pe site-ul http://ro.rsdelivers.com/. De asemenea, trebuie să aveţi în vedere că va trebui să in­stalaţi şi noul sistem de operare Raspbian dedicat pentru procesoarele din seria ARMv7.
Precizăm faptul că și modelele anterioare sunt livrabile, Raspberry Pi A + (Nr. stoc RS: 833-2699), Raspberry Pi 1 Model B (Nr. Stoc RS: 756-8308) și B+ (Nr. Stoc RS 811-1284) și le puteți comanda online de pe site-ul http://ro.rsdelivers.com/

Autor:
Bogdan Grămescu

Aurocon COMPEC
Bd. Theodor Pallady, Nr. 287, Sector 3, Bucureşti

Tel: 021.304.62.33
Fax: 021.304.62.34
compec@aurocon.ro
www.compec.ro

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *

  • Folosim datele dumneavoastră cu caracter personal NUMAI pentru a răspunde comentariilor/solicitărilor dumneavoastră.
  • Pentru a primi raspunsuri adecvate solicitărilor dumneavoastră, este posibil să transferăm adresa de email și numele dumneavoastră către autorul articolului.
  • Pentru mai multe informații privind politica noastră de confidențialitate și de prelucrare a datelor cu caracter personal, accesați link-ul Politica de prelucrare a datelor (GDPR) si Cookie-uri.
  • Dacă aveți întrebări sau nelămuriri cu privire la modul în care noi prelucrăm datele dumneavoastră cu caracter personal, puteți contacta responsabilul nostru cu protecția datelor la adresa de email: gdpr@esp2000.ro
  • Abonați-vă la newsletter-ul revistei noastre