Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Paghahanda ng Rasperry Pi
- Hakbang 2: Pag-set up ng Visual Studio Code at MySQL Workbench
- Hakbang 3: Fritzing Diagram
- Hakbang 4: Code sa Github
- Hakbang 5: Normalisadong Kayarian ng Database
- Hakbang 6: Kaso para sa Distributor ng Card
- Hakbang 7: Programa Bilang Isang Serbisyo
Video: Awtomatikong Pamamahagi ng Card: 7 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Pinili ko ang isang distributor ng smart card bilang aking unang proyekto dahil gusto kong maglaro ng isang cardgame. Ang bagay na pinaka ayaw ko ay ang pagharap sa mga kard. Kailangan mong tandaan para sa bawat laro kung gaano karaming mga kard ang nakukuha ng bawat tao. Nakakalito iyon kapag alam mo ang maraming mga laro sa card. Tutulungan din ng aking proyekto ang mga taong nagkakaproblema sa pamamahagi ng mga kard tulad ng mga matatandang tao at mga taong nagdurusa kay Parkinson.
Mga gamit
- 1 Raspberry Pi (Gumamit ako ng isang Raspberry Pi 4)
- SD card (inirerekumenda ng 16GB)
- 1 Outbread na piraso para sa Raspberry Pi (T-piece)
- 2 mga breadboard
- 1 Power module ng supply para sa breadboard, 5V at 3V3
- 1 LCD display
- 1 Potensyomiter
- 1 MPU6050 (accelerometer at gyroscope)
- 1 mga transistor ng NPN
- 1 PCF8574N I / O expander
- 1 stepper motor
- 1 ULN2003 breakout board upang makontrol ang stepper motor
- 1 HC-SR04 ultrasonic sensor
- 1 5V DC motors
- 1 diode
- 6 470 Ohm resistors
- 4 10K Ohm resistors
- Electric wire upang ikonekta ang lahat
Kapaki-pakinabang na mayroon habang gumagawa:
- Panghinang
- Panghinang
- Dremel o jig saw (isang bagay upang pumutol ng kahoy at abs plastic)
Software:
- Putty
- MySQL workbench
- Win32 Disk Imager
- Code editor (Inirerekumenda ko ang Visual Studio Code)
- WinSCP
- Larawan ng raspbian
Hakbang 1: Paghahanda ng Rasperry Pi
Una kailangan naming ihanda ang Raspberry Pi bago gumawa ng iba pa. Dahil ang lahat ay tatakbo sa Pi kaya't ito ang isa sa pinakamahalagang piraso ng namamahagi ng card.
Pag-install:
I-download ang Raspbian na imahe mula sa
- I-download ang ZIP-file
- I-extract ang ZIP-file kung saan madali mo itong mahahanap
- Buksan ang Win32 Disk Imager at piliin ang nakuha na imahe
- Piliin ang SD card sa dropdown menu at i-click ang isulat
- Kapag tapos na ang proseso ng pagsulat maaari mong isara ang Win32 Disk Imager
Ngayon kailangan naming gumawa ng ilang mga bagay bago kami makakonekta sa Pi
- Mag-navigate sa folder ng boot sa SD card
- Buksan ang file cmdline.txt
- Idagdag ang 'ip = 169.254.10.1' sa dulo ng linya na pinaghiwalay ng isang puwang
- I-save at lumabas sa file
- Lumikha sa parehong direktoryo ng isang file na tinatawag na ssh at alisin ang extension (papayagan nito ang ssh sa unang boot upang makakonekta kami sa Pi)
- Ligtas na palabasin ang SD card at ilagay ito sa Pi
Ngayon ay maaari kaming kumonekta sa Pi:
- Grab isang ethernet cable at ipasok ang isang dulo sa Pi at ang kabilang dulo sa iyong computer
- Buksan ang Putty
- Ipasok ang 169.254.10.1 sa patlang ng Pangalan ng host
- Tiyaking napili ang SSH at ang port ay 22
- I-click ang bukas
- Kung nakakuha ka ng isang babala maaari mo lamang itong ipagpatuloy at huwag pansinin ito
- Ang username ay pi at ang password ay raspberry
Pag-configure at pag-install ng software:
Buksan ang raspi-config gamit ang sumusunod na utos:
sudo raspi-config
Piliin ang ika-5 na pagpipilian: Mga pagpipilian sa interfacing
Paganahin ang SPI at I2C
Huwag paganahin ang mga sumusunod na bagay sa ika-3 na pagpipilian: Mga pagpipilian sa boot:
- Splash screen
- Pumili ng kliyente para sa pagsisimula at hindi sa desktop
Pag-setup ng wifi:
Ang Wi-Fi ay kapaki-pakinabang upang madaling mag-navigate sa website. Tiyaking malapit na ang iyong mga kredensyal sa wifi.
Upang mag-setup ng wifi kailangan namin ng ilang bagay:
Idagdag ang iyong wifi sa pamamagitan ng paggamit ng utos na ito at baguhin ang SSID at PASSWORD sa iyong impormasyon:
sudo wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Isagawa ang utos na ito upang muling isaayos ang iyong wifi:
sudo wpa_cli
Piliin ang tamang interface:
interface wlan0
I-configure muli ang interface:
muling pag-configure
Suriin kung ang muling pag-configure ay matagumpay sa utos na ito:
ip a
Kung nakakita ka ng isang IP-address sa wlan0 interface pagkatapos ang lahat ay naka-set up.
Ina-update ang operating system
I-update ang operating system gamit ang 2 utos na ito:
sudo apt update
sudo apt full-upgrade
Pag-set up ng MariaDB:
Pag-install ng Apache Webserver:
sudo apt i-install ang apache2 -y
lnstalling MariaDB server:
sudo apt i-install ang mariadb-server -y
Ngayon kailangan naming mag-reboot:
sudo reboot
Inirerekumenda na i-secure ang pag-install ng MariaDB. Maaari mo itong gawin sa pamamagitan ng pagpapatakbo ng utos na ito:
sudo mysql_secure_installation
Hihilingin ka muna para sa kasalukuyang root password ngunit ang default na pag-install ay walang isa kaya pindutin ang enter.
Susunod tatanungin ka kung nais mong magtakda ng isang root password, i-type ang y. Tiyaking maaalala mo ang password!
- Ipasok ang y upang alisin ang mga hindi nagpapakilalang gumagamit
- Ipasok ang y upang huwag paganahin ang pag-login sa root nang malayuan
- Ipasok ang y upang alisin ang mga database ng pagsubok at mag-access dito
- Ipasok ang y upang i-reload ang mga privelege
Ang iyong pag-install ng MariaDB ay dapat na ligtas!
Maaari na kaming lumikha ng isang bagong gumagamit:
Ipasok ang shell ng MySQL gamit ang utos na ito:
sudo MySQL
Lumikha ng isang gumagamit gamit ang username MySQL at isang password (iyong_password) ang mga sumusunod na utos:
lumikha ng user MySQL @ localhost na kinilala ng 'your_password';
bigyan ang lahat ng mga privelege sa *. * sa MySQL @ localhost;
FLUSH PRIVILEGES;
Lumabas sa shell ng MySQL gamit ang utos na ito:
exit;
Mga pakete ng sawa:
Ang Python ay dapat na mai-install maliban kung pinili mo ang bersyon ng Lite:
sudo apt i-install ang python3-pip
Kailangan namin ng maraming halaga ng mga pakete ng Python, maaari mong mai-install ang lahat ng ito sa sumusunod na utos:
pip3 i-install ang mysql-konektor-python flask-socketio flask-cors gevent gevent-websocket
Ngayon kailangan naming muling mag-reboot muli
sudo reboot
Hakbang 2: Pag-set up ng Visual Studio Code at MySQL Workbench
Pagkonekta sa Pi gamit ang MySQL Workbench:
Buksan ang MySQL Workbench
Gumawa ng isang bagong koneksyon sa Pi na may sumusunod na impormasyon:
- Pangalan ng koneksyon: Raspi
- Paraan ng Koneksyon: Karaniwan TCP / IP sa SSH
- SSH Hostname: IP-address ng Pi
Maaari mong makuha ang IP-address gamit ang utos na ito:
ip a
- SSH Username: pi
- MySQL Hostname: 127.0.0.1
- MySQL server Port: 3306
- Username: MySQL
Mag-click sa ok at ipasok ang password para sa pi ng gumagamit at pagkatapos ay ipasok ang password para sa MySQL user.
Pagse-set up ng Visual Studio Code:
Buksan ang Visual Studio Code
I-install ang 2 extension na ito:
- Remote - SSH
- Remote - SSH: Pag-edit ng Mga File sa Pag-configure
Pindutin ang Visual Studio Code F1 at i-type sa ssh
Piliin ang Remote SSH: Magdagdag ng bagong host ng SSH
Punan ang ssh pi @ IP-address
Sa susunod na hakbang pindutin ang enter
Ang koneksyon ay ginawa ngayon sa Pi. Maaari kang kumonekta sa Pi sa pamamagitan ng pagpindot sa F1 at pagpili ng kumonekta sa Remote host.
Ipasok ang password upang ang Visual Studio Code ay may access sa Pi.
Isa pa: I-install ang extension ng Python sa remote machine upang madali mong patakbuhin at i-debug code.
Hakbang 3: Fritzing Diagram
Sa hakbang na ito ipapaliwanag ko ang circuit.
Ang mga eskematiko sa itaas ay ginawa kasama si Fritzing.
DC motor:
Ikonekta ang GPIO 18 sa base ng kolektor, ang gitnang pin sa isang transn sa npn. Ikonekta ang lupa ng motor sa kolektor mula sa transistor at ang lakas ng motor sa 5V. Ikonekta ang lupa ng transistor sa linya ng lupa. Ikonekta ang diode sa hadlang sa motor kaya't hinaharangan nito ang currunt na direktang dumaloy sa transistor.
Stepper motor:
Ikonekta ang stepper motor sa control board. Sa control board mayroong sa isang gilid na mga pin upang ikonekta ang 5V at lupa. Ang iba pang mga pin ay control pin. Kinokontrol ng mga pin na ito ang mga magnet sa loob ng motor upang maaari itong lumiko. Ikonekta ang mga pin na ito sa GPIO 12, 16, 20 at 21 sa Raspberry Pi.
HC-SR04 Ultrasonic:
Maaaring sukatin ng sensor na ito ang mga distansya sa halos 4.5 metro gamit ang tunog.
Ikonekta ang VCC pin sa 5V, ang gatilyo ng pin sa GPIO 25, ang echo pin na may risistor na 470 Ohm sa GPIO 24 at ang lupa na may risistor na 470 Ohm sa lupa.
MPU6050:
Ikonekta ang VCC pin sa 3V3, ang lupa sa lupa, scl sa scl sa Pi at ang sda sa sda sa Pi. Para sa sensor na ito ginagamit ko ang I2C upang makontrol ito. Maaari mong basahin ang higit pa tungkol dito. Narito ang isang pangunahing paliwanag: Ang Pi ay ang panginoon at ang MPU6050 ay ang alipin. Sa pamamagitan ng linya ng scl kinokontrol ng Pi ang mga oras at ang linya ng sda ay ginagamit upang magpadala ng data mula sa panginoon sa alipin o mula sa alipin hanggang sa panginoon. Ang master lamang ang maaaring magpasimula ng paglipat ng data.
Ang ilaw ay nakasalalay sa risistor:
Upang makakuha ng wastong pagbabasa mula sa LDR Gumagamit ako ng isang MCP3008 chip. Tinitiyak nito na ang mga pagbasa mula sa ldr ay matatag at wastong nai-convert mula sa analog sa mga digital signal.
Ikonekta ang 3V3 sa isang bahagi ng ldr na may risistor na 10K Ohm sa pagitan nito. Sa pagitan ng ldr at ng risistor kumonekta sa isang kawad sa channel 0 ng MCP3008. Pagkatapos ay ikonekta ang kabilang panig ng ldr sa lupa.
LCD display:
Maaari mong gamitin ang LCD display nang walang PCF8574 ngunit dahil ang mga GPIO pin sa Pi ay limitado Gumagamit ako ng isang PCF8574 upang makatipid ng ilang mga GPIO pin. Maaari mo ring gamitin ang isang rehistro ng shift ngunit mas gusto ko ang isang PCF8574. Maaari mong kontrolin ang PCF8574 sa SMbus protocol ngunit nagsulat ako ng aking sariling klase upang makontrol ito. Kinokontrol ng potentiometer ang kaibahan.
Mga pin na display ng LCD:
- VSS sa lupa
- VDD hanggang 5V
- V0 sa variable pin ng potentiometer
- RS sa GPIO 13
- R / W sa lupa dahil sa display lamang ang sinusulat ko at hindi nabasa
- E hanggang GPIO 19
- DB0 hanggang P0 ng PCF
- DB1 hanggang P1
- DB2 hanggang P2
- DB3 hanggang P3
- DB4 hanggang P4
- DB5 hanggang P5
- DB6 hanggang P6
- DB7 hanggang P7
- LED + hanggang 5V
- LED- sa lupa
PCF8574 pin:
- A0 sa lupa
- A1 sa lupa
- A2 sa lupa
- Bumaba sa lupa
- VCC hanggang 5V
- SDA hanggang GPIO 27
- Ang SCL sa GPIO 22 na may resistor na 330 Ohm
Maaaring wala kang LED + at LED- depende sa kung anong uri ng pagpapakita ang nakuha mo. Ang LED + at LED- ay para sa backlight.
Ikonekta ang positibong bahagi ng potensyomiter sa 5V at ang lupa sa lupa.
Tiyaking gumagamit ka ng Mga pull-up resistor!
Hakbang 4: Code sa Github
Mahahanap mo ang lahat ng kinakailangang code sa aking Github.
Proyekto ng folder1:
Naglalaman ang folder na ito ng lahat ng code para sa backend. Sa folder na Klass ay ang lahat ng mga klase upang makontrol ang hardware.
Naglalaman ang mga folder ng repository ng 2 mga file: Database.py at DataRepository.py. Pinapanatili ng Database.py ang koneksyon sa database at humahawak ng mga query. Naglalaman ang DataRepository.py ng lahat ng mga query na kinakailangan para sa site.
Ang App.py ay ang pangunahing file ng backend. Awtomatikong magsisimula ang file na ito kapag nag-boot ang Pi.
Naglalaman ang Config.py ng ilang mga setting upang kumonekta sa database. Tiyaking pinunan mo ang mga file na ito ng iyong sariling impormasyon.
Maaari mong ilagay ang folder na ito saanman sa iyong direktoryo sa bahay.
Html ng folder:
Naglalaman ang folder na ito ng lahat ng mga file para sa site, ang frontend.
- Naglalaman ang folder ng mga file para sa layout ng site.
- Naglalaman ang mga font ng mga font na ginamit sa site.
- Naglalaman ang script ng lahat ng mga Javascript file upang gawing pabago-bago ang site
Ang folder na ito ay dapat na nasa folder / var / www / html
Maaari mong kopyahin ang isang file o folder gamit ang utos na ito:
sudo mv / path / to / kasalukuyang / direktoryo / path / sa / patutunguhan / direktoryo
Upang mag-navigate sa uri ng site sa iyong browser ang IP-address na ipinapakita sa LCD display.
Hakbang 5: Normalisadong Kayarian ng Database
Sa hakbang na ito i-import namin ang database.
- Kumonekta sa iyong Raspberry Pi sa MySQL Workbench
- Mag-click sa Server -> Pag-import ng Data
- Piliin ang I-import ang Sariling File
- Sa folder na Database-export mula sa Github mayroong isang sql file na tinatawag na dump_project1.sql
- Mag-browse sa file na ito at i-click ang simulang pag-import
Ayan yun. Maaari nang ma-access ng Pi ang database kung mayroon itong tamang impormasyon.
Hakbang 6: Kaso para sa Distributor ng Card
Sa hakbang na ito ipapaliwanag ko kung ano ang ginamit ko para sa kaso at kung paano ko na-mount ang lahat.
Para sa kaso gumamit ako ng 2 mga kahon sa ABS:
- 265 x 185 x 95 mm
- 171 x 121 x 80 mm
Ang mga butas na ginawa ko sa mga kahon
Isang butas para sa display ng LCD, 3 butas para sa mga kable ng kuryente, isa para sa mga wire mula sa stepper motor, DC motor at ultrasonic sensor.
Sa pinakamaliit na kahon gumawa ako ng isang butas para sa mga wire mula sa mga bahagi at isang butas para dumaan ang mga kard. Sa tuktok ginawa ko ang pinakamalaking butas upang mailagay mo ang mga play card sa aparato.
Inilagay ko ang DC motor na may isang bracket at ilang dobleng panig na tape. Gumawa ako ng isang board na kahoy upang ipatong ang mga kard na may butas para sa gulong na kunan ng kard.
Pinili ko para sa ABS plastic dahil magaan ito kaya madali itong mapapalitan ng stepper motor. Ang kahoy ay maaaring maging mabigat at ang stepper motor ay maaaring magkaroon ng mga problema dito. Upang maputol ang mga butas ay gumamit ako ng isang drill na may mga drillbits na idinisenyo para sa metal at isang Dremel. Ang pagputol ng mas malaking mga butas ay tumagal ng mas maraming trabaho at ang isang jig saw ay magiging mas mahusay.
Hakbang 7: Programa Bilang Isang Serbisyo
Kapaki-pakinabang talaga na magkaroon ng pagsisimula ng code pagkatapos na ma-boot ang Pi. Para doon gagawa kami ng serbisyo.
Lumikha ng isang bagong file na tinatawag na smartcard.service na may sumusunod na utos:
sudo nano /etc/systemd/system/smartcard.service
Kailangan itong pumunta sa file:
[Yunit]
Paglalarawan = Smart card backend Pagkatapos = network.target [Serbisyo] ExecStart = / usr / bin / python3 -u app.py WorkingDirectory = / home / pi / project1 StandardOutput = inherit StandardError = inherit Restart = laging User = pi [Install] WantedBy = multi-user.target Ang WorkingDirectory ay ang landas sa folder kung saan matatagpuan ang programa
Nakuha mo na ang iyong sariling Smart Card!
Inirerekumendang:
Pamamahagi ng Power ng Digital na Slot ng Kotse: 9 Mga Hakbang (na may Mga Larawan)
Pamamahagi ng Power ng Digital na Slot ng Kotse: Nakapagtayo ka ba ng iyong sarili ng isang malaking layout ng kotse ng puwang at nalaman na ang mga kotse ay tila walang parehong pagganap? O hate mo ba ito kapag ang iyong karera ay nagambala ng mga kotse na humihinto dahil sa masamang kasukasuan? Ipapakita sa iyo ng Instructable na ito kung paano
Paano Gumamit ng Pamamahagi ng T sa Excel: 8 Mga Hakbang
Paano Gumamit ng Pamamahagi ng T sa Excel: Ang gabay na ito ay nagbibigay ng isang simpleng paliwanag at pagkasira ng kung paano gamitin ang T Pamamahagi sa Excel. Ipinapaliwanag ng gabay kung paano i-install ang toolpak ng pagsusuri ng data at nagbibigay ng excel syntax para sa anim na uri ng mga function ng T Distribution, katulad ng: Left-tail T Dis
Mga Laser Cut Card ng Card: 3 Mga Hakbang
Mga Laser Cut Card Decks: Sa aming Makerspace, nagdidisenyo kami ng maraming mga laro, alinman upang maipakita ang isang konsepto o isang sistema na natututuhan ng mga mag-aaral, o para turuan ng mga mag-aaral ang iba pang mga mag-aaral tungkol sa isang konsepto o system. Mayroon kaming mga 3D printer upang gumawa ng mga piraso ng laro at elemento,
Card Sorter para sa isang Trading Card Machine (Update 2019-01-10): 12 Mga Hakbang (na may Mga Larawan)
Card Sorter para sa isang Trading Card Machine (Update 2019-01-10): Card Sorter para sa isang Trading Card Machine Ang Makikitang Log ng Palitan ay matatagpuan sa huling hakbang. Ang Background Naipaliwanag ko na ang motibasyon ng aking proyekto sa artikulo ng Card Feeder. Ngunit sa madaling sabi, ang aking mga anak at ako ay nagtipon ng maraming halaga ng Trading Card
Mga Card Circuit Greeting Card: 3 Hakbang (na may Mga Larawan)
Mga Card Circuit Greeting Card: Sa mga itinuturo na ito ipapaliwanag ko kung paano ka madaling makagawa ng isang circuit card ng pagbati card sa bahay. Na may mas kaunting badyet na sinumang maaaring gumawa ng kard na ito ng pagbati, maaari kang gumawa ng iyong sariling mga kahanga-hangang kard para sa iyong mga kaibigan.