- Nepieciešamie materiāli
- Ievads DS18B20 temperatūras sensorā
- Iepriekšēji rekvizīti
- Ķēdes shēma
- Adafruit LCD bibliotēkas instalēšana uz Raspberry P
- Viena vadu saskarnes iespējošana Pi
- Rezultāts / darbs
Aveņu Pi ir pazīstama ar savu skaitļošanas jaudu un plašo pielietojumu IoT, mājas automatizācijas uc jomā. Tomēr, lai jebkura elektroniskā sistēma mijiedarbotos ar reālo pasauli un iegūtu informāciju par to, sistēmai ir jāizmanto sensori. Šajā procesā tiek izmantoti daudzi sensoru veidi, un nepieciešamais sensors tiek izvēlēts, pamatojoties uz mērāmo parametru un tā pielietojumu. Šajā apmācībā mēs iemācāmies saskarni ar temperatūras sensoru DS18B20 ar Raspberry Pi.
DS18B20 tiek plaši izmantots temperatūras sensoru, galvenokārt vietās, kur skarbie darbības vide ir iesaistīti, piemēram, ķīmiskās rūpniecības, raktuvju augus utt Šis raksts pastāstīs par sensoru un kā tas outstands citu temperatūras sensoru un beidzot saskarnes ar aveņu Pi un apskatīt temperatūru vērtība uz 16x2 LCD.
Nepieciešamie materiāli
- DS18B20 temperatūras sensors
- Aveņu Pi
- 16 * 2 LCD displejs
- 10k apdares katls
- 10k Pavelciet rezistoru uz augšu
- Maizes dēlis
- Savienojošie vadi
Ievads DS18B20 temperatūras sensorā
DS18B20 ir trīs termināļu temperatūras sensors, kas pieejams TO-92 (tranzistora tipa) komplektā. Tas ir ļoti ērti lietojams, un darba sākšanai nepieciešams tikai viens ārējs komponents. Lai sazinātos ar to, no MCU / MPU ir nepieciešama tikai viena GPIO tapa. Tālāk parādīts tipisks DS18B20 temperatūras sensors ar tā tapas nosaukumu.
Šis sensors ir pieejams arī kā ūdensizturīgs variants, kurā sensoru pārklāj cilindriska metāla caurule. Šajā apmācībā mēs izmantosim parasto tranzistora tipa sensoru, kas parādīts iepriekš. DS18B20 ir 1 vadu programmējamo temperatūras sensors nozīmē, ka ir nepieciešama tikai datu pin, lai nosūtītu informāciju, lai mikrokontrolleru vai mikroprocesora dēļiem, piemēram, aveņu Pi. Katram sensoram tam ir unikāla 64 bitu adrese, tāpēc ir iespējams arī vairākus sensorus savienot ar to pašu MCU / MPU, jo katram sensoram var adresēt atsevišķi vienā un tajā pašā datu kopnē. Sensora specifikācija ir parādīta zemāk.
- Darba spriegums: 3-5V
- Mērīšanas diapazons: -55 ° C līdz + 125 ° C
- Precizitāte: ± 0,5 ° C
- Izšķirtspēja: 9 biti līdz 12 biti
Tagad, kad mēs zinām pietiekami daudz sensora, ļaujiet mums to sasaistīt ar Raspberry Pi.
Iepriekšēji rekvizīti
Tiek pieņemts, ka jūsu Raspberry Pi jau ir mirgojis ar operētājsistēmu un spēj izveidot savienojumu ar internetu. Ja nē, pirms turpināt, izpildiet pamācību Darba sākšana ar Raspberry Pi. Šeit mēs izmantojam Rasbian Jessie instalēto Raspberry Pi 3.
Tiek pieņemts arī, ka jums ir piekļuve savam pi vai nu caur termināla logiem, vai caur citu lietojumprogrammu, caur kuru jūs varat rakstīt un izpildīt python programmas un izmantot termināla logu.
Ķēdes shēma
Kā mēs teicām iepriekš šajā apmācībā, mēs saskarsimies ar DS18B20 sensoru ar Pi un parādīsim temperatūras vērtību 16 * 2 LCD ekrānā. Tātad sensors un LCD ir jāpievieno Raspberry Pi, kā parādīts zemāk.
Izpildiet ķēdes shēmu un izveidojiet attiecīgi savienojumu. Gan LCD, gan DS18B20 sensors darbojas ar + 5V palīdzību, ko nodrošina Raspberry pi 5V tapa. LCD tiek veikti darbam 4-bitu režīmā ar Raspberry Pi, tad GPIO tapas 18,23,24 un 25 tiek izmantots datu līnijas un GPIO tapas 7 un 8 tiek izmantota kontroles līnijas. Potenciometrs tiek izmantota arī, lai kontrolētu kontrasta līmeni LCD. DS18B20 datu līnija ir savienota ar GPIO tapu 4. Ņemiet vērā arī to, ka jāizmanto 10K rezistors, lai datus izvilktu tikpat augstu, kā parādīts shēmā.
Varat vai nu sekot iepriekšējai shēmai un izveidot savienojumus, vai arī izmantot tapu tabulu, lai sekotu GPIO tapu numuriem.
Esmu izveidojis ķēdi uz maizes dēļa, izmantojot savienojumus, izmantojot vienvirziena vadus un vadus no vīriešiem līdz sievietēm. Kā redzat, sensora saskarnei ir nepieciešams tikai viens vads, tāpēc tas aizņem mazāk vietas un tapas. Mana aparatūra izskatās šādi zemāk, kad ir izveidoti visi savienojumi. Ir pienācis laiks aktivizēt pi un sākt programmēšanu.
Adafruit LCD bibliotēkas instalēšana uz Raspberry P
Temperatūras vērtība tiks parādīta 16 * 2 LCD displejā. Adafruit nodrošina mums bibliotēku, lai ērti darbotos ar šo LCD 4 bitu režīmā, tāpēc ļaujiet mums to pievienot mūsu Raspberry Pi, atverot termināla logu Pi un veicot tālāk norādītās darbības.
1. solis: Instalējiet git savā Raspberry Pi, izmantojot zemāk esošo līniju. Git ļauj klonēt visus projekta failus vietnē Github un izmantot tos savā Raspberry pi. Mūsu bibliotēka atrodas Github, tāpēc mums ir jāinstalē git, lai lejupielādētu šo bibliotēku pi.
apt-get install git
2. solis: Šīs līnijas saites uz GitHub lapu, kurā atrodas bibliotēka, vienkārši izpildiet rindu, lai klonētu projekta failu Pi mājas direktorijā
git klons git: //github.com/adafruit/Adafruit_Python_CharLCD
3. solis: Izmantojiet zemāk esošo komandu, lai mainītu direktorijas līniju, lai iekļūtu tikko lejupielādētajā projekta failā. Komandrinda ir dota zemāk
cd Adafruit_Python_CharLCD
4. solis: direktorijā būs fails ar nosaukumu setup.py . Mums tas ir jāinstalē, lai instalētu bibliotēku. Lai instalētu bibliotēku, izmantojiet šo kodu
sudo python setup.py instalēt
Tas ir, bibliotēkai vajadzēja būt veiksmīgi instalētai. Tagad turpināsim instalēt DHT bibliotēku, kas ir arī no Adafruit.
Viena vadu saskarnes iespējošana Pi
Tā kā DS18B20 sensors sazinās, izmantojot One-Wire metodi, mums ir jāiespējo viena vada komunikācija Pi, veicot tālāk norādītās darbības.
1. solis: - Atveriet komandu uzvedni un izmantojiet zemāk esošo komandu, lai atvērtu konfigurācijas failu
sudo nano /boot/config.txt
2. solis: - konfigurācijas faila iekšpusē pievienojiet rindiņu “ dtoverlay = w1-gpio ” (kas ietverta zemāk esošajā attēlā) un saglabājiet failu, kā parādīts zemāk
3. solis: - Izmantojiet Ctrl + X, lai izietu no faila un saglabātu to, nospiežot “Y” un pēc tam taustiņu Enter. Visbeidzot restartējiet Pi, izmantojot komandu
sudo atsāknēšana
4. solis: - pēc restartēšanas vēlreiz atveriet termināli un ievadiet šādas komandas.
sudo modprobe w1– gpio sudo modprobe w1-therm. cd / sys / kopne / w1 / ierīces ls
Jūsu termināla logos būs redzams kaut kas līdzīgs šim
5. solis: - 4. solis beigās, ievadot ls , jūsu pi parādīs unikālu numuru, katram lietotājam šis skaitlis būs atšķirīgs, pamatojoties uz sensoru, bet vienmēr sāksies ar 28-. Manā gadījumā numurs ir 28-03172337caff .
6. solis: - Tagad mēs varam pārbaudīt, vai sensors darbojas, ievadot šādas komandas
cd 28-XXXXXXXXXXXX.find ('t =') # atrodiet "t =" rindā, ja trimmed_data! = -1: temp_string = līnijas # apgrieziet strigu tikai līdz temoerature vērtībai temp_c = float (temp_string) / 1000.0 # daliet vērtību 1000, lai iegūtu faktiskās vērtības atgriešanās temp_c #atgrieziet vērtību, ko drukāt uz LCD
Mainīgās līnijas tiek izmantotas, lai nolasītu rindas faila iekšienē. Tad šīs rindas tiek salīdzinātas, meklējot burtu “t =”, un vērtība pēc šī burta tiek saglabāta mainīgajā temp_string . Visbeidzot, lai iegūtu temperatūras vērtību, mēs izmantojam mainīgo temp_c , kurā virknes vērtību dalām ar 1000. Beigās funkcijas rezultātā atgriezīsim mainīgo temp_c .
Inside bezgalīgas kamēr cilpa, mums tikai ir, lai izsauktu iepriekš noteiktu funkciju, lai iegūtu vērtību, temperatūras un parādīt to LCD ekrānā. Mēs arī notīra LCD ik pēc 1 sekundes, lai parādītu atjaunināto vērtību.
kamēr 1: # Bezgalīgā cilpa lcd.clear () # Notīriet LCD ekrānu lcd .message ('Temp =%.1f C'% get_temp ()) # Parādiet temperatūras laika vērtību. miega (1) # Pagaidiet 1 sekundi pēc tam atjauniniet vērtības
Rezultāts / darbs
Kā vienmēr pilns pitona kods ir norādīts lapas beigās, izmantojiet kodu un apkopojiet to savā Raspberry Pi. Izveidojiet savienojumu, kā parādīts ķēdes shēmā, un pirms programmas izpildes pārliecinieties, vai esat izpildījis iepriekš minētās darbības, lai instalētu LCD galvenes failus un iespējotu viena vadu sakarus pi. Kad tas ir izdarīts, vienkārši izpildiet programmu, ja viss darbojas, kā paredzēts, jums vajadzētu būt iespējai pamanīt ievadtekstu. Ja nē, noregulējiet kontrasta potenciometru, līdz kaut ko redzat. Galarezultāts zemāk izskatīsies apmēram šādi.
Ceru, ka sapratāt projektu un jums nebija problēmu to uzcelt. Ja citādi norādiet savu problēmu komentāru sadaļā vai izmantojiet forumu, lai iegūtu vairāk tehniskas palīdzības. Šis ir tikai saskarnes projekts, taču, kad tas ir izdarīts, varat domāt uz priekšu, strādājot pie Raspberry Pi laika stacijas, temperatūras e-pasta paziņotāja un daudz ko citu.
Pilnīga projekta darbība ir parādīta arī zemāk esošajā videoklipā, kur jūs varat redzēt temperatūras vērtību, kas tiek atjaunināta reāllaikā.