İçindekiler:

Raspberry Pi Barometresi Hava Saati: 9 Adım (Resimli)
Raspberry Pi Barometresi Hava Saati: 9 Adım (Resimli)

Video: Raspberry Pi Barometresi Hava Saati: 9 Adım (Resimli)

Video: Raspberry Pi Barometresi Hava Saati: 9 Adım (Resimli)
Video: #7 - Raspberry Pi - Android TV - LineageOS Kurulum 2024, Kasım
Anonim
Raspberry Pi Barometresi Hava Saati
Raspberry Pi Barometresi Hava Saati

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

Pi'yi hazırlayın
Pi'yi hazırlayın

Raspberry Pi'nizi kurun - Ayrıntılar Raspberrypi.org'da

  1. Seçtiğiniz Linux Dağıtımını bir SD karta indirin ve kurun - Raspbian kullandım
  2. Pi'yi takın ve önyükleyin
  3. 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.
  4. SSH kullanarak pi'ye bağlandığınız başsız modu kullandım, böylece fişe takmanız gereken tek şey güç.
  5. Pi'de I2C'yi yapılandırın - Adafruit sitesinde bu talimatları takip ettim.

Adım 2: Her Şeyi Bağlayın

Her Şeyi Bağlayın
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'nizi Test Edin
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

  1. 0x70 = 7 Segment Ekran
  2. 0x77 = BMP180 Termometre / Barometre sensörü
  3. 0x68 = DS3231 Gerçek Zamanlı Saat modülü
  4. 0x57 = Alarm verilerini depolamak için yerleşik EEPROM üzerinde DS3231.

Adım 4: MySQL ve PhpMyAdmin'i kurun

MySQL ve PhpMyAdmin'i yükleyin
MySQL ve PhpMyAdmin'i yükleyin

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.

  1. Adafruit_BMP085 modülü
  2. SDL_DS3231 modülü
  3. 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

Sıcaklık Gösterilecek Kod
Sıcaklık Gösterilecek Kod
Sıcaklık Gösterilecek Kod
Sıcaklık Gösterilecek Kod
Sıcaklık Gösterilecek Kod
Sıcaklık Gösterilecek Kod
Sıcaklık Gösterilecek Kod
Sıcaklık Gösterilecek 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

3D Baskılı Muhafaza
3D Baskılı Muhafaza
3D Baskılı Muhafaza
3D Baskılı Muhafaza
3D Baskılı Muhafaza
3D Baskılı Muhafaza
3D Baskılı Muhafaza
3D Baskı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

Yapılacak şeyler
Yapılacak şeyler
  1. 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.
  2. 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.
  3. Taban çatlaması ile ilgili bazı küçük tasarım sorunları da giderilecek.
  4. 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: