İçindekiler:
- Adım 1: Pi'yi hazırlayın
- Adım 2: Her Şeyi Bağlayın
- 3. Adım: I2C'nizi Test Edin
- Adım 4: MySQL ve PhpMyAdmin'i kurun
- Adım 5: Python Modüllerini Kurun
- Adım 6: Veritabanına Giriş Yapacak Kod
- Adım 7: Sıcaklığı Gösterecek Kod
- Adım 8: 3B Basılı Muhafaza
- 9. Adım: Yapılacak Şeyler
Video: Raspberry Pi Barometresi Hava Saati: 9 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Bu talimatta size Adafruit 4 haneli 7 segment I2C ekranında BMP180 I2C sensörlü bir Raspberry Pi 2 kullanarak temel bir Termometre / Barometre saatinin nasıl oluşturulacağını göstereceğim. Pi ayrıca, Pi yeniden başlatıldığında zamanı tutmak için bir DS3231 gerçek zamanlı I2C saat modülü kullanır.
Saat, her biri 5 saniye boyunca 4 aşamadan geçer. Önce santigrat cinsinden sıcaklığı, sonra Fahrenheit cinsinden, ardından kPa * cinsinden barometrik basıncı gösterir (sınırlı sayıda basamak nedeniyle bu sayıyı sola doğru yürür) ve son olarak şimdi ile ortalama arasındaki barometrik basınç değişimi eğilimini gösterir. önceki saat.
Bu saati diğerlerinden farklı kılan şey, her dakika BMP180'den veri kaydetmek için Pi üzerinde bir MySQL veritabanı kullanmasıdır. Mevcut barometrik basınç, belirli bir süre içindeki yukarı veya aşağı hareketi kadar değerli olmadığı için, 2 saat ile 1 saat arasındaki bir saat aralığının ortalamasını hesaplamak için bu veritabanını kullanır ve bunu mevcut basınçla karşılaştırır. Barometrik basınçtaki önemli bir artış, genellikle hava koşullarında bir iyileşmeye işaret ederken, büyük bir düşüşün yaklaşmakta olan bir fırtınayı haber verebileceğine işaret etti.
Saat, Pi tarafından üretilen ısının sıcaklık okumalarını etkilemesini önlemek için saatin arkasındaki havalandırmalı bir kapakta BMP180 ile 3D baskılı bir ABS muhafazasına yerleştirilmiştir. Kendinizinkini yazdırmak istiyorsanız, Autodesk 123D Design şemasını sağlayacağım.
Saat, standart bir USB duvar siğiliyle çalışır ve toplamda yaklaşık 450 mA çeker.
Pi ve I2C'nin temel kurulumu hakkında çok fazla ayrıntıya girmeyeceğim çünkü bu, bağlantı vereceğim diğer birçok talimatta ele alındı.
Adım 1: Pi'yi hazırlayın
Raspberry Pi'nizi kurun - Ayrıntılar Raspberrypi.org'da
- Seçtiğiniz Linux Dağıtımını bir SD karta indirin ve kurun - Raspbian kullandım
- Pi'yi takın ve önyükleyin
- Saat muhafazası Ethernet bağlantı noktasını gizlediği için pi'yi yönlendiricime bağlamak için bir mikro WiFi adaptörü kullandım.
- SSH kullanarak pi'ye bağlandığınız başsız modu kullandım, böylece fişe takmanız gereken tek şey güç.
- Pi'de I2C'yi yapılandırın - Adafruit sitesinde bu talimatları takip ettim.
Adım 2: Her Şeyi Bağlayın
Bu projede kullandığım tüm modüller 5V toleranslıdır ve IC'lerin birbirleriyle iletişim kurması için kullanılan 2 kablolu bir protokol olan I2C'yi kullanır, bu nedenle kablolama oldukça basittir. Şemaya göre tüm VCC'yi 5V'a, tüm Toprakları ve tüm SCA ve SCL hatlarını birbirine bağlayın. İş bitmiş.
3. Adım: I2C'nizi Test Edin
I2C kurulumunun bir kısmı, her şey doğru şekilde bağlanmışsa ekteki resim gibi görünmesi gereken i2cdetect'i çalıştırmaktır.
Aşağıda eşleşen adresler
- 0x70 = 7 Segment Ekran
- 0x77 = BMP180 Termometre / Barometre sensörü
- 0x68 = DS3231 Gerçek Zamanlı Saat modülü
- 0x57 = Alarm verilerini depolamak için yerleşik EEPROM üzerinde DS3231.
Adım 4: MySQL ve PhpMyAdmin'i kurun
Buradaki öğreticiyi takip ederseniz, mySQL kurulumu oldukça basittir.
sudo apt-get install mysql-server
Ayrıca, mySQL veritabanları oluşturmak ve yönetmek için kullanabileceğiniz Apache üzerinde çalışan bir web sitesi olan phpMyAdmin'i kurdum. Burada öğretici
sudo apt-get install phpmyadmin
Kurulduktan sonra phpMyAdmin kullanarak BP180 adlı bir veritabanını resimdeki gibi bir yapıya sahip olarak kurdum.
Ayrıca, kullanarak kurabileceğiniz mysqlDB adlı bir python modülünden de faydalanıyorum.
sudo apt-get install python-mysqldb
Adım 5: Python Modüllerini Kurun
Sensörlere bağlanmak için kullanacağınız aşağıdaki python modüllerini indirin ve kurun.
- Adafruit_BMP085 modülü
- SDL_DS3231 modülü
- Adafruit 7 Segment modülü
Adım 6: Veritabanına Giriş Yapacak Kod
Aşağıdaki kod parçacığı, sıcaklığı ve barometrik basıncı kaydetmek için kullanılır ve her 5 dakikada bir çalışan bir cron komut dosyasından (Linux zamanlanmış görevleri) çağrılır. Crond'un nasıl kullanılacağını öğrenmek için bu eğiticiye göz atın.
Dikkat! Kodlama becerilerimi mahvetme zahmetine girme, ben bir geliştirici değilim, bu yüzden evet, muhtemelen bunu yapmanın milyonlarca daha iyi, daha hızlı, daha sorunsuz ve daha temiz yolu var
Kodda sıcaklığın 7 derece azaldığını fark edeceksiniz, bu da BMP180 muhafazanın dışına monte edilmiş olsa bile Raspberry Pi tarafından üretilen ısıya eşdeğerdir. İlk başta muhafazanın içine koyduğumda, ortam sıcaklığından yaklaşık 15 derece daha sıcaktı. Oldukça doğrusal görünüyor, ancak herhangi bir aşırılığı test etme fırsatım olmadı. Deneyimlerinizin geri bildirimi takdir edilecektir.
Adım 7: Sıcaklığı Gösterecek Kod
Bu kod, girişe göre ekranda dolaşmak için çağrılır.
Yine, ben bir geliştirici değilim, bu yüzden kod gerçekten kaba, ama işe yarıyor
Adım 8: 3B Basılı Muhafaza
Sonraki, muhafazanın tasarımıdır. Dış kabuğun bazı kısımları sadece 2 mm kalınlığında olduğu için şekil bükülmeye meyilli olduğundan bu oldukça zorlayıcıydı. Önce Pi'nin ve tüm parçalarının maketlerini çizdim ve ardından kasayı onun etrafında tasarladım. 0.25 katman derinliğinde RapMan 3.2'de (oldukça yavaş bir yazıcı olan) baskı yaklaşık 7 saat sürdü.
Ekli şema, harika bir özgür yazılım parçası olduğunu düşündüğüm Autodesk 123D Design'da yapılmıştır.
Pi'yi monte etmek için gereken delikler gibi bazı deliklerin tasarımda olmadığını unutmayın, çünkü baskınızın biraz bükülmesi durumunda bunları daha sonra delmek daha iyidir. Tek ihtiyacınız olan sabit el 3 mm'lik bir matkap ucu. Uçtaki derinliği bir miktar maskeleme bandıyla işaretleyin, böylece benim yaptığım gibi yanlışlıkla 7 saatlik baskıdan geçmezsiniz.
9. Adım: Yapılacak Şeyler
- Gerçek Zamanlı Saat, kasa 5. kez basıldıktan sonra eklenen bir eklentiydi, bu yüzden şu anda kasanın yan tarafına sıcak yapıştırılmış durumda ve bu iyi görünmüyor, bu yüzden tasarımı yeniden yapmak ve bunun için bir nokta eklemek istiyorum.
- 7 segmentli ekranın parlaklığı şu anda en hafifine ayarlanmıştır, bu da güçlü ışık koşulları için uygun değildir. Muhafazanın üstüne bir foto rezistör eklemek ve ortam ışığı koşullarına göre 7 segment parlaklığını ayarlamak istiyorum.
- Taban çatlaması ile ilgili bazı küçük tasarım sorunları da giderilecek.
- Herhangi bir fikir açığız.
Umarım bu öğreticiyi beğenmişsinizdir ve sizi harekete geçirecek kadar ilham verici bulmuşsunuzdur. Buradaki fikir, kendi fikirlerinizi eklemek için kullanabileceğiniz bir platform sağlamaktır. İyi eğlenceler!
Önerilen:
IoT Barometresi: 5 Adım (Resimlerle)
IoT Barometresi: Bu IoT barometresi ile sıcaklığı ve atmosfer basıncını ölçün ve kaydedin. Bir IoT barometresi sunmak istiyorum. Adafruit IoT Platformunda sıcaklık ve basınç verilerinin ölçülmesine ve saklanmasına izin verir. Benzer bir proje yayınladım
ESP8266'yı Kullanan Ağ Saati Dijital Saati: 4 Adım (Resimlerle)
ESP8266'yı Kullanarak Ağ Saati Dijital Saati: NTP sunucuları ile iletişim kuran ve ağ veya internet saatini gösteren küçük şirin bir dijital saatin nasıl oluşturulacağını öğreniyoruz. WeMos D1 mini'yi bir WiFi ağına bağlanmak, NTP zamanını almak ve bir OLED modülünde görüntülemek için kullanıyoruz.Yukarıdaki video t
Emeklilik Saati / Sayım/Dn Saati: 4 Adım (Resimli)
Emeklilik Saati / Sayım / Dn Saati: Çekmecede bu 8x8 LED nokta vuruşlu ekranlardan birkaçı vardı ve onlarla ne yapacağımı düşünüyordum. Diğer talimatlardan esinlenerek, gelecekteki bir tarihe/saate geri sayım yapmak için bir geri sayım/yukarı geri sayım ekranı oluşturma fikrini aldım ve eğer hedef zaman p
Nokia 5110 LCD'li Arduino Barometresi: 4 Adım
Nokia 5110 LCD'li Arduino Barometresi: Bu, Arduino ile basit bir barometredir
Nixie Clock Mood Barometresi: 7 Adım (Resimlerle)
Nixie Clock Mood Barometresi: İlerlemenin dikkat çekmeyen bir zayiatı, aneroid ev barometresidir. Bu günlerde, doksan yaşın üzerindeki insanların evlerinde hala örnekler bulabilirsiniz, ancak milyonlarcası çöplükte veya ebay'de. Gerçekte, eski okul barometresi yardımcı olmadı