Daftar Isi:
- Langkah 1: Langkah 1: Apa yang Akan Saya Butuhkan?
- Langkah 2: Langkah 2: Membuat Skema Basis Data
- Langkah 3: Langkah 3: Pengkodean
- Langkah 4: Langkah 4: Menempatkan Al Kode di My Raspberry Pi
- Langkah 5: Langkah 5: Membuat Perumahan
- Langkah 6: Langkah 6: Menempatkan Semuanya di Perumahan
Video: Penyortir Kunci: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
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?
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
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
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
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:
Cara Membuat Kode Penyortir Warna di Modkit untuk Vex: 7 Langkah
Cara Membuat Kode Penyortir Warna di Modkit untuk Vex: Hai semuanya,Dalam tutorial ini Anda akan belajar cara membuat kode penyortir bola warna di Modkit untuk VexSemoga Anda berhasil dan menikmati! Tolong pilih saya
Penyortir Warna: 6 Langkah
Penyortir Warna: Tujuan Penyortir Warna ini adalah untuk memindahkan m&m ke tumpukan yang berbeda berdasarkan warnanya
Penyortir Koin Elektronik: 7 Langkah (dengan Gambar)
Penyortir Koin Elektronik: Dahulu kala, ketika masih mungkin untuk pergi ke sekolah, kami datang dengan ide menarik untuk membuat perangkat yang bekerja dengan cara yang cukup sederhana - setelah membuang jumlah uang yang tepat, kami akan mengeluarkan produk tertentu. aku tidak bisa mengungkapkan
Kunci Sepeda Tanpa Kunci: 6 Langkah
Kunci Sepeda Tanpa Kunci: Satu hal yang tidak diketahui banyak orang adalah lebih mudah untuk memilih kunci sepeda daripada yang terlihat. Itulah sebabnya tim kami mengusulkan desain kami untuk kunci-U sepeda berkemampuan RFID. Alih-alih menggunakan kunci mekanis kuno, pengguna cukup memegang
Pengingat kunci! Perangkat Yang Membuat Anda Tidak Kehilangan Kunci!: 3 Langkah (dengan Gambar)
Pengingat kunci! Perangkat yang Membuat Anda Tidak Kehilangan Kunci!: Perangkat ini membantu Anda agar tidak kehilangan kunci! Jika Anda seperti saya maka ketika Anda pulang kerja Anda segera kehilangan kunci Anda setelah membuka kunci pintu Anda dan Anda menunggu sampai hari berikutnya tepat sebelum Anda harus pergi untuk mencarinya. Ya, Anda mungkin memiliki