Isi kandungan:

Projek Sensor Gas - Air: 10 Langkah
Projek Sensor Gas - Air: 10 Langkah

Video: Projek Sensor Gas - Air: 10 Langkah

Video: Projek Sensor Gas - Air: 10 Langkah
Video: How to use gas sensor without arduino. 2024, November
Anonim
Projek Sensor Gas - Air
Projek Sensor Gas - Air

Karbon monoksida dan karbon dioksida, juga dikenal sebagai CO dan CO2. Gas yang tidak berwarna, tidak berbau, tanpa rasa dan terus terang berbahaya ketika berada dalam kepekatan tinggi di bilik tertutup. Sekiranya anda tinggal katakan misalnya di bilik pelajar yang sangat terpencil, tidak ada aliran udara yang baik dan untuk sebab tertentu, pembakar roti membuat bunyi pelik semasa membuat roti bakar. Kemudian anda mungkin bersentuhan dengan gas ini dan apabila itu berlaku, harap harap hanya berakhir dengan sakit kepala yang kecil, kerana dalam konsentrasi tinggi ia mungkin tidak mampu atau bahkan membunuh anda (walaupun jarang sekali).

Oleh itu, saya memutuskan untuk membuat projek ini. Idea saya mudah, gunakan peminat untuk membuat aliran udara. Udara yang baik masuk dan udara yang buruk sehingga boleh dikatakan. Untuk utiliti tambahan, saya menambahkan sensor suhu tambahan, butang untuk peminat pengaktifan manual dan juga laman web untuk mereka yang suka melihat statistik dan / atau mengaktifkan kipas dari komputer mereka.

Sebagai pelajar, ibu bapa, orang bujang atau makhluk hidup. Ini adalah perkara yang biasanya anda hindari ketika tinggal di rumah anda sendiri. Ini membantu mereka yang suka menjadikan hidup mereka lebih mudah.

Bekalan

  • Raspberry Pi 3+
  • Pengecas mini-usb 5V / 2.5A
  • Kad mikro-sd
  • Sensor

    • MQ-7 (CO)
    • MQ-135 (CO2)
    • DS18B20 (suhu)
  • Kipas DC 2 x 12V
  • Transistor 2 x 2n2222
  • Paparan LCD 16 * 2
  • Tekan butang
  • MCP3008
  • Penukar tahap Logi
  • Kabel Ethernet (untuk alasan persediaan)

Langkah 1: Persediaan Pi Raspberry

Persediaan Raspberry Pi
Persediaan Raspberry Pi
Persediaan Raspberry Pi
Persediaan Raspberry Pi

Sebelum bekerja dengan Rpi, kami memerlukan beberapa perisian.

  • WinSCP atau FilleZilla (pilihan jika anda mahu memindahkan fail dari komputer anda ke Rpi)
  • Cakera Win32 atau Etcher (yang lebih anda sukai)
  • Putty atau MobaXterm (yang lebih anda sukai)
  • Imej raspbian dengan desktop

Sebelum saya memulakan, saya ingin menyebutkan bahawa semasa membuat tutorial ini, ketika saya memilih program daripada yang lain, TIDAK bermaksud saya mengesyorkannya. Contohnya saya suka menggunakan etcher kerana lebih mesra pengguna tetapi Win32 mempunyai pilihan untuk membuat sandaran. Sekarang sudah keluar dari sistem saya, mari kita mulakan.

Sekiranya anda sudah memiliki Rpi yang tersambung ke rangkaian wifi anda, lompat ke langkah 3.

Mula-mula kita akan menggunakan Etcher untuk meletakkan gambar Raspbian pada kad sd anda. Sekarang sebelum kita mengeluarkan kad sd, kita akan menukar beberapa "barang" dalam fail cmdline.txt, yang terdapat dalam gambar. Buka fail.txt -> Tambahkan baris ini "ip = 169.254.10.1" (tiada tanda petik) di hujung baris (semua ada pada 1 baris) -> Simpan fail

Kedua buat folder kosong yang disebut "ssh" di partition boot (tanpa tanda petik).

Selepas itu anda boleh mengeluarkan Microsd dengan selamat dan memasukkannya ke dalam Rpi.

Sebab IP statik berkod keras adalah untuk memudahkan penyambungan ke Rpi. Sekiranya atas sebab tertentu Rpi tidak memiliki ip dengan DHCP maka anda dengan mudah menggunakan ip statis.

Langkah 2: Membuat Sambungan dan Menghubungkan Tanpa Wayar ke Rangkaian Setempat Anda

Membuat Sambungan dan Menyambungkan Tanpa Wayar Rpi ke Rangkaian Tempatan Anda
Membuat Sambungan dan Menyambungkan Tanpa Wayar Rpi ke Rangkaian Tempatan Anda
Membuat Sambungan dan Menyambungkan Rpi Tanpa Wayar ke Rangkaian Tempatan Anda
Membuat Sambungan dan Menyambungkan Rpi Tanpa Wayar ke Rangkaian Tempatan Anda
Membuat Sambungan dan Menyambungkan Tanpa Wayar Rpi ke Rangkaian Tempatan Anda
Membuat Sambungan dan Menyambungkan Tanpa Wayar Rpi ke Rangkaian Tempatan Anda
Membuat Sambungan dan Menyambungkan Tanpa Wayar Rpi ke Rangkaian Tempatan Anda
Membuat Sambungan dan Menyambungkan Tanpa Wayar Rpi ke Rangkaian Tempatan Anda

Kami akan menaikkan Rpi -> sambungkan kabel ethernet antara komputer dan Rpi.

  1. Mulakan Putty dan isikan ini:

    • Nama Hos (atau alamat IP): 169.254.10.1
    • Pelabuhan: 22
  2. Terminal muncul dan anda memasukkan nama pengguna & kata laluan lalai:

    • Nama pengguna: pi
    • Kata Laluan: raspberry

Sekarang kami dihubungkan secara tempatan ke rpi, kami ingin Rpi mempunyai sambungan ke wifi anda.

  1. Tambahan: taipkan "sudo raspi-config"
  2. Di sini anda perlu menukar kata laluan untuk pengguna pi (alasan keselamatan)
  3. Selepas itu pergi ke Pilihan Penyetempatan -> Ubah Waktu (pilih yang betul) -> Kemudian pergi ke Negara Wifi -> pilih negara.
  4. Tutup raspi-config dan but semula.
  5. Semasa log masuk, buat sementara diri anda sebagai pengguna root -> sudo -i
  6. Tulis perintah ini untuk menambahkan rangkaian anda ke Rpi (kod di bawah senarai)

    • kata laluan = "kata laluan" (dengan tanda petik)
    • Rangkaian nama = "SSID"
    • Ingatlah untuk menggunakan dua kali ganda >>! Penting!

gema "kata laluan" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

Sekarang but semula

Semasa menyambung semula, periksa ip anda dengan menaip:

ifconfig

dan periksa wlan0, di sebelah inet.

Sekarang kita mempunyai sambungan internet, mari lakukan kemas kini "cepat".

sudo apt kemas kini

sudo apt dist-upgrade -y

Ini mungkin memerlukan sedikit masa.

Langkah 3: Sensor DS18B20 (suhu) - 1-wayar

Sensor DS18B20 (suhu) - 1-wayar
Sensor DS18B20 (suhu) - 1-wayar
Sensor DS18B20 (suhu) - 1-wayar
Sensor DS18B20 (suhu) - 1-wayar

Dengan setiap projek, selalu ada sesuatu yang istimewa yang harus dilakukan atau tidak akan berfungsi sebentar.

Kali ini kita memilikinya dengan sensor suhu DS18B20 yang memerlukan 1 wayar yang saya tidak akan jelaskan mengapa tetapi saya akan menerangkan bagaimana membuatnya berfungsi sekurang-kurangnya.

Untuk ini kita harus kembali ke raspi-config pada Rpi, layar biru yang bagus.

  1. Pergi ke pilihan Interfacing
  2. Pilih 1-Wire dan pilih aktifkan.

Selesai…

Hanya bergurau.

Sekarang kita perlu menyesuaikan /boot/config.txt

sudo nano /boot/config.txt

Tambahkan baris ini di bahagian bawah.

# Aktifkan onewire

dtoverlay = w1-gpio

Sekarang sudo reboot perkara itu dan sekarang kita sudah selesai.

Untuk memeriksa sama ada ia berfungsi, sambungkan sensor ke Rpi kemudian kembali ke terminal dan ketik kod ini (Lihat langkah seterusnya Perkakasan cara menyambungkan sensor suhu).

cd / sys / bus / w1 / devices / w1_bus_master1

ls

Anda harus melihat sesuatu dengan nombor dan huruf dengan warna biru tua di kiri atas, pastikan untuk menulis maklumat ini kemudian apabila kami akan menggunakan kod dari github.

Sekiranya atas sebab tertentu ia tidak berfungsi, periksa pautan ini yang masuk ke dalamnya.

Langkah 4: MCP3008 - Sensing Analog

MCP3008 - Sensing Analog
MCP3008 - Sensing Analog
MCP3008 - Sensing Analog
MCP3008 - Sensing Analog

Semasa kami melakukan perubahan untuk sensor suhu, kami juga perlu melakukan beberapa perubahan untuk sensor lain kerana mereka perlu membaca dalam data analog. Di mana MCP3008 sangat berguna, kita juga perlu menukar antara muka SPI.

sudo raspi-config

Pergi ke Pilihan Antaramuka -> Pilih SPI -> aktifkan.

Kemudian Selesaikan.

Langkah 5: Perkakasan

Kami belum selesai sepenuhnya dengan Rpi tetapi cukup sehingga kita dapat mulai membangun dan menyatukan perkakasan.

Beberapa nasihat adalah memeriksa hubungan anda dengan teliti ketika membangun untuk memastikan anda tidak… meletupkan Rpi.

Selain itu, dalam Skema anda akan melihat beberapa komponen ada padanya hanya sekali walaupun kita akan bekerjasama dengan lebih daripada 1 komponen yang sama. Ini hanya bermaksud bahawa anda harus mengulangi proses membina 1 komponen yang sama. Terdapat 1 pengecualian kecil, sensor mq-x tidak memerlukan penukar tahap tambahan atau MCP3008. Cukup tambahkan kabel hijau tambahan (dalam pdf) ke level converter dan MCP3008.

Pengeditan tambahan: Peminat perlu menggunakan transistor sebagai suis. Saya menggunakan transistor 2n2222A untuk 1 kipas, kerana 2 kipas mungkin beban berat.

Sekiranya anda mempunyai transistor yang dapat menangani arus yang lebih besar dan bagus, lewati bahagian terakhir langkah ini.

Sekiranya anda tidak mempunyai satu seperti saya, maka anda perlu melakukannya seperti ini, 1 kipas = 1 transistor, 2 kipas = 2 transistor, dan sebagainya (setiap kipas itu sendiri transistor + dioda seperti dalam pdf).

Anda juga perlu menambahkan beberapa kod ke app.py di backend_project kemudian di Langkah 7: Git code….

Langkah 6: Membuat Pangkalan Data Mariadb

Membuat Pangkalan Data Mariadb
Membuat Pangkalan Data Mariadb

Sesuai dengan tajuknya, kita akan membuat pangkalan data sehingga kita mempunyai tempat untuk menyimpan data sensor kita.

Perkara pertama, muat turun Mariadb dengan harga Rpi.

sudo apt-get pasang mariadb-server

Selepas pemasangan, mari gunakannya.

root mysql -u

Kata laluan kosong, jadi tidak perlu ditaip. Tekan enter.

Mari buat pengguna sekarang.

BUAT PENGGUNA 'pengguna' @ '%' DIKENALI OLEH 'penggunadb';

MEMBERIKAN SEMUA KEISTIMEWAAN PADA *. * KEPADA 'pengguna' @ '%' DENGAN PILIHAN GRANT;

KEISTIMEWAAN FLUSH;

Tekan Ctrl + C untuk keluar dan mulakan semula perkhidmatan dengan pantas:

perkhidmatan sudo mulakan semula mysql

Log masuk dengan nama pengguna: pengguna & kata laluan: userdb:

mysql -u pengguna -p

Masa untuk membuat pangkalan data sekarang.

BUAT DATABASE projek_db SET KARAKTER DEFAULT utf8;

GUNAKAN projek_db

Buat jadual "historiek" (bermaksud sejarah).

BUAT JADUAL JIKA TIDAK ADA `historiek` (` id` INT BUKAN NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) NOT NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id`)) ENGINE = InnoDB;

Dan voila, pangkalan data dibuat.

Langkah 7: Kod dan Ujian Github

Kod dan Ujian Github
Kod dan Ujian Github

Kami hampir menjelang akhir projek kami.

Sebelum kita mendapatkan kodnya, kita perlu mengimport beberapa modul ke dalam Rpi:

pip3 pasang Flask_MySQL

pip3 memasang flask-socketio

memasang pip3 -U flask-cors

pip3 pasang spidev

Sekarang kita memerlukan kod untuk membuatnya berfungsi, ketik terminal:

git klon

Periksa sama ada folder ada dengan:

ls

Sekarang anda memerlukan 2 terminal sehingga sangat berguna untuk mengklik kanan terminal dan klik sesi pendua:

Pergi ke backend_project dan suhu menggunakan arahan cd.

Sekarang sebelum kita memulakan program untuk tujuan ujian. Adakah anda masih ingat Langkah 3 dengan sensor 1 wayar di mana anda perlu menuliskan beberapa nombor? Jangan risau jika ada, hanya sekejap melihat langkah 3 lagi.

Kami akan menambahkan nombor ini ke kod kerana perlu mengetahui sensor yang betul semasa menggunakannya.

Terminal dengan folder suhu, anda akan menemui app.py. Kami akan membukanya.

sudo nano app.py

Cari fungsi yang disebut "def temperatuur ():", di sana anda harus mengganti "**" dengan nombor yang anda tulis. Dalam kes saya, saya akan mendapatkan baris kod ini (setiap nombor adalah unik).

sensor_file_name = '/ sys / devices / w1_bus_master1 / 28-0316a4be59ff / w1_slave

Masa ujian. Kedua-dua terminal di kedua folder backend_project dan suhu, taip:

python3 app.py

Sekarang ingat langkah 5: perkakasan di mana anda perlu menambahkan kod jika anda menggunakan banyak peminat dan transistor?

Bagus, jika tidak kembali ke langkah 5.

Sekarang kita perlu menambahkan kod seperti yang saya sebutkan pada app.py di backend_project. Untuk menjadikannya lebih mudah, saya membuat contoh ini dalam kod. Setiap baris kod komen yang mempunyai "fan1" di dalamnya, melepaskan baris dan voila, sekarang anda boleh menggunakan 2 peminat.

Sekiranya anda ingin menggunakan lebih daripada 2 peminat sahaja, salin & tampal kod yang sama di bawahnya tetapi dengan nombor yang berbeza. Kelemahan ini adalah lebih banyak kerja peribadi untuk anda dan kurang gpio.pins tersedia. Tidak ada kelebihan untuk ini yang saya tahu.

Langkah 8: Jalankan Kod pada Boot Up

Jalankan Kod semasa Boot Up
Jalankan Kod semasa Boot Up

Kami mahu 2 skrip python ini berjalan pada saat Rpi kita naik dan sekiranya skrip itu hancur, ia harus dimulakan semula dengan sendirinya. Untuk melakukan ini, kami akan membuat 2 perkhidmatan.

Untuk melakukan ini, taip:

sudo nano /etc/systemd/system/temperature.service

Salin dan tampal ini untuk suhu. Perkhidmatan:

[Unit] Penerangan = Perkhidmatan Suhu Selepas = multi-user.target

[Perkhidmatan] Jenis = sederhana

ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py

StandardInput = tty-force

Mulakan semula = pada kegagalan

Mulakan semulaSec = 60an

[Pasang]

WantedBy = multi-user.target

Tutup dan buat lagi tetapi kemudian untuk perkhidmatan backend_project.service:

Teks terbuka pertama:

sudo nano /etc/systemd/system/backend_project.service

Kemudian salin dan tampal sekali lagi:

[Unit] Penerangan = Perkhidmatan backend_project

Selepas = multi-user.target

[Perkhidmatan]

Jenis = sederhana

ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py

StandardInput = tty-force

Mulakan semula = pada kegagalan

Mulakan semulaSec = 60an

[Pasang]

WantedBy = multi-user.target

Simpan dan tutup.

Bahagian terakhir ialah menaip ini:

sudo systemctl daemon-tambah nilai

sudo systemctl aktifkan suhu. servis rebo sudo

Sekarang skrip 2 python kami akan berjalan secara automatik semasa boot.

Langkah 9: Siapkan Laman Web

Semasa anda memuat turun repositori, anda juga semestinya mendapat folder bernama depan. Di sinilah kandungannya untuk laman web.

Mula-mula kita memerlukan apache sebelum kita dapat menggunakan folder. Ikuti panduan di pautan ini untuk apache.

Apabila anda sudah bersedia. Pergi ke tempat folder depan berada:

cd / Dokumen / nmct-s2-projek-1-TheryBrian

Kemudian taip:

sudo mv depan / var / www / html

Setelah selesai, pergi ke folder html, bersiaplah untuk melakukan kerja yang membosankan (salah saya).

cd / var / www / html /

kemudian masuk ke folder depan dan mula memindahkan semuanya ke folder html.

contoh:

sudo mv css / var / www / html

Kemudian padamkan folder depan.

Dan kita selesai dengan segalanya.

Semoga berjaya:).

Langkah 10: Pilihan - Prototaip Miniatur

Pilihan - Prototaip Miniatur
Pilihan - Prototaip Miniatur
Pilihan - Prototaip Miniatur
Pilihan - Prototaip Miniatur

Atas sebab pengujian saya membuat prototaip hanya kotak dengan semua perkakasan di dalamnya sehingga saya dapat melihat apakah setiap perkara berfungsi mengikut pesanan.

Biasanya projek ini akan dilakukan pada skala yang lebih besar. Contohnya: bilik, rumah, kilang, kedai dan sebagainya …

Tetapi jelas sebelum kita mula membuat lubang di dinding (sajak yang bagus). Kami pertama kali ingin melihat apakah ia berfungsi. Anda sebenarnya tidak perlu membuat kotak untuk diuji, tetapi selalu menyenangkan untuk membuat beberapa kerajinan.

Inilah contoh saya.

Disyorkan: