Daftar Isi:

Distributor Kartu Otomatis: 7 Langkah
Distributor Kartu Otomatis: 7 Langkah

Video: Distributor Kartu Otomatis: 7 Langkah

Video: Distributor Kartu Otomatis: 7 Langkah
Video: MEMBUAT LAPORAN STOK BARANG MASUK & KELUAR OTOMATIS DI MICROSOFT EXCEL - TEACH ID 2024, November
Anonim
Distributor Kartu Otomatis
Distributor Kartu Otomatis

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

  1. Unduh file ZIP
  2. Ekstrak file ZIP di mana Anda dapat menemukannya dengan mudah
  3. Buka Win32 Disk Imager dan pilih gambar yang diekstrak
  4. Pilih kartu SD di menu tarik-turun dan klik tulis
  5. Setelah proses penulisan selesai, Anda dapat menutup Win32 Disk Imager

Sekarang kita perlu melakukan beberapa hal lagi sebelum kita dapat terhubung ke Pi

  1. Arahkan ke folder boot pada kartu SD
  2. Buka file cmdline.txt
  3. Tambahkan 'ip=169.254.10.1' di akhir baris yang dipisahkan dengan spasi
  4. Simpan dan keluar dari file
  5. Buat di direktori yang sama file bernama ssh dan hapus ekstensi (ini akan mengaktifkan ssh pada boot pertama sehingga kami dapat terhubung ke Pi)
  6. Keluarkan kartu SD dengan aman dan masukkan ke dalam Pi

Sekarang kita dapat terhubung ke Pi:

  1. Ambil kabel ethernet dan masukkan salah satu ujungnya ke Pi dan ujung lainnya ke komputer Anda
  2. Buka Putty
  3. Masukkan 169.254.10.1 di bidang Nama host
  4. Pastikan SSH dipilih dan portnya 22
  5. Klik buka
  6. Jika Anda mendapatkan peringatan, Anda dapat melanjutkan dan mengabaikannya
  7. 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

Diagram Fritz
Diagram Fritz
Diagram Fritzing
Diagram Fritzing
Diagram Fritz
Diagram Fritz

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

Struktur Database yang Dinormalisasi
Struktur Database yang Dinormalisasi

Pada langkah ini kita akan mengimpor database.

  1. Hubungkan ke Raspberry Pi Anda dengan MySQL Workbench
  2. Klik pada Server -> Impor Data
  3. Pilih Impor File Mandiri
  4. Di folder Database-export dari Github ada file sql bernama dump_project1.sql
  5. 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

Kasus untuk Distributor Kartu
Kasus untuk Distributor Kartu
Kasus untuk Distributor Kartu
Kasus untuk Distributor Kartu
Kasus untuk Distributor Kartu
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: