- Nødvendig materiale
- Introduksjon til DS18B20 temperatursensor
- Forutsetninger
- Kretsdiagram
- Installere Adafruit LCD-bibliotek på Raspberry P
- Aktivering av One-Wire-grensesnitt i Pi
- Utgang / arbeid
Raspberry Pi er kjent for sin beregningskraft og sin enorme anvendelse innen IoT, Home Automation etc. Men for ethvert elektronisk system som kan samhandle med den virkelige verden og få informasjon om det, må systemet bruke sensorer. Det er mange typer sensorer som brukes til denne prosessen, og den nødvendige sensoren velges basert på parameteren som skal måles og dens anvendelse. I denne opplæringen lærer vi å grensesnitt en temperatursensor DS18B20 med Raspberry Pi.
Den DS18B20 er mye brukt temperatursensor, hovedsakelig på steder hvor tøffe driftsmiljø er involvert som kjemisk industri, gruve planter osv Denne artikkelen vil fortelle om sensoren og hvordan det outstands annen temperatursensor og til slutt grensesnitt det med Raspberry Pi og vise temperatur verdi på 16x2 LCD.
Nødvendig materiale
- DS18B20 Temperatursensor
- Bringebær Pi
- 16 * 2 LCD-skjerm
- 10k trim potte
- 10k Trekk opp motstanden
- Brettbrett
- Koble ledninger
Introduksjon til DS18B20 temperatursensor
DS18B20 er en temperatursensor med tre terminaler tilgjengelig i pakken TO-92 (transistortype). Det er veldig enkelt å bruke og krever bare en ekstern komponent for å begynne å fungere. Det krever også bare en GPIO-pinne fra MCU / MPU for å kommunisere med den. En typisk DS18B20 temperatursensor med pin-navnet er vist nedenfor.
Denne sensoren er også tilgjengelig som en vanntett versjon der sensoren er dekket av et sylindrisk metallrør. I denne opplæringen vil vi bruke den normale transistortypesensoren som er vist ovenfor. Den DS18B20 er en en-tråds programmerbar temperaturføler som betyr at det bare krever datapinnen til å sende informasjonen til mikrokontrolleren eller mikroplater som f.eks bringebær Pi. Hver sensor har en unik adresse på 64-bit for det, så det er også mulig å ha flere sensorer koblet til samme MCU / MPU, siden hver sensor kan adresseres individuelt på samme databuss. Spesifikasjonen til sensoren er vist nedenfor.
- Driftsspenning: 3-5V
- Måleområde: -55 ° C til + 125 ° C
- Nøyaktighet: ± 0,5 ° C
- Oppløsning: 9-bit til 12-bit
Nå som vi vet nok om sensoren, la oss stat grensesnitt den med Raspberry Pi.
Forutsetninger
Det antas at Raspberry Pi allerede har blinket med et operativsystem og er i stand til å koble til internett. Hvis ikke, følg veiledningen Komme i gang med Raspberry Pi før du fortsetter. Her bruker vi Rasbian Jessie installert Raspberry Pi 3.
Det antas også at du har tilgang til pi-en din enten gjennom terminalvinduer eller gjennom andre applikasjoner som du kan skrive og utføre python-programmer gjennom og bruke terminalvinduet.
Kretsdiagram
Som vi fortalte tidligere i denne opplæringen, vil vi grensesnitt DS18B20-sensoren med Pi og vise temperaturverdien på en 16 * 2 LCD-skjerm. Så sensoren og LCD-skjermen skal være koblet til Raspberry Pi, som vist nedenfor.
Følg kretsskjemaet og koble til tilsvarende. Både LCD og DS18B20- sensoren fungerer ved hjelp av + 5V som leveres av 5V-pinnen på Raspberry pi. Den LCD bringes til å arbeide i 4-bits modus med bringebær pi, blir de GPIO pinnene 18,23,24 og 25 blir brukt for datalinjen og de GPIO tapper 7 og 8 som brukes for styreledningene. Et potensiometer brukes også til å kontrollere kontrastnivået på LCD-skjermen. DS18B20s datalinje er koblet til GPIO-pinne 4. Vær også oppmerksom på at en 10K motstand må brukes, trekk dataene så høyt som vist i kretsskjemaet.
Du kan enten følge kretsskjemaet ovenfor og koble til eller bruke pin-tabellen for å følge opp GPIO-pin-tallene.
Jeg har bygget kretsen på et brødbrett ved hjelp av enkeltstrengsledninger og ledninger fra hann til hunn for å få tilkoblingene. Som du kan se, krever sensoren bare en ledning for å grensesnittet og tar derfor mindre plass og pinner. Maskinvaren min ser slik ut nedenfor når alle tilkoblingene er gjort. Nå er det på tide å slå på pi og begynne å programmere.
Installere Adafruit LCD-bibliotek på Raspberry P
Verdien av temperaturen vises på en 16 * 2 LCD-skjerm. Adafruit gir oss et bibliotek for å enkelt betjene denne LCD-skjermen i 4-biters modus, så la oss legge den til vår Raspberry Pi ved å åpne terminalvinduet Pi og følge trinnene nedenfor.
Trinn 1: Installer git på Raspberry Pi ved å bruke nedenstående linje. Git lar deg klone alle prosjektfiler på Github og bruke den på Raspberry pi. Biblioteket vårt er på Github, så vi må installere git for å laste ned biblioteket til pi.
apt-get install git
Trinn 2: Følgende linjekoblinger til GitHub-siden der biblioteket er til stede, bare kjør linjen for å klone prosjektfilen i Pi-hjemmekatalogen
git clone git: //github.com/adafruit/Adafruit_Python_CharLCD
Trinn 3: Bruk kommandoen nedenfor for å endre kataloglinje, for å komme inn i prosjektfilen som vi nettopp lastet ned. Kommandolinjen er gitt nedenfor
cd Adafruit_Python_CharLCD
Trinn 4: Inne i katalogen vil det være en fil som heter setup.py , vi må installere den, for å installere biblioteket. Bruk følgende kode for å installere biblioteket
sudo python setup.py install
Det er det biblioteket burde vært installert. La oss nå på samme måte fortsette med å installere DHT-biblioteket som også er fra Adafruit.
Aktivering av One-Wire-grensesnitt i Pi
Siden DS18B20-sensoren kommuniserer gjennom One-Wire-metoden, må vi aktivere en ledningskommunikasjon på Pi ved å følge trinnene nedenfor.
Trinn 1: - Åpne kommandoprompten og bruk kommandoen nedenfor for å åpne konfigurasjonsfilen
sudo nano /boot/config.txt
Trinn 2: - I konfigurasjonsfilen legger du til linjen “ dtoverlay = w1-gpio ” (omkranset av bildet under) og lagrer filen som vist nedenfor
Trinn 3: - Bruk Ctrl + X for å avslutte filen og lagre den ved å trykke “Y” og deretter Enter-tasten. Endelig start Pi ved hjelp av kommandoen
sudo omstart
Trinn 4: - Når du har startet på nytt, åpner du terminalen igjen og skriver inn følgende kommandoer.
sudo modprobe w1– gpio sudo modprobe w1-therm. cd / sys / buss / w1 / enheter ls
Terminalvinduene dine viser noe sånt som dette
Trinn 5: - På slutten av trinn 4 når du skriver inn ls , vil pi-et ditt vise et unikt nummer. Dette tallet vil være forskjellig for hver bruker, basert på sensoren, men vil alltid starte med 28-. I mitt tilfelle er nummeret 28-03172337caff .
Trinn 6: - Nå kan vi sjekke om sensoren fungerer ved å skrive inn følgende kommandoer
cd 28-XXXXXXXXXXXX.find ('t =') # finn "t =" i linjen hvis trimmet_data! = -1: temp_string = linjer # trimm strig bare til temoeraturverdien temp_c = float (temp_string) / 1000.0 # del verdien på 1000 for å få faktisk verdi retur temp_c #retur verdien for å skrive ut på LCD
De variable linjene brukes til å lese linjene i filen. Deretter sammenlignes disse linjene og søkte etter bokstaven “t =”, og verdien etter den bokstaven lagres i variabelen temp_string . Til slutt for å få verdien av temperaturen bruker vi variabelen temp_c der vi deler strengverdien med 1000. Til slutt returnerer temp_c- variabelen som et resultat av funksjonen.
Inne i den uendelige mens sløyfen, trenger vi bare å ringe til den definerte funksjonen ovenfor for å få verdien av temperaturen og vise den på LCD-skjermen. Vi tømmer også LCD-skjermen for hvert 1 sekund for å vise den oppdaterte verdien.
mens 1: #Infinite Loop lcd.clear () #Clear LCD screen lcd .message ('Temp =%.1f C'% get_temp ()) # Vis verdien av temperatur tid. sov (1) # Vent i 1 sek oppdater deretter verdiene
Utgang / arbeid
Som alltid er den komplette pythonkoden gitt på slutten av siden, bruk koden og kompiler den på din Raspberry Pi. Opprett tilkoblingen som vist i kretsskjemaet, og før du utfører programmet, må du kontrollere at du har fulgt trinnene ovenfor for å installere LCD-headerfiler og aktivere en-tråds kommunikasjon på pi. Når det er gjort, er det bare å utføre programmet. Hvis alt fungerer som forventet, bør du kunne legge merke til introteksten. Hvis ikke justerer kontrastpotensiometeret før du ser noe. Det endelige resultatet vil se ut som dette nedenfor.
Håper du forsto prosjektet og ikke hadde problemer med å bygge det. Hvis det ellers oppgis problemet ditt i kommentarseksjonen, eller bruk forumet for mer teknisk hjelp. Dette er bare et grensesnittprosjekt, men når dette er gjort kan du tenke fremover ved å jobbe med en Raspberry Pi værstasjon, temperatur-e-postvarsler og mye mer.
Fullstendig bearbeiding av prosjektet vises også i videoen nedenfor hvor du kan se verdien av temperaturen blir oppdatert i sanntid.