- Reikalingos medžiagos
- Įvadas į DS18B20 temperatūros jutiklį
- Išankstiniai rekvizitai
- Grandinės schema
- „Adafruit“ LCD bibliotekos įdiegimas į „Raspberry P“
- Vienos laido sąsajos įjungimas Pi
- Rezultatas / darbas
„Raspberry Pi“ yra žinomas dėl savo skaičiavimo galios ir didžiulio pritaikymo daiktų interneto, namų automatikos ir kt. Srityse. Tačiau norint, kad bet kuri elektroninė sistema galėtų sąveikauti su realiu pasauliu ir gauti apie jį informacijos, sistema turi naudoti jutiklius. Šiam procesui naudojami daugybė jutiklių tipų, o reikalingas jutiklis parenkamas atsižvelgiant į matuojamą parametrą ir jo taikymą. Šioje pamokoje išmokstame suderinti temperatūros jutiklį DS18B20 su „Raspberry Pi“.
DS18B20 yra plačiai naudojamas temperatūros jutiklis, daugiausia tose vietose, kur atšiaurių veiklos aplinka yra susiję, kaip chemijos pramonės, mano augalai ir tt Šiame straipsnyje bus pasakojama apie jutiklio ir kaip ji outstands kita temperatūros jutiklis ir pagaliau sąsaja su Aviečių Pi ir peržiūrėti temperatūrą vertė 16x2 LCD ekrane.
Reikalingos medžiagos
- DS18B20 temperatūros jutiklis
- Avietė Pi
- 16 * 2 LCD ekranas
- 10 tūkst. Puodo
- 10k Patraukite rezistorių
- Bandomoji Lenta
- Jungiamieji laidai
Įvadas į DS18B20 temperatūros jutiklį
DS18B20 yra trijų gnybtų temperatūros jutiklis, kurį galima įsigyti TO-92 (tranzistoriaus tipo) pakuotėje. Tai labai paprasta naudoti ir norint pradėti dirbti reikia tik vieno išorinio komponento. Taip pat reikalingas tik vienas GPU kaištis iš MCU / MPU, kad su juo būtų galima bendrauti. Žemiau parodytas tipinis DS18B20 temperatūros jutiklis su smeigtuku.
Šis jutiklis taip pat yra vandeniui atspari versija, kurioje jutiklis yra padengtas cilindriniu metaliniu vamzdžiu. Šioje pamokoje mes naudosime įprastą tranzistoriaus tipo jutiklį, kuris parodytas aukščiau. DS18B20 yra 1-vielos programuojamas temperatūros jutiklis tai reiškia, kad reikia tik duomenų kaištį siųsti informaciją į mikroreguliatoriuje arba mikroprocesorių lentų, pavyzdžiui, aviečių Pi. Kiekvienas jutiklis turi unikalų 64 bitų adresą, todėl taip pat galima turėti kelis jutiklius, prijungtus prie to paties MCU / MPU, nes kiekvienas jutiklis gali būti adresuojamas atskirai toje pačioje duomenų magistralėje. Jutiklio specifikacija parodyta žemiau.
- Darbinė įtampa: 3-5V
- Matavimo diapazonas: nuo -55 ° C iki + 125 ° C
- Tikslumas: ± 0,5 ° C
- Skiriamoji geba: nuo 9 iki 12 bitų
Dabar, kai žinome pakankamai jutiklio, leiskime jį susieti su „Raspberry Pi“.
Išankstiniai rekvizitai
Daroma prielaida, kad jūsų „Raspberry Pi“ jau yra įdiegta su operacine sistema ir gali prisijungti prie interneto. Jei ne, prieš tęsdami vadovaukitės instrukcija „Pradėti naudoti„ Raspberry Pi ““. Čia mes naudojame Rasbian Jessie įdiegtą „Raspberry Pi 3“.
Taip pat daroma prielaida, kad jūs turite prieigą prie savo pi per terminalo langus arba per kitą programą, per kurią galite rašyti ir vykdyti python programas ir naudoti terminalo langą.
Grandinės schema
Kaip minėjome anksčiau šioje pamokoje, mes sujungsime DS18B20 jutiklį su Pi ir parodysime temperatūros vertę 16 * 2 LCD ekrane. Taigi jutiklis ir skystųjų kristalų ekranas turėtų būti prijungti prie „Raspberry Pi“, kaip parodyta žemiau.
Laikykitės grandinės schemos ir atitinkamai atlikite jungtį. Tiek skystųjų kristalų ekranas, tiek DS18B20 jutiklis veikia + 5 V pagalba, kurią suteikia 5 V kaištis ant „Raspberry pi“. Skystųjų kristalų daroma į darbo 4-bitų režimu su aviečių pi, kad GPIO kaiščiai 18,23,24 ir 25 yra naudojami duomenų perdavimo linija ir GPIO kaiščių 7 ir 8 yra naudojamas valdymo linijos. Potenciometrą taip pat naudojami siekiant kontroliuoti kontrasto lygį skystųjų kristalų ekrano. DS18B20 duomenų linija yra prijungta prie GPIO kaiščio 4. Taip pat atkreipkite dėmesį, kad reikia naudoti 10K rezistorių, kad duomenys būtų tokie pat aukšti, kaip parodyta grandinės schemoje.
Galite sekti pirmiau pateiktą grandinės schemą ir užmegzti ryšius arba naudoti kaiščių lentelę, kad galėtumėte sekti GPIO kaiščių numerius.
Aš sukūriau grandinę ant duonos lentos, naudodamas viengijas laidus ir laidus nuo vyriškos iki moteriškos, kad sujungtumėte. Kaip matote, jutikliui sąsajai reikalingas tik vienas laidas, taigi jis užima mažiau vietos ir kaiščių. Mano aparatinė įranga atrodo taip žemiau, kai bus atlikti visi ryšiai. Dabar atėjo laikas įjungti pi ir pradėti programuoti.
„Adafruit“ LCD bibliotekos įdiegimas į „Raspberry P“
Temperatūros vertė bus rodoma 16 * 2 LCD ekrane. „Adafruit“ suteikia mums biblioteką, leidžiančią lengvai valdyti šį skystųjų kristalų ekraną 4 bitų režimu, todėl pridėkime jį prie savo „Raspberry Pi“, atidarydami terminalo langą Pi ir atlikdami toliau nurodytus veiksmus.
1 žingsnis: įdiekite „git“ savo „Raspberry Pi“ naudodami žemiau esančią eilutę. „Git“ leidžia klonuoti visus projekto failus „Github“ ir naudoti juos „Raspberry pi“. Mūsų biblioteka yra „Github“, todėl norėdami atsisiųsti šią biblioteką į „pi“, turime įdiegti „git“.
apt-get install git
2 žingsnis: Šios eilutės nuorodos į „GitHub“ puslapį, kuriame yra biblioteka, tiesiog vykdykite eilutę, kad klonuotumėte projekto failą „Pi“ namų kataloge
„git clone“ git: //github.com/adafruit/Adafruit_Python_CharLCD
3 žingsnis: naudokite žemiau esančią komandą, kad pakeistumėte katalogo eilutę, kad patektumėte į ką tik atsisiųstą projekto failą. Komandinė eilutė pateikiama žemiau
CD „Adafruit_Python_CharLCD“
4 žingsnis: Katalogo viduje bus failas, vadinamas setup.py , mes turime jį įdiegti, kad įdiegtume biblioteką. Norėdami įdiegti biblioteką, naudokite šį kodą
sudo python setup.py įdiegti
Tai reiškia, kad biblioteka turėjo būti sėkmingai įdiegta. Dabar panašiai pradėkime įdiegti DHT biblioteką, kuri taip pat yra iš „Adafruit“.
Vienos laido sąsajos įjungimas Pi
Kadangi DS18B20 jutiklis bendrauja per vieno laido metodą, turime įjungti vieno laido ryšį Pi, atlikdami toliau nurodytus veiksmus.
1 žingsnis: - Atidarykite komandų eilutę ir naudokite žemiau esančią komandą, kad atidarytumėte konfigūracijos failą
sudo nano /boot/config.txt
2 žingsnis: - Viduje konfigūracijos faile pridėkite eilutę „ dtoverlay = w1-gpio “ (apjuosta žemiau esančiame paveikslėlyje) ir išsaugokite failą, kaip parodyta žemiau
3 žingsnis: - Jei norite išeiti iš failo ir jį išsaugoti, naudokite „Ctrl“ + X ir paspauskite „Y“, tada įveskite klavišą Galiausiai iš naujo paleiskite Pi naudodami komandą
sudo perkraukite
4 žingsnis: - Paleidus iš naujo, dar kartą atidarykite terminalą ir įveskite šias komandas.
sudo modprobe w1– gpio sudo modprobe w1-therm. CD / sys / magistralė / w1 / įrenginiai ls
Jūsų terminalo languose bus rodoma kažkas panašaus
5 žingsnis: - 4 veiksmo pabaigoje, kai įvesite ls , jūsų pi parodys unikalų numerį, kuris kiekvienam vartotojui bus skirtingas, atsižvelgiant į jutiklį, bet visada prasidės 28-. Mano atveju šis skaičius yra 28-03172337caff .
6 žingsnis: - Dabar mes galime patikrinti, ar jutiklis veikia, įvesdami šias komandas
cd 28-XXXXXXXXXXXX.find ('t =') # suraskite „t =“ eilutėje, jei „trimmed_data“! = -1: temp_string = eilutės # apkirpkite strigą tik iki temoeratūros vertės temp_c = float (temp_string) / 1000.0 # padalykite 1000 vertę, kad gautumėte faktinę vertę, grąžinkite temp_c # grąžinkite vertę, kurią norite spausdinti LCD
Kintamos eilutės naudojamos failo viduje esančioms eilutėms nuskaityti. Tada šios eilutės yra lyginamos, ieškoma raidės „t =“ ir vertė po tos raidės išsaugoma kintamajame temp_string . Galiausiai, norėdami gauti temperatūros vertę, naudojame kintamąjį temp_c , kuriame eilutės reikšmę padalijame iš 1000. Galų gale grąžinkite temp_c kintamąjį kaip funkcijos rezultatą.
„Infinite while loop“ viduje turime iškviesti tik pirmiau apibrėžtą funkciją, kad gautume temperatūros vertę ir parodytume ją LCD ekrane. Mes taip pat išvalome LCD ekraną kas 1 sek., Kad būtų rodoma atnaujinta vertė.
o 1: #Begalinė kilpa lcd. išvalyti () # Išvalyti skystųjų kristalų ekraną lcd. žinutė ('Temp =%.1f C'% get_temp ()) # Parodyti temperatūros laiko reikšmę. miegoti (1) # Palaukti 1 sek. tada atnaujinkite vertes
Rezultatas / darbas
Kaip visada visas pitono kodas pateikiamas puslapio pabaigoje, naudokite kodą ir sukompiliuokite jį savo „Raspberry Pi“. Užmegzkite ryšį taip, kaip parodyta grandinės schemoje, ir prieš vykdydami programą įsitikinkite, kad atlikote pirmiau nurodytus veiksmus, kad įdiegtumėte LCD antraštės failus ir įjungtumėte vieno laido ryšį pi. Kai tai bus padaryta, tiesiog vykdykite programą, jei viskas veikia taip, kaip tikėtasi, turėtumėte pastebėti įvadinį tekstą. Jei ne, reguliuokite kontrasto potenciometrą, kol pamatysite ką nors. Galutinis rezultatas atrodys maždaug taip žemiau.
Tikiuosi, kad supratote projektą ir neturėjote problemų jį pastatyti. Jei kitaip nurodykite savo problemą komentarų skyriuje arba naudokite forumą, jei reikia daugiau techninės pagalbos. Tai tik sąsajos projektas, tačiau tai atlikę galite galvoti iš anksto, dirbdami „Raspberry Pi“ meteorologijos stotyje, temperatūros el. Pašto pranešime ir dar daugiau.
Visas projekto darbas taip pat parodytas žemiau esančiame vaizdo įraše, kuriame galite pamatyti realaus laiko temperatūros vertę.