Isi kandungan:
- Bekalan
- Langkah 1: Menyiapkan Rasperry Pi
- Langkah 2: Menyiapkan Kod Visual Studio dan MySQL Workbench
- Langkah 3: Diagram Fritzing
- Langkah 4: Kod Github
- Langkah 5: Struktur Pangkalan Data yang dinormalisasi
- Langkah 6: Kes untuk Pengedar Kad
- Langkah 7: Program Sebagai Perkhidmatan
Video: Pengedar Kad Automatik: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Saya telah memilih pengedar kad pintar sebagai projek pertama saya kerana saya suka bermain kad permainan. Perkara yang paling saya tidak gemari adalah kad berniaga. Anda harus ingat untuk setiap permainan berapa banyak kad yang diperoleh setiap orang. Itu membingungkan apabila anda mengetahui banyak permainan kad. Projek saya juga akan membantu orang yang menghadapi masalah dengan mengedarkan kad seperti orang tua dan orang yang menderita Parkinson.
Bekalan
- 1 Raspberry Pi (Saya menggunakan Raspberry Pi 4)
- Kad SD (disyorkan 16GB)
- 1 bahagian Outbread untuk Raspberry Pi (T-piece)
- 2 papan roti
- 1 Modul bekalan kuasa untuk papan roti, 5V dan 3V3
- 1 paparan LCD
- 1 Potensiometer
- 1 MPU6050 (pecutan dan giroskop)
- 1 transistor NPN
- 1 pengembang I / O PCF8574N
- 1 motor stepper
- 1 papan pelarian ULN2003 untuk mengawal motor stepper
- 1 sensor ultrasonik HC-SR04
- 1 motor DC 5V
- 1 diod
- 6 470 perintang Ohm
- 4 perintang Ohm 10K
- Kawat elektrik untuk menghubungkan semuanya
Berguna untuk dimiliki semasa membuat:
- Besi pematerian
- Pateri
- Dremel atau jig saw (sesuatu untuk memotong kayu dan plastik abs)
Perisian:
- Dempul
- Meja kerja MySQL
- Win32 Disk Imager
- Editor kod (saya cadangkan Visual Studio Code)
- WinSCP
- Gambar raspbian
Langkah 1: Menyiapkan Rasperry Pi
Mula-mula kita perlu menyediakan Raspberry Pi sebelum melakukan perkara lain. Kerana semuanya akan berjalan pada Pi jadi ini adalah salah satu bahagian pengedar kad yang paling penting.
Pemasangan:
Muat turun gambar Raspbian dari
- Muat turun fail ZIP
- Ekstrak fail ZIP di mana anda boleh mencarinya dengan mudah
- Buka Win32 Disk Imager dan pilih gambar yang diekstrak
- Pilih kad SD di menu lungsur dan klik tulis
- Setelah proses menulis selesai anda boleh menutup Win32 Disk Imager
Sekarang kita perlu melakukan beberapa perkara lagi sebelum kita dapat menyambung ke Pi
- Navigasi ke folder but pada kad SD
- Buka fail cmdline.txt
- Tambahkan 'ip = 169.254.10.1' di hujung garisan yang dipisahkan dengan spasi
- Simpan dan keluar fail
- Buat di direktori yang sama file yang disebut ssh dan hapus ekstensi (ini akan membolehkan ssh pada boot pertama sehingga kita dapat menyambung ke Pi)
- Keluarkan kad SD dengan selamat dan masukkan ke dalam Pi
Sekarang kita boleh menyambung ke Pi:
- Ambil kabel ethernet dan masukkan satu hujung pada Pi dan hujung yang lain di komputer anda
- Buka Putty
- Masukkan 169.254.10.1 di medan Nama hos
- Pastikan SSH dipilih dan port 22
- Klik terbuka
- Sekiranya anda mendapat amaran, anda boleh teruskan dan mengabaikannya
- Nama pengguna adalah pi dan kata laluan adalah raspberry
Konfigurasi dan pemasangan perisian:
Buka raspi-config dengan arahan berikut:
sudo raspi-config
Pilih pilihan ke-5: Pilihan antara muka
Dayakan SPI dan I2C
Lumpuhkan perkara berikut dalam pilihan ke-3: Pilihan but:
- Skrin percikan
- Pilih cli untuk permulaan dan bukan desktop
Penyediaan WiFi:
Wifi berguna untuk menavigasi ke laman web dengan mudah. Pastikan kelayakan wifi anda hampir habis.
Untuk menyediakan wifi, kami memerlukan beberapa perkara:
Tambahkan wifi anda dengan menggunakan perintah ini dan ubah SSID dan PASSWORD ke maklumat anda:
sudo wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Jalankan perintah ini untuk mengkonfigurasi ulang wifi anda:
sudo wpa_cli
Pilih antara muka yang betul:
antara muka wlan0
Susun semula antara muka:
susun semula
Periksa sama ada konfigurasi semula berjaya dengan arahan ini:
ip a
Sekiranya anda melihat alamat IP pada antara muka wlan0 maka semuanya sudah disiapkan.
Mengemas kini sistem operasi
Kemas kini sistem operasi dengan 2 arahan berikut:
sudo apt kemas kini
sudo apt peningkatan penuh
Menyiapkan MariaDB:
Memasang Server Web Apache:
sudo apt install apache2 -y
Memasang pelayan MariaDB:
sudo apt pasang mariadb-server -y
Sekarang kita perlu but semula:
rebo sudo
Sebaiknya selamatkan pemasangan MariaDB. Anda boleh melakukannya dengan menjalankan perintah ini:
sudo mysql_secure_installation
Mula-mula anda akan diminta untuk kata laluan root semasa tetapi pemasangan lalai tidak mempunyainya jadi tekan enter.
Seterusnya anda akan ditanya sama ada anda ingin menetapkan kata laluan root, ketik y. Pastikan anda dapat mengingat kata laluan!
- Masukkan y untuk membuang pengguna tanpa nama
- Masukkan y untuk mematikan log masuk root dari jauh
- Masukkan y untuk membuang pangkalan data ujian dan akses ke dalamnya
- Masukkan y untuk memuat semula hak istimewa
Pemasangan MariaDB anda harus selamat!
Sekarang kita boleh membuat pengguna baru:
Masukkan shell mysql dengan arahan ini:
sudo mysql
Buat pengguna dengan nama pengguna mysql dan kata laluan (kata laluan_anda) arahan berikut:
buat pengguna mysql @ localhost yang dikenal pasti dengan 'your_password';
berikan semua hak istimewa pada *. * kepada mysql @ localhost;
KEISTIMEWAAN FLUSH;
Keluar dari shell mysql dengan arahan ini:
jalan keluar;
Pakej Python:
Python harus dipasang kecuali anda memilih versi Lite:
sudo apt pasang python3-pip
Kami memerlukan banyak pakej Python, anda boleh memasangnya dengan arahan berikut:
pip3 pasang mysql-connector-python flask-socketio flask-cors gevent gevent-websocket
Sekarang kita perlu reboot sekali lagi
rebo sudo
Langkah 2: Menyiapkan Kod Visual Studio dan MySQL Workbench
Menyambung ke Pi dengan MySQL Workbench:
Buka MySQL Workbench
Buat sambungan baru ke Pi dengan maklumat berikut:
- Nama sambungan: Raspi
- Kaedah Sambungan: TCP / IP standard melalui SSH
- Nama Hos SSH: Alamat IP Pi
Anda boleh mendapatkan alamat IP dengan arahan ini:
ip a
- Nama Pengguna SSH: pi
- Nama Hos MySQL: 127.0.0.1
- Port pelayan MySQL: 3306
- Nama pengguna: mysql
Klik ok dan masukkan kata laluan untuk pengguna pi dan kemudian masukkan kata laluan untuk pengguna mysql.
Menyiapkan Kod Visual Studio:
Buka Kod Visual Studio
Pasang 2 sambungan ini:
- Jauh - SSH
- Jauh - SSH: Mengedit Fail Konfigurasi
Tekan dalam Visual Studio Code F1 dan ketik ssh
Pilih SSH Jauh: Tambahkan hos SSH baru
Isi ssh pi @ alamat IP
Pada langkah seterusnya tekan enter
Sambungan kini dibuat ke Pi. Anda boleh menyambung ke Pi dengan menekan F1 dan memilih menyambung ke Host jauh.
Masukkan kata laluan supaya Visual Studio Code dapat mengakses Pi.
Satu perkara lagi: Pasang sambungan Python pada mesin jauh supaya anda dapat menjalankan dan nyahpepijat kod dengan mudah.
Langkah 3: Diagram Fritzing
Dalam langkah ini saya akan menerangkan litar.
Skema di atas dibuat dengan Fritzing.
Motor DC:
Sambungkan GPIO 18 ke dasar pemungut, pin tengah pada transistor npn. Sambungkan arde motor ke pemungut dari transistor dan kuasa motor ke 5V. Sambungkan tanah transistor ke garis tanah. Sambungkan diod di penghalang di atas motor sehingga menyekat arus tidak mengalir terus ke transistor.
Motor stepper:
Sambungkan motor stepper ke papan kawalan. Pada papan kawalan terdapat satu pin sisi untuk menyambung 5V dan tanah. Pin yang lain adalah pin kawalan. Pin ini mengawal magnet di dalam motor sehingga boleh berpusing. Sambungkan pin ini ke GPIO 12, 16, 20 dan 21 di Raspberry Pi.
HC-SR04 Ultrasonik:
Sensor ini dapat mengukur jarak sekitar 4.5 meter menggunakan suara.
Sambungkan pin VCC ke 5V, pin pemicu ke GPIO 25, pin gema dengan perintang 470 Ohm ke GPIO 24 dan tanah dengan perintang 470 Ohm ke tanah.
MPU6050:
Sambungkan pin VCC ke 3V3, tanah ke tanah, scl ke scl pada Pi dan sda ke sda pada Pi. Untuk sensor ini saya menggunakan I2C untuk mengawalnya. Anda boleh membaca lebih lanjut mengenainya di sini. Berikut adalah penjelasan asas: Pi adalah tuan dan MPU6050 adalah hamba. Melalui garis scl, Pi mengawal pemasaan dan garis sda digunakan untuk menghantar data dari tuan kepada hamba atau dari hamba ke tuan. Hanya tuan yang boleh memulakan pemindahan data.
Perintang bergantung cahaya:
Untuk mendapatkan bacaan yang betul dari LDR saya menggunakan cip MCP3008. Ini memastikan bahawa bacaan dari ldr stabil dan betul ditukar dari isyarat analog ke digital.
Sambungkan 3V3 ke satu sisi ldr dengan perintang 10K Ohm di antaranya. Di antara ldr dan perintang sambungkan wayar ke saluran 0 MCP3008. Kemudian sambungkan bahagian ldr yang lain ke tanah.
Paparan LCD:
Anda boleh menggunakan paparan LCD tanpa PCF8574 tetapi kerana pin GPIO pada Pi terhad, saya menggunakan PCF8574 untuk menyimpan beberapa pin GPIO. Anda juga boleh menggunakan shift shift tetapi saya lebih suka PCF8574. Anda boleh mengawal PCF8574 dengan protokol SMbus tetapi saya menulis kelas saya sendiri untuk mengawalnya. Potensiometer mengawal kontras.
Pin paparan LCD:
- VSS ke tanah
- VDD hingga 5V
- V0 ke pin pemboleh ubah potensiometer
- RS ke GPIO 13
- R / W ke tanah kerana saya hanya menulis ke paparan dan tidak membaca
- E ke GPIO 19
- DB0 hingga P0 PCF
- DB1 hingga P1
- DB2 hingga P2
- DB3 hingga P3
- DB4 hingga P4
- DB5 hingga P5
- DB6 hingga P6
- DB7 hingga P7
- LED + hingga 5V
- LED- ke tanah
PCF8574 pin:
- A0 ke tanah
- A1 ke tanah
- A2 ke tanah
- Tanah ke tanah
- VCC hingga 5V
- SDA ke GPIO 27
- SCL ke GPIO 22 dengan perintang 330 Ohm
Anda mungkin tidak mempunyai LED + dan LED- bergantung pada jenis paparan yang anda dapat. LED + dan LED- adalah untuk lampu latar.
Sambungkan sisi positif potensiometer ke 5V dan tanah ke tanah.
Pastikan anda menggunakan perintang Pull-up!
Langkah 4: Kod Github
Anda boleh mendapatkan semua kod yang diperlukan di Github saya.
Projek folder1:
Folder ini mengandungi semua kod untuk backend. Dalam folder Klasses adalah semua kelas untuk mengawal perkakasan.
Repositori folder mengandungi 2 fail: Database.py dan DataRepository.py. Database.py mengekalkan sambungan ke pangkalan data dan menangani pertanyaan. DataRepository.py mengandungi semua pertanyaan yang diperlukan untuk laman web ini.
App.py adalah fail utama backend. Fail ini bermula secara automatik semasa Pi boot.
Config.py mengandungi beberapa tetapan untuk menyambung ke pangkalan data. Pastikan anda mengisi fail ini dengan maklumat anda sendiri.
Anda boleh meletakkan folder ini di mana sahaja di direktori rumah anda.
Folder html:
Folder ini mengandungi semua fail untuk laman web, frontend.
- Folder mengandungi fail untuk susun atur laman web.
- Font mengandungi fon yang digunakan di laman web ini.
- Skrip mengandungi semua fail Javascript untuk menjadikan laman web ini dinamik
Folder ini mesti ada di folder / var / www / html
Anda boleh menyalin fail atau folder dengan arahan ini:
sudo mv / path / to / current / direktori / path / to / destination / direktori
Untuk menavigasi ke jenis laman dalam penyemak imbas anda, alamat IP yang dipaparkan pada paparan LCD.
Langkah 5: Struktur Pangkalan Data yang dinormalisasi
Pada langkah ini kita akan mengimport pangkalan data.
- Sambungkan ke Raspberry Pi anda dengan MySQL Workbench
- Klik pada Pelayan -> Import Data
- Pilih Import Fail Sendiri
- Dalam folder Pangkalan data-eksport dari Github terdapat fail sql yang disebut dump_project1.sql
- Semak imbas fail ini dan klik mula import
Itu sahaja. Pi kini boleh mengakses pangkalan data jika mempunyai maklumat yang betul.
Langkah 6: Kes untuk Pengedar Kad
Dalam langkah ini saya akan menerangkan apa yang saya gunakan untuk kes itu dan bagaimana saya memasang semuanya.
Untuk kes itu saya menggunakan 2 kotak ABS:
- 265 x 185 x 95 mm
- 171 x 121 x 80 mm
Lubang yang saya buat di dalam kotak
Lubang untuk paparan LCD, 3 lubang untuk kabel kuasa, satu lubang untuk kabel dari motor stepper, motor DC dan sensor ultrasonik.
Dalam kotak terkecil saya membuat lubang untuk wayar dari komponen dan lubang untuk dilalui kad. Di bahagian atas saya membuat lubang terbesar sehingga anda dapat meletakkan kad permainan di dalam peranti.
Saya memasang motor DC dengan pendakap dan pita dua sisi. Saya membuat papan kayu untuk meletakkan kad dengan lubang roda untuk menembak kad.
Saya telah memilih plastik ABS kerana ringan sehingga motor stepper dapat membalikkannya dengan mudah. Kayu boleh menjadi sangat berat dan motor stepper mungkin menghadapi masalah dengan ini. Untuk memotong lubang saya menggunakan gerudi dengan bit yang direka untuk logam dan Dremel. Memotong lubang yang lebih besar memerlukan lebih banyak kerja dan gergaji jig akan lebih baik.
Langkah 7: Program Sebagai Perkhidmatan
Kod ini sangat berguna untuk memulakan kod setelah Pi di boot. Untuk itu kami akan membuat perkhidmatan.
Buat fail baru yang dipanggil smartcard.service dengan arahan berikut:
sudo nano /etc/systemd/system/smartcard.service
Ini mesti masuk ke dalam fail:
[Unit]
Penerangan = Backend kad pintar Selepas = network.target [Service] ExecStart = / usr / bin / python3 -u app.py WorkingDirectory = / home / pi / project1 StandardOutput = mewarisi StandardError = mewarisi Restart = selalu Pengguna = pi [Pasang] WantedBy = multi-user.target WorkingDirectory adalah jalan ke folder di mana program berada
Kini anda mendapat Kad Pintar anda sendiri!
Disyorkan:
PENGEDAR MAKANAN PET AUTOMATIK: 9 Langkah
PENYEDIA MAKANAN PET AUTOMATIK: Pernah merasa membuang masa untuk memberi makan haiwan kesayangan anda? Pernah memanggil seseorang untuk memberi makan haiwan kesayangan anda semasa anda bercuti? Saya telah berusaha menyelesaikan kedua-dua masalah ini dengan projek sekolah saya sekarang: Petfeed
Pengimbas Kad untuk Mesin Kad Dagangan: 13 Langkah (dengan Gambar)
Pengimbas Kad untuk Mesin Kad Dagangan: Pengimbas Kad untuk Mesin Kad DaganganLog Perubahan boleh didapati pada langkah terakhir. Latar BelakangSaya menerangkan motivasi utama projek saya di Pengenalan Pemakanan Kad. Tetapi ringkasnya, anak-anak saya dan saya telah mengumpulkan sejumlah besar Kad Dagangan
Pengumpan Kad untuk Mesin Kad Dagangan: 10 Langkah (dengan Gambar)
Pengumpan Kad untuk Mesin Kad Dagangan: Pengumpan Kad untuk Mesin Kad Dagangan Latar Belakang Ketika saya masih muda, saya mengumpulkan banyak kad perdagangan, tetapi selama beberapa tahun, minat untuk mengumpulkan semakin menurun. Sementara itu saya mempunyai anak dan perlahan-lahan tetapi mereka juga mula mendapat
Penyusun Kad untuk Mesin Kad Dagangan (Kemas kini 2019-01-10): 12 Langkah (dengan Gambar)
Penyusun Kad untuk Mesin Kad Dagangan (Kemas kini 2019-01-10): Penyortir Kad untuk Mesin Kad DaganganLog Perubahan boleh didapati di langkah terakhir. Latar belakangSaya telah menjelaskan motivasi projek saya dalam artikel Pengumpan Kad. Tetapi ringkasnya, saya dan anak-anak telah mengumpulkan sejumlah besar Kad Dagangan
PENGEDAR Pil AUTOMATIK: 14 Langkah (dengan Gambar)
AUTOMATIC PILL DISPENSER: Ini adalah robot dispenser pil yang dapat memberi pesakit jumlah dan jenis pil ubat yang betul. Dosis pil dilakukan secara automatik pada waktu yang tepat sepanjang hari, didahului dengan penggera. Apabila kosong, mesin dengan mudah diisi semula