- Potrebni materiali
- Uvod v temperaturni senzor DS18B20
- Predpogoji
- Shema vezja
- Namestitev knjižnice Adafruit LCD na Raspberry P
- Omogočanje enožičnega vmesnika v Pi
- Izhod / Delo
Raspberry Pi je znan po svoji računski moči in široki uporabi na področju interneta stvari, avtomatizacije stanovanj itd. Vendar pa mora vsak elektronski sistem za interakcijo z resničnim svetom in pridobivanje informacij o njem uporabljati senzorje. Za ta postopek se uporablja veliko vrst senzorjev, zahtevani senzor pa se izbere glede na parameter, ki ga je treba izmeriti, in njegovo uporabo. V tej vadnici se naučimo povezati temperaturni senzor DS18B20 z Raspberry Pi.
DS18B20 se pogosto uporablja temperaturni senzor, predvsem na mestih, kjer so ostre operacijska okolja, ki sodelujejo, kot so kemični industriji, rudniških obratov itd Ta članek bo povedal o senzorju in kako outstands druge temperaturni senzor in na koncu je vmesnik z Raspberry Pi in prikaz temperature vrednost na LCD 16x2.
Potrebni materiali
- DS18B20 Temperaturni senzor
- Raspberry Pi
- 16 * 2 LCD zaslon
- 10k trim lonec
- 10k Povlecite upor
- Breadboard
- Priključne žice
Uvod v temperaturni senzor DS18B20
DS18B20 je tri terminalni temperaturni senzor, ki je na voljo v paketu TO-92 (tranzistorski tip). Je zelo enostaven za uporabo in za začetek delovanja potrebuje le eno zunanjo komponento. Za komunikacijo z njim potrebuje le en GPIO pin iz MCU / MPU. Tipičen temperaturni senzor DS18B20 s svojim imenom pin je prikazan spodaj.
Ta senzor je na voljo tudi kot vodotesna različica, pri kateri je senzor pokrit z valjasto kovinsko cevjo. V tej vadnici bomo uporabili običajni senzor tipa tranzistorja, ki je prikazan zgoraj. DS18B20 je 1-wire programabilni temperaturni senzor kar pomeni, da zahteva le žebljiček podatkov za pošiljanje podatkov za mikrokrmilnik ali mikroprocesorskih plošč, kot so maline Pi. Vsako tipalo ima zanj edinstven 64-bitni naslov, zato je mogoče tudi več senzorjev povezati z istim MCU / MPU, saj je vsak senzor mogoče nasloviti posebej na istem podatkovnem vodilu. Specifikacija senzorja je prikazana spodaj.
- Delovna napetost: 3-5V
- Območje merjenja: -55 ° C do + 125 ° C
- Natančnost: ± 0,5 ° C
- Ločljivost: 9-bitna do 12-bitna
Zdaj, ko senzor poznamo dovolj, naj ga povežemo z Raspberry Pi.
Predpogoji
Predpostavlja se, da je vaš Raspberry Pi že nameščen z operacijskim sistemom in se lahko poveže z internetom. V nasprotnem primeru sledite navodilom za začetek uporabe Raspberry Pi. Tu uporabljamo Rasbian Jessie, nameščen Raspberry Pi 3.
Predpostavlja se tudi, da imate dostop do pi-ja bodisi prek terminalskih oken bodisi prek druge aplikacije, prek katere lahko pišete in izvajate programe python in uporabljate terminalsko okno.
Shema vezja
Kot smo že povedali v tej vadnici, bomo senzor DS18B20 povezali s Pi in na 16 * 2 LCD zaslonu prikazali vrednost temperature. Torej je treba senzor in LCD povezati z Raspberry Pi, kot je prikazano spodaj.
Sledite vezju in ustrezno vzpostavite povezavo. Tako LCD kot senzor DS18B20 delujeta s pomočjo + 5V, ki ga zagotavlja 5V zatič na Raspberry pi. LCD je izdelan za delo v 4-bitni način z maline pi se GPIO zatiči 18,23,24 in 25 se uporablja za podatkovno linijo in GPIO sponk 7 in 8 se uporabljajo za zatiranje vodov. Potenciometer se uporablja tudi za nadzor kontrasta LCD. Podatkovna linija DS18B20 je priključena na zatič GPIO 4. Upoštevajte tudi, da je treba uporabiti 10K upor. Povlecite podatke tako visoko, kot kaže shema vezja.
Lahko sledite zgornjemu vezju zgoraj in vzpostavite povezave ali pa uporabite tabelo pinov, da sledite številkam pinov GPIO.
Vezje sem zgradil na plošči, pri čemer sem uporabil enojne žice in moške do ženske žice za povezave. Kot lahko vidite, senzor za vmesnik potrebuje le eno žico, zato zavzame manj prostora in zatičev. Moja strojna oprema je videti spodaj, ko so vzpostavljene vse povezave. Zdaj je čas, da vklopite pi in začnete programirati.
Namestitev knjižnice Adafruit LCD na Raspberry P
Vrednost temperature bo prikazana na 16 * 2 LCD zaslonu. Adafruit nam ponuja knjižnico za enostavno upravljanje tega LCD-ja v 4-bitnem načinu, zato ga dodajte v naš Raspberry Pi tako, da odprete okno terminala Pi in sledite spodnjim korakom.
1. korak: Namestite git na Raspberry Pi z uporabo spodnje vrstice. Git vam omogoča kloniranje vseh projektnih datotek na Githubu in njihovo uporabo na vašem Raspberry pi. Naša knjižnica je na Githubu, zato moramo namestiti git, da jo prenesemo v pi.
apt-get install git
2. korak: Naslednja vrstica vodi do strani GitHub, kjer je knjižnica, samo izvedite vrstico za kloniranje projektne datoteke v domačem imeniku Pi
git klon git: //github.com/adafruit/Adafruit_Python_CharLCD
3. korak: Uporabite spodnji ukaz za spremembo imeniške vrstice, da pridete v projektno datoteko, ki smo jo pravkar prenesli. Ukazna vrstica je podana spodaj
cd Adafruit_Python_CharLCD
4. korak: V imeniku bo datoteka z imenom setup.py , namestiti jo moramo, da namestimo knjižnico. Za namestitev knjižnice uporabite naslednjo kodo
sudo python setup.py namestite
To je to, da bi morala biti knjižnica uspešno nameščena. Zdaj podobno nadaljujmo z namestitvijo knjižnice DHT, ki je prav tako iz Adafruit.
Omogočanje enožičnega vmesnika v Pi
Ker senzor DS18B20 komunicira z enožično metodo, moramo omogočiti enožično komunikacijo na Pi, tako da sledimo spodnjim korakom.
1. korak: - Odprite ukazni poziv in z spodnjim ukazom odprite konfiguracijsko datoteko
sudo nano /boot/config.txt
2. korak: - V konfiguracijsko datoteko dodajte vrstico " dtoverlay = w1-gpio " (obkrožena na spodnji sliki) in shranite datoteko, kot je prikazano spodaj
3. korak: - Uporabite Ctrl + X, da zaprete datoteko in jo shranite s pritiskom na "Y" in nato tipko Enter. Končno znova zaženite Pi z ukazom
sudo ponovni zagon
4. korak: - Po ponovnem zagonu znova odprite terminal in vnesite naslednje ukaze.
sudo modprobe w1– gpio sudo modprobe w1-therm. cd / sys / bus / w1 / devices ls
Okna terminala bodo prikazala nekaj takega
5. korak: - Na koncu koraka 4, ko vnesete ls , bo vaš pi prikazal edinstveno številko, ki se bo za vsakega uporabnika razlikovala glede na senzor, vendar se bo vedno začela z 28-. V mojem primeru je številka 28-03172337caff .
6. korak: - Zdaj lahko z vnosom naslednjih ukazov preverimo, ali senzor deluje
cd 28-XXXXXXXXXXXX.find ('t =') #poiščite "t =" v vrstici, če so obrezani_podatki! = -1: temp_string = lines #trim the strig only to the temoerature value temp_c = float (temp_string) / 1000.0 # delite vrednost 1000, da dobite dejansko vrnjeno vrednost temp_c # vrnite vrednost za tiskanje na LCD
Spremenljivka vrstice se uporablja za branje vrstic v datoteki. Nato se te vrstice primerjajo in poiščejo črko “t =”, vrednost za to črko pa se shrani v spremenljivko temp_string . Končno, da dobimo vrednost temperature, uporabimo spremenljivko temp_c, v kateri delimo vrednost niza s 1000. Na koncu vrnemo spremenljivko temp_c kot rezultat funkcije.
Znotraj neskončne zanke while moramo poklicati zgoraj določeno funkcijo, da dobimo vrednost temperature in jo prikažemo na LCD zaslonu. Prav tako očistimo LCD zaslon vsakih 1 sekundo, da se prikaže posodobljena vrednost.
while 1: # Infinite Loop lcd.clear () # Počistite LCD zaslon lcd .message ('Temp =%.1f C'% get_temp ()) # Prikažite vrednost temperaturnega časa.spanje (1) # Počakajte 1 sekundo nato posodobite vrednosti
Izhod / Delo
Kot vedno je celotna koda pythona podana na koncu strani, uporabite kodo in jo sestavite na Raspberry Pi. Vzpostavite povezavo, kot je prikazano na vezju, in pred izvajanjem programa se prepričajte, da ste sledili zgornjim korakom za namestitev datotek z glavo LCD-ja in omogočili enožično komunikacijo na pi. Ko je to končano, samo zaženite program, če vse deluje po pričakovanjih, boste lahko opazili uvodno besedilo. V nasprotnem primeru nastavite potenciometer kontrasta, dokler ne vidite nekaj. Končni rezultat bo videti približno takole spodaj.
Upam, da ste projekt razumeli in niste imeli težav z njegovo gradnjo. Če drugače navedite težavo v oddelku za komentarje ali uporabite forum za več tehnične pomoči. To je samo projekt povezovanja, toda ko je to končano, lahko razmišljate vnaprej, tako da delate na vremenski postaji Raspberry Pi, temperaturnem e-poštnem obvestilu in še veliko več.
Popolno delovanje projekta je prikazano tudi v spodnjem videu, kjer si lahko v realnem času ogledate vrednost temperature, ki se posodablja.