- Material som krävs
- Introduktion till DS18B20 temperatursensor
- Förutsättningar
- Kretsschema
- Installera Adafruit LCD-bibliotek på Raspberry P
- Aktiverar ett-tråds gränssnitt i Pi
- Output / Working
Raspberry Pi är känd för sin beräkningskraft och dess stora tillämpning inom IoT, hemautomation etc. Men för alla elektroniska system för att interagera med den verkliga världen och få information om det måste systemet använda sensorer. Det finns många typer av sensorer som används för denna process och den önskade sensorn väljs baserat på parametern som ska mätas och dess tillämpning. I den här handledningen lär vi oss att koppla ihop en temperatursensor DS18B20 med Raspberry Pi.
Den DS18B20 används i stor utsträckning temperatursensor, främst på platser där hårda miljöer är inblandade som kemisk industri, gruvanläggningar etc. Denna artikel kommer att berätta om sensorn och hur det outstands andra temperatursensor och slutligen gränssnitt det med Raspberry Pi och visa temperaturen värde på 16x2 LCD.
Material som krävs
- DS18B20 temperatursensor
- Raspberry Pi
- 16 * 2 LCD-skärm
- 10k trimgryta
- 10k Dra upp motståndet
- Bakbord
- Anslutande ledningar
Introduktion till DS18B20 temperatursensor
DS18B20 är en temperatursensor med tre terminaler som finns i TO-92-paketet (transistortyp). Det är väldigt enkelt att använda och kräver bara en extern komponent för att börja fungera. Det kräver också bara en GPIO-stift från MCU / MPU för att kommunicera med den. En typisk DS18B20 temperatursensor med dess stiftnamn visas nedan.
Denna sensor finns också som en vattentät version där sensorn är täckt av ett cylindriskt metallrör. I denna handledning använder vi den normala transistortypsensorn som visas ovan. Den DS18B20 är en 1-wire programmerbar temperatursensor vilket betyder att den endast kräver datastiftet för att skicka information till mikrokontroller eller mikroprocessor brädor såsom Raspberry Pi. Varje sensor har en unik adress på 64-bitar så det är också möjligt att ha flera sensorer anslutna till samma MCU / MPU eftersom varje sensor kan adresseras individuellt på samma databuss. Specifikationen för sensorn visas nedan.
- Driftspänning: 3-5V
- Mätområde: -55 ° C till + 125 ° C
- Noggrannhet: ± 0,5 ° C
- Upplösning: 9-bit till 12-bit
Nu när vi vet tillräckligt om sensorn, låt oss stat gränssnitt det med Raspberry Pi.
Förutsättningar
Det antas att din Raspberry Pi redan har blinkat med ett operativsystem och kan ansluta till internet. Om inte, följ guiden Komma igång med Raspberry Pi innan du fortsätter. Här använder vi Rasbian Jessie installerade Raspberry Pi 3.
Det antas också att du har tillgång till din pi antingen via terminalfönster eller genom andra applikationer genom vilka du kan skriva och köra pythonprogram och använda terminalfönstret.
Kretsschema
Som vi berättade tidigare i denna handledning kommer vi att koppla ihop DS18B20-sensorn med Pi och visa temperaturvärdet på en 16 * 2 LCD-skärm. Så sensorn och LCD-skärmen ska anslutas till Raspberry Pi, som visas nedan.
Följ kretsschemat och gör anslutningen därefter. Både LCD och DS18B20- sensorn fungerar med hjälp av + 5V som tillhandahålls av 5V-stiftet på Raspberry pi. Den LCD görs till arbete i 4-bitarsläge med hallon pi, är de GPIO stiften 18,23,24 och 25 används för dataledningen och GPIO stiften 7 och 8 används för styrledningarna. En potentiometer används också för att styra LCD-skärmens kontrastnivå. DS18B20: s datalinje är ansluten till GPIO-stift 4. Observera också att ett 10K-motstånd måste användas dra data så högt som visas i kretsschemat.
Du kan antingen följa kretsschemat ovan och göra anslutningar eller använda pin-tabellen för att följa upp GPIO-stiftnumren.
Jag har byggt kretsen på ett brödbräda med enkelsträngsledningar och manliga till kvinnliga ledningar för att göra anslutningarna. Som du kan se behöver sensorn bara en ledning för gränssnittet och tar därmed mindre plats och stift. Min hårdvara ser ut så här nedan när alla anslutningar görs. Nu är det dags att starta pi och börja programmera.
Installera Adafruit LCD-bibliotek på Raspberry P
Temperaturvärdet visas på en 16 * 2 LCD-skärm. Adafruit ger oss ett bibliotek för att enkelt hantera denna LCD i 4-bitars läge, så låt oss lägga till den i vår Raspberry Pi genom att öppna terminalfönstret Pi och följa nedanstående steg.
Steg 1: Installera git på din Raspberry Pi genom att använda nedanstående rad. Med Git kan du klona alla projektfiler på Github och använda den på din Raspberry pi. Vårt bibliotek finns på Github så vi måste installera git för att ladda ner det biblioteket till pi.
apt-get install git
Steg 2: Följande rad länkar till GitHub-sidan där biblioteket finns, kör bara raden för att klona projektfilen i Pi-hemkatalogen
git clone git: //github.com/adafruit/Adafruit_Python_CharLCD
Steg 3: Använd kommandot nedan för att ändra katalograden, för att komma in i projektfilen som vi just laddade ner. Kommandoraden ges nedan
cd Adafruit_Python_CharLCD
Steg 4: Inne i katalogen finns en fil som heter setup.py , vi måste installera den för att installera biblioteket. Använd följande kod för att installera biblioteket
sudo python setup.py installera
Det är det biblioteket borde ha installerats med framgång. Nu ska vi på samma sätt fortsätta med installationen av DHT-biblioteket som också kommer från Adafruit.
Aktiverar ett-tråds gränssnitt i Pi
Eftersom DS18B20-sensorn kommunicerar via One-Wire-metoden måste vi aktivera en-trådskommunikation på Pi genom att följa nedanstående steg.
Steg 1: - Öppna kommandotolken och använd kommandot nedan för att öppna konfigurationsfilen
sudo nano /boot/config.txt
Steg 2: - Inuti konfigurationsfilen lägg till raden “ dtoverlay = w1-gpio ” (omgiven av bilden nedan) och spara filen som visas nedan
Steg 3: - Använd Ctrl + X för att avsluta filen och spara den genom att trycka på "Y" och sedan Enter. Starta slutligen om Pi med kommandot
omstart av sudo
Steg 4: - När du har startat om öppnar du terminalen igen och anger följande kommandon.
sudo modprobe w1– gpio sudo modprobe w1-therm. cd / sys / bus / w1 / enheter ls
Dina terminalfönster visar något liknande detta
Steg 5: - I slutet av steg 4 när du anger ls , kommer din pi att visa ett unikt nummer. Detta nummer kommer att vara annorlunda för varje användare, baserat på sensorn, men börjar alltid med 28-. I mitt fall är numret 28-03172337caff .
Steg 6: - Nu kan vi kontrollera om sensorn fungerar genom att ange följande kommandon
cd 28-XXXXXXXXXXXX.find ('t =') # hitta "t =" i raden om trimmad_data! = -1: temp_string = rader # klipp strig endast till temoeraturvärdet temp_c = float (temp_string) / 1000.0 # dela värdet 1000 för att få verkligt värde retur temp_c #return värdet för att skriva ut på LCD
De variabla raderna används för att läsa raderna i filen. Därefter jämförs dessa rader efter sökningen efter bokstaven "t =" och värdet efter den bokstaven sparas i variabeln temp_string . Slutligen för att få temperaturvärdet använder vi variabeln temp_c där vi delar strängvärdet med 1000. Till slut returnerar temp_c- variabeln som ett resultat av funktionen.
Inne i oändliga medan loop har vi bara att ringa ovan definierad funktion för att få värdet av temperaturen och visa den på LCD-skärmen. Vi rensar också LCD-skärmen var 1: e sekund för att visa det uppdaterade värdet.
medan 1: #Infinite Loop lcd.clear () #Clear LCD-skärmen lcd .message ('Temp =%.1f C'% get_temp ()) # Visa värdet på temperaturtid. sov (1) # Vänta i 1 sek uppdatera sedan värdena
Output / Working
Som alltid fullständiga Python-kod ges i slutet av sidan, använda koden och kompilera den på din Raspberry Pi. Gör anslutningen som visas i kretsschemat och innan du kör programmet, se till att du har följt stegen ovan för att installera LCD-rubrikfiler och aktivera en-trådskommunikation på pi. När det är klart, kör bara programmet, om allt fungerar som förväntat bör du kunna märka introduktionstexten. Justera inte kontrastpotentiometern tills du ser något. Det slutliga resultatet kommer att se ut så här nedan.
Hoppas att du förstod projektet och inte hade några problem att bygga det. Om annars anger ditt problem i kommentarsektionen eller använder forumet för mer teknisk hjälp. Detta är bara ett gränssnittsprojekt, men när detta är klart kan du tänka framåt genom att arbeta på en Raspberry Pi-väderstation, temperatur-e-postmeddelande och mycket mer.
Det fullständiga arbetet med projektet visas också i videon nedan där du kan se temperaturvärdet uppdateras i realtid.