Isi kandungan:
- Langkah 1: Langkah 1: Apa yang Saya Perlu?
- Langkah 2: Langkah 2: Membuat Skema Pangkalan Data
- Langkah 3: Langkah 3: Pengekodan
- Langkah 4: Langkah 4: Menempatkan Al Code pada My Raspberry Pi
- Langkah 5: Langkah 5: Membuat Perumahan
- Langkah 6: Langkah 6: Meletakkan Segala-galanya di Perumahan
Video: Keysorter: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Saya sedang belajar NMCT di Howest. Untuk semester akhir kami terpaksa membuat projek. Oleh itu, saya membuat Keysorter.
Apa yang dilakukannya?
Kami mempunyai banyak kunci kereta di rumah dan semuanya sama. Oleh itu, saya membuat Keysorter untuk menyelesaikan masalah ini.
Ia harus mengimbas kunci melalui RFID dan memberikannya tempat di dalam kotak. Sekiranya saya mengimbas kunci yang sama sekali lagi, ia akan menunjukkan tempatnya yang telah ditetapkan sebelumnya. Terdapat juga butang untuk menunjukkan kereta yang dicuci terakhir.
Ini akan dijalankan pada Raspberry Pi yang juga mempunyai pilihan untuk menambah halaman web melalui Flask.
Di halaman saya seharusnya dapat melihat semua kunci, menambah nama pada kunci dan mengeluarkan kunci.
Langkah 1: Langkah 1: Apa yang Saya Perlu?
Saya mulakan dengan membuat senarai komponen yang saya perlukan untuk menjadikan perkara ini berfungsi.
Komponen:
- Pai raspberi
- 2 x daftar Shift (74hc595)
- Butang 3 x
- 9 x dipimpin hijau
- Pengimbas RFID (MFRC522)
- 12 x perintang 220 ohm
Kemudian saya memasukkan semua ini ke dalam skema saya.
Setelah saya selesai, saya berjaya dalam kehidupan sebenar.
Langkah 2: Langkah 2: Membuat Skema Pangkalan Data
Untuk menyimpan data saya, saya terpaksa membuat pangkalan data yang boleh dijalankan pada Pi saya.
Saya berjaya di Mysql.
Kereta meja:
- ID kereta
- ID Pengguna
- Jenama (jenama kereta)
- Jenis
- Terakhir dicuci
- Kunci
- RFID_ID
Langkah 3: Langkah 3: Pengekodan
Apabila semua ini sudah siap, saya dapat memulakan pengekodan.
Saya mulakan dengan membuat kod untuk sensor saya di Python 3.5.
Untuk memuat turun kod klik di sini.
Gunakan pautan untuk mengklon projek.
Langkah 4: Langkah 4: Menempatkan Al Code pada My Raspberry Pi
Memasang pakej
Mula-mula saya memasang pakej yang saya perlukan untuk menjayakannya.
saya @ my-rpi: ~ $ sudo apt kemas kini
saya @ my-rpi: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Persekitaran maya
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- pakej laman web 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 Flask-MySQL mysql-connector-python passlib
Muat naik projek ke Pi anda menggunakan pycharm
Buka Pycharm dan pergi ke VCS> Import dari Versi Kawalan> Github dan klon fail github saya.
Masukkan konfigurasi penyebaran ke direktori yang baru anda buat. (/ rumah / saya / projek1). Tekan terpakai!
Pergi ke tetapan jurubahasa dan pilih persekitaran maya yang baru anda buat. (/ rumah / saya / projek1 / env / bin / pyhon)
Periksa sama ada pemetaan laluan betul.
Sekarang anda boleh memuat naik kod ke direktori anda menggunakan Pycharm.
Pangkalan data
Periksa sama ada pangkalan data berjalan. Anda harus mendapatkan sesuatu seperti ini:
me @ my-rpi: ~ $ sudo systemctl status mysql ● mariadb.service - Pelayan pangkalan data MariaDB Dimuat: dimuat (/lib/systemd/system/mariadb.service; diaktifkan; pratetap vendor: diaktifkan) Aktif: aktif (berjalan) sejak Sun 2018-06-03 09:41:18 CEST; 1 hari 4 jam yang lalu PID Utama: 781 (mysqld) Status: "Mengambil permintaan SQL anda sekarang …" Tugas: 28 (had: 4915) Kumpulan Kumpulan: /system.slice/mariadb.service └─781 / usr / sbin / mysqld
Jun 03 09:41:13 my-rpi systemd [1]: Memulakan pelayan pangkalan data MariaDB… Jun 03 09:41:15 my-rpi mysqld [781]: 2018-06-03 9:41:15 4144859136 [Catatan] / usr / sbin / mysqld (mysqld 10.1.26-MariaDB-0 + deb9u1) Jun 03 09:41:18 my-rpi systemd [1]: Memulakan pelayan pangkalan data MariaDB.
saya @ my-rpi: ~ $ ss -lt | grep mysql DAFTAR 0 80 127.0.0.1:mysql *: *
Buat pengguna dan tambah pangkalan data
saya @ my-rpi: ~ $ sudo mariadb
setelah anda berada di pangkalan data, lakukan ini.
BUAT PENGGUNA 'project1-admin' @ 'localhost' DIDENTITIKAN OLEH 'adminpassword'; BUAT PENGGUNA 'project1-web' @ 'localhost' DIKENALI oleh 'webpassword'; BUAT PENGGUNA 'project1-sensor' @ 'localhost' DIKENALI OLEH 'sensorpassword';
BUAT projek DATABASE1;
MEMBERIKAN SEMUA KEISTIMEWAAN PADA projek1. * Kepada 'project1-admin' @ 'localhost' DENGAN PILIHAN GRANT; GRANT SELECT, INSERT, UPDATE, DELETE ON project1. * TO 'project1-web' @ 'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project1. * TO 'project1-sensor' @ 'localhost'; KEISTIMEWAAN FLUSH;
BUAT JADUAL `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`), KEY `fk_Car_User1_idx` (` idUser`), CONSTRAIN KUNCI ASING (`idUser`) RUJUKAN` user` (`idUser`) PADA HAPUS TIADA TINDAKAN PADA KEMASKINI TIADA TINDAKAN) ENGINE = InnoDB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8
Sambungkan pangkalan data anda ke Pycharm
Klik pada tab pangkalan data di sebelah kanan. Sekiranya tab tidak terbuka, lakukan ini: Lihat> Alat Windows> Pangkalan Data.
Klik tambah sambungan. Pilih Sumber Data> MySQL (Sekiranya terdapat pemacu muat turun butang tekan.)
Pergi ke SSH / SSL dan periksa SSH. Isi kelayakan Raspberry pi anda (hos / pengguna / kata laluan). Port mestilah 22 dan jangan lupa untuk memeriksa kata laluan ingat.
Kembali kepada Jeneral. Host mestilah localhost dan pangkalan data mestilah projek1. Isi kelayakan dari project1-admin dan uji sambungannya.
Sekiranya sambungannya OK maka pergi ke tab Skemas dan pastikan projek1 diperiksa.
Periksa sama ada pangkalan data betul
me @ my-rpi: ~ $ echo 'menunjukkan jadual;' | mysql project1 -t -u project1-admin -pMasukkan kata laluan: + --------------------------- + | Jadual_dalam_projek1 | + --------------------------- + | sensor | | pengguna | + --------------------------- +
Fail Konfigurasi
Di conf direktori anda akan menemui 4 fail. Anda harus menukar nama pengguna menjadi nama pengguna anda.
Sistemd
Untuk memulakan semua, anda harus melaksanakan perintah ini.
saya @ 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 projek1- * ● projek1- flask.service - contoh uWSGI untuk melayani antara muka web projek1 Dimuat: dimuat (/etc/systemd/system/project1-flask.service; disable; vendor preset: enabled) Aktif: aktif (berjalan) sejak Isnin 2018-06-04 13: 14:56 CEST; 1s lalu PID Utama: 6618 (uwsgi) Tugas: 6 (had: 4915) Kumpulan Kumpulan: /system.slice/project1-flask.service ├─6618 / usr / bin / uwsgi --ini / rumah / saya / projek1 / conf / uwsgi-flask.ini ├─6620 / usr / bin / uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini ├─6621 / usr / bin / uwsgi --ini / rumah / saya / projek1 / conf / uwsgi-flask.ini ├─6622 / usr / bin / uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini ├─6623 / usr / bin / uwsgi --ini / rumah / saya / projek1 / conf / uwsgi-flask.ini └─6624 / usr / bin / uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini
Jun 04 13:14:56 my-rpi uwsgi [6618]: dipetakan 383928 bait (374 KB) untuk 5 teras 04 Jun 13:14:56 my-rpi uwsgi [6618]: *** MODUL Operasi: preforking ***
● projek1-sensor.service - Perkhidmatan sensor projek 1 Dimuat: dimuat (/etc/systemd/system/project1-sensor.service; disable; vendor preset: enabled) Aktif: aktif (berjalan) sejak Isnin 2018-06-04 13: 16:49 CEST; 5s lalu PID Utama: 6826 (python) Tugas: 1 (had: 4915) Kumpulan Kumpulan: /system.slice/project1-sensor.service └─6826 / home / me / project1 / env / bin / python / home / me / project1 /sensor/sensor.py
04 Jun 13:16:49 my-rpi systemd [1]: Memulakan perkhidmatan sensor Projek 1. Jun 04 13:16:49 my-rpi python [6826]: DEBUG: _ main _: Proses sensor tersimpan_count = b'217 / n 'ke pangkalan data 04 Jun 13:16:55 my-rpi python [6826]: DEBUG: _ main_: Proses sensor disimpan_kiraan = b'218 / n 'ke pangkalan data
nginx
saya @ my-rpi: ~ / projek1 $ ls -l / etc / nginx / laman web- *
/ etc / nginx / sites-available: total 4 -rw-r - r-- 1 root root 2416 12 Jul 2017 lalai
/ etc / nginx / sites-enabled: total 0 lrwxrwxrwx 1 root root 34 Jan 18 13:25 default -> / etc / nginx / sites-available / default
Untuk menjadikan semuanya lalai melaksanakan perintah ini.
saya @ my-rpi: ~ / projek1 $ 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 mulakan semula nginx.service
Bermula secara automatik
Mari pastikan semuanya bermula secara automatik.
Pergi ke direktori conf dan laksanakan perintah akhir ini dan anda sudah selesai!
saya @ my-rpi: ~ / projek1 $ sudo systemctl aktifkan projek1- *
Sekiranya anda menghidupkan semula Pi anda, ia akan bermula secara automatik.
Langkah 5: Langkah 5: Membuat Perumahan
Kitar semula
Untuk membuat kediaman saya, saya menggunakan almari lama yang akan ditinggalkan oleh ibu saya.
asas
Saya menggergaji 4 papan (34 cm x 26 cm). (jadi itu adalah kubus dari 34 x 34 x 26).
Di bahagian bawah saya menambah sekeping kayu nipis sebagai bahagian bawah.
Papan dengan led
Di tengah-tengah saya telah meletakkan 2 kepingan kayu kecil di setiap sisi pada jarak 9 cm dari atas. Ini memegang papan tempat pemimpin akan duduk.
Papan dengan led adalah papan kecil (32 cm x 32 cm).
Saya menggerudi 9 lubang untuk keluar dari led.
pembahagian
Saya membuat bahagian dengan bahan yang sama dengan bahagian bawah dan papan dengan yang dipimpin.
4 keping setiap satu dengan sayatan pada 10.3 cm (9 cm x 31 cm). Sekarang saya dapat mengumpulkannya.
Butang dan pembaca RFID
Saya membuat lubang di pangkalan untuk meletakkan pembaca dan butang RFID saya. Untuk RFID saya meletakkan sekeping papan nipis di hadapannya agar kelihatan lebih bersih.
Langkah 6: Langkah 6: Meletakkan Segala-galanya di Perumahan
Ini bergantung pada bagaimana anda mahu melakukannya. Saya secara peribadi menggunakan banyak kabel tanpa pematerian kerana saya ingin menggunakan semula Raspberry Pi saya.
Saya menempelkan plumbum di tempatnya dan mengetuk pembaca RFID dan papan roti ke kotak itu.
Dan itulah cara anda membuat Keysorter!
Disyorkan:
Sistem Makluman Tempat Letak Balik Kereta Arduino - Langkah demi Langkah: 4 Langkah
Sistem Makluman Tempat Letak Balik Kereta Arduino | Langkah demi Langkah: Dalam projek ini, saya akan merancang Litar Sensor Tempat Letak Kereta Berbalik Arduino yang ringkas menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem amaran Car Reverse berasaskan Arduino ini dapat digunakan untuk Navigasi Autonomi, Robot Ranging dan rangkaian lain
Langkah demi Langkah Pembinaan PC: 9 Langkah
Langkah demi Langkah Pembinaan PC: Persediaan: Perkakasan: MotherboardCPU & CPU cooler PSU (Unit bekalan kuasa) Penyimpanan (HDD / SSD) RAMGPU (tidak diperlukan) Alat kes: Pemutar skru Gelang ESD / tampal matsthermal dengan aplikator
Tiga Litar Pembesar Suara -- Tutorial Langkah demi Langkah: 3 Langkah
Tiga Litar Pembesar Suara || Tutorial Langkah-demi-Langkah: Loudspeaker Circuit menguatkan isyarat audio yang diterima dari persekitaran ke MIC dan menghantarnya ke Speaker dari tempat audio diperkuat dihasilkan. Di sini, saya akan menunjukkan kepada anda tiga cara berbeza untuk membuat Loudspeaker Circuit ini menggunakan:
Pendidikan Langkah demi Langkah dalam Robotik Dengan Kit: 6 Langkah
Pendidikan Langkah-demi-Langkah dalam Robotik Dengan Kit: Setelah beberapa bulan membina robot saya sendiri (sila rujuk semua ini), dan setelah dua kali bahagian gagal, saya memutuskan untuk mengambil langkah mundur dan memikirkan semula strategi dan arahan. Pengalaman selama beberapa bulan kadang-kadang sangat bermanfaat, dan
Pengangkatan Akustik Dengan Arduino Uno Langkah demi Langkah (8-langkah): 8 Langkah
Acoustic Levitation With Arduino Uno Step-by Step (8-step): transduser suara ultrasonik L298N Dc power adaptor wanita dengan pin dc lelaki Arduino UNOBreadboardBagaimana ini berfungsi: Pertama, anda memuat naik kod ke Arduino Uno (ia adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk menukar kod (C ++)