Daftar Isi:

Penyortir Kunci: 6 Langkah
Penyortir Kunci: 6 Langkah

Video: Penyortir Kunci: 6 Langkah

Video: Penyortir Kunci: 6 Langkah
Video: teknik baru sortir lele❗sortir 1 ton lele mah hanya 1 jam 🤭😁 2024, November
Anonim
Penyortir kunci
Penyortir kunci
Penyortir kunci
Penyortir kunci

Saat ini saya sedang belajar NMCT di Howest. Untuk semester akhir kami, kami harus membuat proyek. Jadi saya membuat Keysorter.

Apa fungsinya?

Kami memiliki banyak kunci mobil di rumah dan semuanya terlihat sama. Jadi saya membuat Keysorter untuk mengatasi masalah ini.

Itu harus memindai kunci melalui RFID dan memberinya tempat di dalam kotak. Jika saya memindai kunci yang sama lagi, itu akan menunjukkan tempat yang ditugaskan sebelumnya. Ada juga tombol untuk menunjukkan mobil yang terakhir dicuci.

Ini juga akan berjalan pada Raspberry Pi yang juga memiliki opsi untuk menambahkan halaman web melalui Flask.

Pada halaman saya harus dapat melihat semua kunci, menambahkan nama ke kunci dan menghapus kunci.

Langkah 1: Langkah 1: Apa yang Akan Saya Butuhkan?

Langkah 1: Apa yang Akan Saya Butuhkan?
Langkah 1: Apa yang Akan Saya Butuhkan?
Langkah 1: Apa yang Akan Saya Butuhkan?
Langkah 1: Apa yang Akan Saya Butuhkan?

Saya mulai dengan membuat daftar komponen yang saya perlukan untuk membuat ini berfungsi.

Komponen:

  • Raspberry pi
  • 2 x Shift register (74hc595)
  • 3 x tombol
  • 9 x led hijau
  • Pemindai RFID (MFRC522)
  • 12 x resistor 220 ohm

Lalu saya memasukkan semua ini ke dalam skema fritzing saya.

Setelah saya ini selesai saya membuatnya dalam kehidupan nyata.

Langkah 2: Langkah 2: Membuat Skema Basis Data

Langkah 2: Membuat Skema Basis Data
Langkah 2: Membuat Skema Basis Data

Untuk menyimpan semua data saya, saya harus membuat database yang dapat berjalan di Pi saya.

Saya membuatnya di MySQL.

Mobil meja:

  • ID mobil
  • identitas pengguna
  • Merek (merek mobil)
  • Jenis
  • Terakhir dicuci
  • Kunci
  • RFID_ID

Langkah 3: Langkah 3: Pengkodean

Langkah 3: Pengkodean
Langkah 3: Pengkodean

Ketika semua ini sudah siap saya bisa mulai coding.

Saya mulai dengan membuat kode untuk sensor saya di Python 3.5.

Untuk mendownload kodenya klik disini.

Gunakan tautan untuk mengkloning proyek.

Langkah 4: Langkah 4: Menempatkan Al Kode di My Raspberry Pi

Menginstal paket

Pertama saya menginstal semua paket yang saya butuhkan untuk membuat ini berfungsi.

me@my-rpi:~ $ sudo apt update

me@my-rpi:~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb server-mysql uwsgi nginx uwsgi-plugin-python3

Lingkungan virtual

me@my-rpi:~ $ python3 -m pip install --upgrade pip setuptools wheel virtualenvme@my-rpi:~ $ mkdir project1 && cd project1 me@my-rpi:~/project1 $ python3 -m venv --system- site-packages env me@my-rpi:~/project1 $ source env/bin/activate (env)me@my-rpi:~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPauth Labu-MySQL mysql-konektor-python passlib

Unggah proyek ke Pi Anda menggunakan pycharm

Buka Pycharm dan buka VCS > Impor dari Kontrol Versi > Github dan klon file github saya.

Letakkan konfigurasi penyebaran ke direktori yang baru saja Anda buat. (/home/saya/proyek1). Tekan terapkan!

Buka pengaturan juru bahasa dan pilih lingkungan virtual yang baru saja Anda buat. (/home/me/project1/env/bin/pyhon)

Periksa apakah pemetaan jalur sudah benar.

Sekarang Anda dapat mengunggah kode ke direktori Anda menggunakan Pycharm.

Basis data

Periksa apakah database sedang berjalan. Anda akan mendapatkan sesuatu seperti ini:

me@my-rpi:~ $ sudo systemctl status mysql● mariadb.service - server database MariaDB Dimuat: dimuat (/lib/systemd/system/mariadb.service; diaktifkan; preset vendor: diaktifkan) Aktif: aktif (berjalan) sejak Matahari 03-06-2018 09:41:18 CEST; 1 hari 4 jam yang lalu PID Utama: 781 (mysqld) Status: "Menerima permintaan SQL Anda sekarang…" Tugas: 28 (batas: 4915) CGroup: /system.slice/mariadb.service 781 /usr/sbin/mysqld

03 Jun 09:41:13 my-rpi systemd[1]: Memulai server database MariaDB… 03 Jun 09:41:15 my-rpi mysqld[781]: 06-03 2018 9:41:15 4144859136 [Catatan] / usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) 03 Juni 09:41:18 my-rpi systemd[1]: Memulai server database MariaDB.

saya@my-rpi:~ $ ss -lt | grep mysql DENGARKAN 0 80 127.0.0.1:mysql *:*

Buat pengguna dan tambahkan database

saya@my-rpi:~ $ sudo mariadb

setelah Anda berada di database lakukan ini.

CREATE USER 'project1-admin'@'localhost' DIIDENTIFIKASI DENGAN 'adminpassword';CREATE USER 'project1-web'@'localhost' DIIDENTIFIKASI DENGAN 'webpassword'; BUAT PENGGUNA 'project1-sensor'@'localhost' DIIDENTIFIKASI DENGAN 'sensorpassword';

BUAT proyek DATABASE1;

HIBAH SEMUA HAK ISTIMEWA PADA project1.* ke 'project1-admin'@'localhost' DENGAN GRANT OPTION; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-sensor'@'localhost'; HAK ISTIMEWA;

CREATE TABLE `user` (`idUser` int(11) NOT NULL, `Password` varchar(45) DEFAULT NULL, PRIMARY KEY (`idUser`)) ENGINE=InnoDB DEFAULT CHARSET=utf8

CREATE TABLE `car` (`idCar` int(11) NOT NULL AUTO_INCREMENT, `idUser` int(11) NOT NULL, `Brand` varchar(45) DEFAULT NULL, `Type` varchar(45) DEFAULT NULL, `LastWashed` datetime DEFAULT NULL, `RFID_Number` varchar(15) DEFAULT NULL, `Key` varchar(5) DEFAULT NULL, PRIMARY KEY (`idCar`, `idUser`), KUNCI `fk_Car_User1_idx` (`idUser`), CONSTRAINT_User `fk_Car_User` FOREIGN KEY (`idUser`) REFERENSI `user` (`idUser`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

Hubungkan database Anda ke Pycharm

Klik pada tab database di sisi kanan. Jika Anda tidak memiliki tab yang terbuka, lakukan ini: Lihat > Alat Windows > Basis Data.

Klik tambahkan koneksi. Pilih Data Source > MySQL (Jika ada tombol download driver tekan saja.)

Pergi ke SSH/SSL dan centang SSH. Isi kredensial Raspberry pi Anda (host/pengguna/kata sandi). Port harus 22 dan jangan lupa periksa kata sandi ingat.

Kembali ke Jenderal. Host harus localhost dan database harus project1. Isi kredensial dari project1-admin dan uji koneksi.

Jika koneksinya OK, buka tab Schemas dan pastikan project1 dicentang.

Periksa apakah database sudah benar

me@my-rpi:~ $ echo 'tampilkan tabel;' | mysql project1 -t -u project1-admin -pMasukkan kata sandi: +---------------------------+ | Tables_in_project1 | +---------------------------+ | sensor | | pengguna | +---------------------------+

File Konfigurasi

Di direktori conf Anda akan menemukan 4 file. Anda harus mengubah nama pengguna menjadi nama pengguna Anda.

Sistemd

Untuk memulai semuanya, Anda harus menjalankan perintah ini.

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-* ● project1- flask.service - instans uWSGI untuk melayani antarmuka web project1 Dimuat: dimuat (/etc/systemd/system/project1-flask.service; dinonaktifkan; preset vendor: diaktifkan) Aktif: aktif (berjalan) sejak Senin-06-04 13: 14:56 CEST; 1 dtk yang lalu PID Utama: 6618 (uwsgi) Tugas: 6 (batas: 4915) CGroup: /system.slice/project1-flask.service 6618 /usr/bin/uwsgi --ini /home/me/project1/conf/ uwsgi-flask.ini 6620 /usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini 6621 /usr/bin/uwsgi --ini /home/me/project1/ conf/uwsgi-flask.ini 6622 /usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini 6623 /usr/bin/uwsgi --ini /home/me/ project1/conf/uwsgi-flask.ini 6624 /usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini

04 Jun 13:14:56 my-rpi uwsgi[6618]: dipetakan 383928 byte (374 KB) untuk 5 core 04 Jun 13:14:56 my-rpi uwsgi[6618]: *** MODE Operasional: preforking ***

● project1-sensor.service - Layanan sensor Proyek 1 Dimuat: dimuat (/etc/systemd/system/project1-sensor.service; dinonaktifkan; preset vendor: diaktifkan) Aktif: aktif (berjalan) sejak Senin-06-04 13: 16:49 CEST; 5 dtk yang lalu PID Utama: 6826 (python) Tugas: 1 (batas: 4915) CGroup: /system.slice/project1-sensor.service 6826 /home/me/project1/env/bin/python /home/me/project1 /sensor/sensor.py

04 Juni 13:16:49 my-rpi systemd[1]: Memulai layanan sensor Proyek 1. 04 Juni 13:16:49 my-rpi python[6826]: DEBUG:_main_:Sensor yang tersimpan process_count=b'217\n' ke database 04 Juni 13:16:55 my-rpi python[6826]: DEBUG:_main_: Sensor process_count=b'218\n' disimpan ke database

nginx

me@my-rpi:~/project1 $ ls -l /etc/nginx/sites-*

/etc/nginx/sites-available: total 4 -rw-r--r-- 1 root root 2416 12 Jul 2017 default

/etc/nginx/sites-enabled: total 0 lrwxrwxrwx 1 root root 34 Jan 18 13:25 default -> /etc/nginx/sites-available/default

Untuk membuat semuanya default, jalankan perintah ini.

me@my-rpi:~/project1 $ sudo cp conf/nginx /etc/nginx/sites-available/project1me@my-rpi:~/project1 $ sudo rm /etc/nginx/sites-enabled/default me@my- rpi:~/project1 $ sudo ln -s /etc/nginx/sites-available/project1 /etc/nginx/sites-enabled/project1 me@my-rpi:~/project1 $ sudo systemctl restart nginx.service

Mulai otomatis

Mari kita pastikan semuanya dimulai secara otomatis.

Buka direktori conf dan jalankan perintah terakhir ini dan selesai!

me@my-rpi:~/project1 $ sudo systemctl aktifkan project1-*

Jika Anda me-reboot Pi Anda, itu akan dimulai secara otomatis.

Langkah 5: Langkah 5: Membuat Perumahan

Langkah 5: Membuat Perumahan
Langkah 5: Membuat Perumahan
Langkah 5: Membuat Perumahan
Langkah 5: Membuat Perumahan
Langkah 5: Membuat Perumahan
Langkah 5: Membuat Perumahan
Langkah 5: Membuat Perumahan
Langkah 5: Membuat Perumahan

Mendaur ulang

Untuk membuat rumah saya, saya menggunakan lemari tua yang akan dibuang ibu saya.

basis

Saya menggergaji 4 papan (34 cm x 26 cm). (jadi itu kubus dari 34 x 34 x 26).

Di bagian bawah saya menambahkan sepotong kayu tipis sebagai bagian bawah.

Papan dengan led

Di tengah saya sudah meletakkan 2 potong kayu kecil di setiap sisi keduanya pada 9 cm dari atas. Ini memegang papan di mana led akan duduk.

Papan dengan led adalah papan kecil (32 cm x 32 cm).

Saya mengebor 9 lubang agar led keluar.

divisi

Saya membuat pembagian dengan bahan yang sama seperti bagian bawah dan papan dengan led.

4 buah masing-masing dengan sayatan 10,3 cm (9 cm x 31 cm). Sekarang saya bisa menyatukan mereka.

Tombol dan pembaca RFID

Saya membuat lubang di bagian bawah untuk meletakkan pembaca RFID dan tombol. Untuk RFID saya meletakkan selembar papan tipis di depannya agar terlihat lebih bersih.

Langkah 6: Langkah 6: Menempatkan Semuanya di Perumahan

Ini tergantung pada bagaimana Anda ingin melakukannya. Saya pribadi menggunakan banyak kabel tanpa menyolder karena saya ingin dapat menggunakan kembali Raspberry Pi saya.

Saya menempelkan led di tempatnya dan menempelkan pembaca RFID dan papan tempat memotong roti ke kasing.

Dan begitulah cara Anda membuat Keysorter!

Direkomendasikan: