Sisukord:
- Tarvikud
- Samm: Rasperry Pi ettevalmistamine
- 2. samm: Visual Studio koodi ja MySQL Workbenchi seadistamine
- 3. samm: Fritzing diagramm
- Samm: kood Githubis
- 5. samm: andmebaasi normaliseeritud struktuur
- Samm 6: Kaardi levitaja juhtum
- Samm: programm teenusena
Video: Automaatne kaardijaotus: 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Olen oma esimeseks projektiks valinud kiipkaardi levitaja, sest mulle meeldib mängida kaardimängu. Kõige rohkem ei meeldi mulle kaartide jagamine. Iga mängu puhul tuleb meeles pidada, kui palju kaarte iga inimene saab. See tekitab segadust, kui teate palju kaardimänge. Minu projekt aitab ka inimesi, kellel on probleeme kaartide levitamisega, nagu vanemad inimesed ja Parkinsoni tõve all kannatavad inimesed.
Tarvikud
- 1 Raspberry Pi (ma kasutasin Raspberry Pi 4)
- SD -kaart (soovitatav 16 GB)
- 1 leivaosa Raspberry Pi jaoks (T-tükk)
- 2 leivaplaati
- 1 Toiteallikamoodul leivaplaadile, 5V ja 3V3
- 1 LCD ekraan
- 1 potentsiomeeter
- 1 MPU6050 (kiirendusmõõtur ja güroskoop)
- 1 NPN transistor
- 1 PCF8574N I/O laiendaja
- 1 samm -mootor
- 1 ULN2003 katkestusplaat samm -mootori juhtimiseks
- 1 ultraheli andur HC-SR04
- 1 5V alalisvoolumootorid
- 1 diood
- 6 470 oomi takistid
- 4 10K oomi takistit
- Elektrijuhe kõige ühendamiseks
Kasulik valmistamisel:
- Jootekolb
- Jootma
- Dremeli või jigisaag (midagi puidu ja abs plastiku lõikamiseks)
Tarkvara:
- Pahtel
- MySQL töölaud
- Win32 kettapildistaja
- Koodiredaktor (soovitan Visual Studio koodi)
- WinSCP
- Raspian pilt
Samm: Rasperry Pi ettevalmistamine
Kõigepealt peame enne midagi muud ette valmistama Raspberry Pi. Kuna kõik hakkab pi toimima, on see üks kaardilevitaja kõige olulisemaid osi.
Paigaldamine:
Laadige Raspbiani pilt alla aadressilt
- Laadige alla ZIP-fail
- Eemaldage ZIP-fail, kust leiate selle hõlpsalt
- Avage Win32 Disk Imager ja valige ekstraheeritud pilt
- Valige rippmenüüst SD -kaart ja klõpsake nuppu kirjuta
- Kui kirjutamisprotsess on lõpule jõudnud, saate Win32 Disk Imager sulgeda
Nüüd peame enne Pi -ga ühenduse loomist veel mõned asjad ära tegema
- Liikuge SD -kaardi alglaadimiskausta
- Avage fail cmdline.txt
- Lisage tühikuga eraldatud rea lõppu „ip = 169.254.10.1”
- Salvestage ja väljuge failist
- Looge samas kataloogis fail nimega ssh ja eemaldage laiend (see lubab ssh esimesel käivitamisel, et saaksime Pi -ga ühenduse luua)
- Eemaldage SD -kaart turvaliselt ja pange see Pi -sse
Nüüd saame Pi -ga ühenduse luua:
- Haarake Etherneti kaabel ja sisestage üks ots pi ja teine ots arvutisse
- Avage Putty
- Sisestage väljale Hosti nimi 169.254.10.1
- Veenduge, et SSH on valitud ja port on 22
- Klõpsake nuppu Ava
- Kui saate hoiatuse, võite lihtsalt jätkata ja seda ignoreerida
- Kasutajanimi on pi ja parool on vaarikas
Tarkvara konfigureerimine ja installimine:
Avage raspi-config järgmise käsuga:
sudo raspi-config
Valige viies võimalus: liidesevalikud
Luba SPI ja I2C
3. valikus keelake järgmised asjad: Alglaadimisvalikud:
- Pritsmeekraan
- Valige käivitamiseks cli ja mitte töölaud
Wifi seadistamine:
Wifi on kasulik veebisaidile hõlpsaks navigeerimiseks. Veenduge, et teie WiFi -mandaat oleks lähedal.
Wifi seadistamiseks vajame mõnda asja:
Lisage oma wifi selle käsu abil ja muutke SSID ja PASSWORD oma andmeteks:
sudo wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Wifi uuesti konfigureerimiseks täitke see käsk:
sudo wpa_cli
Valige õige liides:
liides wlan0
Liidese uuesti konfigureerimine:
uuesti seadistada
Selle käsuga kontrollige, kas ümberseadistamine õnnestus:
ip a
Kui näete wlan0 liidesel IP-aadressi, on kõik seadistatud.
Operatsioonisüsteemi värskendamine
Värskendage operatsioonisüsteemi nende kahe käsuga:
sudo apt värskendus
sudo apt täielik uuendamine
MariaDB seadistamine:
Apache veebiserveri installimine:
sudo apt install apache2 -y
MariaDB serveri installimine:
sudo apt install mariadb -server -y
Nüüd peame taaskäivitama:
sudo taaskäivitamine
Soovitatav on MariaDB installi turvalisus. Seda saate teha, käivitades selle käsu:
sudo mysql_secure_installation
Esmalt küsitakse teilt praegust juurparooli, kuid vaikimisi installimisel seda pole, nii et vajutage sisestusklahvi.
Järgmisena küsitakse teilt, kas soovite määrata juurparooli, tippige y. Veenduge, et mäletate parooli!
- Anonüümsete kasutajate eemaldamiseks sisestage y
- Sisestage y, et kaugjuurdepääsu keelata
- Testandmebaaside eemaldamiseks ja sellele juurdepääsuks sisestage y
- Privileegide uuesti laadimiseks sisestage y
Teie MariaDB install peaks olema turvaline!
Nüüd saame luua uue kasutaja:
Sisestage mysql shell selle käsuga:
sudo mysql
Looge kasutaja kasutajanimega mysql ja parooliga (teie_parool) järgmised käsud:
luua kasutaja mysql@localhost, mis on identifitseeritud 'your_password' abil;
anda kõik privileegid *. * aadressile mysql@localhost;
FLUSHI privileegid;
Väljuge mysql shellist selle käsuga:
väljumine;
Pythoni paketid:
Python tuleks juba installida, kui te ei valinud Lite versiooni:
sudo apt install python3-pip
Vajame palju Pythoni pakette, saate need kõik installida järgmise käsuga:
pip3 install mysql-konnektor-python-kolb-pistikupesa-kolvid-cors gevent gevent-websocket
Nüüd peame uuesti taaskäivitama
sudo taaskäivitamine
2. samm: Visual Studio koodi ja MySQL Workbenchi seadistamine
Pi -ga ühenduse loomine MySQL Workbenchi abil:
Avage MySQL Workbench
Looge Pi -ga uus ühendus järgmise teabe abil:
- Ühenduse nimi: Raspi
- Ühendusmeetod: standardne TCP/IP SSH kaudu
- SSH hostinimi: Pi IP-aadress
IP-aadressi saate selle käsuga:
ip a
- SSH kasutajanimi: pi
- MySQL -i hostinimi: 127.0.0.1
- MySQL serveri port: 3306
- Kasutajanimi: mysql
Klõpsake nuppu OK ja sisestage kasutaja pi parool ning seejärel sisestage kasutaja mysql parool.
Visual Studio koodi seadistamine:
Avage Visual Studio kood
Installige need 2 laiendust:
- Kaugjuhtimispult - SSH
- Kaugjuhtimine - SSH: konfiguratsioonifailide redigeerimine
Vajutage Visual Studio koodi F1 ja sisestage ssh
Valige Kaug -SSH: lisage uus SSH -hosti
Sisestage ssh pi@IP-aadress
Järgmises etapis vajutage sisestusklahvi
Ühendus on nüüd loodud Pi -ga. Pi -ga saate ühenduse luua, vajutades klahvi F1 ja valides Ühenda kaughostiga.
Sisestage parool, et Visual Studio Code saaks juurdepääsu Pi -le.
Veel üks asi: installige Pythoni laiendus kaugarvutisse, et saaksite koodi hõlpsalt käivitada ja siluda.
3. samm: Fritzing diagramm
Selles etapis selgitan ahelat.
Ülaltoodud skeemid on tehtud Fritzingi abil.
Alalisvoolumootor:
Ühendage GPIO 18 kollektori alusega, npn -transistori keskmine tihvt. Ühendage mootori maandus transistorist kollektoriga ja mootori toide 5 V -ga. Ühendage transistori maandus maandusjuhtmega. Ühendage diood tõkkega üle mootori, nii et see blokeerib voolu voolamise otse transistorile.
Sammumootor:
Ühendage samm -mootor juhtpaneeliga. Juhtpaneelil on ühel küljel 5V ja maanduse ühendamiseks tihvtid. Teised tihvtid on kontrollnõelad. Need tihvtid juhivad mootori sees olevaid magneteid, nii et see saab pöörduda. Ühendage need tihvtid Raspberry Pi GPIO 12, 16, 20 ja 21 -ga.
Ultraheli HC-SR04:
See andur suudab heli abil mõõta kaugust umbes 4,5 meetrini.
Ühendage VCC tihvt 5 V -ga, päästiku tihvt GPIO 25 -ga, 470 oomi takistiga kajapinge GPIO 24 -ga ja maandus 470 oomi takistiga maapinnaga.
MPU6050:
Ühendage VCC tihvt 3V3 -ga, maapind maapinnaga, scl Pi -s oleva scl -iga ja sda sda -ga Pi -l. Selle anduri puhul kasutan selle juhtimiseks I2C -d. Selle kohta saate rohkem lugeda siit. Siin on põhiline seletus: Pi on kapten ja MPU6050 on ori. Pi kontrollib scl -liini kaudu ajastusi ja sda -rida kasutatakse andmete saatmiseks kaptenilt orjale või orjast kaptenile. Andmeedastust saab algatada ainult kapten.
Valgusõltuv takisti:
LDR -i õigete näitude saamiseks kasutan MCP3008 kiipi. See tagab, et LDR -i näidud on stabiilsed ja õigesti teisendatud analoogsignaalidest digitaalsignaalideks.
Ühendage 3V3 ldr ühele küljele 10K oomi takistiga. Ühendage ldr ja takisti vahel traat MCP3008 kanaliga 0. Seejärel ühendage ldr teine pool maapinnaga.
LCD ekraan:
Saate kasutada LCD -ekraani ilma PCF8574 -ta, kuid kuna Pi GPIO -tihvtid on piiratud, kasutan mõningate GPIO -kontaktide salvestamiseks PCF8574 -d. Võite kasutada ka vahetusregistrit, kuid ma eelistan PCF8574. Saate PCF8574 juhtida SMbus -protokolliga, kuid ma kirjutasin selle juhtimiseks oma klassi. Potentsiomeeter kontrollib kontrastsust.
LCD -ekraani tihvtid:
- VSS maapinnale
- VDD kuni 5V
- V0 potentsiomeetri muutuva tihvtiga
- RS GPIO -le 13
- R/W maandamiseks, sest ma kirjutan ainult kuvarile ja ei loe
- E kuni GPIO 19
- PCF -i DB0 kuni P0
- DB1 kuni P1
- DB2 kuni P2
- DB3 kuni P3
- DB4 kuni P4
- DB5 kuni P5
- DB6 kuni P6
- DB7 kuni P7
- LED+ kuni 5V
- LED- maapinnale
PCF8574 tihvtid:
- A0 maapinnale
- A1 maapinnale
- A2 maapinnale
- Maapinnast maapinnale
- VCC kuni 5V
- SDA kuni GPIO 27
- SCL kuni GPIO 22 takistiga 330 oomi
Sõltuvalt sellest, millist tüüpi ekraani saate, ei pruugi teil olla LED+ ja LED-. LED+ ja LED- on mõeldud taustvalgustuseks.
Ühendage potentsiomeetri positiivne külg 5 V ja maapind maandusega.
Kasutage kindlasti tõmbetakistusi!
Samm: kood Githubis
Kogu vajaliku koodi leiate minu Githubist.
Kausta projekt1:
See kaust sisaldab kogu taustaprogrammi koodi. Kaustas Klasses on kõik klassid riistvara juhtimiseks.
Kaustade hoidlad sisaldavad 2 faili: Database.py ja DataRepository.py. Database.py säilitab ühenduse andmebaasiga ja tegeleb päringutega. DataRepository.py sisaldab kõiki saidi jaoks vajalikke päringuid.
App.py on taustaprogrammi põhifail. See fail käivitub automaatselt Pi käivitamisel.
Config.py sisaldab andmebaasiga ühenduse loomiseks mõningaid sätteid. Täitke need failid kindlasti oma andmetega.
Selle kausta saate paigutada ükskõik kuhu oma kodukataloogis.
Kausta html:
See kaust sisaldab kõiki saidi, kasutajaliidese faile.
- Kaust sisaldab saidi paigutuse faile.
- Fondid sisaldavad saidil kasutatavaid fonte.
- Skript sisaldab kõiki Javascripti faile, et muuta sait dünaamiliseks
See kaust peab olema kaustas/var/www/html
Faili või kausta saate kopeerida selle käsuga:
sudo mv/tee//praegune/kataloog/tee/sihtkohta/kataloogi
Brauseris saiditüübile navigeerimiseks LCD-ekraanil kuvatav IP-aadress.
5. samm: andmebaasi normaliseeritud struktuur
Selles etapis impordime andmebaasi.
- Ühendage oma Raspberry Pi -ga MySQL Workbenchi abil
- Klõpsake nuppu Server -> Andmete importimine
- Valige Import iseseisvat faili
- Kaustas Andmebaas-eksport Githubist on sql-fail nimega dump_project1.sql
- Sirvige seda faili ja klõpsake nuppu Alusta importimist
See on kõik. Pi saab nüüd andmebaasile juurde pääseda, kui sellel on õige teave.
Samm 6: Kaardi levitaja juhtum
Selles etapis selgitan, mida ma korpuse jaoks kasutasin ja kuidas kõike paigaldasin.
Korpuse jaoks kasutasin 2 ABS -kasti:
- 265 x 185 x 95 mm
- 171 x 121 x 80 mm
Avad, mis ma kastidesse tegin
Auk LCD -ekraani jaoks, 3 auku toitekaablite jaoks, üks samm -mootori, alalisvoolumootori ja ultrahelianduri juhtmete jaoks.
Väikseimasse kasti tegin komponentidest juhtmete jaoks augu ja kaartide läbimiseks augu. Üles tegin suurima augu, et saaksite mängukaardid seadmesse paigutada.
Paigaldasin alalisvoolumootori klambri ja mõne kahepoolse teibiga. Tegin puidust tahvli, kuhu kaardid panna, rattaauguga, et kaart maha lasta.
Olen valinud ABS -plastiku, kuna see on kerge, nii et samm -mootor saab seda hõlpsalt pöörata. Puit võib olla tõesti raske ja samm -mootoril võib sellega probleeme olla. Aukude lõikamiseks kasutasin metalli jaoks mõeldud puurvardadega puurit ja Dremeli. Suuremate aukude lõikamine võttis palju rohkem tööd ja jigsaag oleks parem.
Samm: programm teenusena
On tõesti kasulik, kui kood algab pärast Pi käivitamist. Selleks teeme teenuse.
Looge uus fail nimega smartcard.service järgmise käsuga:
sudo nano /etc/systemd/system/smartcard.service
See peab faili minema:
[Ühik]
Kirjeldus = Kiipkaardi taustaprogramm Pärast = network.target [Teenus] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory =/home/pi/project1 StandardOutput = pärida StandardError = pärida Taaskäivita = alati Kasutaja = pi [Install] WantedBy = mitme kasutaja sihtmärk WorkingDirectory on tee kausta, kus programm asub
Nüüd on teil oma kiipkaart!
Soovitan:
Automaatne kätepuhastusvahend: 8 sammu
Automaatne kätepuhastusvahend: COVID-19 pandeemiast on saanud avalikkus 2020. aastal väga sageli kuulnud. Iga kodanik, kes kuuleb sõna „COVID-19”, mõtleb kohe sõna „ohtlik”, „surmav”, „hoia puhtana” "Ja teisi sõnu. Sellel COVID-19-l on ka
DIY automaatne kätepuhastusvahendi dosaator: 6 sammu
DIY automaatne kätepuhastusvahendi dosaator: Selles projektis ehitame automaatse käte desinfitseerimisdosaatori. See projekt kasutab Arduino, ultraheli andurit, veepumpa ja käte desinfitseerimisvahendit. Käte olemasolu kontrollimiseks desinfitseerimismasina väljalaskeava all kasutatakse ultrahelisensorit
Mobiilse täislaadimise automaatne väljalülitamine: 20 sammu
Mobiiltelefoni täislaadimise automaatne väljalülitus: mobiiltelefoni laadimise katkestus automaatselt, kui see on täielikult laetud. Ärge muretsege aku tööea pärast isegi siis, kui oleksite selle ööseks jätnud. Mobiiltelefonid töötavad patareide abil. Kuigi patareisid on mugav kasutada, vajavad nende kasutamine ka teatavaid ettevaatusabinõusid. A ma
Automaatne koeratoit !!: 4 sammu
Automaatne koeratoit !!: Lihtne, abivalmis ja tervislik
Automaatne taimede kastmissüsteem mikro abil: bit: 8 sammu (piltidega)
Automaatne taimede kastmissüsteem mikro: bitti kasutades: selles juhendis näitan teile, kuidas ehitada automaatset taimede kastmissüsteemi, kasutades mikro: bitti ja mõnda muud väikest elektroonilist komponenti. Micro: bit kasutab niiskuseandurit jälgida taime pinnase niiskustaset ja