- Gerekli malzemeler
- DS18B20 Sıcaklık Sensörüne Giriş
- Ön Koşullar
- Devre şeması
- Adafruit LCD kütüphanesinin Raspberry P üzerine kurulması
- Pi'de Tek Telli Arayüzü Etkinleştirme
- Çıktı / Çalışma
Raspberry Pi, hesaplama gücü ve IoT, Ev Otomasyonu vb. Alanındaki geniş uygulaması ile bilinir. Ancak herhangi bir elektronik sistemin gerçek dünya ile etkileşime girmesi ve bunun hakkında bilgi alması için sistemin sensörleri kullanması gerekir. Bu işlem için kullanılan birçok sensör türü vardır ve gerekli sensör ölçülecek parametreye ve uygulamasına göre seçilir. Bu eğitimde, bir sıcaklık sensörü DS18B20 ile Raspberry Pi arasında arayüz oluşturmayı öğreniyoruz.
DS18B20 yaygın ağırlıklı sert çalışma ortamları kimya endüstrileri gibi katılmaktadırlar yerlerde, maden tesislerinde vs. Bu makale sensörü hakkında söyleyecek ve diğer sıcaklık sensörünü outstands nasıl ve nihayet Ahududu Pi ile arayüzü de, sıcaklık sensörü kullanılır ve sıcaklığı görüntülemek edilir 16x2 LCD'deki değer.
Gerekli malzemeler
- DS18B20 Sıcaklık Sensörü
- Ahududu Pi
- 16 * 2 LCD ekran
- 10k trim potu
- 10k Direnç yukarı çekin
- Breadboard
- Bağlantı telleri
DS18B20 Sıcaklık Sensörüne Giriş
DS18B20, TO-92 (transistör tipi) paketinde bulunan üç terminalli bir sıcaklık sensörüdür. Kullanımı çok kolaydır ve çalışmaya başlamak için yalnızca bir harici bileşen gerektirir. Ayrıca onunla iletişim kurmak için MCU / MPU'dan yalnızca bir GPIO pini gerektirir. Aşağıda pin adıyla tipik bir DS18B20 sıcaklık sensörü gösterilmektedir.
Bu sensör, sensörün silindirik bir metal tüp ile kaplandığı su geçirmez bir versiyon olarak da mevcuttur. Bu eğitimde, yukarıda gösterilen normal transistör tipi sensörü kullanacağız. DS18B20 1 telli programlanabilir bir sıcaklık sensörü de Ahududu Pi gibi mikrokontrolör veya mikroişlemcilerin panoları bilgi göndermek için sadece veri pimi gerektirir anlamına gelir. Her sensörün 64 bitlik benzersiz bir adresi vardır, bu nedenle her sensör aynı veri yolu üzerinde ayrı ayrı adreslenebildiğinden aynı MCU / MPU'ya birden fazla sensörün bağlanması da mümkündür. Sensörün özellikleri aşağıda gösterilmektedir.
- Çalışma gerilimi: 3-5V
- Ölçüm Aralığı: -55 ° C ila + 125 ° C
- Doğruluk: ± 0.5 ° C
- Çözünürlük: 9 bit ila 12 bit
Artık sensörü yeterince tanıdığımıza göre, onu Raspberry Pi ile arayüz oluşturmamıza izin verin.
Ön Koşullar
Raspberry Pi'nizin zaten bir işletim sistemi ile yanıp söndüğü ve internete bağlanabildiği varsayılmaktadır. Değilse, devam etmeden önce Raspberry Pi ile Başlarken öğreticisini izleyin. Burada Rasbian Jessie yüklü Raspberry Pi 3 kullanıyoruz.
Ayrıca pi'nize ya terminal pencerelerinden ya da python programları yazıp çalıştırabileceğiniz ve terminal penceresini kullanabileceğiniz diğer uygulamalar aracılığıyla erişebileceğiniz varsayılır.
Devre şeması
Bu eğitimde daha önce söylediğimiz gibi , DS18B20 sensörünü Pi ile arayüzleyeceğiz ve sıcaklık değerini 16 * 2 LCD ekranda görüntüleyeceğiz. Dolayısıyla sensör ve LCD aşağıda gösterildiği gibi Raspberry Pi ile bağlanmalıdır.
Devre şemasını takip edin ve buna göre bağlantıyı yapın. Hem LCD hem de DS18B20 sensörü, Raspberry pi üzerindeki 5V pin tarafından sağlanan + 5V yardımı ile çalışır. LCD Ahududu pi 4-bit modunda çalışma yapılır, 18,23,24 ve 25 veri hattı GPIO pim 7 ve 8 için kullanılan GPIO pimleri kontrol hatları kullanılır. LCD'nin kontrast seviyesini kontrol etmek için bir potansiyometre de kullanılır. DS18B20'nin veri hattı GPIO pin 4'e bağlanmıştır. Ayrıca, devre şemasında gösterildiği gibi verileri yüksek gibi çeken bir 10K direnç kullanılması gerektiğini unutmayın.
Yukarıdaki devre şemasını takip edip bağlantıları yapabilir veya GPIO pin numaralarını takip etmek için pin tablosunu kullanabilirsiniz.
Devreyi, bağlantıları yapmak için tek telli kablolar ve erkek-dişi teller kullanarak bir devre tahtası üzerinde kurdum. Gördüğünüz gibi, sensör arabirim için yalnızca bir kablo gerektirir ve bu nedenle daha az yer ve pin kaplar. Tüm bağlantılar yapıldığında donanımım aşağıdaki gibi görünüyor. Şimdi pi'yi açma ve programlamaya başlama zamanı.
Adafruit LCD kütüphanesinin Raspberry P üzerine kurulması
Sıcaklık değeri 16 * 2 LCD ekranda görüntülenecektir. Adafruit bize bu LCD'yi 4 bit modunda kolayca çalıştırabilmemiz için bir kütüphane sağlıyor, bu yüzden Pi terminal penceresini açıp aşağıdaki adımları takip ederek Raspberry Pi'mize ekleyelim.
Adım 1: Aşağıdaki satırı kullanarak Raspberry Pi'nize git yükleyin. Git, Github'daki herhangi bir proje dosyasını klonlamanıza ve bunu Raspberry pi'nizde kullanmanıza olanak tanır. Kütüphanemiz Github'da, bu yüzden bu kütüphaneyi pi'ye indirmek için git yüklememiz gerekiyor.
apt-get install git
Adım 2: Aşağıdaki satır, kütüphanenin bulunduğu GitHub sayfasına bağlanır, sadece proje dosyasını Pi ana dizinindeki klonlamak için satırı çalıştırın
git clone git: //github.com/adafruit/Adafruit_Python_CharLCD
Adım 3: İndirdiğimiz proje dosyasına girmek için dizin satırını değiştirmek için aşağıdaki komutu kullanın. Komut satırı aşağıda verilmiştir
cd Adafruit_Python_CharLCD
Adım 4: Dizinin içinde setup.py adında bir dosya olacak, kütüphaneyi kurmak için onu kurmamız gerekiyor. Kitaplığı kurmak için aşağıdaki kodu kullanın
sudo python setup.py install
Yani kitaplığın başarıyla kurulmuş olması gerekirdi. Şimdi benzer şekilde yine Adafruit'tan olan DHT kütüphanesini kurmaya devam edelim.
Pi'de Tek Telli Arayüzü Etkinleştirme
DS18B20 sensörü Tek Tel yöntemiyle iletişim kurduğundan, aşağıdaki adımları izleyerek Pi üzerinde tek telli iletişimi etkinleştirmemiz gerekir.
Adım 1: - Komutlar istemini açın ve yapılandırma dosyasını açmak için aşağıdaki komutu kullanın
sudo nano /boot/config.txt
Adım 2: - İçinde yapılandırma dosyası hattı “add dtoverlay = w1-GPIO ” (aşağıdaki resimde çevrili) ve dosyayı kaydedin aşağıda gösterildiği gibi
Adım 3: - Dosyadan çıkmak için Ctrl + X'i kullanın ve “Y” ve ardından Enter tuşuna basarak dosyayı kaydedin. Sonunda komutu kullanarak Pi'yi yeniden başlatın
sudo yeniden başlatma
Adım 4: - Yeniden başlatıldığında, terminali tekrar açın ve aşağıdaki komutları girin.
sudo modprobe w1– gpio sudo modprobe w1-therm. cd / sys / bus / w1 / cihazlar ls
Terminal pencereleriniz böyle bir şey gösterecek
Adım 5: - 4. adımın sonunda ls girdiğinizde pi'niz benzersiz bir sayı gösterecektir, bu sayı sensöre bağlı olarak her kullanıcı için farklı olacaktır, ancak her zaman 28- ile başlayacaktır. Benim durumumda numara 28-03172337caff .
Adım 6: - Şimdi aşağıdaki komutları girerek sensörün çalışıp çalışmadığını kontrol edebiliriz
cd 28-XXXXXXXXXXXX.find ('t =') # trimmed_data! = -1 ise satırdaki "t =" ' yi bulun: temp_string = satırlar # strig'i yalnızca temp_c = float (temp_string) / 1000.0 # gerçek değeri elde etmek için 1000 değerini bölün geri dönüş temp_c # LCD'de yazdırmak için değeri geri döndürün
Değişken satırlar , dosyanın içindeki satırları okumak için kullanılır. Daha sonra bu satırlar karşılaştırılarak “t =” harfi aranır ve bu harften sonraki değer temp_string değişkenine kaydedilir . Son olarak, değişken kullanmak ısı değerini elde etmek için temp_c geri sonuna olarak 1000 ile dize değerine bölünür ki burada temp_c fonksiyonunun bir sonucu olarak değişken.
Sonsuz while döngüsünün içinde, sıcaklık değerini elde etmek ve LCD ekranda görüntülemek için sadece yukarıda tanımlanan işlevi çağırmamız gerekir. Güncellenen değeri görüntülemek için LCD'yi her 1 saniyede bir temizliyoruz.
while 1: # Sonsuz Döngü lcd.clear () #LCD ekranını temizleyin lcd. mesaj ('Temp =%.1f C'% get_temp ()) # Sıcaklık zaman değerini görüntüleyin.sleep (1) # 1 saniye bekleyin sonra değerleri güncelleyin
Çıktı / Çalışma
Her zaman olduğu gibi tam python kodu sayfanın sonunda verilmiştir, kodu kullanın ve Raspberry Pi'nizde derleyin. Bağlantıyı devre şemasında gösterildiği gibi yapın ve programı çalıştırmadan önce, LCD başlık dosyalarını yüklemek ve pi üzerinde tek telli iletişimi etkinleştirmek için yukarıdaki adımları izlediğinizden emin olun. Bu yapıldıktan sonra, sadece programı çalıştırın, her şey beklendiği gibi çalışıyorsa, giriş metnini fark edebilmelisiniz. Kontrast potansiyometresini bir şey görene kadar ayarlamazsanız. Nihai sonuç aşağıdaki gibi görünecektir.
Umarım projeyi anladınız ve inşa etmekte sorun yaşamadınız. Aksi takdirde sorununuzu yorum bölümünde belirtin veya daha fazla teknik yardım için forumu kullanın. Bu sadece bir arayüz projesidir, ancak bu bir kez yapıldığında, bir Raspberry Pi hava istasyonu, sıcaklık E-posta bildiricisi ve çok daha fazlası üzerinde çalışarak ileriyi düşünebilirsiniz.
Projenin tam çalışması, gerçek zamanlı olarak güncellenen sıcaklık değerini görebileceğiniz aşağıdaki videoda da gösterilmektedir.