İçindekiler:

Fanair: Odanız için Hava Durumu İstasyonu: 6 Adım (Resimlerle)
Fanair: Odanız için Hava Durumu İstasyonu: 6 Adım (Resimlerle)

Video: Fanair: Odanız için Hava Durumu İstasyonu: 6 Adım (Resimlerle)

Video: Fanair: Odanız için Hava Durumu İstasyonu: 6 Adım (Resimlerle)
Video: HEPA + Filtresi ile Çalışan 3'ü 1 Arada Hava Temizleyicisi Bblüv Püre İnceleme 2024, Temmuz
Anonim
Fanair: Odanız İçin Bir Hava Durumu İstasyonu
Fanair: Odanız İçin Bir Hava Durumu İstasyonu

Mevcut hava durumunu öğrenmenin sayısız yolu vardır, ancak o zaman sadece dışarıdaki havayı bilirsiniz. Ya evinizin içindeki, belirli bir odanın içindeki havayı bilmek istiyorsanız? Bu projeyle çözmeye çalıştığım şey bu.

Fanair, aşağıdakileri algılamak için birden fazla sensör kullanır:

  • sıcaklık
  • nem
  • ışık
  • belirli gazlar
  • hava basıncı

Çok kompakttır ve değerleri almak, bir MySQL veritabanına kaydetmek ve daha sonra bunları bir web sitesinde kolayca erişilebilir kılmak için Raspberry Pi 3 B'yi kullanır. Bu koda ve web sitesine, web sitesinin dış hava durumunu kontrol etmek için kullanılabilmesi için konumunuz için gerçek hava durumu verilerini alma özelliği dahildir.

Adım 1: Gerekli Tüm Öğeleri Alın

Gerekli Tüm Öğeleri Alın
Gerekli Tüm Öğeleri Alın

Her şeyden önce, teller / jumper kabloları gibi temel elektroniklere ihtiyacınız olacak. Her şeyi kalıcı bir proje olarak lehimlemeyi planlıyorsanız, o zaman açıkçası bir havyaya, lehime ve kendi rahatınız için her şeyi lehimlemek için bir PCB'ye ihtiyacınız olacak.

Daha spesifik ürünler için bu Malzeme Listesini yaptım.

  • Ahududu Pi 3B
  • MPC3008 - 8 Kanallı 10-Bit ADC
  • AM2301 Termometre Sıcaklık ve Nem Sensörü
  • WR Rademacher WR-tyoe 930-1 PCB
  • Prototipleme için ABS Kılıf (siyah)
  • LDR
  • MQ135 gaz sensörü
  • 2x BC517 Darlington Transistör
  • RGB LED'i
  • Direnç Paketi
  • zil
  • teller
  • BMP280 Barometre
  • Sessiz USB fanı (5V)

Hep birlikte bunun maliyeti yaklaşık 110 € olmalıdır. Toplam fiyatın yaklaşık bir değer olduğunu unutmayın. Ayrıca projemde fotoğrafta bir LCD ekran var ama benim durumumda yeterli yer olmadığı için bağlı değil, bu yüzden talimata dahil değil.

2. Adım: Ahududu Pi'nizi Hazırlayın

Raspian Jessie'nizi Pixel işletim sistemli resmi Raspberry Pi sitesinden edinin ve indirdikten sonra sıkıştırmasını açın. Bir görüntü dosyası alacaksınız. Pi'ye almak için Win32 Disk Imager'ı kullanarak SD-Karta yazmanız gerekir. Yüklendikten sonra, görüntü dosyasını ve SD-Kartınızın bulunduğu sürücüyü seçin. Sonra yaz tuşuna basın ve bitene kadar bekleyin.

Bittiğinde, Dosya Gezgini'nde SD Kartınıza tıklayın ve 'cmdline.txt' adlı dosyayı açın, metin dosyasının rootwait'ten hemen önce sonuna gidin ve elbette etrafına boşluk bırakarak 'ip=254.169.10.2' yazın. Kaydettikten sonra, pencerenin içinde bir yere sağ tıklayıp 'ssh' adında yeni bir dosya oluşturmalısınız. Bu dosyanın bir dosya uzantısına sahip olmadığına dikkat edin. Uzantısı olmadığından emin olmak için dosya gezgininde 'görünüm'e tıklayın ve 'gizli dosyaları' kontrol edin. Yeniden adlandırırsa ve uzantıyı siler, böylece 'ssh' okur.

Bu yapıldıktan sonra nihayet SD Kartınızı Raspberry Pi'ye koyabilirsiniz. Bir ssh istemcisi indirin (MobaXterm'i öneririm). Ve daha önce '254.169.10.2' olarak ayarladığınız IP ile ssh kullanarak bağlanın. Kullanıcı adı 'pi', şifre 'ahududu'. Dilerseniz terminalde 'sudo passwd' komutunu yazıp yönergeleri takip ederek şifreyi değiştirebilirsiniz. Fanair için iyi bir SD Kartı parçası kullanacağımızdan, 'sudo rapi-config' yazıp 'Gelişmiş Seçenekler'i ve ardından 'Dosya Sistemini Genişlet'i seçerek mevcut depolama alanını genişletmelisiniz. İstenirse yeniden başlatın.

1 kablolu, SPI ve I2C arayüzünü kullanacağız. Bunları kullanabilmek için önce onları kurmanız gerekir!

3. Adım: Her Şeyi Bir Araya Bağlayın

Her Şeyi Bir Araya Bağlayın
Her Şeyi Bir Araya Bağlayın
Her Şeyi Bir Araya Bağlayın
Her Şeyi Bir Araya Bağlayın

Devre yapma zamanı! İlk kez muhtemelen bir breadboard üzerinde denemelisiniz, ancak bunun için zamanınız yoksa birlikte lehimlemeyi deneyebilirsiniz.

İhtiyacınız olan devre yukarıdaki gibi görünüyor, kolaylık olması için bir breadboard versiyonu da dahil edilmiştir.

Adım 4: Veritabanınızı Oluşturun

Alacağınız tüm verileri verimli bir şekilde kaydetmek için bir TSQL MySQL veritabanı kullanacağız. MySQL'i kurmadan önce, terminalde birkaç komut yazarak her şeyin güncel olduğundan emin olalım:

  • 'sudo apt-get güncellemesi'
  • 'sudo apt-get yükseltme'
  • 'sudo apt-get dağıtım yükseltme'

'y' yazarak her istemi kabul edin ve girin.

MySQL türünü yüklemek için:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

İstendiğinde, seçtiğiniz bir kök şifre oluşturun.

Aşağıdakileri kullanarak giriş yüklemeyi tamamladıktan sonra:

'mysql -uroot -p'

Ve şifrenizi yazarak.

Github'ımdan Fanair kodunu alın! 'Klonla veya indir'e ve ardından 'ZIP İndir'e tıklayın. Kodu, seçtiğiniz bir klasörde açın. Tam olarak çalışır durumdaki veritabanını oluşturmaya yönelik sorgu, veritabanı klasöründedir. Dosyayı açın, kodu kopyalayın ve MySQL açıkken terminale yapıştırın. Ardından enter'a tıklayın ve veritabanı tamamlandı!

Adım 5: Kod Zamanı

Tüm sensörlerden yararlanmak için bir program çalıştırmanız gerektiği açıktır. Neyse ki kod zaten yapıldı (çoğunlukla) ve zaten veritabanı SQL sorgusunu alırken indirdik.

Dediğim gibi, programın düzgün çalışması için hala değiştirilmesi/eklenmesi gereken birkaç şey var. Her şeyden önce program, enlem ve boylam bazında hava durumu verilerini almak için Darksky API'sini kullanır. Bundan yararlanmak için kaydolmanız gerekir. İlk 1000 arama ücretsizdir ve sonrasında arama başına 0,0001 ABD Doları tutarındadır. Ödemezsen hesabının bloke edildiğini duydum. Adil olmak gerekirse, arama başına 0.0001 $ oldukça ucuz. Fanair her saat başı en son verileri arar, bu da bir yıl içinde tam zamanlı çalıştırılırsa size yalnızca 0,876 dolara mal olacağı anlamına gelir. Ayrıca Fanair tam zamanlı çalışırsa 41 gün ücretsiz alırsınız.

Kaydolduktan sonra API anahtarınızı arayın. Google Haritalar'da konumunuzun enlem ve boylamını arayın veya google'da aramayı deneyin. Fanair'in kök dizininde yeni bir metin dosyası oluşturun (sınıflarla, main.py…). Dosyayı 'key_location.txt' olarak adlandırın. Metin dosyasını açın ve ilk satıra Darksky API anahtarınızı yapıştırın. İkinci satıra boylamınızı yapıştırın ve üçüncü satıra enleminizi yapıştırın (her ikisi de ondalık biçimde). İşiniz bittiğinde dosyayı kaydedin.

Aynı dizinde 'database_dsn.txt' adında başka bir metin dosyası oluşturun. İlk satır 'localhost' demelidir. İkinci satır 'root'tur. Üçüncü satıra daha önce veritabanı için oluşturduğunuz şifrenizi, dördüncü ve son satıra ise 'fanair' yazmalısınız.

main.py dosyasına sağ tıklayın ve düzenle'yi seçin. 'fanair = Fanair(5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' değiştirilmesi gerekiyor. Resmi takip ettiyseniz, ilk 5 değer '5, 26, 17, 27, 22, 4' yerine '20, 21, 26, 19, 13' olarak değiştirilmelidir. '/home/muhsin/Applications/Fanair' de Fanair kök yolunuzla değiştirilmelidir (main.py'nin olduğu yer). 'Ev'in önüne bir eğik çizgi koyduğunuzdan emin olun, ancak 'Fanair'den sonra değil.

Şimdi bunların hepsi harika ama kodun Pi'ye girmesi gerekiyor. Neyse ki bizim için sftp protokolü var. Dosyaları Pi'ye koymak için FileZilla gibi bir sftp istemcisi kullanın veya MobaXterm'i kullanmaya karar verdiyseniz, dosyaları terminalin solundaki sftp arayüzünden kolayca yükleyebilirsiniz.

Tecrübelerime göre Raspberry Pi'de her zaman doğru tarih ve saati alamam. Doğru tarih saatini alacağınızdan emin olmak için şu kılavuzu izlemenizi öneririm: Raspberry Pi senkronizasyon tarihi ve saati.

Ve son olarak birkaç kitaplığın kurulması ve birkaç arabirimin etkinleştirilmesi gerekiyor:

'sudo apt-get install build-essential python-dev'

Adafruit DHT:

'pip3 adafruit_python_dht'yi kurun'

1-Tel:

  1. 'sudo raspi-config'
  2. 'Arayüz Seçenekleri'
  3. '1 Tel'
  4. Olanak vermek
  5. 'sudo nano /boot/config.txt'
  6. Dosyaya şu satırı ekleyin: 'dtoverlay=w1-gpio'
  7. 'sudo yeniden başlatma'

SPI:

  1. 'sudo raspi-config'
  2. 'Arayüz Seçenekleri'
  3. 'SPI'
  4. Olanak vermek
  5. 'sudo yeniden başlatma'
  6. 'sudo nano /boot/config.txt'
  7. 'dtparam=spi=on' ifadesini arayın ve hashtag'i kaldırarak yorumunu kaldırın.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config''
  2. 'Arayüz Seçenekleri'
  3. 'I2C'
  4. Olanak vermek
  5. 'sudo yeniden başlatma'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c araçları'
  8. 'sudo nano /boot/config.txt'
  9. dtparam=i2c_arm=on öğesini arayın ve hashtag'i kaldırarak yorumunu kaldırın.

şişe

pip3 Flask'ı yükle

mysql bağlayıcısı

'pip3 kurulumu -Iv mysql-bağlayıcı==2.1.4'

örümcek

'pip3 py-spidev'i kurun'

Karanlık gökyüzü

'pip3 darkskylib'i kurun'

Adım 6: Deneyin

Buraya kadar gelmeyi başardıysan arkana hafifçe vur. Artık Fanair'in düzgün çalışması için her şey yapılıyor. Bu yüzden test etmek için 'cd ""' yazın. Dosya konumu "/home/pi" dir, örneğin ev dizininize yeni yapıştırdıysanız. Ardından 'python3 main.py' yazın ve bittiğinde veri tabanında veri olması için 15 dakika dinlendirin. Bundan sonra 'ctrl + c' tuşlarına basın, programı durdurun ve 'python3 Flask.py' yazın. Web sitenizin çalışıp çalışmadığını görmek için Pi'nizin arkasından ':5000' ile yaptığınız IP adresine (bunun gibi: 169.254.10.1:5000') gitmeniz gerekir.

Önyüklemeden sonra otomatik olarak çalışmasını sağlamak için:

'sudo nano /etc/rc.local'

AMA dosyanın sonunda 0 çıkışından ÖNCE:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Tebrikler şimdi betiğiniz başlangıçtan itibaren çalışmalı ve TAMAMLANMIŞTIR! Projeyi devam ettirmeyi planlıyorsanız ve henüz yapmadıysanız, her şeyin yerinde kaldığından emin olmak için her şeyi birlikte lehimlemenizi öneririm. Her ne kadar onu hareket ettirmek için oynamazsanız, bir breadboard da elbette çalışır.

Önerilen: