Isi kandungan:

AirPi - Sensor Kualiti Udara: 8 Langkah
AirPi - Sensor Kualiti Udara: 8 Langkah

Video: AirPi - Sensor Kualiti Udara: 8 Langkah

Video: AirPi - Sensor Kualiti Udara: 8 Langkah
Video: Измерение количества частиц, содержания летучих органических соединений и качества воздуха CO2 2024, November
Anonim
AirPi - Sensor Kualiti Udara
AirPi - Sensor Kualiti Udara

Pernahkah anda terfikir mengapa anda mengalami sakit kepala? Dan jika ini disebabkan oleh kualiti udara yang buruk? Dengan peranti ini anda dapat memeriksa sama ada ini berlaku. Peranti ini mengukur nilai CO2, nilai TVOC, suhu dan kelembapan. Anda dapat melihat kualiti udara secara langsung di paparan LCD dan melihat petunjuk yang jelas jika ia berbahaya. Dengan cara ini anda dapat membuka tingkap anda pada waktunya.

Sekiranya anda memasukkan alamat IP - ditunjukkan semasa anda menghidupkan peranti di penyemak imbas anda - laman web akan dibuka. Anda dapat melihat banyak maklumat mengenai persekitaran dalaman, bersama dengan grafik minit / jam terakhir. Terdapat juga petunjuk langsung dan beberapa maklumat dan petua di papan pemuka.

Projek ini dibuat oleh seorang pelajar di Howest Kortrijk, NMCT (Teknologi Media dan Komunikasi Baru).

Langkah 1: Bahan

Bahan
Bahan

Ini semua yang saya beli untuk membuat projek ini. Ini adalah projek yang agak murah, bergantung pada kos cetakan 3D. Sekiranya anda dapat mencetaknya di sekolah, ini mungkin sangat murah. Jika tidak, ia bergantung pada tempat anda mencetaknya dan bahan yang anda cetak. Anda akan melihat bahawa saya banyak membeli secara besar-besaran, hanya kerana sukar untuk mencari perintang atau led individu dan ini menjadikannya lebih murah. Sekiranya anda mempunyai masa, anda boleh memesan kebanyakan item di aliexpress.com, penghantarannya mungkin memakan masa, tetapi dengan cara ini anda dapat membatasi perbelanjaan anda.

Tanpa cetakan, wang yang saya belanjakan untuk projek ini adalah € 81, 80.

Ini adalah bahan yang anda perlukan:

Litar:

  • Raspberry Pi 3
  • Kad SD 8GB (minimum)
  • Sensor kualiti udara CCS811
  • Sensor suhu dan kelembapan DHT22
  • Potensiometer (LCD kontras)
  • LCD 16x2
  • Wayar pelompat wanita ke wanita
  • LED hijau dan merah
  • Perintang (2x470ohm dan 1 4700ohm)

Kes:

  • Cetakan 3D
  • Skru
  • Gam 2 komponen (atau gam panas lain)
  • alat pemotong benang

Hanya anda yang menggunakan PCB:

  • Besi pematerian
  • Flux (memudahkan)
  • Timah
  • Eksperimen pcb 2x4cm

Langkah 2: Sambungan

Sambungan
Sambungan

Sambungkan wayar seperti di atas. Anda dapat melihat litar elektrik dalam fail fritzing. Ini bukan litar yang sangat rumit, tetapi jika anda ingin menjadikannya sekecil mungkin, anda pasti ingin mendapatkan PCB Board eksperimen. Pendawaian akan sama, kecuali GND dan Vin akan disambungkan ke papan PCB. Sensor akan dihubungkan oleh wayar jumper wanita atau lelaki dengan pematerian. Jangan lupa solder perintang pada sensor DHT22.

Saya juga mengesyorkan untuk menggunakan kabel pendek, 10cm sepatutnya. Jika tidak, kotak itu akan diisi dengan kabel lebih banyak lagi. Anda tidak memerlukan yang panjang kerana ukuran cetakan dibuat sekecil mungkin.

Langkah 3: Cetakan 3D

Cetakan 3D
Cetakan 3D
Cetakan 3D
Cetakan 3D

Percubaan pertama yang muncul di kepala saya ketika memikirkan kes adalah cetakan 3D. Oleh kerana ayah saya telah mencetak item-item lain dari server dan dia merancangnya sendiri. Bersama-sama kami membuat reka bentuk ini, dan memikirkan setiap aspek. Ia harus disejukkan dengan cukup, semuanya boleh dipasang ke tempatnya dan jika tidak, ia boleh ditarik ke tempatnya.

Kami bahkan membuat setiap komponen untuk memeriksa apakah semuanya sesuai. Fail tersedia untuk semua orang dan kami ingin mendengar beberapa maklum balas. Kami sangat gembira dengan hasilnya.

Langkah 4: Kod

Kod untuk projek ini boleh didapati di Github. Sekiranya anda telah menggunakan pin lain (misalnya pin GPIO lain untuk LED, anda perlu menyesuaikan pemboleh ubah ini. Akan ada dua skrip python yang dijalankan, web.py untuk laman web dan sensor.py untuk membaca sensor dan mengemas kini pangkalan data. Kami akan mengimport LCD kelas dari lcd.py.

Dengan raspberry pi yang dikonfigurasi, anda boleh memulakannya. Pertama sekali, anda perlu mengemas kini dan menaik taraf semua pakej:

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

Selepas itu anda perlu memasang pakej berikut:

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

Sekarang buat persekitaran maya:

me @ my-rpi: ~ $ python3 -m memasang pip - naik taraf pemasangan peralatan roda roda virtualenv

me @ my-rpi: ~ $ mkdir project1 && cd project1 me @ my-rpi: ~ / project1 $ python3 -m venv - system-site-pakej env me @ my-rpi: ~ / projek1 $ sumber env / bin / aktifkan (env) saya @ my-rpi: ~ / projek1 $ python -m pip pasang mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Oleh kerana ini selesai, anda boleh mengklon kod dari GitHub saya ke persekitaran maya anda. Ini boleh dilakukan dengan pelbagai cara.

Dalam konfigurasi direktori anda boleh menemui empat fail yang perlu anda sesuaikan jika perlu. Anda pasti perlu menukar pengguna dan homedirectory dalam setiap fail. UWSGI ini harus baik selagi anda tidak mengubah kod saya, pastikan untuk menukar pengguna dan virtualenv jika perlu.

Oleh kerana sensor CCS811 sengaja digunakan untuk arduino, ini tidak dapat berkomunikasi melalui bas i2c pada kelajuan pi raspberry. Anda mesti mengurangkan kelajuan ke baudrate 10000 (saya menggunakan 9600) dalam file config.

Anda juga harus mendapatkan perpustakaan sensor adafruit. Saya boleh menerangkannya di sini tetapi ada panduan adafruit yang sempurna yang menerangkan semua ini dengan sangat baik.

Kerana kami mahu skrip python berjalan secara automatik ketika raspberry disambungkan, anda harus menggunakan perkhidmatan tersebut. Mereka pasti baik jika anda menyimpan kod saya. Yang perlu anda lakukan agar mereka dapat berjalan adalah mengaktifkannya. Sebelum anda melakukannya, ada satu perkara terakhir.

Oleh kerana kami menggunakan pelayan web nginx, kami harus menyahaktifkan lalai dan menggantinya dengan konfigurasi kami sendiri. Untuk melakukan ini langkah-langkah ini harus diikuti:

  • salin conf / nginx ke * laman web tersedia *
  • Keluarkan pautan ke konfigurasi lalai
  • Tambahkan pautan ke konfigurasi baru
  • Mulakan semula nginx untuk menyimpan perubahan

saya @ 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 projek1- *

Nginx dan mysql harus berjalan sepanjang masa. Mereka bermula bersama dengan raspberry pi. Skrip web dan skrip sensor belum lagi.

Untuk melakukan ini, anda masih perlu mengaktifkan dua perkhidmatan ini dengan arahan berikut:

sudo systemctl mengaktifkan perkhidmatan1-flask.service

sudo systemctl mengaktifkan projek1-sensor.service

Langkah 5: Pangkalan Data

Pangkalan data
Pangkalan data

Pangkalan data saya terdiri daripada tiga jadual. Pengguna tidak mempunyai hubungan dengan jadual lain. Ini hanya digunakan untuk log masuk dan memberikan akses ke laman web. Apabila peranti dihidupkan, nilai CO2 dan nilai TVOC akan ditulis ke pangkalan data setiap 50 saat. Suhu dan kelembapan setiap 5 minit. Dengan cara ini kita mendapat gambaran keseluruhan masa lalu yang jelas.

Fail SQL boleh didapati di sini, tetapi untuk mendapatkan pangkalan data pada raspberry pi, anda harus mengikuti langkah-langkah berikut:

Selepas pemasangan pakej pada langkah sebelumnya, mariadb / mysql akan segera dijalankan. Anda boleh menyemaknya dengan baris ini:

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

Untuk membuat pangkalan data dan pengguna, anda hanya boleh menjalankan skrip sql dalam kod dari GitHub. Sekiranya anda melakukan ini dengan betul, anda akan melihat jadual anda menggunakan arahan ini:

me @ my-rpi: ~ $ echo 'menunjukkan jadual;' | projek mysql1 -t -u projek1-admin -p

Sekarang kita sudah siap, anda boleh mengujinya tanpa kes untuk memastikan semuanya berfungsi. Kecuali anda disambungkan ke wifi, anda perlu menyambungkannya dengan kabel ethernet dan menjalankannya secara manual.

Langkah 6: Sambungkan ke Wi-Fi

Buka fail konfigurasi wpa-supplicant di nano (tidak terlalu penting, pastikan anda dapat bekerja dengan editor teks).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Pergi ke bahagian bawah fail dan tambahkan yang berikut (ganti nama ssid dan nama kata laluan dengan nama anda):

rangkaian = {

ssid = "ssid-name" psk = "kata laluan-nama"}

Untuk membuat kata laluan yang dienkripsi, anda boleh menggunakan wpa_passphrase dan hanya menyalinnya ke wpa_supplicant.conf psk untuk menjadikan sesuatu lebih selamat.

wpa_passphrase "ssid-name" "kata laluan-nama"

Sekiranya anda ingin menyambung ke rangkaian Wi-Fi ini secara automatik, dan ada yang lain dalam fail konfigurasi, pastikan anda mengubah keutamaan ke tingkat yang lebih tinggi dengan menambahkan baris ini ke rangkaian dalam fail konfigurasi:

keutamaan = 2

Jangan lupa untuk mengkonfigurasi semula antara muka dengan:

wpa_cli -i wlan0 susun semula

Kini anda sudah siap dan disambungkan ke rangkaian wifi.

Langkah 7: Menggabungkan Semuanya

Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya

Oleh kerana semuanya disambung dan disolder, kita dapat menyelesaikannya. Ini dirancang, supaya anda dapat membuka casing tanpa wayar yang longgar. Ini bermaksud semuanya melekat pada bahagian bawah. Perkara pertama yang perlu dilakukan adalah sedikit penyesuaian pada raspberry. Terdapat lubang di setiap sudut, tetapi ini tidak sebesar yang seharusnya. Diameternya harus cukup untuk memasukkan skru 3mm ke dalam. Kita harus menggilap lubang sehingga sedikit lebih lebar.

Perkara kedua yang perlu dilakukan ialah memotong benang skru ke dalam setiap lubang. Ini mungkin terdengar sukar tetapi dapat dilakukan dengan mudah dengan alat yang betul. Saya akan mengesyorkan untuk melakukan ini di kedai perkakasan tempatan, hanya meminta alat pemotong benang. Oleh kerana ayah saya adalah tukang emas, dia mempunyai alat untuk melakukan ini di tempat kerja. Saya mungkin memuat naik fail stl baru sehingga dicetak di kemudian hari, tetapi ini memerlukan pencetak yang sangat tepat.

Langkah ketiga adalah dengan memasukkan pi ke bahagian bawah. Anda memerlukan skru panjang 4 7mm dengan diameter 3 mm. Selepas ini, anda boleh memasukkan papan PCD ke tempat yang disediakan di bahagian atas bahagian bawah. Sensor CCS811 dapat ditarik ke tempat yang disediakan di sebelah kiri dan DHT11 dapat dipasang ke pelat kanan. Kedua-duanya terisolasi dan cukup berventilasi, tetapi setelah itu kami melihat masih panas di dalam. Lebih lanjut mengenai perkara itu di kemudian hari.

Kemudian anda perlu memasang LED ke tiub mereka. Kami melakukan ini dengan gam 2 komponen tetapi anda boleh melakukannya sesuka hati. Pastikan bahawa mereka melekat di sana.

Sekarang anda boleh memasang paparan LCD, anda memerlukan skru dengan diameter yang sama seperti yang sebelumnya, tetapi sedikit lebih lama. Tambang saya 1cm. Sekiranya keempat-empat skru dipasang, hanya ada satu perkara yang perlu dilakukan. Pasang bahagian atas. Yang anda perlukan hanyalah empat skru, dengan diameter yang sama dan berukuran 2cm. Sekarang semuanya mesti ada dan anda boleh memulakannya.

Langkah 8: Mulakannya

Proses permulaan projek ini sangat mudah:

  1. Pasang kabel kuasa ke bahagian kiri casing. Ia tidak begitu kelihatan tetapi anda boleh melihat melalui lubang udara. Sekiranya anda mendapatkannya sekali ini tidak akan menjadi masalah lagi.
  2. Beri masa untuk memulakan.
  3. Alamat IP akan muncul di paparan selama sepuluh saat. Satu-satunya perkara yang perlu anda lakukan ialah memastikan anda tersambung ke rangkaian yang sama dan memasukkan alamat IP ke bar alamat penyemak imbas anda.
  4. Anda kini berada di laman web. Anda belum mempunyai akaun, jadi buatlah akaun.
  5. Sekiranya anda berdaftar, log masuk.
  6. Selesai! Anda dapat melihat semua data di laman web dan paparan LCD menunjukkan kualiti udara semasa.

Sejak kehangatan meningkat, kami telah meletakkan sensor di bahagian bawah casing. Dengan cara ini suhu tidak akan memberi kesan besar pada nilai yang didaftarkan. Oleh itu, untuk pengukuran yang optimum, buat peranti berdiri atau anda boleh menggantungnya ke dinding.

Disyorkan: