Sadraj
1.
Uvod
2.
Raspberry Pi
2.1 Povijest
2.2 Hardware
2.4 Primjena
Meteoroloka stanica
10
14
15
17
20
21
3.7.1 DHT22
21
3.7.2 BMP180
23
3.
25
4.
Zakljuak
33
5.
Literatura
34
6.
Saetak
35
7.
Abstract
36
1. Uvod
U dananje vrijeme gotovo je nemogue zamisliti ivot bez tehnologija koje su se
utkale u sve pore modernog drutva. Velikim razvojem informatike industrije dolazi
do proirenja ponude ime proizvodi postaju dostupni irem spektru ljudi.
Pretpostavlja se da danas u svijetu postoji oko 1,5 milijardi raunala, a ta bi se brojka
do kraja 2016. godine mogla podebljati na vie od 2 milijarde. Zadnjih nekoliko
godina, tehnologija tei tome da raunala budu to manja i jeftinija, a da pritom
nastoje pruiti to vie mogunosti. Jedno od takvih je i Raspberry Pi raunalo,
koriteno u obrazovanju u nadi da e pribliiti svijet tehnologija mlaim
generacijama s idejom da se pokae kako raunala rade i kako ih programirati te da
se znanje rada na raunalima ne svodi samo na znanje koritenja aplikacija.
Njegova pojava izazvala je oduevljenje irom svijeta, kako svojim dimenzijama i
mogunostima, tako i vrlo pristupanom cijenom.
Cilj ovoga rada je upoznavanje s ovim malim udom tehnike i izgradnja
meteoroloke stanice temeljene na njegovom povezivanju sa senzorima.
2. Raspberry Pi
2.1 Povijest
Ideja o malom i pristupanom raunalu javila se 2006. godine, kada su Eben Upton,
Robb Mullins, Jack Lang i Alan Mycroft sa Sveuilita u Cambridgeu postali zabrinuti
nivoom predznanja studenata koji su se prijavljivali na raunarske predmete. Za
razliku od 1990. godine kada je veina kandidata imala solidno predznanje iz
programiranja, 2000. godine kandidati su bivali sve loiji. Zakljuili su da se formirala
grupa informatiara s vrlo malo praktinog programerskog znanja potrebnog za
ispravno rjeavanje konkretnih problema. Oni su imali iskustva u koritenju kunog
raunala ili konzole za igru i zabavu. Iskustvo steeno svakodnevnim korisnikim
radom na raunalu davalo im je lanu sliku o znanju iz raunarstva. Prethodne
generacije uile su programiranje na legendarnim ZX Spectrum, Commodore 64 ili
Amiga raunalima, koji su osim mogunosti zabave nudili i dobro okruenje za
pisanje prvih programa. Zbog toga su doli na ideju da naprave neto to je
uenicima pristupano po cijeni, a prua okruenje spremno za pisanje programa.
Od 2006. - 2008. godine dizajnirano je nekoliko verzija od kojih je nastalo raunalo
Raspberry Pi. Kada su se 2008. godine pojavili procesori koji su se mogli koristiti za
mobilne ureaje, pristupani po cijeni i dovoljno snani za dobru podrku grafikom
okruenju, postalo je izvjesno da e projekt zaivjeti.
Kada se na tritu pojavio prvi primjerak raunala, svojim izgledom i mogunostima
privukao je veliku panju, kako kod programera, tako i kod entuzijasta, stoga postoji
mnogo opreme, a na internetu je objavljeno mnotvo konkretnih objanjenja i
praktinih uputstava.
2.2 Hardware
Memorija: 512 MB, dijeljeno s GPU (model A ima samo 256 MB)
Video izlaz: kompozitni RCA (PAL i NTSC), HDMI (verzija 1.3 i 1.4),
podrava Full HD rezoluciju od 1080p
IDLE, koji dolazi s operacijskim sustavom, je IDE za programski jezik Python. esto
se postavlja pitanje zato je Python izabran kao jezik za upotrebu na ovom mini
raunalu. Ima ugraene funkcije kao i ostali alati namijenjeni programiranju,
osvjetljavanje sintakse, automatsko uvlaenje, prijelomne toke itd. On je moda i
najbolji programski jezik dosta visokih mogunosti, a razumljiv je i prilagoen
apsolutnim poetnicima kako bi postepeno upoznali koncepte i metode na kojima
su zasnovani moderni programski jezici. S Raspbianom dolazi i programski jezik
5
2.4 Primjena
Neke primjene sam ve spominjao u ranijem tekstu, a u ovom poglavlju emo
detaljnije opisati neke od najzanimljivijih u elektronici i robotici.
Raspberry Pi je jako efikasan nain uvoenja djece i studenata u osnove
elektronike. Tako primjenjuju raunalo direktno, ue izraditi kontrolne ploe i
shvaaju da se njihov rad na raunalu moe projicirati u stvarni svijet. Zahvaljujui
velikoj bazi podataka temeljenoj na Pythonu, mogue je izraditi mnotvo
jednostavnih projekata. Primjer jednog takvog dan je u nastavku.
Najnoviji model Raspberry Pi ima ak 26 GPIO pinova (prikazani na slici 2.4.1) s
promjenjivim funkcijama. Svi su prilagoeni za INPUT i OUTPUT nain rada.
Moramo biti oprezni s naponom i jakosti struje koju putamo, jer su pinovi spojeni
direktno na glavni integrirani krug, stoga moe doi do oteenja ureaja. Prvo
instaliramo RPi.GPIO koji je dostupan besplatno na Internetu i relativno je
jednostavan za rad. Koristimo etiri LED arulje razliitih boja i dvije tipke.
Slika 2.4.2 Elektrina shema i izgled spoja s 3 LED arulje i 2 tipke [3]
taj nain moemo objasniti kako zapravo centralno raunalo, u naem sluaju
Raspberry Pi, procesuira i kontrolira svaki dio robota. Takoer, za robotiku moemo
nai veliku koliinu podataka za rad, od baza podataka, uputa itd. Robotika je jako
pogodna za edukaciju jer se mora koristiti znanje programiranja, elektronike,
konstruiranja te tako objedinjujemo veliki broj podruja.
Pokuat u doarati samo dio mogunosti spajanja Raspberry Pi i podruja robotike
s LEGO robotom. Kuite robota je u potpunosti napravljeno od LEGO kocaka u
ijem se sreditu nalazi Raspberry Pi raunalo. Potrebna nam je i kontrolna kutija
za elektroniku. U ovom sluaju moramo upotrijebiti svoje znanje o GPIO pinovima i
osnova elektronike. to se tie zvuka za to mogu posluiti bilo koji zvunici i jedan
od besplatnih programa za sintezu govora. Kamera se moe koristiti, a slubena
Raspberry Pi kamera daje dobru kvalitetu slika. Nakon spajanja bi sve trebalo
izgledati ovako:
3. Meteoroloka stanica
3.1 Opis problema
Od davnih vremena ljudi su zaokupljeni vremenom i vremenskom prognozom.
Neko su ljudi promatrali prirodu da saznaju kakvo e biti vrijeme. Gledali su nebo,
prouavali
ponaanje
biljaka
ivotinja
te
na
temelju
toga
donosili
Niska cijena
Napon: 35 V
4 pina
10
Niska cijena
Napon: 35 V
Tipkovnica
HD monitor
Mi
Eksperimentalna ploica
Otpornik od 4.7 k
Kratkospojnici
WiFi adapter
SD kartica od 16 GB
11
12
13
3.3 Instalacija
operacijskog
sustava
i podeavanje
postavki
Formatiranje SD kartice izvedeno je putem programa Win32 Disk Imager. Tijek
instalacije je prilino intuitivan. Prvo je potrebno s Raspberry Pi slubene stranice
(https://raspberrypi.org/downloads) skinuti image Raspbian operacijskog sustava.
Nakon toga slijedi umetanje SD kartice, otvaranje programa Win32 te uitavanje
imagea (izgled prozora je vidljiv na slici 3.3.1).
14
Prva stvar koju bi trebali napraviti jest proiriti root particiju na dostupnu veliinu SD
kartice. Tako se za koritenje dobije puni kapacitet kartice, ako nemamo dodatni
vanjski disk. Od ostalih bitnijih stvari tu su podeavanje jezika i regionalnih postavki,
vremenske zone, raspored tipki na tipkovnici te postavke imena raunala
(hostname) i ssh servisa. Po zavretku sustav treba ponovno pokrenuti i spremni
smo za rad. Ako ih niste promijenili na konfiguracijskom prozoru, podaci za prvu
prijavu na sustavu su "pi" za korisniko ime i "raspberry" kao lozinka. Konfiguracijski
prozor moemo uvijek pozvati naredbom sudo raspi-config u LX terminalu.
Naredbom startx pokreemo grafiko suelje te moemo krenuti s upoznavanjem
Raspbian operacijskog sustava.
Jedini problem se javio prilikom spajanja na internet koje vjerojatno nije bilo mogue
zbog modema u domu. Shodno tome, dijelove koji su obuhvaali koritenje interneta
sam morao realizirati spajanjem WiFi adaptera i tipkovnice na USB 2.0 ulaze te HD
monitora putem HDMI kabela koristei mobitel kao modem. Jedan od tih je i
postavljanje vlastitog web servera.
na UNIX sustavima, premda je proiren toliko da ga danas moemo vidjeti na Unixu, FreeBSD, Linux, Solaris, Novell NetWare, OS X, Microsoft Windows itd. Od lipnja
2013. procjenjuje se da Apache posluuje 54,2% aktivnih web stranica i da spada
u 53,3% najboljih servera u svim domenama.
Prije postavljanja servera, vano je da je operacijski sustav Raspbian auriran to
se postie unoenjem naredbi:
sudo reboot
Nakon to je komunikacija uspostavljena, potrebno je unijeti naredbu:
http://192.168.43.53/
Sljedea slika nam potvruje kako je web server uspjeno podignut:
18
cd/home/pi/project/WeatherStation/
rrdtool create weatherRRD.rrd
19
Uz to, moramo instalirati python smbus i python dev biblioteke. Prva e sluiti za
komunikaciju sa senzorima koji koriste IC suelje (BMP180), dok druga slui za
proirivanje mogunosti programiranja u Pythonu:
Prije slanja podataka, potrebno je stvoriti direktorije u kojeg emo prebaciti skripte.
Jedan e nam sluiti kao home direktorij, a drugi za dio povezan s web serverom:
20
3.7.1 DHT22
Prilikom testiranja DHT22 senzora korisitit emo Adafruit biblioteku. Potrebno je
napraviti sljedee:
21
cd/home/pi/project/WeatherStation/library/Adafruit_Python_DHT
Ovom naredbom se pozicioniramo unutar biblioteke koja sadri skripte za testiranje
senzora DHT22.
Naredbom:
cd/home/pi/project/WeatherStation/library/Adafruit_Python_DHT/examples
22
3.7.2 BMP180
Testiranje BMP180 senzora e biti neto sloenije zbog koritenja IC sabirnice.
Raspberry Pi ima dva pina, 3 i 5, koja su ve konfigurirana kao dio IC protokola:
SDA (podaci) i SCL (takt), ime se moe komunicirati s IC ureajem. Prvo emo
omoguiti njen rad sljedeim nizom radnji:
sudo i2cdetect -y 1
Izvravanjem naredbe, u mogunosti smo vidjeti skup registara od 00 do 70. Senzor
BMP180 trebao bi se nalaziti na adresi 0x77 to potvruje slika 3.7.2.2.
cd/home/pi/project/WeatherStation/library/Adafruit_Python_BMP-master
sudo python setup.py install
Pozicioniravi se u eljeni direktorij, moemo pokrenuti naredbu:
24
25
oitavanju
sa
senzora
BMP180,
iskoristit
emo
instalirani
modul
26
27
Dakle, imamo sve metode koje emo koristiti za oitavanje veliina te njihovo
spremanje na web stranicu, odnosno txt datoteku. Predstoji nam napraviti main dio
skripte koji e pozivati metode, pisati na web server, spremati podatke u rrd bazu.
Primjer takvog dijela:
humid = readDHT22()
tempi, press, altit = readBMP085()
#write to RRD archive
cmd= '/usr/bin/rrdtool update /home/pi/project/WeatherStation/weatherRRD.rrd -t tempi:press:humid:altit'
cmd = cmd +str(tempi)+':'+str(press)+':'+str(humid)+':'+str(altit)
cmdStat, cmdOut = commands.getstatusoutput(cmd)
dbgprint( "RRD write result: " + str(cmdStat))
writeHTML(tempi, humid, press, altit)
dbgprint ( "End!" )
cd /home/pi/project/WeatherStation/
Sljedeom naredbom pokreemo izvoenje skripte. Ekstenzija d nam slui za
debuggiranje, odnosno ispravljanje moguih pogreaka uz uvid oitanih veliina:
28
http://192.168.43.53/WeatherStation/current.html
29
Uvjerili smo se da senzori rade te sada moemo pristupiti izradi konane verzije web
servera koju emo temeljiti na JavaScriptu. Primjer jednog takvog dijela koda koji
postavlja vrijeme i datum u stvarnom vremenu:
<script type="text/javascript">
function display_c(){
var refresh=1000; // Refresh rate in milli seconds
mytime=setTimeout('display_ct()',refresh)}
function display_ct() {
var strcount
var x = new Date()
document.getElementById('ct').innerHTML = x;
tt=display_c();}
</script>
30
http://192.168.43.53/WeatherStation/
Slika 3.8.4 otkriva nam konani izgled web servera:
31
sudo su
cd /home/pi
crontab e
Namjestili smo oitavanje sa senzora svake dvije minute, dok e se grafovi iscrtavati
svakih 5 minuta. Ostaje nam spremiti izmjene, izvriti reboot i provjeriti ispravnost
rada meteoroloke stanice.
32
4. Zakljuak
Raspberry Pi je mini raunalo koje oduevljava mnoge irom svijeta. Praktino je za
izradu mnogih projekata, meu ostalima i meteoroloke stanice koja je tema mog
zavrnog rada. Rad na ovom projektu mi je pomogao da proirim znanja u
programiranju, upoznam neke nove koncepte te poboljam inenjerski nain
razmiljanja. Takoer, realizirana meteoroloka stanica je primjenjiva u sobi
studentskog doma te sam sada u mogunosti u svakom trenutku saznati kakvi su
vremenski uvjeti. Nadam se da u je u budunosti uspjeti proiriti, jer za neto vie
i bolje ipak treba malo vie novca, a u ovom projektu je bio naglasak na malim
trokovima. S veseljem gledam ka novim projektima s Raspberry Pijem jer se uistinu
pokazao malo raunalo velikih mogunosti te ga preporuujem svima koji ele
usavriti znanje programiranja.
33
5. Literatura
[1] http://www.raspberrypi.org/
[2] http://en.wikipedia.org/wiki/Raspberry_Pi
[3] http://openmicros.org/index.php/articles/94-ciseco-productdocumentation/raspberry-pi/217-getting-started-with-raspberry-pi-gpioand-python
[4] http://www.aoakley.com/articles/2013-09-19-raspberry-pi-legorobot-part1.php
[5] Wolfram Donat: Learn Raspberry Pi Programming with Python,
2014.
[6] Kevin Partner: Ultimate Guide to Raspberry Pi, 2014.
34
6. Saetak
Naslov
Meteoroloka stanica temeljena na umreenom ugradbenom raunalu
Saetak
Raspberry Pi je cijenom pristupano raunalo veliine kreditne kartice, bazirano na
Linux operacijskom sustavu. Ljudima svih dobnih skupina omoguuje istraivanje
svijeta raunala te uenje programskih jezika kao to su Python i Scratch. U okviru
zavrnog rada bilo je potrebno razviti meteoroloku stanicu temeljenu na
povezivanju Raspberry Pija sa senzorima s naglaskom na male trokove. Stvoren
je dinamiki web server na kojem se, uz vremensku oznaku iz sata stvarnog
vremena, vre periodina oitanja i pohrane veliina. Razvijeno je praenje
promjena istih kroz grafove koji se iscrtavaju na dnevnoj, tjednoj, mjesenoj i
godinjoj bazi. Postoji mogunost proirivanja meteoroloke stanice dodavanjem
drugih senzora.
Kljune rijei
Raspberry Pi, senzori, meteoroloka stanica, Python, web server
35
7. Abstract
Title
Meteorological Station Based on Networked Embedded System
Abstract
The Raspberry Pi is a low cost, credit-card sized computer, based on Linux
operating system. It enables people of all ages to explore computing and to learn
how to program in languages like Python and Scratch. As the part of the assignment,
it was required to develop a meteorological station based on connecting Raspberry
Pi with low cost sensors. A dynamic web server was created, along with a timestamp
from the real-time clock, to perform periodic readings and to storage informations. It
is possible to track changes through graphs being plotted on a daily, weekly,
monthly and annual basis. There is a room to improve meteorological station by
adding other sensors.
Key Words
Raspberry Pi, sensors, meteorological station, Python, web server
36