İçindekiler:

AirPi - Hava Kalitesi Sensörü: 8 Adım
AirPi - Hava Kalitesi Sensörü: 8 Adım

Video: AirPi - Hava Kalitesi Sensörü: 8 Adım

Video: AirPi - Hava Kalitesi Sensörü: 8 Adım
Video: Setting up Pollution Monitoring on the MICS 4514 2024, Kasım
Anonim
AirPi - Hava Kalitesi Sensörü
AirPi - Hava Kalitesi Sensörü

Başınızın neden ağrıdığını hiç merak ettiniz mi? Ve bu kötü hava kalitesinden kaynaklanıyorsa? Bu cihazla durumun böyle olup olmadığını kontrol edebilirsiniz. Bu cihaz CO2 değerini, TVOC değerini, sıcaklığı ve nemi ölçer. Hava kalitesini LCD ekranda canlı olarak görebilir ve tehlikeli olup olmadığını net bir şekilde görebilirsiniz. Bu sayede pencerelerinizi zamanında açabilirsiniz.

Cihazı tarayıcınızda başlattığınızda gösterilen IP adreslerini girerseniz, web sitesi açılacaktır. Geçmiş dakikaların/saatlerin grafikleri ile birlikte iç ortam hakkında birçok bilgiyi görebilirsiniz. Ayrıca gösterge panelinde canlı bir gösterge ve bazı bilgiler ve ipuçları var.

Bu proje Howest Kortrijk, NMCT'de (Yeni Medya ve İletişim Teknolojisi) bir öğrenci tarafından yapılmıştır.

Adım 1: Malzemeler

Malzemeler
Malzemeler

Bu projeyi oluşturmak için aldığım her şey bu. Bu, 3D baskının maliyetine bağlı olarak nispeten ucuz bir projedir. Okulda yazdırabiliyorsan, bu çok ucuz olabilir. Aksi takdirde, nereye yazdırdığınıza ve yazdırdığınız malzemeye bağlıdır. Tek tek direnç veya led bulmak zor olduğu için toplu olarak çok şey aldığımı fark edeceksiniz ve bu da onu daha da ucuz hale getiriyor. Vaktiniz varsa çoğu ürünü aliexpress.com'dan sipariş edebilirsiniz, teslimat biraz zaman alabilir ancak bu şekilde harcamalarınızı sınırlayabilirsiniz.

Baskı olmadan, bu projeye harcadığım para 81,80 €.

Bunlar ihtiyacınız olan malzemeler:

Devre:

  • Ahududu Pi 3
  • SD kart 8GB (minimum)
  • CCS811 hava kalitesi sensörü
  • DHT22 sıcaklık ve nem sensörü
  • Potansiyometre (kontrast LCD)
  • LCD 16x2
  • Dişiden dişiye atlama telleri
  • Yeşil ve kırmızı LED
  • Dirençler (2x470ohm ve 1 4700ohm)

Durum:

  • 3D baskı
  • Vidalar
  • 2 bileşenli yapıştırıcı (veya başka bir sıcak yapıştırıcı)
  • iplik kesme aleti

Sadece biriniz PCB kullanıyorsunuz:

  • Havya
  • Akı (kolaylaştırır)
  • Teneke
  • Deney pcb 2x4cm

2. Adım: Bağlantılar

Bağlantılar
Bağlantılar

Kabloları yukarıdaki gibi bağlayın. Fritzing dosyasında bir elektrik devresi görebilirsiniz. Çok karmaşık bir devre değil, ancak mümkün olduğu kadar küçük yapmak istiyorsanız, kesinlikle bir deneme PCB Kartı almak istersiniz. GND ve Vin'in PCB kartına bağlanması dışında kablolama aynı olacaktır. Sensörler, dişi jumper kabloları veya lehimli erkekler ile bağlanacaktır. DHT22 sensöründeki direnci lehimlemeyi unutmayın.

Ayrıca kısa kablo kullanmanızı tavsiye ederim, 10cm yapmalı. Aksi takdirde kutu daha da fazla kablo ile dolacak. Baskının boyutu mümkün olduğunca küçük yapıldığından çok uzun olanlara ihtiyacınız yok.

3. Adım: 3D baskı

3D baskı
3D baskı
3D baskı
3D baskı

Bir davayı düşünürken aklıma gelen ilk düşünce bir 3D baskıydı. Babam başka birçok ürünü bastığından ve onları kendisi tasarladığından beri. Birlikte bu tasarımı oluşturduk ve her yönüyle düşündük. Yeterince soğutulmuş olmalı, her şey yerine vidalanabilir ve değilse yerine itilebilir.

Hatta her şeyin uyup uymadığını kontrol etmek için her bileşeni çizdik. Dosya herkes tarafından kullanılabilir ve biraz geri bildirim almayı çok isteriz. Sonuçtan çok memnun kaldık.

4. Adım: Kod

Bu projenin kodu Github'da bulunabilir. Başka pinler kullandıysanız (örneğin LED'ler için başka bir GPIO pini, bu değişkenleri ayarlamanız gerekecek. Web sitesi için web.py ve sensörleri okumak ve güncellemek için sensor.py olmak üzere iki python betiği çalışacak. veritabanı. LCD sınıfını lcd.py'den içe aktaracağız.

Yapılandırılmış bir ahududu pi ile başlayabilirsiniz. Öncelikle tüm paketleri güncellemeniz ve yükseltmeniz gerekecek:

sudo apt-get güncelleme && sudo apt-get yükseltme

Bundan sonra aşağıdaki paketleri kurmanız gerekecek:

sudo apt kurulum -y python3-venv python3-pip python3-mysqldb mariadb-sunucu uwsgi nginx uwsgi-plugin-python3

Şimdi sanal bir ortam oluşturun:

me@my-rpi:~ $ python3 -m pip kurulumu --upgrade pip kurulum araçları tekerlek virtualenv

me@my-rpi:~ $ mkdir proje1 && cd projesi1 ben@my-rpi:~/project1 $ python3 -m venv --system-site-packages env me@my-rpi:~/project1 $ kaynak env/bin/ (env)me@my-rpi'yi etkinleştir:~/project1 $ python -m pip mysql-connector-python kurulumu argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Bu yapıldığından, GitHub'ımdaki kodu sanal ortamınıza kopyalayabilirsiniz. Bu birçok yolla yapılabilir.

Conf dizininde, gerekirse ayarlamanız gereken dört dosya bulabilirsiniz. Her dosyada kesinlikle kullanıcıyı ve ana dizini değiştirmeniz gerekecektir. Kodumu değiştirmediğiniz sürece uWSGI ini iyi durumda olmalıdır, gerekirse kullanıcıyı ve virtualenv'i değiştirdiğinizden emin olun.

CCS811 sensörü kasıtlı olarak arduino için kullanıldığından, bu, ahududu pi hızında i2c veriyolu üzerinden iletişim kuramaz. Yapılandırma dosyasında hızı 10000 baud hızına (9600 kullandım) düşürmeniz gerekecek.

Ayrıca adafruit sensörünün kitaplığını da edinmeniz gerekecek. Bunu burada açıklayabilirim ama tüm bunları çok iyi açıklayan mükemmel bir adafruit rehberi var.

Ahududu bağlandığında python betiklerinin otomatik olarak çalışmasını istediğimiz için hizmetleri kullanmanız gerekecek. Kodumu sakladıysan sorun olmaz. Çalıştırmaları için yapmanız gereken tek şey onları etkinleştirmek. Bunu yapmadan önce son bir şey daha var.

Bir nginx web sunucusu kullandığımızdan, varsayılanı devre dışı bırakmamız ve kendi yapılandırmamızla değiştirmemiz gerekecek. Bunu yapmak için şu adımlar izlenmelidir:

  • conf/nginx'i *siteler-kullanılabilir*'e kopyalayın
  • Varsayılan yapılandırmaya olan bağlantıyı kaldırın
  • Yeni yapılandırmaya bir bağlantı ekleyin
  • Değişiklikleri kaydetmek için nginx'i yeniden başlatın

me@my-rpi:~/project1 $ sudo cp conf/project1-*.service /etc/systemd/system/

me@my-rpi:~/project1 $ sudo systemctl arka plan programı-yeniden yükle me@my-rpi:~/project1 $ sudo systemctl projeyi başlat1-* me@my-rpi:~/project1 $ sudo sistemctl durum projesi1-*

Nginx ve mysql her zaman çalışıyor olmalıdır. Ahududu pi ile birlikte başlarlar. Web komut dosyası ve sensör komut dosyası henüz değil.

Bunu yapmak için yine de bu iki hizmeti şu komutlarla etkinleştirmeniz gerekir:

sudo systemctl project1-flask.service'i etkinleştir

sudo systemctl proje1-sensor.service'i etkinleştir

Adım 5: Veritabanı

Veri tabanı
Veri tabanı

Veritabanım üç tablodan oluşuyor. Kullanıcının diğer tablolarla hiçbir ilişkisi yoktur. Bu sadece giriş yapmak ve web sitesine erişim vermek için kullanılır. Cihaz açıldığında CO2 değeri ve TVOC değeri her 50 saniyede bir veritabanına yazılacaktır. Sıcaklık ve nem her 5 dakikada bir. Bu şekilde geçmişe net bir genel bakış elde ederiz.

SQL dosyası burada bulunabilir, ancak ahududu pi'deki veritabanını almak için şu adımları izlemelisiniz:

Bir önceki adımda paketlerin kurulumundan sonra mariadb/mysql hemen çalışıyor olmalıdır. Bunu şu satırla kontrol edebilirsiniz:

me@my-rpi:~ $ sudo systemctl durumu mysql

Veritabanını ve kullanıcıları oluşturmak için GitHub'daki koddaki sql komut dosyalarını çalıştırmanız yeterlidir. Bunu doğru yaptıysanız, bu komutu kullanarak tablolarınızı görmelisiniz:

me@my-rpi:~ $ echo 'tabloları göster;' | mysql proje1 -t -u proje1-admin -p

Şimdi hepimiz hazırız, her şeyin çalıştığından emin olmak için bunu kılıfsız test edebilirsiniz. Wifi'ye bağlı değilseniz, onu bir ethernet kablosuyla bağlamanız ve manuel olarak çalıştırmanız gerekir.

6. Adım: Wi-Fi'ye bağlanın

wpa-supplicant yapılandırma dosyasını nano'da açın (gerçekten önemli değil, sadece metin düzenleyiciyle çalışabildiğinizden emin olun).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Dosyanın en altına gidin ve aşağıdakini ekleyin (ssid-name ve password-name'yi sizinkiyle değiştirin):

ağ={

ssid="ssid-adı" psk="parola-adı" }

Şifreli bir parola oluşturmak için wpa_passphrase'i kullanabilir ve işleri daha güvenli hale getirmek için basitçe wpa_supplicant.conf psk'ye kopyalayabilirsiniz.

wpa_passphrase "ssid-adı" "parola-adı"

Bu Wi-Fi ağına otomatik olarak bağlanmasını istiyorsanız ve yapılandırma dosyasında başkaları varsa, yapılandırma dosyasında ağa şu satırı ekleyerek önceliği daha yüksek bir düzeye değiştirdiğinizden emin olun:

öncelik=2

Arayüzü şu şekilde yeniden yapılandırmayı unutmayın:

wpa_cli -i wlan0 yeniden yapılandırma

Artık hazırsınız ve bir wifi ağına bağlısınız.

7. Adım: Her Şeyi Bir Araya Getirmek

Her Şeyi Bir Araya Getirmek
Her Şeyi Bir Araya Getirmek
Her Şeyi Bir Araya Getirmek
Her Şeyi Bir Araya Getirmek
Her Şeyi Bir Araya Getirmek
Her Şeyi Bir Araya Getirmek

Her şey kablolu ve lehimli olduğundan, kasaya geçebiliriz. Bu, kasayı herhangi bir gevşek kablo olmadan açabilmeniz için tasarlandı. Bu, her şeyin alt kısma bağlı olduğu anlamına gelir. Yapılacak ilk şey, ahududu için küçük bir ayar yapmaktır. Her köşesinde delikler var ama bunlar olması gerektiği kadar büyük değil. Çap, içine 3 mm'lik bir vidayı sığdırmak için yeterli olmalıdır. Delikleri biraz daha geniş olsun diye cilalamamız gerekti.

Yapılacak ikinci şey, her deliğe bir vida dişi kesmektir. Bu kulağa zor gelebilir ancak doğru araçlarla kolayca yapılabilir. Bunu yerel bir hırdavatçıda yapmanızı tavsiye ederim, sadece bir iplik kesme aleti isteyin. Babam kuyumcu olduğu için iş yerinde bunu yapacak araçlara sahipti. Bunun daha sonra yazdırılması için yeni bir stl dosyası yükleyebilirim, ancak bunun için çok hassas bir yazıcı gerekir.

Üçüncü adım, pi'yi alt kısma vidalamaktır. 3 mm çapında 4 adet 7 mm uzunluğunda vidaya ihtiyacınız olacak. Bundan sonra PCD kartını alt parçanın üst kısmında sağlanan yere itebilirsiniz. CCS811 sensörü sol tarafta öngörülen yere itilebilir ve DHT11 sağ plakaya takılabilir. Her ikisi de yeterince izole edilmiş ve havalandırılmış, ancak daha sonra içerinin hala sıcak olduğunu fark ettik. Bunun hakkında daha sonra.

Ardından LED'leri tüplerine takmanız gerekir. Bunu 2 bileşenli yapıştırıcı ile yaptık ama siz nasıl isterseniz öyle yapabilirsiniz. Oraya yapıştıklarından emin olun.

Artık LCD ekranı takabilirsiniz, öncekilerle aynı çapta ancak biraz daha uzun vidalara ihtiyacınız olacak. Benimkiler 1 cm idi. Dört vida vidalanırsa, yapılacak tek bir şey kalır. Üst kısmı takın. Tek ihtiyacınız olan aynı çapta dört vida ve bunlar 2 cm. Şimdi her şey yerinde olmalı ve başlatabilirsiniz.

8. Adım: Başlatın

Bu projenin başlangıç süreci çok kolaydır:

  1. Güç kablosunu kasanın sol tarafına takın. Çok görünür değil ama havalandırma deliklerinden görebilirsiniz. Bir kez aldıysanız, bu bir daha sorun olmayacak.
  2. Başlaması için biraz zaman verin.
  3. IP adresi on saniye boyunca ekranda görünecektir. Yapmanız gereken tek şey, aynı ağa bağlı olduğunuzdan emin olmak ve IP adresini tarayıcınızın adres çubuğuna girmek.
  4. Artık web sitesindesiniz. Henüz bir hesabınız yok, bu yüzden bir hesap oluşturun.
  5. Kayıtlıysanız, giriş yapın.
  6. Tamamlandı! Web sayfasındaki tüm verileri görebilirsiniz ve LCD ekran mevcut hava kalitesini gösterir.

Sıcaklık yükseldiği için sensörleri kasanın altına yerleştirdik. Bu şekilde sıcaklığın kayıtlı değerler üzerinde büyük bir etkisi olmaz. Optimum ölçümler için cihazı ayağa kaldırın veya duvara asabilirsiniz.

Önerilen: