Daftar Isi:
- Perlengkapan
- Langkah 1: Mempersiapkan Rasperry Pi
- Langkah 2: Menyiapkan Kode Visual Studio dan MySQL Workbench
- Langkah 3: Diagram Fritzing
- Langkah 4: Kode di Github
- Langkah 5: Struktur Database yang Dinormalisasi
- Langkah 6: Kasus untuk Distributor Kartu
- Langkah 7: Program Sebagai Layanan
Video: Distributor Kartu Otomatis: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Saya memilih distributor kartu pintar sebagai proyek pertama saya karena saya suka bermain kartu. Hal yang paling saya tidak suka adalah menangani kartu. Anda harus ingat untuk setiap permainan berapa banyak kartu yang didapat setiap orang. Itu menjadi membingungkan ketika Anda tahu banyak permainan kartu. Proyek saya juga akan membantu orang-orang yang memiliki masalah dengan mendistribusikan kartu seperti orang tua dan orang yang menderita Parkinson.
Perlengkapan
- 1 Raspberry Pi (Saya menggunakan Raspberry Pi 4)
- Kartu SD (disarankan 16 GB)
- 1 buah Outbread untuk Raspberry Pi (T-piece)
- 2 papan tempat memotong roti
- 1 Modul catu daya untuk papan tempat memotong roti, 5V dan 3V3
- 1 layar LCD
- 1 Potensiometer
- 1 MPU6050 (akselerometer dan giroskop)
- 1 transistor NPN
- 1 PCF8574N I/O expander
- 1 motor langkah
- 1 papan breakout ULN2003 untuk mengontrol motor stepper
- 1 sensor ultrasonik HC-SR04
- 1 motor DC 5V
- 1 dioda
- 6 470 Ohm resistor
- 4 resistor 10K Ohm
- Kabel listrik untuk menghubungkan semuanya
Berguna untuk dimiliki saat membuat:
- Besi solder
- Pateri
- Dremel atau jig saw (sesuatu untuk memotong kayu dan plastik abs)
Perangkat lunak:
- Dempul
- meja kerja MySQL
- Win32 Disk Imager
- Editor kode (saya sarankan Visual Studio Code)
- WinSCP
- Gambar raspbian
Langkah 1: Mempersiapkan Rasperry Pi
Pertama kita perlu menyiapkan Raspberry Pi sebelum kita melakukan hal lain. Karena semuanya akan berjalan dari Pi jadi ini adalah salah satu bagian terpenting dari distributor kartu.
Instalasi:
Unduh gambar Raspbian dari
- Unduh file ZIP
- Ekstrak file ZIP di mana Anda dapat menemukannya dengan mudah
- Buka Win32 Disk Imager dan pilih gambar yang diekstrak
- Pilih kartu SD di menu tarik-turun dan klik tulis
- Setelah proses penulisan selesai, Anda dapat menutup Win32 Disk Imager
Sekarang kita perlu melakukan beberapa hal lagi sebelum kita dapat terhubung ke Pi
- Arahkan ke folder boot pada kartu SD
- Buka file cmdline.txt
- Tambahkan 'ip=169.254.10.1' di akhir baris yang dipisahkan dengan spasi
- Simpan dan keluar dari file
- Buat di direktori yang sama file bernama ssh dan hapus ekstensi (ini akan mengaktifkan ssh pada boot pertama sehingga kami dapat terhubung ke Pi)
- Keluarkan kartu SD dengan aman dan masukkan ke dalam Pi
Sekarang kita dapat terhubung ke Pi:
- Ambil kabel ethernet dan masukkan salah satu ujungnya ke Pi dan ujung lainnya ke komputer Anda
- Buka Putty
- Masukkan 169.254.10.1 di bidang Nama host
- Pastikan SSH dipilih dan portnya 22
- Klik buka
- Jika Anda mendapatkan peringatan, Anda dapat melanjutkan dan mengabaikannya
- Nama pengguna adalah pi dan kata sandinya adalah raspberry
Konfigurasi dan instalasi perangkat lunak:
Buka raspi-config dengan perintah berikut:
sudo raspi-config
Pilih opsi ke-5: Opsi antarmuka
Aktifkan SPI dan I2C
Nonaktifkan hal-hal berikut di opsi ke-3: Opsi boot:
- Layar percikan
- Pilih cli untuk startup dan bukan desktop
Pengaturan Wi-Fi:
Wifi berguna untuk dengan mudah menavigasi ke situs web. Pastikan Anda menutup kredensial wifi Anda.
Untuk mengatur wifi kita memerlukan beberapa hal:
Tambahkan wifi Anda dengan menggunakan perintah ini dan ubah SSID dan PASSWORD menjadi informasi Anda:
sudo wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Jalankan perintah ini untuk mengkonfigurasi ulang wifi Anda:
sudo wpa_cli
Pilih antarmuka yang benar:
antarmuka wlan0
Konfigurasi ulang antarmuka:
mengkonfigurasi ulang
Periksa apakah konfigurasi ulang berhasil dengan perintah ini:
ip a
Jika Anda melihat alamat IP pada antarmuka wlan0 maka semuanya sudah diatur.
Memperbarui sistem operasi
Perbarui sistem operasi dengan 2 perintah ini:
sudo apt update
sudo apt peningkatan penuh
Menyiapkan MariaDB:
Menginstal Apache Webserver:
sudo apt install apache2 -y
Menginstal server MariaDB:
sudo apt install mariadb-server -y
Sekarang kita perlu me-reboot:
sudo reboot
Disarankan untuk mengamankan instalasi MariaDB. Anda dapat melakukannya dengan menjalankan perintah ini:
sudo mysql_secure_installation
Pertama Anda akan dimintai kata sandi root saat ini tetapi instalasi default tidak memilikinya, jadi tekan enter.
Selanjutnya Anda akan ditanya apakah Anda ingin mengatur kata sandi root, ketik y. Pastikan Anda dapat mengingat kata sandinya!
- Masukkan y untuk menghapus pengguna anonim
- Masukkan y untuk menonaktifkan login root dari jarak jauh
- Masukkan y untuk menghapus database pengujian dan mengaksesnya
- Masukkan y untuk memuat ulang hak istimewa
Instalasi MariaDB Anda harus aman!
Sekarang kita dapat membuat pengguna baru:
Masukkan shell mysql dengan perintah ini:
sudo mysql
Buat user dengan username mysql dan password (your_password) dengan perintah berikut:
buat pengguna mysql@localhost yang diidentifikasi oleh 'your_password';
berikan semua hak istimewa pada *.* ke mysql@localhost;
HAK ISTIMEWA;
Keluar dari shell mysql dengan perintah ini:
keluar;
Paket Python:
Python seharusnya sudah diinstal kecuali Anda memilih versi Lite:
sudo apt install python3-pip
Kami membutuhkan banyak paket Python, Anda dapat menginstal semuanya dengan perintah berikut:
pip3 instal mysql-connector-python flask-socketio flask-cors gevent gevent-websocket
Sekarang kita perlu reboot sekali lagi
sudo reboot
Langkah 2: Menyiapkan Kode Visual Studio dan MySQL Workbench
Menghubungkan ke Pi dengan MySQL Workbench:
Buka MySQL Workbench
Buat koneksi baru ke Pi dengan informasi berikut:
- Nama koneksi: Raspi
- Metode Koneksi: Standar TCP/IP melalui SSH
- SSH Hostname: alamat IP dari Pi
Anda bisa mendapatkan alamat IP dengan perintah ini:
ip a
- Nama pengguna SSH: pi
- Nama Inang MySQL: 127.0.0.1
- Port server MySQL: 3306
- Nama pengguna: mysql
Klik ok dan masukkan kata sandi untuk pengguna pi dan kemudian masukkan kata sandi untuk pengguna mysql.
Menyiapkan Kode Visual Studio:
Buka Kode Visual Studio
Instal 2 ekstensi ini:
- Jarak Jauh - SSH
- Jarak Jauh - SSH: Mengedit File Konfigurasi
Tekan di Visual Studio Code F1 dan ketik ssh
Pilih SSH Jarak Jauh: Tambahkan host SSH baru
Isi ssh pi@IP-address
Pada langkah selanjutnya tekan enter
Koneksi sekarang dibuat ke Pi. Anda dapat terhubung ke Pi dengan menekan F1 dan memilih connect to Remote host.
Masukkan kata sandi sehingga Visual Studio Code memiliki akses ke Pi.
Satu hal lagi: Instal ekstensi Python pada mesin jarak jauh sehingga Anda dapat dengan mudah menjalankan dan men-debug kode.
Langkah 3: Diagram Fritzing
Pada langkah ini saya akan menjelaskan rangkaiannya.
Skema di atas dibuat dengan Fritzing.
motor DC:
Hubungkan GPIO 18 ke dasar kolektor, pin tengah pada transistor npn. Hubungkan ground motor ke kolektor dari transistor dan daya motor ke 5V. Hubungkan ground transistor ke ground line. Hubungkan dioda di penghalang di atas motor sehingga menghalangi arus mengalir langsung ke transistor.
Motor langkah:
Hubungkan motor stepper ke papan kontrol. Di papan kontrol ada di satu sisi pin untuk menghubungkan 5V dan ground. Pin lainnya adalah pin kontrol. Pin ini mengontrol magnet di dalam motor sehingga dapat berputar. Hubungkan pin ini ke GPIO 12, 16, 20 dan 21 pada Raspberry Pi.
HC-SR04 Ultrasonik:
Sensor ini dapat mengukur jarak hingga sekitar 4,5 meter menggunakan suara.
Hubungkan pin VCC ke 5V, pin trigger ke GPIO 25, pin echo dengan resistor 470 Ohm ke GPIO 24 dan ground dengan resistor 470 Ohm ke ground.
MPU6050:
Hubungkan pin VCC ke 3V3, ground ke ground, scl ke scl di Pi dan sda ke sda di Pi. Untuk sensor ini saya menggunakan I2C untuk mengontrolnya. Anda dapat membaca lebih lanjut tentang itu di sini. Berikut ini penjelasan dasarnya: Pi adalah master dan MPU6050 adalah slave. Melalui jalur scl, Pi mengontrol pengaturan waktu dan jalur sda digunakan untuk mengirim data dari master ke slave atau dari slave ke master. Hanya master yang dapat memulai transfer data.
Resistor tergantung cahaya:
Untuk mendapatkan pembacaan yang benar dari LDR saya menggunakan chip MCP3008. Ini memastikan bahwa pembacaan dari ldr stabil dan benar dikonversi dari sinyal analog ke digital.
Hubungkan 3V3 ke satu sisi ldr dengan resistor 10K Ohm di antaranya. Antara ldr dan resistor hubungkan kabel ke saluran 0 dari MCP3008. Kemudian hubungkan sisi lain dari ldr ke tanah.
Layar LCD:
Anda dapat menggunakan layar LCD tanpa PCF8574 tetapi karena pin GPIO pada Pi terbatas, saya menggunakan PCF8574 untuk menyimpan beberapa pin GPIO. Anda juga dapat menggunakan register geser tetapi saya lebih suka PCF8574. Anda dapat mengontrol PCF8574 dengan protokol SMbus tetapi saya menulis kelas saya sendiri untuk mengontrolnya. Potensiometer mengontrol kontras.
Pin layar LCD:
- VSS ke tanah
- VDD ke 5V
- V0 ke pin variabel potensiometer
- RS ke GPIO 13
- R/W ke ground karena saya hanya menulis ke layar dan tidak membaca
- E ke GPIO 19
- DB0 ke P0 dari PCF
- DB1 ke P1
- DB2 ke P2
- DB3 ke P3
- DB4 ke P4
- DB5 ke P5
- DB6 ke P6
- DB7 ke P7
- LED+ ke 5V
- LED- ke tanah
Pin PCF8574:
- A0 ke tanah
- A1 ke tanah
- A2 ke tanah
- Tanah ke tanah
- VCC ke 5V
- SDA ke GPIO 27
- SCL ke GPIO 22 dengan resistor 330 Ohm
Anda mungkin tidak memiliki LED+ dan LED- tergantung pada jenis tampilan yang Anda dapatkan. LED+ dan LED- untuk lampu latar.
Hubungkan sisi positif potensiometer ke 5V dan ground ke ground.
Pastikan Anda menggunakan resistor Pull-up!
Langkah 4: Kode di Github
Anda dapat menemukan semua kode yang diperlukan di Github saya.
Proyek folder1:
Folder ini berisi semua kode untuk backend. Di folder Klasses adalah semua kelas untuk mengontrol perangkat keras.
Repositori folder berisi 2 file: Database.py dan DataRepository.py. Database.py memelihara koneksi ke database dan menangani kueri. DataRepository.py berisi semua kueri yang diperlukan untuk situs.
App.py adalah file utama backend. File ini dimulai secara otomatis ketika Pi boot.
Config.py berisi beberapa pengaturan untuk terhubung ke database. Pastikan Anda mengisi file-file ini dengan informasi Anda sendiri.
Anda dapat menempatkan folder ini di mana saja di direktori home Anda.
Html folder:
Folder ini berisi semua file untuk situs, frontend.
- Folder berisi file untuk tata letak situs.
- Font berisi font yang digunakan di situs.
- Script berisi semua file Javascript untuk membuat situs dinamis
Folder ini harus ada di folder /var/www/html
Anda dapat menyalin file atau folder dengan perintah ini:
sudo mv /path/ke/saat ini/direktori /path/ke/tujuan/direktori
Untuk menavigasi ke jenis situs di browser Anda, alamat IP ditampilkan pada layar LCD.
Langkah 5: Struktur Database yang Dinormalisasi
Pada langkah ini kita akan mengimpor database.
- Hubungkan ke Raspberry Pi Anda dengan MySQL Workbench
- Klik pada Server -> Impor Data
- Pilih Impor File Mandiri
- Di folder Database-export dari Github ada file sql bernama dump_project1.sql
- Jelajahi file ini dan klik mulai impor
Itu dia. Pi sekarang dapat mengakses database jika memiliki informasi yang benar.
Langkah 6: Kasus untuk Distributor Kartu
Pada langkah ini saya akan menjelaskan apa yang saya gunakan untuk kasing dan bagaimana saya memasang semuanya.
Untuk kasus saya menggunakan 2 kotak ABS:
- 265 x 185 x 95 mm
- 171 x 121 x 80 mm
Lubang yang saya buat di kotak
Sebuah lubang untuk layar LCD, 3 lubang untuk kabel power, satu untuk kabel dari motor stepper, motor DC dan sensor ultrasonik.
Di kotak terkecil saya membuat lubang untuk kabel dari komponen dan lubang untuk dilewati kartu. Di bagian atas saya membuat lubang terbesar sehingga Anda dapat menempatkan kartu remi di perangkat.
Saya memasang motor DC dengan braket dan selotip dua sisi. Saya membuat papan kayu untuk meletakkan kartu dengan lubang untuk roda untuk menembak kartu.
Saya memilih plastik ABS karena ringan sehingga motor stepper dapat memutarnya dengan mudah. Kayu bisa sangat berat dan motor stepper bisa bermasalah dengan ini. Untuk memotong lubang saya menggunakan bor dengan mata bor yang dirancang untuk logam dan Dremel. Memotong lubang yang lebih besar membutuhkan lebih banyak pekerjaan dan gergaji jig akan lebih baik.
Langkah 7: Program Sebagai Layanan
Sangat berguna untuk memulai kode setelah Pi di-boot. Untuk itu kami akan melakukan service.
Buat file baru bernama smartcard.service dengan perintah berikut:
sudo nano /etc/systemd/system/smartcard.service
Ini harus masuk ke file:
[Satuan]
Description=Smart card backend After=network.target [Service] ExecStart=/usr/bin/python3 -u app.py WorkingDirectory=/home/pi/project1 StandardOutput=inherit StandardError=inherit Restart=selalu Pengguna=pi [Instal] WantedBy =multi-pengguna.target WorkingDirectory adalah jalur ke folder tempat program berada
Sekarang Anda punya Kartu Pintar Anda sendiri!
Direkomendasikan:
Pemindai Kartu untuk Mesin Kartu Trading: 13 Langkah (dengan Gambar)
Pemindai Kartu untuk Mesin Kartu Trading: Pemindai Kartu untuk Mesin Kartu TradingLog Perubahan dapat ditemukan di langkah terakhir.Latar BelakangSaya menjelaskan motivasi utama proyek saya di Intro Pengumpan Kartu. Tapi singkatnya, anak-anak saya dan saya telah mengumpulkan sejumlah besar Kartu Perdagangan b
Pengumpan Kartu untuk Mesin Kartu Trading: 10 Langkah (dengan Gambar)
Card Feeder untuk Mesin Trading Card: Card Feeder untuk Mesin Trading CardLatar Belakang Ketika saya masih muda, saya mengumpulkan banyak kartu trading, tetapi selama beberapa tahun, hasrat untuk mengoleksi telah menurun. Sementara itu saya punya anak dan perlahan tapi pasti mereka juga mulai
Penyortir Kartu untuk Mesin Kartu Trading (Pembaruan 10-01-2019): 12 Langkah (dengan Gambar)
Card Sorter untuk Mesin Trading Card (Update 2019-01-10): Card Sorter untuk Mesin Trading CardLog Perubahan dapat ditemukan di langkah terakhir.Latar BelakangSaya sudah menjelaskan motivasi proyek saya di artikel Card Feeder. Tapi singkatnya, saya dan anak-anak saya telah mengumpulkan sejumlah besar Kartu Perdagangan
Pengocok Kartu Otomatis: 6 Langkah (dengan Gambar)
Pengocok Kartu Otomatis: Halo! Instruksi ini dibuat untuk memenuhi persyaratan proyek Makecourse di University of South Florida. (www.makecourse.com) Dalam instruksi ini saya akan memandu Anda melalui proses membuat pengocokan kartu otomatis
Geek - Pemegang Kartu Kredit/Kartu Bisnis Dari Hard Drive Laptop Lama: 7 Langkah
Geek - Pemegang Kartu Kredit/Kartu Bisnis Dari Hard Drive Laptop Lama.: Pemegang kartu bisnis/kartu kredit geek-ed. Saya datang dengan ide gila ini ketika hard drive laptop saya mati dan pada dasarnya tidak berguna. Saya telah menyertakan gambar yang sudah selesai di sini