İçindekiler:

Güneş Hava İstasyonu: 5 Adım
Güneş Hava İstasyonu: 5 Adım

Video: Güneş Hava İstasyonu: 5 Adım

Video: Güneş Hava İstasyonu: 5 Adım
Video: Dünyanın Yok Oluşunu Aydan Seyretmek 2024, Kasım
Anonim
Güneş Hava İstasyonu
Güneş Hava İstasyonu

Hiç arka bahçenizden gerçek zamanlı hava durumu bilgisi istediniz mi? Artık mağazadan bir hava durumu istasyonu satın alabilirsiniz, ancak bunlar genellikle pil gerektirir veya bir prize bağlanması gerekir. Bu hava istasyonunun şebekeye bağlanmasına gerek yoktur çünkü daha fazla verimlilik için güneşe doğru dönen güneş panellerine sahiptir. RF modülleri ile dışarıdaki istasyondan evinizin içindeki bir Raspberry Pi'ye veri aktarabilir. Raspberry Pi, verileri görüntüleyebileceğiniz bir web sitesine ev sahipliği yapar.

Adım 1: Materyalleri Toplayın

Malzemeler

  • Raspberry Pi 3 model B+ + adaptör + Micro SD Kart 16GB
  • Arduino Uno'su
  • Arduino Pro Mini + FTDI temel koparma
  • 4 6V 1W güneş paneli
  • 4 18650 pil
  • güçlendirici 5v
  • 4 adet TP 4056 akü şarj cihazı
  • Adafruit DHT22 Sıcaklık ve Nem Sensörü
  • BMP180 Barometrik Basınç sensörü
  • 4 LDR
  • RF 433 alıcı ve verici
  • 2 Nema 17 Step motor
  • 2 DRV8825 Step motor sürücüsü
  • lcd 128*64
  • çok sayıda kablo

Araçlar ve malzemeler

  • Zamk
  • Ahşap plakalar
  • Testere
  • Vidalar + tornavida
  • ördek bandı
  • 2 alüminyum şerit

Adım 2: Mekanik Tasarım

Mekanik tasarım
Mekanik tasarım
Mekanik tasarım
Mekanik tasarım
Mekanik tasarım
Mekanik tasarım
Mekanik tasarım
Mekanik tasarım

Meteoroloji istasyonunun gövdesi kontrplaktan yapılmıştır. Ahşap kullanmak zorunda değilsiniz, dilediğiniz malzemeden yapabilirsiniz. Motor takozları için, bir tahta blokta bir bütün deldim ve ardından motorun miline düz bir vida taktım, bu beklediğimden daha iyi çalışıyor. Bu şekilde, bir motor montaj parçasını 3 boyutlu olarak yazdırmanız gerekmez ve yapılması kolaydır. Daha sonra motorları çok sıkı tutmak için 2 adet alüminyum şerit büktüm. Daha sonra bir tahta kestim ve güneş panelleri için delikler açtım. Daha sonra üzerine güneş panellerini yapıştırın ve güneş panellerinin üzerine telleri lehimleyin. O zaman ayrıca siyah malzemeden bir haç yapmanız gerekecek. Siyah bir şeyiniz yoksa, siyah bant kullanabilirsiniz. Bu çarpı, her köşede bir LDR tutacaktır, böylece Arduino, LDR'den gelen ölçümleri karşılaştırabilir ve hangi yöne dönmesi gerektiğini hesaplayabilir. Her köşeye küçük bütünler delin, böylece oraya bir LDR sığdırabilirsiniz. Şimdi yapılması gereken tek şey bir taban plakası ve elektronik aksamları yerleştirecek bir şey yapmak. Taban plakası için, tüm kabloları oluklardan geçirmek için içine bir bütün delmeniz gerekecek. Ölçüler için size herhangi bir şey vermeyeceğim çünkü bunu nasıl tasarlamak gerçekten size kalmış. Başka motorlarınız veya başka güneş panelleriniz varsa, ölçümleri kendiniz bulmanız gerekecektir.

Adım 3: Elektrik Tasarımı

Güç

Tüm sistem pillerle çalışır (Raspberry Pi hariç). 3 pili seri bağladım. 1 Pil ortalama 3,7V'dir, bu nedenle seri 3'ü size yaklaşık 11V verir. Bu 3s pil takımı, motorlar ve RF vericisi için kullanılır. Kalan diğer pil ise Arduino Pro Mini'ye ve sensörlere güç sağlamak için kullanılıyor. Pilleri şarj etmek için 4 adet TP4056 modülü kullandım. Her aküde 1 adet TP4056 modülü bulunur, her modül bir güneş paneline bağlıdır. Modülde B(in) ve B(out) olduğu için ayrı ayrı şarj edip seri olarak deşarj edebiliyorum. Tüm modüllerde B(in) ve B(out) olmadığından doğru TP4056 modüllerini satın aldığınızdan emin olun.

