Daftar Isi:

AirPi - Sensor Kualitas Udara: 8 Langkah
AirPi - Sensor Kualitas Udara: 8 Langkah

Video: AirPi - Sensor Kualitas Udara: 8 Langkah

Video: AirPi - Sensor Kualitas Udara: 8 Langkah
Video: Kelebihan Bagasi, Ibu Ini Sampai Buang Kopernya! 2024, Desember
Anonim
AirPi - Sensor Kualitas Udara
AirPi - Sensor Kualitas Udara

Pernahkah Anda bertanya-tanya mengapa Anda sakit kepala? Dan apakah ini karena kualitas udara yang buruk? Dengan perangkat ini Anda dapat memeriksa apakah ini masalahnya. Perangkat ini mengukur nilai CO2, nilai TVOC, suhu dan kelembaban. Anda dapat melihat kualitas udara secara langsung di layar LCD dan melihat indikasi yang jelas jika keadaan mulai berbahaya. Dengan cara ini Anda dapat membuka jendela Anda tepat waktu.

Jika Anda memasukkan alamat IP - ditampilkan saat Anda memulai perangkat di browser Anda - situs web akan terbuka. Anda dapat melihat banyak informasi tentang lingkungan dalam ruangan, bersama dengan grafik menit / jam terakhir. Ada juga indikasi langsung dan beberapa informasi dan tips di dasbor.

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

Langkah 1: Bahan

Bahan
Bahan

Ini semua yang saya beli untuk membuat proyek ini. Ini adalah proyek yang relatif murah, tergantung pada biaya cetak 3D. Jika Anda dapat mencetaknya di sekolah, ini bisa sangat murah. Kalau tidak, itu tergantung di mana Anda mencetaknya dan bahan yang Anda gunakan untuk mencetaknya. Anda akan melihat saya membeli banyak dalam jumlah besar, hanya karena sulit untuk menemukan resistor atau led individu dan ini membuatnya lebih murah. Jika Anda punya waktu, Anda dapat memesan sebagian besar barang di aliexpress.com, pengiriman bisa memakan waktu cukup lama, tetapi dengan cara ini Anda dapat membatasi pengeluaran Anda.

Tanpa cetakan, uang yang saya habiskan untuk proyek ini adalah €81,80.

Ini adalah bahan-bahan yang Anda butuhkan:

Sirkuit:

  • Raspberry Pi 3
  • Kartu SD 8 GB (minimal)
  • Sensor kualitas udara CCS811
  • Sensor suhu dan kelembaban DHT22
  • Potensiometer (LCD kontras)
  • LCD 16x2
  • Kabel jumper wanita ke wanita
  • LED hijau dan merah
  • Resistor (2x470ohm dan 1 4700ohm)

Kasus:

  • 3D-cetak
  • Sekrup
  • 2 lem komponen (atau lem panas lainnya)
  • alat pemotong benang

Hanya Anda yang menggunakan PCB:

  • Besi solder
  • Fluks (memudahkan)
  • Timah
  • Percobaan pcb 2x4cm

Langkah 2: Koneksi

Koneksi
Koneksi

Hubungkan kabel seperti di atas. Anda dapat melihat sirkuit listrik di file fritzing. Ini bukan sirkuit yang sangat rumit, tetapi jika Anda ingin membuatnya sekecil mungkin, Anda pasti ingin mendapatkan Papan PCB percobaan. Pengkabelannya akan sama, kecuali GND dan Vin akan terhubung ke papan PCB. Sensor akan dihubungkan dengan kabel jumper perempuan atau laki-laki dengan solder. Jangan lupa solder resistor pada sensor DHT22.

Saya juga merekomendasikan untuk menggunakan kabel pendek, 10cm harus dilakukan. Kalau tidak, kotak itu akan lebih banyak diisi dengan kabel. Tidak perlu yang terlalu panjang karena ukuran print dibuat sekecil mungkin.

Langkah 3: Cetak 3D

3D-cetak
3D-cetak
3D-cetak
3D-cetak

Pikiran pertama yang muncul di kepala saya ketika saya berpikir tentang sebuah kasus adalah cetak 3D. Karena ayah saya telah mencetak barang-barang serveral lainnya dan dia mendesainnya sendiri. Bersama-sama kami menciptakan desain ini, dan memikirkan setiap aspek. Itu harus cukup dingin, semuanya bisa disekrup ke tempatnya dan jika tidak, bisa didorong ke tempatnya.

Kami bahkan menggambar setiap komponen untuk memeriksa apakah semuanya cocok. File tersedia untuk semua orang dan kami ingin mendengar beberapa masukan. Kami sangat senang dengan hasilnya.

Langkah 4: Kode

Kode untuk proyek ini dapat ditemukan di Github. Jika Anda telah menggunakan pin lain (misalnya pin GPIO lain untuk LED, Anda harus menyesuaikan variabel ini. Akan ada dua skrip python yang berjalan, web.py untuk situs web dan sensor.py untuk membaca sensor dan memperbarui database Kita akan mengimpor LCD kelas dari lcd.py.

Dengan raspberry pi yang dikonfigurasi, Anda dapat memulai. Pertama-tama Anda harus memperbarui dan memutakhirkan semua paket:

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

Setelah itu Anda harus menginstal paket-paket berikut:

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

Sekarang buat lingkungan virtual:

me@my-rpi:~ $ python3 -m pip install --upgrade pip setuptools wheel virtualenv

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/ aktifkan (env)me@my-rpi:~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Karena ini selesai, Anda dapat mengkloning kode dari GitHub saya ke lingkungan virtual Anda. Ini dapat dilakukan dengan berbagai cara.

Di direktori conf Anda dapat menemukan empat file yang harus Anda sesuaikan jika perlu. Anda pasti harus mengubah direktori pengguna dan home di setiap file. uWSGI ini seharusnya baik-baik saja selama Anda tidak mengubah kode saya, pastikan untuk mengubah pengguna dan virtualenv jika perlu.

Karena sensor CCS811 sengaja digunakan untuk arduino, sensor ini tidak dapat berkomunikasi melalui bus i2c dengan kecepatan raspberry pi. Anda harus mengurangi kecepatan ke baudrate 10.000 (saya menggunakan 9600) di file konfigurasi.

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

Karena kami ingin skrip python berjalan secara otomatis saat raspberry terhubung, Anda harus menggunakan layanan. Mereka seharusnya baik-baik saja jika Anda menyimpan kode saya. Yang perlu Anda lakukan untuk menjalankannya adalah mengaktifkannya. Sebelum Anda melakukannya, ada satu hal terakhir.

Karena kita menggunakan server web nginx, kita harus menonaktifkan default dan menggantinya dengan konfigurasi kita sendiri. Untuk melakukan ini, langkah-langkah ini harus diikuti:

  • salin conf/nginx ke *situs-tersedia*
  • Hapus tautan ke konfigurasi default
  • Tambahkan tautan ke konfigurasi baru
  • Mulai ulang nginx untuk menyimpan perubahan

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 dan mysql harus berjalan setiap saat. Mereka memulai bersama dengan raspberry pi. Skrip web dan skrip sensor belum.

Untuk melakukan ini, Anda masih perlu mengaktifkan kedua layanan ini dengan perintah berikut:

sudo systemctl aktifkan project1-flask.service

sudo systemctl aktifkan project1-sensor.service

Langkah 5: Basis Data

Basis data
Basis data

Database saya terdiri dari tiga tabel. Pengguna tidak memiliki hubungan dengan tabel lain. Ini hanya digunakan untuk masuk dan memberikan akses ke situs web. Saat perangkat dihidupkan, nilai CO2 dan nilai TVOC akan ditulis ke database setiap 50 detik. Suhu dan kelembaban setiap 5 menit. Dengan cara ini kita mendapatkan gambaran yang jelas tentang masa lalu.

File SQL dapat ditemukan di sini, tetapi untuk mendapatkan database di raspberry pi, Anda harus mengikuti langkah-langkah ini:

Setelah instalasi paket pada langkah sebelumnya, mariadb/mysql harus segera dijalankan. Anda dapat memeriksa ini dengan baris ini:

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

Untuk membuat database dan pengguna, Anda cukup menjalankan skrip sql dalam kode dari GitHub. Jika Anda melakukan ini dengan benar, Anda akan melihat tabel Anda menggunakan perintah ini:

me@my-rpi:~ $ echo 'tampilkan tabel;' | mysql project1 -t -u project1-admin -p

Sekarang kita sudah siap, Anda dapat menguji ini tanpa kasing untuk memastikan semuanya berfungsi. Kecuali Anda terhubung ke wifi, Anda harus menghubungkannya dengan kabel ethernet dan menjalankannya secara manual.

Langkah 6: Hubungkan ke Wi-Fi

Buka file 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 bagian bawah file dan tambahkan yang berikut (ganti nama ssid dan nama sandi dengan milik Anda):

jaringan={

ssid="nama-ssid" psk="nama-sandi" }

Untuk membuat kata sandi terenkripsi, Anda dapat menggunakan wpa_passphrase dan cukup salin ke wpa_supplicant.conf psk untuk membuat semuanya lebih aman.

wpa_passphrase "nama-ssid" "nama-sandi"

Jika Anda ingin terhubung ke jaringan Wi-Fi ini secara otomatis, dan ada yang lain di file konfigurasi, pastikan Anda mengubah prioritas ke tingkat yang lebih tinggi dengan menambahkan baris ini ke jaringan di file konfigurasi:

prioritas=2

Jangan lupa untuk mengkonfigurasi ulang antarmuka dengan:

wpa_cli -i wlan0 mengkonfigurasi ulang

Sekarang Anda sudah siap dan terhubung ke jaringan wifi.

Langkah 7: Menyatukan Semuanya

Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya

Karena semuanya terhubung dan disolder, kita bisa sampai ke kasing. Ini dirancang, sehingga Anda dapat membuka kasing tanpa kabel yang longgar. Ini berarti semuanya melekat pada bagian bawah. Hal pertama yang harus dilakukan adalah sedikit penyesuaian pada raspberry. Ada lubang di setiap sudutnya, tapi ini tidak sebesar yang seharusnya. Diameternya harus cukup untuk memasukkan sekrup 3mm di dalamnya. Kami harus memoles lubangnya agar sedikit lebih lebar.

Hal kedua yang harus dilakukan adalah memotong ulir sekrup ke setiap lubang. Ini mungkin terdengar sulit tetapi dapat dengan mudah dilakukan dengan alat yang tepat. Saya akan merekomendasikan untuk melakukan ini di toko perangkat keras lokal, minta saja alat pemotong utas. Karena ayah saya adalah seorang tukang emas, dia memiliki alat untuk melakukan ini di tempat kerja. Saya mungkin mengunggah file stl baru sehingga ini dicetak nanti, tetapi ini akan membutuhkan printer yang sangat akurat.

Langkah ketiga adalah memasang pi ke bagian bawah. Anda membutuhkan 4 sekrup dengan panjang 7 mm dengan diameter 3 mm. Setelah ini Anda dapat mendorong papan PCD ke tempat yang disediakan di bagian atas bagian bawah. Sensor CCS811 dapat dimasukkan ke tempat yang disediakan di sisi kiri dan DHT11 dapat dipasang ke pelat kanan. Keduanya terisolasi dan berventilasi cukup, tetapi setelah itu kami perhatikan di dalam masih panas. Lebih lanjut tentang itu nanti.

Maka Anda perlu memasang LED ke tabungnya. Kami melakukan ini dengan lem 2 komponen tetapi Anda dapat melakukannya sesuka Anda. Pastikan mereka menempel di sana.

Sekarang Anda dapat memasang layar LCD, Anda memerlukan sekrup dengan diameter yang sama dengan yang sebelumnya, tetapi sedikit lebih panjang. Milik saya adalah 1cm. Jika keempat sekrup disekrup, hanya ada satu hal yang harus dilakukan. Pasang bagian atas. Yang Anda butuhkan hanyalah empat sekrup, dengan diameter yang sama dan ini adalah 2cm. Sekarang semuanya harus di tempat dan Anda dapat memulainya.

Langkah 8: Mulai

Proses memulai proyek ini sangat mudah:

  1. Pasang kabel daya ke sisi kiri casing. Ini tidak terlalu terlihat tetapi Anda dapat melihat melalui ventilasi. Jika Anda mendapatkannya sekali ini tidak akan menjadi masalah lagi.
  2. Berikan waktu untuk memulai.
  3. Alamat IP akan muncul di layar selama sepuluh detik. Satu-satunya hal yang perlu Anda lakukan adalah memastikan Anda terhubung ke jaringan yang sama dan memasukkan alamat IP ke bilah alamat browser Anda.
  4. Anda sekarang berada di situs web. Anda belum memiliki akun, jadi buat akun.
  5. Jika Anda terdaftar, masuk.
  6. Selesai! Anda dapat melihat semua data di halaman web dan layar LCD menunjukkan kualitas udara saat ini.

Karena kehangatan meningkat, kami telah menempatkan sensor di bagian bawah kasing. Dengan cara ini suhu tidak akan berdampak besar pada nilai yang terdaftar. Jadi untuk pengukuran yang optimal, buat perangkat berdiri atau Anda bisa menggantungnya di dinding.

Direkomendasikan: