Mündəricat:

AirPi - Hava keyfiyyəti sensoru: 8 addım
AirPi - Hava keyfiyyəti sensoru: 8 addım

Video: AirPi - Hava keyfiyyəti sensoru: 8 addım

Video: AirPi - Hava keyfiyyəti sensoru: 8 addım
Video: Xiaomi Smart Air Purifier 4 Lite Filter Reset Instruction 2024, Noyabr
Anonim
AirPi - Hava Keyfiyyəti Sensoru
AirPi - Hava Keyfiyyəti Sensoru

Niyə baş ağrısı aldığınızı heç düşündünüzmü? Və bu pis hava keyfiyyətindən qaynaqlanırsa? Bu cihazla bunun olub olmadığını yoxlaya bilərsiniz. Bu cihaz CO2 dəyərini, TVOC dəyərini, temperatur və rütubəti ölçür. Havanın keyfiyyətini LCD displeydə canlı olaraq görə bilərsiniz və təhlükəli olub olmadığını aydın şəkildə görə bilərsiniz. Bu yolla pəncərələrinizi vaxtında aça bilərsiniz.

Cihazı brauzerinizdə işə saldığınız zaman göstərilən IP ünvanını daxil etsəniz veb açılacaq. Keçmiş dəqiqələrin / saatların qrafikləri ilə birlikdə daxili mühit haqqında bir çox məlumat görə bilərsiniz. Tablosunda canlı bir göstəriş və bəzi məlumatlar və məsləhətlər də var.

Bu layihə Howest Kortrijk, NMCT (New Media and Communication Technology) tələbəsi tərəfindən hazırlanmışdır.

Addım 1: Materiallar

Materiallar
Materiallar

Bu layihəni yaratmaq üçün aldığım hər şey budur. Bu, 3D çapın qiymətindən asılı olaraq nisbətən ucuz bir layihədir. Məktəbdə çap edə bilsəniz, bu çox ucuz ola bilər. Əks təqdirdə, onu çap etdiyiniz yerdən və çap etdiyiniz materialdan asılıdır. Fərdi rezistorlar və ya LEDləri tapmaq çətin olduğu üçün toplu olaraq çox aldığımı görəcəksiniz və bu onu daha da ucuzlaşdırır. Vaxtınız varsa, əksər məhsulları aliexpress.com saytında sifariş edə bilərsiniz, çatdırılma bir müddət çəkə bilər, ancaq bu şəkildə xərclərinizi məhdudlaşdıra bilərsiniz.

Çap olmadan bu layihəyə xərclədiyim pul 81, 80 avrodur.

Ehtiyac duyduğunuz materiallar bunlardır:

Dövrə:

  • Moruq Pi 3
  • SD kart 8GB (minimum)
  • CCS811 hava keyfiyyəti sensoru
  • DHT22 temperatur və rütubət sensoru
  • Potansiyometr (kontrastlı LCD)
  • LCD 16x2
  • Dişi -dişi tullanan tellər
  • Yaşıl və qırmızı LED
  • Rezistorlar (2x470ohm və 1 4700ohm)

Dava:

  • 3D çap
  • Vintlər
  • 2 komponentli yapışqan (və ya digər isti yapışqan)
  • ip kəsici alət

Yalnız PCB istifadə edirsiniz:

  • Lehimleme dəmir
  • Flux (asanlaşdırır)
  • Qalay
  • Təcrübə pcb 2x4cm

Addım 2: Bağlantılar

Əlaqələr
Əlaqələr

Telləri yuxarıdakı kimi bağlayın. Sürtünmə sənədində bir elektrik dövrəsi görə bilərsiniz. Çox mürəkkəb bir dövrə deyil, amma mümkün qədər kiçik etmək istəyirsinizsə, mütləq bir sınaq PCB lövhəsi əldə etmək istərdiniz. GND və Vin PCB lövhəsinə qoşulmayacaqsa, kabellər eyni olardı. Sensorlar qadın tullanan tellər və ya lehimləmə ilə kişilər tərəfindən bağlanacaq. Rezistoru DHT22 sensoruna lehimləməyi unutmayın.

Qısa kabellər də istifadə etməyi məsləhət görürəm, 10 sm olmalıdır. Əks təqdirdə qutu daha çox kabellə doldurulacaqdı. Çapın ölçüsü mümkün qədər kiçik olduğundan çox uzun olanlara ehtiyacınız yoxdur.

Addım 3: 3D çap

3D çap
3D çap
3D çap
3D çap

Bir iş haqqında düşünərkən başıma gələn ilk dərs 3D çap idi. Atam serverdən başqa əşyalar çap etdirdiyindən onları özü hazırladı. Birlikdə bu dizaynı yaratdıq və hər cəhətdən öyrəndik. Kifayət qədər yaxşı soyudulmalı, hər şeyi yerində yıxa bilərik, yoxsa yerə itələyə bilərik.

Hətta hər şeyin uyğun olub olmadığını yoxlamaq üçün hər bir komponenti çəkdik. Fayl hər kəs üçün əlçatandır və bəzi rəyləri eşitmək istərdik. Nəticədən çox məmnun olduq.

Addım 4: Kod

Bu layihənin kodunu Github -da tapa bilərsiniz. Digər pinlərdən istifadə etmisinizsə (məsələn, LED-lər üçün başqa bir GPIO-pin, bu dəyişənləri tənzimləməlisiniz. Veb sayt üçün web.py və sensorları oxumaq və yeniləmək üçün web.py olmaqla iki python skripti işləyəcək. Məlumat bazası LCD sinifini lcd.py -dən idxal edəcəyik.

Konfiqurasiya edilmiş moruq pi ilə işə başlaya bilərsiniz. Əvvəlcə bütün paketləri yeniləməli və təkmilləşdirməlisiniz:

sudo apt-get update && sudo apt-get upgrade

Bundan sonra aşağıdakı paketləri quraşdırmalısınız:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

İndi bir virtual mühit yaradın:

me@my -rpi: ~ $ python3 -m pip quraşdır -pip setuptools təkərini təkmilləşdir

me@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv-System-site-packages env me@my-rpi: ~/project1 $ source env/bin/ aktivləşdir (env) me@my-rpi: ~/project1 $ python -m pip quraşdır mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Bu edildiyindən kodu GitHub -dan virtual mühitinizə kopyalaya bilərsiniz. Bu müxtəlif yollarla edilə bilər.

Conf qovluğunda, lazım olduqda tənzimləməli olduğunuz dörd fayl tapa bilərsiniz. Hər bir faylda istifadəçini və ana istiqamətini mütləq dəyişdirməlisiniz. Kodumu dəyişmədiyiniz müddətcə uWSGI ini yaxşı olmalıdır, lazım olduqda istifadəçini və virtual şəbəkəni dəyişdirdiyinizə əmin olun.

CCS811 sensoru qəsdən arduino üçün istifadə edildiyindən, bu, moruq pi sürətində i2c avtobusu ilə əlaqə qura bilməz. Konfiqurasiya faylında sürəti 10000 -ə (9600 istifadə etdim) qədər azaltmalı olacaqsınız.

Adafruit sensoru kitabxanasını da əldə etməlisiniz. Bunu burada izah edə bilərəm, amma bütün bunları çox yaxşı izah edən mükəmməl bir adafruit bələdçisi var.

Moruq bağlandıqda python skriptlərinin avtomatik işləməsini istədiyimiz üçün xidmətlərdən istifadə etməli olacaqsınız. Kodumu saxlasanız yaxşı olarlar. Onların işləməsi üçün etməniz lazım olan tək şey onları işə salmaqdır. Bunu etməzdən əvvəl son bir şey var.

Bir nginx veb serveri istifadə etdiyimiz üçün, varsayılanı deaktiv etməli və öz konfiqurasiyamızla əvəz etməli olacağıq. Bunun üçün bu addımlara əməl edilməlidir:

  • conf/nginx-i *mövcud saytlara *kopyalayın
  • Varsayılan konfiqurasiyaya keçidi silin
  • Yeni konfiqurasiyaya keçid əlavə edin
  • Dəyişiklikləri saxlamaq üçün nginx -i yenidən başladın

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

me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi: ~/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-*

Nginx və mysql hər zaman işləməlidir. Moruq pi ilə birlikdə başlayırlar. Veb skript və sensor skript hələ deyil.

Bunu etmək üçün hələ də bu iki xidməti bu əmrlərlə aktivləşdirməlisiniz:

sudo systemctl project1-flask.service imkan verir

sudo systemctl project1-sensor.service imkan verir

Addım 5: Verilənlər bazası

Verilənlər bazası
Verilənlər bazası

Verilənlər bazam üç cədvəldən ibarətdir. İstifadəçinin digər cədvəllərlə heç bir əlaqəsi yoxdur. Bu yalnız daxil olmaq və veb sayta giriş vermək üçün istifadə olunur. Cihaz açıldıqda, CO2 dəyəri və TVOC dəyəri hər 50 saniyədə bir verilənlər bazasına yazılacaq. Hər 5 dəqiqədə bir temperatur və rütubət. Bu şəkildə keçmişə aydın bir baxış əldə edirik.

SQL faylını burada tapa bilərsiniz, ancaq moruq pi haqqında məlumat bazasını əldə etmək üçün aşağıdakı adımları yerinə yetirməlisiniz:

Əvvəlki addımda paketlər quraşdırıldıqdan sonra mariadb/mysql dərhal işləməlidir. Bunu bu sətirlə yoxlaya bilərsiniz:

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

Verilənlər bazası və istifadəçilər yaratmaq üçün koddakı sql-skriptləri GitHub-dan işlədə bilərsiniz. Bunu düzgün etsəniz, bu əmrdən istifadə edərək masalarınızı görməlisiniz:

me@my-rpi: ~ $ echo 'masaları göstər;' | mysql project1 -t -u project1 -admin -p

İndi hər şey hazırdır, hər şeyin işlədiyinə əmin olmaq üçün bunu hal olmadan sınaya bilərsiniz. Wi -Fi -ya qoşulmadığınız təqdirdə, onu bir Ethernet kabeli ilə bağlamalı və əl ilə işləməlisiniz.

Addım 6: Wi-Fi şəbəkəsinə qoşulun

Nano'da wpa ilə əlaqəli konfiqurasiya faylını açın (heç bir əhəmiyyəti yoxdur, sadəcə mətn redaktoru ilə işləyə biləcəyinizə əmin olun).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Faylın altına gedin və aşağıdakıları əlavə edin (ssid adını və parol adını özünüzlə əvəz edin):

şəbəkə = {

ssid = "ssid-name" psk = "password-name"}

Şifrəli bir parol yaratmaq üçün wpa_passphrase istifadə edə və hər şeyi daha etibarlı etmək üçün wpa_supplicant.conf psk -ə kopyalaya bilərsiniz.

wpa_passphrase "ssid-name" "parol adı"

Bu Wi-Fi şəbəkəsinə avtomatik olaraq qoşulmasını istəyirsinizsə və konfiqurasiya faylında başqaları varsa, konfiqurasiya faylında bu xətti şəbəkəyə əlavə edərək prioriteti daha yüksək səviyyəyə dəyişdiyinizə əmin olun:

prioritet = 2

Arayüzü yenidən qurmağı unutmayın:

wpa_cli -i wlan0 yenidən konfiqurasiya edin

İndi hər şey hazırdır və wifi şəbəkəsinə qoşuldunuz.

Addım 7: Hər şeyi bir yerə yığın

Hər şeyi bir yerə yığmaq
Hər şeyi bir yerə yığmaq
Hər şeyi bir yerə yığmaq
Hər şeyi bir yerə yığmaq
Hər şeyi bir yerə yığmaq
Hər şeyi bir yerə yığmaq

Hər şey telli və lehimli olduğundan, işə gələ bilərik. Kassanı boş tellər olmadan aça biləcəyiniz üçün hazırlanmışdır. Bu, hər şeyin alt hissəyə yapışdırıldığı deməkdir. Ediləcək ilk şey moruq üçün bir az düzəlişdir. Hər küncündə deşiklər var, amma bunlar olması lazım olduğu qədər böyük deyil. Diametri 3 mm -lik bir vidaya uyğun olmalıdır. Delikləri bir az daha genişləndirmək üçün cilalamalı olduq.

Ediləcək ikinci şey, hər çuxura bir vida ipi kəsməkdir. Bu çətin görünə bilər, ancaq düzgün vasitələrlə asanlıqla edilə bilər. Bunu yerli bir hardware mağazasında etməyi məsləhət görürəm, sadəcə bir ip kəsmə aləti istəyin. Atam zərgər olduğu üçün işdə bunu etmək üçün alətlərə sahib idi. Yeni bir stl faylı yükləyə bilərəm ki, sonradan çap olunsun, amma bunun üçün çox dəqiq bir printer lazımdır.

Üçüncü addım pi -ni alt hissəyə vidalaşdırmaqdır. 3 mm diametrli 4 7 mm uzunluğunda vintlərə ehtiyacınız olacaq. Bundan sonra, PCD lövhəsini alt hissənin yuxarı hissəsindəki yerə itələyə bilərsiniz. CCS811 sensoru sol tərəfdəki təmin edilmiş yerə itələyə bilər və DHT11 sağ lövhəyə yapışdırıla bilər. Hər ikisi də kifayət qədər təcrid olunmuş və havalandırılmışdır, lakin sonradan içəridə hələ də qızdırıldığını gördük. Bu barədə daha sonra.

Sonra LED -ləri borusuna bağlamalısınız. Bunu 2 komponentli yapışqanla etdik, ancaq istədiyiniz kimi edə bilərsiniz. Orada qaldıqlarından əmin olun.

İndi LCD ekranı bağlaya bilərsiniz, əvvəlkilərlə eyni diametrli vintlərə ehtiyacınız olacaq, ancaq bir az daha uzun. Mənim boyum 1 sm idi. Dörd vida vidalanarsa, yalnız bir şey qalır. Üst hissəni yapışdırın. Lazım olan hər şey eyni diametrli 4 vintdir və bunlar 2 sm -dir. İndi hər şey yerində olmalıdır və işə başlaya bilərsiniz.

Addım 8: Başlayın

Bu layihənin başlanğıc prosesi çox asandır:

  1. Elektrik kabelini korpusun sol tərəfinə bağlayın. Çox görünmür, ancaq havalandırma deliklərindən görə bilərsiniz. Bir dəfə alsanız, bir daha problem olmayacaq.
  2. Başlamaq üçün bir az vaxt verin.
  3. IP ünvanı on saniyə ərzində ekranda görünəcək. Etməyiniz lazım olan tək şey, eyni şəbəkəyə qoşulduğunuzdan əmin olmaq və brauzerinizin ünvan çubuğuna IP ünvanını daxil etməkdir.
  4. İndi veb saytdasınız. Hələ hesabınız yoxdur, buna görə hesab yaradın.
  5. Qeydiyyatdan keçmisinizsə, daxil olun.
  6. Bitdi! Veb səhifədəki bütün məlumatları görə bilərsiniz və LCD displey cari hava keyfiyyətini göstərir.

İstilik yüksəldiyindən, sensorları korpusun altına yerləşdirdik. Bu şəkildə temperaturun qeydə alınan dəyərlərə böyük təsiri olmayacaq. Optimal ölçülər üçün cihazı ayağa qaldırın və ya sadəcə divara asın.

Tövsiyə: