0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaProgramiranjeRaspberry Pi in Python za začetnike (6)

    Raspberry Pi in Python za začetnike (6)

    V prejšnjem članku smo začeli govoriti o komunikaciji. RPi je že uspešno komuniciral z LCD zaslonom, nato s senzorjem vlage in temperature TH02 po vodilu I2C. Čas je, da gremo s komunikacijami naprej. Čaka nas komunikacija po vodilu 1Wire, na katerega bomo priključili temperaturni senzor DS18B20, nato pa se bomo spoznali s protokolom UART (ang. Universal asynchronous receiver/transmitter), ki ga bomo potrebovali za krmiljenje brezžičnega oddajnika – sprejemnika (transiverja) HM-TRP 868.

    1Wire

    Slike ni
    KLIK

    1Wire je protokol, ki kot nam že ime pove, poteka po eni žici. Torej nimamo kot pri I2C eno žico za signal in drugo za uro. Po isti žici najprej pošljemo ukaz, nato pa po isti žici prejmemo podatke iz sužnja. Torej gre zopet za topologijo gospodar – suženj, oziroma več sužnjev. Vsak suženj ima svoj enoličen tovarniško nastavljen naslov, ki pa ni določen kot pri sužnjih I2C – kjer imajo vsi čipi z enako oznako enak naslov, ampak imajo kljub istemu imenu naslove različne. Iz tega sledi, da naslovov ne najdemo v tehnični dokumentaciji, ampak jih moramo nekako iz čipa prebrati. Kako to naredimo? Ne boste verjeli, vendar nam to niti ni potrebno. Vse to za nas naredi RPi. Ja, res je – ne hranite ga zaman. No pa pojdimo lepo po vrsti. Kako smo vezali naš senzor? Priključili smo kar dva, DS18B20 (slika 1) in DS1820, vezavo si lahko ogledate na sliki 2.

    Slike ni
    KLIK

    Kot vidite smo podatkovno linijo senzorjev vezali na priključek 7. RPi komunikacije sicer ne podpira le na tem priključku, vendar so s spremembo velike težave. Torej uporabimo priključek 7, ki je v ta namen predviden. Senzorja imamo priključena sedaj se lotimo branja temperature. Najprej moramo namestiti gonilnik, oziroma module v Linuxu. To naredimo z ukazom:

    $ sudo modprobe w1-gpio

    $ sudo modprobe w1-therm

    Namestili smo gonilnik za 1Wire, nato pa še gonilnik za Dallas 1Wire temperaturni senzor. To moramo narediti ob vsakem ponovnem zagonu. Kaj? To vam ni všeč? No potem pa naredimo tako, da se bo to naložilo samodejno. Odprimo datoteko kamor bomo vnesli našo željo:

    $ sudo nano /etc/modules

    in na konec dodamo naslednji vrstici:

    w1-gpio
    w1-therm
    Slike ni
    KLIK

    kot smo pri nano-tu že vajeni pritisnemo zaporedje <ctrl + o>, <enter> in nato <ctrl + x>. Na tem mestu se poraja vprašanje, zakaj bi ob vsakem zagonu skrbeli za vodilo, če za to lahko poskrbi Linux? Težava se pojavi, če želimo priključek 7 uporabiti za kak drug namen. Če to želimo, lahko module tudi odstranimo z ukazom:

    $ sudo modprobe –r w1-gpio

    $ sudo modprobe –r w1-therm

    Da pa bi v vsej zmedi lahko vedeli, katere module imamo nameščene, to lahko preverimo z ukazom:

      $ lsmod
    Slike ni
    KLIK

    Izpišejo se nam nameščeni moduli lupine (Linux-a). Nam je „w1_gpio“ izpisalo v drugi vrsti, „w1_therm“ pa v prvi. Ustvarila se je tudi nova mapa, ki predstavlja 1Wire vodilo. Najdemo jo na mestu „/sys/bus/w1/“, v njej pa se nahaja mapa „devices“. Seveda želimo izvedeti, kakšna naslova imata naša dva čipa. To najdemo tako, da v „LXTerminal“ vnesemo naslednjo kodo, ki izpiše vsebino mape (stikalo „-1“ omogoči izpis vsake mape/datoteke v svojo vrsto):

    $ ls -1 /sys/bus/w1/devices

    nam je izpisalo:

    10-000802839836

    28-000002dca3de

    w1_bus_master10

    Na prvi pogled nič kaj uporabne številke. Vendar nam prvi dve vrstici predstavljata mapi naših senzorjev 18B20 z začetkom 28 in 1820 z začetkom 10. Če boste priključili več senzorjev iz iste družine, se bo ime njihove mape začelo z istima številkama, nadaljevanje pa bo enolično. V mapi „w1_bus_master1“ imamo datoteke, v katerih lahko spremljamo/nastavimo nekatere parametre, kot na primer število sužnjev, imena sužnjev, ročno odstranimo sužnja, največje število sužnjev in podobno. V mapah „10-*“ in „28-*“ pa imamo poleg ostalih datotek tudi „w1_slave“, v kateri se skriva meritev. Torej se z ukazom „cd“ najprej pomaknimo v mapo senzorja, kjer bomo to datoteko našli.

    Priročnik Raspberry Pi in Python za začetnike 

    Barvni LCD za RPi

    Raspberry Pi in Python za začetnike (6)

    AX elektronika d.o.o.

    www.svet-el.si

    2014_SE223_41