kontrol

Arduino Pro Mini, sensörleri ve motorları kontrol eder. Arduino'nun ham ve topraklama pimi, 5V güçlendiriciye bağlanır. 5V güçlendirici, tekli aküye bağlanır. Arduino Pro Mini çok düşük güç tüketimine sahiptir.

Bileşenler

DHT22: Bu sensörü VCC ve Ground'a bağladım, ardından veri pinini dijital pin 10'a bağladım.

BMP180: Bu sensörü VCC ve Ground'a bağladım, Arduino'da SCL'yi SCL'ye ve Arduino'da SDA'yı SDA'ya bağladım. Arduino Pro Mini üzerindeki SCL ve SDA pinleri kartın ortasında olduğu için dikkatli olun yani pinleri tahtaya lehimleyip bir breadboard'a koyarsanız çalışmaz çünkü diğer pinlerden enterferansa sahip olursunuz. Bu 2 pimi kartın üstüne lehimledim ve doğrudan ona bir kablo bağladım.

RF Verici: Daha iyi sinyal ve daha uzun menzil için bunu 3s pil takımına bağladım. Arduino'dan 5V'a bağlamayı denedim ama sonra RF sinyali süper zayıf. Daha sonra veri pinini dijital pin 12'ye bağladım.

LDR: 4 LDR'yi A0, A1, A2, A3 analog pinlerine bağladım. LDR'leri 1K dirençle bir araya getirdim.

Motorlar: Motorlar 2 DRV8825 kontrol modülü tarafından tahrik edilmektedir. Bunlar çok kullanışlı çünkü sadece 2 giriş hattı (yön ve adım) alıyorlar ve motorlara faz başına 2A'ya kadar üretebiliyorlar. Onları 2, 3 ve 8, 9 numaralı dijital pinlere bağladım.

LCD: IP adresini göstermek için LCD'yi Raspberry Pi'ye bağladım. Arka ışığı düzenlemek için bir düzeltici kullandım.

RF Alıcı: Alıcıyı Arduino Uno'ya 5V ve Ground üzerinden bağladım. Alıcı 5V'tan fazla almamalıdır. Daha sonra data pinini digital pin 11'e bağladım. Raspberry Pi üzerinde çalışan bu RF modülleri için bir kütüphane bulabilirseniz Arduino Uno kullanmanıza gerek yok.

Raspberry Pi: Raspberry Pi, bir USB kablosu aracılığıyla Arduino Uno'ya bağlanır. Arduino, RF sinyallerini seri bağlantı yoluyla Raspberry Pi'ye iletir.

Adım 4: Kodlamaya Başlayalım

Arduino Pro Mini'yi kodlamak için FTDI programlayıcısına ihtiyacınız olacak. Pro Mini'de USB bağlantı noktası bulunmadığından (güçten tasarruf etmek için), bu devre kartına ihtiyacınız olacak. Kodu Arduino IDE'de programladım, sanırım bunu yapmanın en kolay yolu bu. Kodu dosyadan yükleyin ve gitmesi iyi olur.

Arduino Uno'yu kodlamak için bilgisayarıma bir USB kablosuyla bağladım. Kodu yükledikten sonra Raspberry Pi'ye bağladım. Arduino IDE'yi kurduğum için Raspberry Pi'deki kodu da değiştirebildim ve oradan programlayabildim. Kod çok basit, alıcıdan girdi alıyor ve seri port üzerinden Raspberry Pi'ye gönderiyor.

Raspberry Pi'yi kodlamak için Raspbian kurdum. Daha sonra bir SSH bağlantısı üzerinden bağlanmak için Putty'yi kullandım. Daha sonra Raspberry'yi VNC aracılığıyla bağlanabilmem ve böylece bir GUI'ye sahip olabilmem için yapılandırırım. Bir Apache web sunucusu kurdum ve bu proje için arka ucu ve ön ucu kodlamaya başladım. Kodu github'da bulabilirsiniz:

Adım 5: Veritabanı

Verileri saklamak için bir SQL veritabanı kullanıyorum. Veritabanını MySQL Workbench'te yaptım. Veritabanı, sensör okumalarını ve sensör verilerini tutar. Biri sensör değerlerini zaman damgalarıyla saklamak için, diğeri sensörler hakkında bilgi depolamak için ve sonuncusu kullanıcılar hakkında bilgi depolamak için 3 tablom var. Kullanıcılar tablosunu kullanmıyorum çünkü projenin o kısmını MVP'mde olmadığı için kodlamadım. SQL dosyasını indirin ve çalıştırın ve veritabanının kullanıma hazır olması gerekir.

Önerilen: