Daftar Isi:

Waterdispenser Otomatis untuk Melacak Konsumsi: 6 Langkah
Waterdispenser Otomatis untuk Melacak Konsumsi: 6 Langkah

Video: Waterdispenser Otomatis untuk Melacak Konsumsi: 6 Langkah

Video: Waterdispenser Otomatis untuk Melacak Konsumsi: 6 Langkah
Video: ALAT CANGGIH BIKIN KETAR KETIR DAGANG AIR ISI ULANG 2024, November
Anonim
Waterdispenser Otomatis untuk Melacak Konsumsi
Waterdispenser Otomatis untuk Melacak Konsumsi
Waterdispenser Otomatis untuk Melacak Konsumsi
Waterdispenser Otomatis untuk Melacak Konsumsi

Hai, yang di sana!

Beberapa bulan yang lalu, saya berada di kamar saya memikirkan proyek seperti apa yang ingin saya buat untuk tugas sekolah. Saya ingin membuat sesuatu yang cocok untuk saya dan itu akan menguntungkan saya di masa depan. Tiba-tiba, ibu saya masuk ke kamar dan mulai mengeluh tidak cukup minum air. Saya langsung mendapat pencerahan. Ide datang kepada saya untuk membuat dispenser air otomatis (seperti di bioskop) yang melacak konsumsi air Anda setiap hari.

Dengan Raspberry Pi, beberapa sensor, pompa, dan sedikit pengetahuan, saya mencoba membuatnya sebaik mungkin.

Di akhir semua langkah, Anda akan memiliki dispenser air yang berfungsi yang mengisi botol air Anda dan yang menghubungkan dan berinteraksi dengan Raspberry Pi Anda. Anda tidak hanya dapat melacak konsumsi air berdasarkan persentase, tetapi Anda juga memiliki kemungkinan untuk melihat suhu dan ketinggian air wadah air Anda. Terakhir, Anda dapat memeriksa statistik Anda. Jika ini terdengar menarik bagi Anda, pastikan untuk memeriksanya dan mencobanya sendiri!

Repositori GitHub:

Perlengkapan

Mikrokontroler

Raspberry Pi 4

Sensor dan modul

Saya menggunakan 4 sensor:

2xHC-SR04Sensor Ultrasonik

Sensor ultrasonik mengukur jarak dengan menggunakan gelombang ultrasonik. Kepala sensor memancarkan gelombang ultrasonik dan menerima gelombang yang dipantulkan kembali dari target. Sensor Ultrasonik mengukur jarak ke target dengan mengukur waktu antara emisi dan penerimaan. Saya menggunakan dua dari mereka untuk memeriksa apakah ada botol di dekatnya dan untuk mengukur jarak ke air di dalam tangki.

Lembaran data

1x DS18B20 Sensor Suhu

DS18B20 adalah sensor Suhu 1-kawat yang dapat diprogram dari maksim terintegrasi. Ini banyak digunakan untuk mengukur suhu di lingkungan yang keras seperti dalam larutan kimia, tambang atau tanah dll. Saya menggunakannya untuk mengukur suhu air tangki air.

Lembaran data

1x RC522 Modul RFID

RC522 adalah modul RFID 13,56MHz yang didasarkan pada pengontrol MFRC522 dari semikonduktor NXP. Modul dapat mendukung I2C, SPI dan UART dan biasanya dikirimkan dengan kartu RFID dan key fob. Biasanya digunakan dalam sistem kehadiran dan aplikasi identifikasi orang/objek lainnya. Dalam proyek ini, digunakan untuk sistem identifikasi/login.

Lembaran data

Dan 2 aktuator:

1x Pompa Peristaltik 12-24V

Saya menggunakan pompa peristaltik untuk mengalirkan air dari tangki ke botol air. Sebagian besar pompa terlalu lambat, jadi saya memilih versi 24V yang saya nyalakan dengan adaptor daya 24V.

1x Layar LCD

LCD digunakan untuk menampilkan alamat IP dan pesan penting. Liquid-crystal display (LCD) adalah layar panel datar atau perangkat optik termodulasi elektronik lainnya yang menggunakan sifat modulasi cahaya dari kristal cair yang dikombinasikan dengan polarizer.

Lembaran data

Selubung

Berbicara tentang casing, saya melakukan DIY dengan persediaan dari Home depot (dalam kasus saya Brico di Belgia). Saya menggunakan kayu lapis yang saya potong dengan ukuran yang tepat. Saya akan berbicara tentang bagaimana saya membuat kasus saya di langkah selanjutnya, tetapi inilah hal-hal yang Anda perlukan:

  • 3x papan kayu lapis
  • 1x corong kecil
  • 1x Tangki air (Anda dapat memilih jumlah yang Anda inginkan, saya memilih 10L)
  • 1x baki tetes

Anda dapat menemukan semua bahan dan harga di BOM terlampir.

Langkah 1: Menghubungkan Semua Elektronik

Menghubungkan Semua Elektronik
Menghubungkan Semua Elektronik
Menghubungkan Semua Elektronik
Menghubungkan Semua Elektronik

Sekarang kita telah merangkum semua elektronik, saatnya untuk menghubungkannya. Saya membuat dua sirkuit Fritzing, satu papan tempat memotong roti dan satu skema, untuk menunjukkan kepada Anda bagaimana dan di mana semua elektronik harus dihubungkan. Anda dapat menemukan tautan unduhan Fritzing di sini: https://fritzing.org/download/. Seperti disebutkan sebelumnya, saya menggunakan Raspberry Pi dan menghubungkan pemindai RFID, dua sensor ultrasonik, satu sensor suhu, LCD, dan pompa peristaltik untuk air.

Saya melampirkan dua sirkuit dalam PDF, jika Anda ingin melihatnya lebih dekat.

Langkah 2: Menyiapkan Raspberry Pi

Kami akan menggunakan Raspberry Pi kami untuk menjalankan dan mengontrol semuanya: backend, frontend, dan database.

Raspberry Pi tidak berjalan secara otomatis. Kita harus melalui beberapa langkah untuk mulai menggunakannya.

Langkah 1: Raspbian

Jika Anda menggunakan Raspberry Pi baru, Anda memerlukan raspbian. Link download dan tutorialnya bisa dilihat disini.

Langkah 2: Menulis gambar ke SD

Sekarang setelah Anda memiliki gambar Raspbian, Anda memerlukan perangkat lunak penulisan gambar (saya sarankan win32diskimager) untuk menulis file gambar ke kartu SD. Tutorial lengkapnya bisa dilihat di sini.

Langkah 3: Masuk ke Raspberry Pi

Buka "Powershell" dan ketik "ssh [email protected]". Jika semuanya berjalan dengan baik, mereka akan meminta kata sandi Anda (kata sandi default selalu raspberry). Biasanya, ini akan membuat Anda masuk ke Raspberry Pi. Sekarang kita perlu membuat beberapa perubahan pada pengaturan kita. Ketik sudo raspi-config di terminal dan tekan enter. Arahkan ke opsi pelokalan > ubah zona waktu dan atur ke zona waktu Anda. Anda juga harus mengubah negara wi-fi Anda ke lokasi Anda sendiri. Terakhir, buka opsi antarmuka dan aktifkan SPI, I2C, dan 1-wire. Ini penting untuk menggunakan sensor dengan benar.

Langkah 4: Menyiapkan Koneksi Internet

Kami akan menggunakan jaringan WiFi. Anda dapat menambahkan jaringan rumah Anda melalui:

wpa_passphrase "Jaringan Anda" "SSID Anda" >> /etc/wpa_supplicant/wpa_supplicant.conf

Anda harus me-reboot Pi Anda untuk membuat koneksi. Untuk memeriksa apakah berhasil, Anda dapat menggunakan ifconfig untuk memeriksa apakah ada alamat IP.

Langkah 5: Menyiapkan server web dan Database

Pertama, sebaiknya perbarui dan perbarui sistem dengan urutan perintah berikut:

  1. sudo apt dist-upgrade --auto-remove -y
  2. sudo apt upgrade
  3. sudo apt update
  4. sudo apt autoremove

Setelah ini selesai, kita akan membutuhkan paket-paket berikut untuk server web dan database kita:

Apache

sudo apt install apache2 -y

PHP

sudo apt install php

sudo apt install phpMyAdmin -y

Jangan lupa untuk mengatur kata sandi MySQL yang aman, ketika diminta untuk mengatur kata sandi.

MariaDB

sudo apt install mariadb-server mariadb-client -y

sudo apt install php-mysql -y

sudo systemctl restart Apache2.service

Langkah 6: Menginstal pustaka Python

Untuk backend, kita membutuhkan beberapa library untuk Python. Kami akan menginstal ini menggunakan pip3, karena kami menggunakan python3.

pip3 instal mysql-connector-python

pip3 menginstal flask-socketio

pip3 menginstal flask-cors

pip3 menginstal gevent

pip3 instal gevent-websocket

sudo apt install python3-mysql.connector -y

pip3 instal mfrc522! (kita akan membutuhkan ini untuk menggunakan pemindai RFID)

Langkah 7: Mempersiapkan Kode Visual Studio

Untuk menjalankan kode, saya sarankan menggunakan Visual Studio Code untuk menghubungkan Raspberry Pi Anda. Tautan unduhan untuk menginstal VSC dapat ditemukan di sini.

Jika Anda belum menginstal Remote Development menggunakan SSH, Anda dapat menemukan langkah-langkah untuk melakukannya di sini.

Langkah 3: Membuat Basis Data

Membuat Basis Data
Membuat Basis Data

Kami akan menyimpan semua data sensor dan data pengguna kami dalam database.

Database saya terdiri dari 5 tabel:

Perangkat

Perangkat Tabel memiliki DeviceID, yang merujuk ke perangkat itu sendiri. DeviceName memberikan nama perangkat, dalam hal ini sensor ultrasonik, sensor suhu, … DeviceType memberikan jenis perangkat (sensor atau aktuator).

Sejarah

Tabel Sejarah berisi semua sejarah sensor, bersama dengan tanggal (HistoryDate) sejarah ditambahkan dan nilai momen dalam sejarah. Ini juga memiliki dua Kunci Asing:

  • DeviceID, untuk menautkan log tertentu ke Perangkat
  • UserID, untuk menautkan pengguna tertentu ke log (ini karena kami menggunakan RFID, dan kami ingin menambahkan log riwayat ke satu pengguna tertentu)

Pengguna

Tabel Pengguna digunakan untuk membuat Sistem Login Pengguna dengan pemindai RFID. Ini terdiri dari Nickname, FirstName, LastName, Password dan RFID (ini adalah nomor RFID dari sebuah tag). Setiap pengguna ditautkan ke Container (tangki air) dan juga membawa ContainerID sebagai Foreign Key.

Wadah

Table Container terdiri dari semua Container yang berbeda. Ini memiliki ID, ContainerLocation (ini bisa berupa perusahaan, rumah, atau apa pun). Terakhir, ia memiliki MaxLevel yang berarti volume maksimum yang dimiliki wadah.

Pengaturan

Pengaturan Tabel memiliki ID Pengaturan, dan melacak DailyGoal setiap pengguna + tanggal DailyGoal ditambahkan oleh pengguna. Ini menjelaskan UserID Kunci Asing.

Dump database dapat ditemukan di repositori GitHub saya di bawah Database.

Langkah 4: Menyiapkan Backend

Tidak ada proyek tanpa backend yang berfungsi.

Backend terdiri dari 4 hal yang berbeda:

pembantu

Helper adalah semua kelas yang digunakan untuk sensor dan aktuator yang berbeda. Ada pembantu untuk sensor suhu (DS18B20), untuk sensor ultrasonik (HCSR05) untuk dapat mengukur jarak dan untuk LCD untuk dapat menulis pesan ke layar.

tempat penyimpanan

Di folder repositori, Anda akan menemukan 2 file Python:

  • Database.py yang merupakan pembantu untuk mengeluarkan baris dari database Anda. Itu membuat lebih mudah untuk mengeksekusi dan membaca database.
  • DataRepository.py yang berisi semua kueri SQL, yang digunakan dalam kode utama (app.py). Mereka digunakan untuk mendapatkan, memperbarui atau menghapus data dari database.

app.py

Ini adalah kode backend utama proyek. Itu melakukan pengaturan dengan mendefinisikan semua pin dan mode dan berisi kode untuk membuat pompa bekerja, mendapatkan suhu, mendapatkan pengguna dan sebagainya. Ini juga berisi rute yang digunakan untuk mengambil data dari Database dan semua socketio.on. Untuk setiap halaman HTML adalah socketio.on yang berbeda untuk memastikan setiap fungsi bekerja pada waktu yang tepat.

config.py

Kami memiliki satu file tersisa: config.py. Ini adalah file dengan opsi konfigurasi untuk terhubung dengan Database Anda. Jangan lupa untuk mengatur kredensial Database Anda.

Backend dapat ditemukan di repositori saya di bawah Backend.

Langkah 5: Menyiapkan Frontend

Menyiapkan Frontend
Menyiapkan Frontend
Menyiapkan Frontend
Menyiapkan Frontend

Untuk Frontend, saya mulai dengan membuat desain seperti apa tampilan server web saya di AdobeXD. Saya menggunakan warna di Logo saya, yaitu oranye dan 2 warna biru yang berbeda. Saya mencoba untuk menjaga desain sesederhana mungkin dan membuat tetesan air yang menunjukkan persentase sejauh mana Anda telah mencapai tujuan Anda hari itu.

Di repositori GitHub saya, Anda akan menemukan Frontend saya di bawah Code > Frontend. Penting bahwa Anda menempelkan ini di folder /var/html Raspberry Pi Anda agar dapat diakses dari server web.

Ini terdiri dari beberapa file HTML, yang mengarah ke halaman yang berbeda. Anda juga akan menemukan screen.css saya dengan semua CSS yang Anda perlukan agar terlihat seperti proyek saya. Terakhir, Anda akan memiliki file JavaScript yang berbeda di bawah skrip. Skrip ini berkomunikasi dengan backend saya untuk menampilkan data dari Database atau backend saya.

Backend dapat ditemukan di repositori saya di bawah Frontend.

Langkah 6: Membuat Casing

Membuat Casing
Membuat Casing
Membuat Casing
Membuat Casing
Membuat Casing
Membuat Casing

Jika kita berbicara tentang kasus saya, ada dua bagian utama:

casing luar

Saya membangun kasing dari awal. Saya menggunakan papan kayu lapis dan menggergajinya dalam ukuran yang benar. Saya memasang semua papan bersama-sama dan mengebor lubang untuk LCD, tombol, sensor ultrasonik untuk mendeteksi apakah ada botol air dan corong untuk mendistribusikan air. Saya membagi kasing saya menjadi beberapa bagian untuk memisahkan air dan barang elektronik dan saya menggunakan baki kabel untuk melindungi kabel dari kebocoran air. Dalam video terlampir, Anda dapat melihat sebagian besar aspek casing saya dan bagaimana saya membuatnya. Saya juga mencetak tombol 3D, yang direkatkan ke tombol normal. Akhirnya, saya menggunakan nampan tetes untuk menampung semua air yang tumpah. Saya juga menggunakan engsel untuk dapat membuka dan menutup panel samping untuk melihat barang elektronik saya. Anda selalu dapat menggunakan dispenser bekas atau Anda juga dapat menggunakan bahan lain.

Untuk pengukuran yang tepat dari bangunan saya, saya melampirkan PDF dengan semua ukuran pelat yang digunakan dalam kasing.

Tangki air

Tangki air bukanlah pekerjaan yang mudah. Saya mendapat tangki air dengan lubang di bagian bawah, jadi saya harus merekatkannya untuk menghentikan kebocoran. Anda memerlukan empat lubang: satu untuk sensor suhu, satu untuk tabung pompa Anda. satu untuk tabung untuk mengisi ulang tangki dan satu untuk sensor ultrasonik. Untuk yang terakhir ini, saya mencetak kasing 3D, yang dapat ditemukan di sini. Ini memberi sensor lebih banyak perlindungan terhadap air. Saya kemudian mengebor persegi panjang di bagian atas tangki, untuk mengistirahatkan sensor.

Direkomendasikan: