Isi kandungan:

Pemeriksa Pencemaran Kelas CPC: 10 Langkah
Pemeriksa Pencemaran Kelas CPC: 10 Langkah

Video: Pemeriksa Pencemaran Kelas CPC: 10 Langkah

Video: Pemeriksa Pencemaran Kelas CPC: 10 Langkah
Video: Catur: Skak Mati Dalam 3 Langkah 2024, November
Anonim
Pemeriksa Pencemaran Kelas CPC
Pemeriksa Pencemaran Kelas CPC
Pemeriksa Pencemaran Kelas CPC
Pemeriksa Pencemaran Kelas CPC
Pemeriksa Pencemaran Kelas CPC
Pemeriksa Pencemaran Kelas CPC

Hai, saya pelajar dari Belgium dan ini adalah projek besar pertama saya untuk ijazah sarjana muda saya! Instructable ini adalah mengenai cara membuat meter penyekat udara untuk bilik tertutup, terutamanya bilik darjah!

Saya mendengar anda berfikir mengapa projek ini? Baiklah, semuanya bermula ketika saya bersekolah menengah. Pada sebelah petang setelah makan tengah hari dan rehat yang baik, pelajaran bermula semula. Tetapi ada masalah, penjaga lupa membuka tingkap semasa kami makan tengah hari sehingga panas, berpeluh dan anda tidak dapat menumpukan perhatian kerana anda sedang tidur. Ini kerana terdapat banyak CO2 di udara.

Projek saya akan menyelesaikannya dan menjadikan pelajar al lebih peka semasa pelajaran.

Bekalan

1 xRaspberry Pi 4 (€ 55)

1 x steppenmotor dengan pemandu (€ 5)

2 x 12v 6800 mAh bateri (2x € 20)

2 x modul turun (2x € 5)

1 x 16x2 LCD (€ 1.5)

Sensor: 1x MQ8, 1x MQ4, 1x MQ7, 1x MQ135, 1x HNT11, 1x TMP36 (1 x 23 €)

IC: 1x MCP3008, 2x 74hc595AG (1x € 2.30, 2x € 0.40)

LED: 2x hijau, 2x merah, 3x kuning (terdapat dalam beberapa perkakasan lama, biasanya 0,01 € setiap satu)

Penyambung untuk bateri (2 x € 0,35)

40 kabel penyambung f-to-f (€ 1.80)

40 kabel penyambung f-to-m (€ 1,80)

Kabel penyambung 20 m-m-m (€ 1,80)

2 x PCB untuk dipateri (2x € 0,70)

Alat:

Besi pematerian (lebih disukai 60 Watt)

Tin ke pateri

Lembaran aluminium 50x 20

Sarung (saya menggunakan bekas komputer mini lama)

Ini boleh menjadi idea MDF atau idea sendiri.

Langkah 1: Menyiapkan RPi Anda

Menyiapkan RPi Anda
Menyiapkan RPi Anda

Oleh itu hati dan otak kita berada dalam produk ini. Mengancamnya dengan baik, kerana ia boleh menyakitkan anda dalam beberapa cara atau yang lain. Saya menggunakan RPi 4B 4gb, model lain semestinya baik. Anda boleh menjangkakan lebih banyak kelewatan pada model lama.

Kami mendapat OS dari sekolah kami dengan beberapa perisian yang telah diinstal sebelumnya seperti phpMyAdmin.

Pertama sekali, pastikan anda dapat menyambung ke Raspberry Pi anda melalui ssh, kami memerlukannya banyak masa.

Oleh itu, pertama kita harus mengaktifkan bas SPI, pin GPIO dan mematikan bas lain, kita tidak memerlukannya.

Anda boleh melakukannya di menu raspi-config. Navigasi ke Antaramuka dan aktifkan GPIO dan SPI biasanya tidak diperlukan untuk Semasa anda berada di sini, luaskan storan anda dengan pergi ke lanjutan dan kemudian tekan enter pada perluasan storan.

Sekarang but semula. Kami memerlukan beberapa peluasan untuk menggunakan VS Code pada pi kami, untuk menjalankan pelayan dan pangkalan data kami.

Proses pemasangan untuk VS Code Extension boleh didapati di sini.

Sekarang kami akan memasang sambungan untuk pelayan dan pangkalan data kami. Gunakan terminal dan ketik 'python install flask, flask-cors, mysql-python-connector, eventlet' tunggu sehingga selesai.

Sekarang kita boleh memulakan dengan pembuatan projek.

Langkah 2: MCP3008 + TMP36

MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36

Oleh itu, kami mempunyai 6 sensor: 4 gas, 1 kelembapan + suhu dan 1 sensor suhu. Ini adalah tugas sebenar untuk membuat mereka bekerja. Semua sensor adalah sensor analog jadi kita perlu menukar isyarat analog ke isyarat digital. Ini kerana RPi (Rasberry Pi) hanya dapat "memahami" isyarat digital. Untuk maklumat lebih lanjut klik di sini.

Untuk menyelesaikan tugas itu, anda memerlukan MCP3008, ini akan berjaya dengan baik!

Ia mempunyai 16 port, dihitung dari atas (gelembung kecil) kiri, bawah, sisi lain dan ke atas. Pin1-8 adalah input untuk isyarat analog dari sensor kami. Pin 9 di sisi lain adalah GND ini perlu disambungkan ke GND litar lengkap jika tidak, ini tidak akan berfungsi. Pin 10-13 perlu dihubungkan dengan lebih teliti, ini akan menghantar data ke dan dari RPi. Pin 14 adalah GND lain dan pin 15 dan 16 adalah VCC yang mesti disambungkan ke sisi positif litar.

Ini adalah susun atur untuk pendawaian thr:

  • MCP3008 VDD ke 3.3V luaran MCP3008 VREF ke 3.3V luaran
  • MCP3008 AGND ke GND luaran
  • MCP3008 DGND ke luarGND
  • MCP3008 CLK ke pin Raspberry Pi 18
  • DOP MCP3008 ke pin Raspberry Pi 23
  • MCP3008 DIN ke pin Raspberry Pi 24
  • MCP3008 CS / SHDN ke pin Raspberry Pi 25

Ini juga merupakan masa yang tepat untuk menghubungkan GND dari RPI ke GND luaran. Ini akan menjadikan aliran elektrik dari RPi.

Inilah cara menghubungkannya dengan cara yang betul.

Pastikan untuk menyambung dengan cara yang betul, jika tidak, anda boleh membuat litar pintas semuanya!

Bahagian pertama kod dimasukkan ke sini.

Anda boleh menyalin kod saya dari github projek saya di bawah model. Analog_Digital.

Di bahagian bawah halaman anda akan menemui kod sumber untuk membuatnya berfungsi.

Tetapi kita memerlukan sensor pertama kita, supaya kita dapat menguji.

Kita perlu menguji sensor kita jika berfungsi. Sambungkan bekalan kuasa 3.3V atau 5V ke sisi positif TMP36. Jangan lupa untuk menghubungkannya ke GND juga, ini mungkin sesuatu yang bodoh berlaku tetapi percayalah. Itu kenyataan;). Anda boleh menguji dengan multimeter output sensor ini adalah pin tengah. Dengan persamaan ringkas ini, anda dapat memeriksa suhu dalam ° C. ((milivolt * voltan masukan) -500) / 10 dan voila donne! Selamat tinggal! Baiklah hahah kita memerlukan MCP3008. Sambungkan pin analog untuk TMP36 anda ke pin input pertama MCP3008. Ini adalah pin 0.

Anda boleh menggunakan contoh kod di bahagian bawah untuk kelas MCP ini. Atau sesuatu yang anda dapati dalam talian, kami akan melakukan tugas dengan baik.

Langkah 3: Pangkalan Data

Jadi sekarang kita dapat membaca sensor pertama kita perlu memasukkannya ke pangkalan data. Ini adalah memori otak kita. Saya merancang pangkalan data ini agar dapat dikembangkan dan mudah diubah untuk perubahan masa depan.

Jadi pertama-tama kita perlu memikirkan apa yang akan kita peroleh sebagai input dan jika kita perlu mencatat perkara tertentu seperti status objek tertentu.

Jawapan saya adalah: input dari 6 sensor jadi kita perlu membuat jadual sensor, dengan sensor ini kita akan membuat nilai. Apa yang dikaitkan dengan nilai? Bagi saya ia adalah status tetingkap, terbuka atau ditutup semasa sensor mengukur nilainya. Tetapi lokasi juga menjadi faktor nilai saya, jadi kami akan menambahkannya. Masa dan tarikh untuk nilai juga penting, jadi saya akan menambahkannya.

Untuk pengembangan masa depan saya menambah jadual pengguna.

Jadi apa idea saya untuk jadual: nilai meja, alamat meja (dihubungkan ke bilik), ruang meja (dihubungkan dengan nilai), tetingkap meja (dihubungkan dengan nilai), sensor meja (dihubungkan dengan nilai) dan jadual di alam liar untuk pengguna.

Adapun menghubungkan jadual bersama. Setiap nilai memerlukan satu sensor, satu tetingkap, nilai untuk sensor, sebuah id sehingga kita dapat menjadikan nilai itu unik, cap waktu untuk saat nilai dibuat dan yang terakhir kita tidak memerlukan ruang sehingga menjadi pilihan tetapi dapat tambah.

Jadi begini rupanya sekarang. Inilah yang saya gunakan untuk sepanjang projek saya.

Langkah 4: HNT11, untuk Real Boys

Oleh kerana kami tidak dibenarkan menggunakan perpustakaan apa pun. Kita mesti memprogramkan semuanya sendiri.

HNT11 adalah sistem satu wayar jadi ini bermakna anda mempunyai GND dan VCC seperti peranti elektronik lain tetapi pin 3the adalah pin masuk dan output. Jadi agak pelik tetapi saya belajar banyak daripadanya.

Sambungkan VCC ke 3.3V luaran dan GND ke GND luaran.

Lembar data DHT11 mengandungi semua perkara untuk menggunakan sensor ini.

Kita dapat menentukan bahawa bit tinggi mengandungi bit rendah dan tinggi. Tetapi jangka masa bahagian tinggi menentukan sedikit demi sedikit. Sekiranya bahagian tinggi dipancarkan lebih lama daripada 100µs (normaly 127µs) bitnya tinggi. Adakah bit lebih pendek daripada 100µs (biasanya sekitar 78µs) bit rendah.

Apabila HNT11 diaktifkan, ia akan mula mengeluarkan isyarat. Ini selalu 41 bit. Ia bermula dengan sedikit permulaan, ini tidak bermakna apa-apa, jadi kita boleh melewatkannya. 16 bit / 2bytes pertama adalah bahagian integer dan terapung untuk kelembapan. Ia sama untuk 2 bait terakhir tetapi sekarang untuk suhunya.

Oleh itu, kita hanya perlu mengira jangka masa setiap bit dan kemudian kita selesai.

Dalam kod sumber di bawah DHT11 anda akan menemui kaedah saya dalam menyelesaikan masalah ini.

Langkah 5: Sensor Gas (legenda sahaja)

Sensor Gas (legenda sahaja)
Sensor Gas (legenda sahaja)
Sensor Gas (legenda sahaja)
Sensor Gas (legenda sahaja)

Oleh itu, saya fikir pada awal projek bahawa idea yang baik adalah menggunakan banyak sensor. Fikirkan sebelum anda bertindak dan membeli secara tempatan ini akan menjimatkan banyak waktu tidur anda! Kerana anda boleh memulakan lebih awal dan ini akan membuat anda lebih rela melakukannya.

Oleh itu, saya mempunyai 4 sensor gas. MQ135, MQ8, MQ4 dan MQ7 semua sensor ini mempunyai gas khusus yang dapat mereka ukur dengan baik. Tetapi semuanya berbeza dalam konfigurasi mereka.

Jadi pertama kali saya menggunakan lembar data, ini tidak menjadikan saya lebih bijak. Kemudian saya mencari contoh kod. Apa yang saya dapati adalah satu perpustakaan dari Adafruit. Saya cuba menirunya dengan sebaik mungkin. Ia berfungsi dengan salah satu daripada empat sensor.

Saya membiarkannya berehat sebentar dan kembali ke sana.

Apa yang saya buat untuk membuatnya berfungsi untuk satu sensor itu adalah:

- Saya menggunakan lembar data untuk menandakan titik gas yang ingin saya ukur. Jadi 1 ro / rs hingga 400ppm, 1.2 hingga 600ppm…

- Kemudian saya meletakkan semua titik di excell dan mengeluarkan formula untuk lekukan. Saya menyimpannya dalam pangkalan data saya.

- Dari lembaran data saya juga membaca rintangan normal dan rintangan udara bersih. Nilai-nilai ini juga disimpan dalam pangkalan data.

Saya mencurahkan semua ini ke beberapa kod, anda boleh mendapatkannya sebagai tiga fungsi terakhir dalam kelas MCP3008. Tetapi ini belum selesai, sayangnya saya tidak mempunyai cukup masa.

Langkah 6: The Shiftregister, 74HC595AG

The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG

Jadi ini IC. Dan ia melakukan sesuatu yang istimewa, dengan peranti ini mungkin menggunakan lebih sedikit output GPIO untuk isyarat output yang sama. Saya menggunakan ini untuk LCD (Liquid Crystal Display) dan LED saya. Saya akan menunjukkan alamat ip pada LCD supaya semua orang boleh melayari laman web ini.

LED dipilih dengan bijak 2 merah, 3 kuning dan 2 hijau. Ini akan menunjukkan bila-bila masa kualiti udara di dalam bilik.

Shiftregister adalah peranti output selari sehingga tidak mungkin mengeluarkan isyarat yang berbeza dalam jangka waktu. Ini mungkin berlaku jika diprogramkan dari luar tetapi tidak disokong secara asli.

Bagaimana menggunakan IC? Anda mempunyai 5 input dan 9 output. 8 output logik untuk 8 pin dan kemudian pin ke-9 untuk menghantar data yang tersisa ke register pergeseran lain.

Oleh itu, kita menyambungkan pin 16 ke VCC luaran, pin seterusnya adalah output pertama jadi untuk LCD kita akan memerlukannya. Pin 14 adalah garis data, di sini kita akan menghantar data ke. Pin ke-13 adalah suis hidup, isyarat rendah membolehkan IC isyarat tinggi diperlukan untuk mematikannya. Pin 12 adalah pin di mana kita dapat menentukan kapan bit dihantar, ketika anda menarik pin ini ke bawah sehingga dari tinggi ke rendah ia membaca status isyarat pin 13 dan menyimpannya dalam memori 8bitnya. Pin 11 serupa apabila pin ini diset tinggi dan rendah ia mengeluarkan 8 bit ke portnya. Dan pin terakhir, pin 10 adalah tetapan semula induk, pin ini mesti tetap tinggi atau tidak akan berfungsi. Sambungan terakhir adalah pin GND 8 yang kita perlukan untuk menghubungkan yang satu ini ke GND luaran.

Oleh itu, sambungkan pin bagaimana anda suka dengan raspberry pi. Cara saya melakukannya adalah menghubungkan mereka sedekat mungkin antara satu sama lain untuk memastikan saya tahu di mana mereka berada.

Apabila anda mendapat output yang betul. Anda boleh memasangkannya ke PCB dengan LED. dan 220 perintang Ohm. Selesaikan output IC ke LED yang sepadan. Anda sekarang harus mempunyai sesuatu seperti ini.

Anda boleh mendapatkan kod ujian saya di sini di bawah Shiftregister. Apabila anda bekerja dengan 74HC595N, anda tidak memerlukan MR supaya anda tidak tersambung.

LCD hampir sama. Cukup mudah menggunakannya dengan shiftregister kerana input untuk LCD adalah input yang tepat untuk shiftregister.

Untuk LCD ada beberapa kod lain untuk membuatnya berfungsi tetapi ia sama seperti hanya shifregister. Anda boleh mendapatkan kod ujian di sini di bawah LCD.

Langkah 7: Frontend, Pelajaran Berharga

Jadi di sini saya akan mengembara, ini adalah bahagian bagaimana anda harus melakukannya. Ini adalah sesuatu yang sangat berharga yang dipelajari.

Buat frontend sebelum backend !!!!

Saya melakukannya sebaliknya. Saya membuat panggilan tidak berguna untuk pangkalan data saya, saya menghabiskan banyak masa untuk ini.

Di halaman arahan saya memerlukan suhu dan kelembapan semasa dan nilai semua sensor gas dalam carta yang bagus. Saya juga perlu menunjukkan alamat ip RPi.

Di halaman sensor saya memerlukan pemilihan satu sensor dan masa pemilihan. Saya memilih untuk pemilihan satu hari dan kemudian tempoh dari hari itu. Ini menjadikannya lebih mudah bagi saya kerana, saya dapat mengawalnya lebih banyak.

Pada halaman terakhir, halaman tetapan adalah mungkin untuk menguruskan nilai-nilai tertentu seperti tahap suhu dan gas berbahaya atau berbahaya yang sihat. Anda juga boleh membuat RPi reboot jika anda merasa perlu melakukannya.

Oleh itu, pertama saya membuat reka bentuk supaya saya dapat dengan mudah memulakan bahagian pengkodan. Saya secara beransur-ansur membuat kemajuan satu perkara pada satu masa. Tugasan itu bergerak terlebih dahulu jadi saya akan memfokuskannya terlebih dahulu. Kemudian saya akan pergi ke skrin yang lebih besar.

Anda boleh mendapatkan halaman, css dan js saya di Github saya.

Langkah 8: Latar Belakang

Bahagian ini adalah bahagian yang saya campurkan dengan frontend. Semasa saya membuat sesuatu untuk bahagian depan saya membuatnya berfungsi di bahagian belakang. Jadi tidak perlu disemak kemudian. Ini adalah sesuatu yang tidak saya lakukan pada mulanya dan kerana ini saya kehilangan masa 2 minggu. Bodoh saya! Tetapi pelajaran yang saya ambil dengan senang hati ke projek lain.

Oleh itu, apabila anda membuat backend, buatlah sesuatu yang akan anda gunakan. Tetapi jadikan ia bukti masa depan dengan menjadikannya boleh digunakan semula dan tidak dikodkan keras. Oleh itu, apabila saya memerlukan 50 nilai terakhir dari DHT11 saya, saya akan memeriksa adakah nilai dibuat? Ya, bagaimana saya memasukkannya ke dalam pangkalan data. Bagaimana saya mengeluarkannya dari pangkalan data. Bagaimana saya menunjukkannya? Carta, grafik, atau hanya data biasa? Kemudian saya membuat laluan baru dengan parameter dan sifat yang berbeza seperti tarikh, nama sensor tertentu atau apa yang akan saya panggil. Maksud saya adakah saya memanggil semua nilai dari sensor MQ atau adakah saya memanggil semua sensor dengan MQ dalam namanya. Kemudian saya memasukkan beberapa kesalahan. Apabila permintaan dari panggilan adalah kaedah yang tepat maka ia dapat diteruskan jika tidak, ia mendapat ralat yang bagus.

Juga terdapat utas yang terdapat, ini adalah perisian yang membolehkan anda menjalankan kod selari. Anda boleh menjalankan panggilan laman web, fungsi penciptaan nilai dan shift + register yang dipimpin. Fungsi-fungsi ini sepenuhnya bebas antara satu sama lain.

Jadi untuk yang diketuai. Saya membuat nilai bawah / sihat untuk CO2. Nilai ini datang dari pelbagai sumber gouvernemental. Nilai sihat untuk bilik darjah adalah di bawah 600 ppm CO2 per meter padu. Nilai tidak sihat adalah semua yang melebihi 2000 ppm. Oleh itu LED membuat jambatan. Sekiranya nilai sensor MQ4 adalah 1400, ia akan dikira secara automatik dalam tahap bahaya yang mana. 2000 - 600 = 1400 sehingga julat keseluruhan adalah 1400/7 = 200. Jadi apabila nilai mencapai 550, ia menunjukkan led hijau. 750 menunjukkan 2 led hijau, 950 1 kuning 2 hijau led. Dan sebagainya.

Apabila nilainya berada di atas tengah, tetingkap akan terbuka. Saya menggunakan steppenmotor kerana daya kilas dan ketepatan yang tinggi. Dan apabila nilainya melebihi tahun 2000, penggera kecil akan berbunyi. Ini untuk mengingatkan orang-orang di dalam bilik.

Kita juga dapat mengesan gas asap sehingga apabila ada kebakaran. Ini mendaftarkannya juga. Apabila melebihi nilai tertentu, alarm akan menyala dan LED berkelip.

LCD ada terutama untuk menunjukkan alamat IP sehingga anda dapat melayari laman web ini.

Anda boleh menemui semua + kod di dalam Githubin saya app.py

Langkah 9: Membuat Kes

Membuat Kes
Membuat Kes
Membuat Kes
Membuat Kes
Membuat Kes
Membuat Kes

Saya menjumpai casing komputer kecil untuk semua komponen saya.

Saya memotong kepingan aluminium mengikut ukuran. Dan menggerudi beberapa lubang di mana lembaran itu akan berehat. Ini sesuai dengan lubang motherboard.

Kemudian saya melihat bagaimana semuanya sesuai di dalam beg itu. Saya meletakkan semuanya dan mula bergerak.

Ketika saya puas dengan cara kerjanya, saya mula menandakan lubang yang saya perlukan untuk sensor, RPi, PCB, powermodules dan modul steppenmotor. Lubang-lubang itu untuk kebuntuan PCB, ini akan membuat ruang sehingga bahagian-bahagian logam tidak bersentuhan dengan kepingan aluminium. Ia juga memberikan penampilan yang bagus.

Saya mengambil kabel dari setiap IC atau peranti lain dan mengikatnya lebih tinggi. Ini kerana saya dapat melihat kabel apa untuk apa. Saya meletakkan semuanya dengan baik pada beberapa kebuntuan dan menggunakan beberapa kacang dan skru untuk menahan semuanya dengan baik.

Untuk menghidupkan semua ini saya menggunakan 2 bateri. Ini memberikan banyak tenaga tetapi ini masih bateri jadi ini akan habis dalam masa. Saya memasangnya dengan velcro. Saya menggunakan velcro kerana ketika itu saya boleh mengganti atau menyingkirkan bateri dengan mudah.

Steppenmotor, LCD dan LED akan keluar dari bahagian atas casing. Oleh itu, saya dengan berhati-hati meletakkan penutup casing di atas dan menandakan lubang-lubang itu dan menggerudi dengan bor. Oleh itu, kita dapat melihat semuanya dengan mudah.

Apabila sarungnya selesai, kita perlu memasukkan semuanya, di sini anda boleh mendapatkan skema pendawaian.

Langkah 10: Penilaian dan Kesimpulan

Penilaian dan Kesimpulan
Penilaian dan Kesimpulan

Jadi ini / merupakan projek pertama saya.

Nampaknya saya rasa tidak mengapa.

Saya belajar banyak perkara baru, mengetahui aspek pengurusan projek yang baik dan buruk. Ini benar-benar pelajaran berharga. Saya bersandar bahawa anda tidak sabar anda benar-benar perlu terus memberi. Anda perlu mendokumentasikan setiap pergerakan (hampir sangat bergerak), dan bahawa anda perlu melakukannya semasa anda baru sahaja melakukannya.

Fokus pada 1 perkara pada satu masa. Anda mahukan suhu di skrin anda? Lakukan ini, ini dan itu. Jangan tunggu atau cuba biarkan ia berlalu. Ia tidak akan membantu. Dan ia akan kehilangan anda masa yang begitu berharga.

Juga 4 minggu kelihatan banyak masa. Tetapi kurang benar. Ini tidak betul. Anda hanya mempunyai 4 minggu. 2 minggu pertama tidak begitu banyak tekanan. 3 minggu penamat dan 4 minggu tanpa tidur malam. Ini adalah bagaimana anda tidak boleh melakukannya.

Saya mungkin agak bercita-cita tinggi: Saya casing yang kecil, tidak mudah digunakan sensor, bateri… Jadikannya lebih mudah dan kemudian buat secara beransur-ansur lebih sukar dan sukar, hanya dengan itu anda akan mendapat prototaip / produk yang bagus.

Disyorkan: