Daftar Isi:

Proyek Sensor Udara - Gas: 10 Langkah
Proyek Sensor Udara - Gas: 10 Langkah

Video: Proyek Sensor Udara - Gas: 10 Langkah

Video: Proyek Sensor Udara - Gas: 10 Langkah
Video: Project Pendeteksi Gas Menggunakan Modul Sensor Gas MQ-2 2024, Juli
Anonim
Proyek Sensor Gas TheAir
Proyek Sensor Gas TheAir

Karbon monoksida dan karbon dioksida, juga dikenal sebagai CO dan CO2. Gas yang tidak berwarna, tidak berbau, tidak berasa dan terus terang berbahaya bila dalam konsentrasi tinggi di ruangan tertutup. Jika Anda tinggal misalnya di ruang siswa yang sangat terisolasi, tidak ada aliran udara yang baik dan untuk beberapa alasan, pemanggang roti mengeluarkan suara aneh saat membuat roti panggang. Kemudian Anda mungkin bersentuhan dengan gas-gas ini dan ketika itu terjadi, mari berharap itu hanya berakhir dengan sakit kepala ringan, karena dalam konsentrasi tinggi mungkin melumpuhkan atau bahkan membunuh Anda (walaupun sangat jarang).

Jadi saya memutuskan untuk membuat proyek ini. Ide saya sederhana, gunakan kipas angin untuk membuat aliran udara. Udara yang baik masuk dan udara yang buruk keluar sehingga untuk berbicara. Untuk utilitas tambahan, saya menambahkan sensor suhu ekstra, tombol untuk kipas aktivasi manual dan juga situs web untuk mereka yang suka melihat statistik dan/atau mengaktifkan kipas dari komputer mereka.

Sebagai siswa, orang tua, orang lajang atau makhluk hidup. Ini adalah sesuatu yang biasanya ingin Anda hindari saat tinggal dalam kenyamanan rumah Anda sendiri. Ini membantu mereka yang suka membuat hidup mereka sedikit lebih mudah.

Perlengkapan

  • Raspberry Pi 3+
  • Pengisi daya mini-usb 5V / 2.5A
  • Kartu micro-sd
  • Sensor

    • MQ-7 (CO)
    • MQ-135 (CO2)
    • DS18B20 (suhu)
  • 2x12V DC kipas angin
  • 2x2n2222 transistor
  • Layar LCD 16*2
  • Tekan tombol
  • MCP3008
  • Konverter tingkat logika
  • Kabel Ethernet (untuk alasan pengaturan)

Langkah 1: Pengaturan Raspberry Pi

Pengaturan Raspberry Pi
Pengaturan Raspberry Pi
Pengaturan Raspberry Pi
Pengaturan Raspberry Pi

Sebelum bekerja dengan Rpi, kita memerlukan beberapa perangkat lunak.

  • WinSCP atau FilleZilla (opsional jika Anda ingin mentransfer file dari komputer Anda ke Rpi)
  • Disk Win32 atau Etcher (yang lebih Anda sukai)
  • Putty atau MobaXterm (yang lebih Anda sukai)
  • Gambar raspbian dengan desktop

Sebelum saya mulai, saya ingin menyebutkan bahwa ketika membuat tutorial ini, ketika saya memilih sebuah program dari yang lain, BUKAN berarti saya merekomendasikannya. Misalnya saya suka menggunakan etcher karena lebih user friendly tetapi Win32 memiliki opsi untuk membuat backup. Sekarang di luar sistem saya, mari kita mulai.

Jika Anda sudah memiliki Rpi yang terhubung ke jaringan wifi Anda, lewati ke langkah 3.

Pertama kita akan menggunakan Etcher untuk meletakkan gambar Raspbian di kartu sd Anda. Sekarang sebelum kita mengeluarkan kartu sd, kita akan mengubah beberapa "barang" di file cmdline.txt, yang dapat ditemukan pada gambar. Buka file.txt -> Tambahkan baris ini "ip=169.254.10.1" (tanpa tanda kutip) di akhir baris (semua dalam 1 baris) -> Simpan file

Kedua, buat folder kosong bernama "ssh" di partisi boot (tanpa tanda kutip).

Setelah itu Anda dapat dengan aman mengeluarkan Microsd dan memasukkannya ke dalam Rpi.

Alasan untuk IP statis hard code adalah untuk memudahkan koneksi ke Rpi. Jika karena alasan tertentu Rpi tidak memiliki ip dengan DHCP maka Anda dengan mudah menggunakan ip statis.

Langkah 2: Membuat Koneksi dan Menghubungkan Rpi Wireless ke Jaringan Lokal Anda

Membuat Koneksi dan Menghubungkan Rpi Wireless ke Jaringan Lokal Anda
Membuat Koneksi dan Menghubungkan Rpi Wireless ke Jaringan Lokal Anda
Membuat Koneksi dan Menghubungkan Rpi Wireless ke Jaringan Lokal Anda
Membuat Koneksi dan Menghubungkan Rpi Wireless ke Jaringan Lokal Anda
Membuat Koneksi dan Menghubungkan Rpi Wireless ke Jaringan Lokal Anda
Membuat Koneksi dan Menghubungkan Rpi Wireless ke Jaringan Lokal Anda
Membuat Koneksi dan Menghubungkan Rpi Wireless ke Jaringan Lokal Anda
Membuat Koneksi dan Menghubungkan Rpi Wireless ke Jaringan Lokal Anda

Kita akan mem-boot Rpi -> sambungkan kabel ethernet antara komputer dan Rpi.

  1. Mulai Putty dan isi ini:

    • Nama Host (atau alamat IP): 169.254.10.1
    • Pelabuhan: 22
  2. Terminal muncul dan Anda mengetikkan nama pengguna & kata sandi default:

    • Nama pengguna: pi
    • Kata sandi: raspberry

Sekarang kami terhubung secara lokal ke rpi, kami ingin Rpi memiliki koneksi ke wifi Anda.

  1. Ekstra: ketik "Sudo raspi-config"
  2. Di sini Anda perlu mengubah kata sandi untuk pengguna pi (alasan keamanan)
  3. Setelah itu pergi ke Localization Options -> Change Time (pilih yang benar) -> Lalu pergi ke Wifi Country -> pilih country.
  4. Tutup raspi-config dan reboot.
  5. Saat masuk, buat sementara diri Anda pengguna root -> Sudo -i
  6. Tulis perintah ini untuk menambahkan jaringan Anda ke Rpi (daftar kode di bawah)

    • password = "password" (dengan tanda petik)
    • Nama jaringan = "SSID"
    • Ingatlah untuk menggunakan double >> !Penting!

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

Sekarang reboot lagi

Saat menghubungkan kembali, periksa ip Anda dengan mengetik:

ifconfig

dan periksa wlan0, di sebelah inet.

Sekarang kita memiliki koneksi internet, mari lakukan pembaruan "cepat".

sudo apt update

sudo apt dist-upgrade -y

Ini mungkin memakan waktu.

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

Sensor DS18B20 (suhu) -- 1-kawat
Sensor DS18B20 (suhu) -- 1-kawat
Sensor DS18B20 (suhu) -- 1-kawat
Sensor DS18B20 (suhu) -- 1-kawat

Dengan setiap proyek, akan selalu ada sesuatu yang istimewa yang harus dilakukan atau tidak akan berhasil saat itu.

Kali ini kita memilikinya dengan sensor suhu DS18B20 yang membutuhkan 1-kawat yang tidak akan saya jelaskan mengapa tetapi saya akan menjelaskan bagaimana membuatnya bekerja setidaknya.

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

  1. Buka opsi Antarmuka
  2. Pilih 1-Wire dan pilih aktifkan.

Selesai…

Hanya bercanda.

Sekarang kita perlu menyesuaikan /boot/config.txt

sudo nano /boot/config.txt

Tambahkan baris ini di bagian bawah.

# Aktifkan onewire

dtoverlay=w1-gpio

Sekarang sudo reboot hal itu dan sekarang kita selesai.

Untuk memeriksa apakah berfungsi, sambungkan sensor ke Rpi lalu kembali ke terminal dan ketik kode ini (Lihat langkah berikutnya Perangkat Keras tentang cara menghubungkan sensor suhu).

cd /sys/bus/w1/devices/w1_bus_master1

ls

Anda akan melihat sesuatu dengan angka dan huruf berwarna biru tua di kiri atas, pastikan untuk menulis informasi ini untuk nanti ketika kita akan bekerja dengan kode dari github.

Jika karena alasan tertentu tidak berhasil, periksa tautan ini yang masuk lebih dalam.

Langkah 4: MCP3008 - Penginderaan Analog

MCP3008 - Penginderaan Analog
MCP3008 - Penginderaan Analog
MCP3008 - Penginderaan Analog
MCP3008 - Penginderaan Analog

Saat kami melakukan perubahan untuk sensor suhu, kami juga perlu melakukan beberapa perubahan untuk sensor lainnya karena kami perlu membaca data analog. Di sinilah MCP3008 berguna, kita juga perlu mengubah antarmuka SPI.

sudo raspi-config

Buka Opsi Antarmuka -> Pilih SPI -> aktifkan.

Kemudian Selesai.

Langkah 5: Perangkat Keras

Kami belum sepenuhnya selesai dengan Rpi tetapi cukup sehingga kami dapat mulai membangun dan memasang perangkat keras bersama-sama.

Beberapa saran adalah untuk memeriksa koneksi Anda secara menyeluruh saat membangun untuk memastikan Anda tidak … meledakkan Rpi.

Juga, dalam Skema Anda akan melihat beberapa komponen hanya ada sekali meskipun kita akan bekerja dengan lebih dari 1 komponen yang sama. Itu hanya berarti Anda harus mengulangi proses yang sama untuk membangun 1 komponen itu. Ada 1 pengecualian kecil, sensor mq-x tidak memerlukan konverter level tambahan atau MCP3008. Cukup tambahkan kabel hijau ekstra (dalam pdf) ke konverter level dan MCP3008.

Suntingan tambahan: Kipas perlu menggunakan transistor sebagai sakelar. Saya menggunakan transistor 2n2222A untuk 1 fan, karena 2 fan mungkin akan menjadi beban yang berat.

Jika Anda memiliki transistor yang dapat menangani arus yang lebih besar, lewati bagian terakhir dari langkah ini.

Jika Anda tidak memiliki yang seperti saya, maka Anda harus melakukannya seperti ini, 1 kipas = 1 transistor, 2 kipas = 2 transistor, dan seterusnya (setiap kipas memiliki transistor + dioda sendiri seperti dalam pdf).

Anda juga perlu menambahkan beberapa kode ke app.py di backend_project nanti di Langkah 7: Kode Git….

Langkah 6: Membuat Basis Data Mariadb

Membuat Basis Data Mariadb
Membuat Basis Data Mariadb

Sesuai dengan judulnya, kita akan membuat database sehingga kita memiliki tempat untuk menyimpan data sensor kita.

Pertama-tama, unduh Mariadb di Rpi.

sudo apt-get install mariadb-server

Setelah instalasi, mari kita gunakan.

mysql -u root

Kata sandi kosong, jadi tidak ada yang perlu diketik. Tekan enter.

Mari buat pengguna sekarang.

BUAT PENGGUNA 'user'@'%' DIIDENTIFIKASI OLEH 'userdb';

HIBAH SEMUA HAK ISTIMEWA DI *.* KEPADA 'pengguna'@'%' DENGAN PILIHAN HIBAH;

HAK ISTIMEWA;

Tekan Ctrl + C untuk keluar dan lakukan restart cepat layanan:

layanan sudo mysql restart

Login dengan nama pengguna: pengguna & kata sandi: userdb:

mysql -u pengguna -p

Saatnya membuat database sekarang.

BUAT DATABASE project_db DEFAULT CHARACTER SET utf8;

GUNAKAN project_db

Buat tabel "historiek" (artinya sejarah).

BUAT TABEL JIKA TIDAK ADA `historiek` (`id` INT NOT 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, database dibuat.

Langkah 7: Kode dan Pengujian Github

Kode dan Pengujian Github
Kode dan Pengujian Github

Kami semakin dekat dengan akhir proyek kami.

Sebelum kita mendapatkan kodenya, kita perlu mengimpor beberapa modul ke dalam Rpi:

pip3 menginstal Flask_MySQL

pip3 menginstal flask-socketio

pip3 install -U flask-cors

pip3 instal spidev

Sekarang kita membutuhkan kode untuk membuatnya bekerja, ketik terminal:

git clone

Periksa apakah folder itu ada di sana dengan:

ls

Sekarang Anda akan membutuhkan 2 terminal sehingga mudah untuk mengklik kanan terminal dan klik Duplikat sesi:

Pergi ke backend_project dan temperatur menggunakan perintah cd.

Sekarang sebelum kita memulai program untuk tujuan pengujian. Apakah Anda masih ingat Langkah 3 dengan sensor 1-kawat di mana Anda perlu menuliskan beberapa angka? Jangan khawatir jika sudah, lihat saja langkah 3 lagi.

Kami akan menambahkan angka-angka ini ke kode karena perlu mengetahui sensor yang benar saat menggunakannya.

Terminal dengan folder suhu, Anda akan menemukan app.py. Kami akan membukanya.

sudo nano app.py

Cari fungsi yang disebut "def temperatuur():", di sana Anda harus mengganti "**" dengan angka yang Anda tulis. Dalam kasus saya, saya akan mendapatkannya dengan baris kode ini (setiap nomor unik).

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

Waktu pengujian. Kedua terminal di folder backend_project dan suhu, ketik:

python3 app.py

Sekarang ingat langkah 5: perangkat keras di mana Anda perlu menambahkan kode jika Anda menggunakan banyak kipas dan transistor?

Bagus, jika tidak kembali ke langkah 5.

Sekarang kita perlu menambahkan kode seperti yang saya sebutkan ke app.py di backend_project. Untuk mempermudah, saya membuat contoh ini di kode. Setiap baris kode komentar yang memiliki "fan1" di dalamnya, batalkan komentar pada baris tersebut dan voila, sekarang Anda dapat menggunakan 2 kipas.

Jika Anda ingin menggunakan lebih dari 2 kipas, salin & tempel kode yang sama di bawahnya tetapi dengan nomor yang berbeda. Kerugian dari ini adalah lebih banyak pekerjaan pribadi untuk Anda dan lebih sedikit gpio.pin yang tersedia. Tidak ada keuntungan untuk ini yang saya tahu.

Langkah 8: Jalankan Kode saat Booting

Jalankan Kode saat Booting
Jalankan Kode saat Booting

Kami ingin 2 skrip python ini berjalan saat Rpi kami boot dan jika skrip macet, skrip harus dimulai ulang dengan sendirinya. Untuk melakukan ini kita akan membuat 2 layanan.

Untuk melakukan ini, ketik:

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

Salin dan tempel ini untuk temperature.service:

[Unit]Deskripsi=Layanan Suhu Setelah=multi-pengguna.target

[Layanan] Jenis = sederhana

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

StandarInput=tty-force

Mulai ulang = saat gagal

RestartSec=60s

[Install]

WantedBy=multi-pengguna.target

Tutup dan lakukan lagi tetapi kemudian untuk backend_project.service:

Teks terbuka pertama:

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

Kemudian salin dan tempel lagi:

[Unit]Deskripsi=Layanan proyek_backend

Setelah=multi-pengguna.target

[Melayani]

Jenis = sederhana

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

StandarInput=tty-force

Mulai ulang = saat gagal

RestartSec=60s

[Install]

WantedBy=multi-pengguna.target

Simpan dan tutup.

Bagian terakhir adalah mengetik ini:

sudo systemctl daemon-reload

sudo systemctl aktifkan temperature.service sudo reboot

Sekarang 2 skrip python kami akan berjalan secara otomatis saat boot.

Langkah 9: Siapkan Situs Web

Saat Anda mengunduh repositori, Anda seharusnya juga mendapatkan folder bernama front. Di sinilah konten untuk situs web.

Pertama kita perlu apache sebelum kita dapat menggunakan folder. Ikuti panduan di tautan ini untuk Apache.

Ketika kamu siap. Pergi ke tempat folder depan berada:

cd /Documents/nmct-s2-project-1-TheryBrian

Kemudian ketik:

sudo mv depan /var/www/html

Setelah selesai, buka folder html, bersiaplah untuk beberapa pekerjaan yang membosankan (salah saya).

cd /var/www/html/

lalu masuk ke folder depan dan mulai pindahkan semuanya ke folder html.

contoh:

sudo mv css /var/www/html

Kemudian hapus folder depan.

Dan kita selesai dengan semuanya.

Semoga beruntung:).

Langkah 10: Opsional - Prototipe Miniatur

Opsional - Prototipe Miniatur
Opsional - Prototipe Miniatur
Opsional - Prototipe Miniatur
Opsional - Prototipe Miniatur

Untuk alasan pengujian, saya membuat prototipe hanya sebuah kotak dengan semua perangkat keras di dalamnya sehingga saya dapat melihat apakah semuanya berfungsi sesuai pesanan.

Biasanya proyek ini akan dilakukan dalam skala yang lebih besar. Misalnya: kamar, rumah, pabrik, toko, dan sebagainya…

Tapi jelas sebelum kita mulai membuat lubang di dinding (pantun yang bagus). Pertama-tama kami ingin melihat apakah itu berfungsi. Anda sebenarnya tidak perlu membuat kotak untuk pengujian, tetapi melakukan kerajinan selalu menyenangkan.

Berikut adalah contoh saya.

Direkomendasikan: