Sadržaj:
- Pribor
- Korak 1: Priprema Rasperry Pi
- Korak 2: Postavljanje koda Visual Studio i MySQL radne ploče
- Korak 3: Dijagram frcanja
- Korak 4: Kôd na Githubu
- Korak 5: Normalizirana struktura baze podataka
- Korak 6: Torba za distributera kartica
- Korak 7: Program kao usluga
Video: Automatski distributer kartica: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Za svog prvog projekta odabrao sam distributera pametnih kartica jer volim igrati karte. Najviše mi se ne sviđa dijeljenje karata. Za svaku igru morate zapamtiti koliko karata dobije svaka osoba. To postaje zbunjujuće kada znate puno kartaških igara. Moj će projekt također pomoći ljudima koji imaju problema s distribucijom kartica poput starijih ljudi i ljudi koji boluju od Parkinsonove bolesti.
Pribor
- 1 Raspberry Pi (koristio sam Raspberry Pi 4)
- SD kartica (preporučeno 16 GB)
- 1 Outbread komad za Raspberry Pi (T-komad)
- 2 ploče
- 1 Modul napajanja za matičnu ploču, 5V i 3V3
- 1 LCD zaslon
- 1 Potenciometar
- 1 MPU6050 (akcelerometar i žiroskop)
- 1 NPN tranzistora
- 1 PCF8574N I/O proširivač
- 1 koračni motor
- 1 ULN2003 razvodna ploča za upravljanje koračnim motorom
- 1 HC-SR04 ultrazvučni senzor
- 1 DC motori 5V
- 1 diode
- 6 470 Ohm otpornika
- 4 otpornika od 10K ohma
- Električna žica za spajanje svega
Korisno imati pri izradi:
- Lemilica
- Lem
- Dremel ili ubodna pila (nešto za rezanje drva i ABS plastike)
Softver:
- Kit
- MySQL radni sto
- Win32 Disk Imager
- Uređivač koda (preporučujem Visual Studio Code)
- WinSCP
- Raspbian image
Korak 1: Priprema Rasperry Pi
Prvo moramo pripremiti Raspberry Pi prije nego učinimo bilo što drugo. Budući da će Pi sve funkcionirati, ovo je jedan od najvažnijih dijelova distributera kartica.
Montaža:
Preuzmite Raspbian sliku s
- Preuzmite ZIP datoteku
- Izdvojite ZIP datoteku na mjestu na kojem ćete je lako pronaći
- Otvorite Win32 Disk Imager i odaberite izdvojenu sliku
- Odaberite SD karticu na padajućem izborniku i kliknite zapiši
- Kada proces pisanja završi, možete zatvoriti Win32 Disk Imager
Sada moramo učiniti još nekoliko stvari prije nego što se možemo povezati s Pi
- Dođite do mape za pokretanje na SD kartici
- Otvorite datoteku cmdline.txt
- Dodajte 'ip = 169.254.10.1' na kraj retka odvojenog razmakom
- Spremite i izađite iz datoteke
- U istom direktoriju stvorite datoteku pod nazivom ssh i uklonite proširenje (ovo će omogućiti ssh pri prvom pokretanju kako bismo se mogli povezati s Pi)
- Sigurno izbacite SD karticu i stavite je u Pi
Sada se možemo povezati s Pi:
- Uhvatite ethernet kabel i umetnite jedan kraj u Pi, a drugi kraj u računalo
- Otvorite kit
- Unesite 169.254.10.1 u polje Naziv hosta
- Provjerite je li odabran SSH i je li port 22
- Pritisnite otvoriti
- Ako dobijete upozorenje, možete samo nastaviti i zanemariti ga
- Korisničko ime je pi, a lozinka malina
Konfiguracija i instalacija softvera:
Otvorite raspi-config sa sljedećom naredbom:
sudo raspi-config
Odaberite petu opciju: Opcije sučelja
Omogućite SPI i I2C
Onemogućite sljedeće u trećoj opciji: Opcije pokretanja:
- Splash screen
- Za pokretanje odaberite cli, a ne desktop
Wifi podešavanje:
Wifi je koristan za jednostavno kretanje do web stranice. Provjerite jeste li blizu vjerodajnica za WiFi.
Za postavljanje wifija potrebno nam je nekoliko stvari:
Pomoću ove naredbe dodajte svoj WiFi i promijenite SSID i PASSWORD svojim podacima:
sudo wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Izvršite ovu naredbu za ponovno konfiguriranje vašeg WiFi -ja:
sudo wpa_cli
Odaberite ispravno sučelje:
sučelje wlan0
Ponovno konfigurirajte sučelje:
ponovno konfigurirati
Provjerite je li rekonfiguracija uspjela pomoću ove naredbe:
ip a
Ako vidite IP adresu na wlan0 sučelju, sve je postavljeno.
Ažuriranje operacijskog sustava
Ažurirajte operacijski sustav pomoću ove 2 naredbe:
sudo apt ažuriranje
sudo apt potpuna nadogradnja
Postavljanje MariaDB -a:
Instaliranje Apache web poslužitelja:
sudo apt install apache2 -y
Instaliranje MariaDB poslužitelja:
sudo apt install mariadb -server -y
Sada moramo ponovno pokrenuti sustav:
sudo ponovno podizanje sustava
Preporučuje se osiguranje instalacije MariaDB. To možete učiniti pokretanjem ove naredbe:
sudo mysql_secure_installation
Prvo ćete biti upitani za trenutnu root lozinku, no zadana instalacija je nema pa pritisnite enter.
Zatim ćete biti upitani želite li postaviti root lozinku, upišite y. Zapamtite lozinku!
- Unesite y da biste uklonili anonimne korisnike
- Unesite y za daljinsko onemogućavanje root prijave
- Unesite y da biste uklonili testne baze podataka i pristupili im
- Unesite y za ponovno učitavanje privilegija
Vaša instalacija MariaDB -a trebala bi biti sigurna!
Sada možemo stvoriti novog korisnika:
Unesite ljusku mysql s ovom naredbom:
sudo mysql
Stvorite korisnika s korisničkim imenom mysql i lozinkom (vaša_proporta) sljedećim naredbama:
stvoriti korisnika mysql@localhost identificiranog sa "vaša_proporta";
dodijelite sve privilegije na *. * mysql@localhost;
FLUSH PRIVILEGIJE;
Izađite iz ljuske mysql ovom naredbom:
Izlaz;
Python paketi:
Python bi već trebao biti instaliran ako niste odabrali Lite verziju:
sudo apt install python3-pip
Trebamo dobru količinu Python paketa, sve ih možete instalirati sa sljedećom naredbom:
pip3 instalirajte mysql-connector-python flask-socketio flask-cors gevent gevent-websocket
Sada se moramo ponovno pokrenuti
sudo ponovno podizanje sustava
Korak 2: Postavljanje koda Visual Studio i MySQL radne ploče
Spajanje na Pi s MySQL radnim stolom:
Otvorite MySQL Workbench
Uspostavite novu vezu s Pi sa sljedećim podacima:
- Naziv veze: Raspi
- Način povezivanja: Standardni TCP/IP preko SSH -a
- SSH naziv hosta: IP adresa Pi-a
IP adresu možete dobiti pomoću ove naredbe:
ip a
- SSH korisničko ime: pi
- Naziv hosta MySQL: 127.0.0.1
- Port za MySQL poslužitelj: 3306
- Korisničko ime: mysql
Pritisnite u redu i unesite lozinku za korisnika pi, a zatim unesite lozinku za korisnika mysql.
Postavljanje koda Visual Studio:
Otvorite kôd Visual Studio
Instalirajte ova dva proširenja:
- Daljinski - SSH
- Daljinski - SSH: Uređivanje konfiguracijskih datoteka
Pritisnite Visual Studio Code F1 i upišite ssh
Odaberite Udaljeni SSH: Dodajte novi SSH host
Ispunite ssh pi@IP adresu
U sljedećem koraku pritisnite enter
Veza je sada uspostavljena s Pi. Na Pi se možete povezati pritiskom na F1 i odabirom povezivanja s udaljenim hostom.
Unesite lozinku kako bi Visual Studio Code imao pristup Pi.
Još jedna stvar: Instalirajte proširenje Python na udaljeni stroj kako biste mogli jednostavno pokrenuti i otklanjati pogreške koda.
Korak 3: Dijagram frcanja
U ovom koraku ću objasniti sklop.
Gore navedene sheme izrađene su s Fritzingom.
DC motor:
Spojite GPIO 18 na bazu kolektora, srednji pin na npn tranzistoru. Spojite uzemljenje motora na kolektor s tranzistora, a napajanje motora na 5V. Spojite uzemljenje tranzistora na liniju uzemljenja. Spojite diodu u barijeru preko motora tako da blokira struju koja teče izravno na tranzistor.
Koračni motor:
Spojite koračni motor na upravljačku ploču. Na upravljačkoj ploči s jedne strane nalaze se igle za spajanje 5V i mase. Ostale iglice su kontrolne. Ovi pinovi upravljaju magnetima unutar motora kako bi se mogli okretati. Spojite ove pinove na GPIO 12, 16, 20 i 21 na Raspberry Pi.
HC-SR04 Ultrazvučni:
Ovaj senzor može mjeriti udaljenosti do oko 4,5 metara pomoću zvuka.
Priključite pin VCC na 5V, okidač na GPIO 25, eho pin s otpornikom od 470 Ohma na GPIO 24 i uzemljenje s otpornikom od 470 Ohma na masu.
MPU6050:
Spojite VCC pin na 3V3, uzemljenje s masom, scl na scl na Pi i sda na sda na Pi. Za ovaj senzor koristim I2C za upravljanje. Više o tome možete pročitati ovdje. Evo osnovnog objašnjenja: Pi je glavni, a MPU6050 rob. Putem scl linije Pi kontrolira mjerenje vremena, a sda linija se koristi za slanje podataka s glavnog na slave ili sa slave na master. Prijenos podataka može pokrenuti samo glavni.
Otpornik ovisan o svjetlu:
Za ispravna očitanja iz LDR -a koristim čip MCP3008. Time se osigurava da su očitanja iz ldr stabilna i ispravna pretvorena iz analognih u digitalne signale.
Spojite 3V3 na jednu stranu ldr -a s otpornikom od 10K Ohma. Između ldr -a i otpornika spojite žicu na kanal 0 MCP3008. Zatim spojite drugu stranu ldr -a na tlo.
LCD zaslon:
Možete koristiti LCD zaslon bez PCF8574, ali budući da su GPIO pinovi na Pi ograničeni, koristim PCF8574 za spremanje nekih GPIO pinova. Također možete koristiti registar pomaka, ali ja više volim PCF8574. Možete kontrolirati PCF8574 pomoću SMbus protokola, ali sam napisao vlastitu klasu za kontrolu. Potenciometar kontrolira kontrast.
Igle za LCD zaslon:
- VSS na masu
- VDD do 5V
- V0 na promjenjivi pin potenciometra
- RS na GPIO 13
- R/W na masu jer pišem samo na zaslon, a ne čitam
- E na GPIO 19
- DB0 do P0 PCF -a
- DB1 do P1
- DB2 do P2
- DB3 do P3
- DB4 do P4
- DB5 do P5
- DB6 do P6
- DB7 do P7
- LED+ do 5V
- LED- na masu
PCF8574 pinovi:
- A0 na masu
- A1 na masu
- A2 na masu
- Od zemlje do zemlje
- VCC na 5V
- SDA na GPIO 27
- SCL na GPIO 22 s otpornikom od 330 Ohma
Možda nemate LED+ i LED- ovisno o vrsti zaslona koji imate. LED+ i LED- služe za pozadinsko osvjetljenje.
Spojite pozitivnu stranu potenciometra na 5V, a uzemljenje na masu.
Upotrijebite pull-up otpornike!
Korak 4: Kôd na Githubu
Sav potreban kod možete pronaći na mom Githubu.
Mapa projekt 1:
Ova mapa sadrži sav kôd za pozadinu. U mapi Klase su sve klase za kontrolu hardvera.
Spremišta mapa sadrže 2 datoteke: Database.py i DataRepository.py. Database.py održava vezu s bazom podataka i obrađuje upite. DataRepository.py sadrži sve upite potrebne za web mjesto.
App.py je glavna datoteka pozadine. Ova se datoteka automatski pokreće kada se Pi pokrene.
Config.py sadrži nekoliko postavki za povezivanje s bazom podataka. Popunite ove datoteke vlastitim podacima.
Ovu mapu možete postaviti bilo gdje u svom kućnom imeniku.
Mapa html:
Ova mapa sadrži sve datoteke za web mjesto, sučelje.
- Mapa sadrži datoteke za izgled web stranice.
- Fontovi sadrže fontove koji se koriste na web mjestu.
- Skripta sadrži sve Javascript datoteke kako bi web mjesto postalo dinamično
Ova mapa mora biti u mapi/var/www/html
Pomoću ove naredbe možete kopirati datoteku ili mapu:
sudo mv/path/to/current/directory/path/to/destination/directory
Za navigaciju do vrste web mjesta u vašem pregledniku IP adresa prikazana na LCD zaslonu.
Korak 5: Normalizirana struktura baze podataka
U ovom koraku ćemo uvesti bazu podataka.
- Povežite se na svoj Raspberry Pi pomoću MySQL radnog stola
- Pritisnite Poslužitelj -> Uvoz podataka
- Odaberite Uvezi samostalnu datoteku
- U mapi Database-export iz Github-a nalazi se sql datoteka pod nazivom dump_project1.sql
- Potražite ovu datoteku i kliknite početak uvoza
To je to. Pi sada može pristupiti bazi podataka ako ima točne podatke.
Korak 6: Torba za distributera kartica
U ovom koraku ću objasniti što sam koristio za kućište i kako sam sve montirao.
Za slučaj sam koristio 2 ABS kutije:
- 265 x 185 x 95 mm
- 171 x 121 x 80 mm
Rupe koje sam napravio u kutijama
Rupa za LCD zaslon, 3 rupe za kabele za napajanje, jedna za žice koračnog motora, istosmjernog motora i ultrazvučnog senzora.
U najmanjoj kutiji napravio sam rupu za žice od komponenti i otvor za prolaz kartica. Na vrhu sam napravio najveću rupu tako da možete staviti karte za igru u uređaj.
Montirao sam istosmjerni motor s nosačem i nekom dvostranom trakom. Napravio sam drvenu ploču za polaganje karata s rupom za kotač za ispucavanje karte.
Odabrao sam ABS plastiku jer je lagana pa ga koračni motor može lako okrenuti. Drvo može biti jako teško i koračni motor bi mogao imati problema s tim. Za izrezivanje rupa upotrijebio sam bušilicu sa svrdlima za metal i Dremel. Rezanje većih rupa zahtijevalo je puno više posla, a ubodna pila bi bila bolja.
Korak 7: Program kao usluga
Zaista je korisno imati kôd koji počinje nakon podizanja Pi. Za to ćemo napraviti uslugu.
Izradite novu datoteku pod nazivom smartcard.service sa sljedećom naredbom:
sudo nano /etc/systemd/system/smartcard.service
Ovo mora ući u datoteku:
[Jedinica]
Opis = Pozadinska pozadina pametne kartice Nakon = network.target [Usluga] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory =/home/pi/project1 StandardOutput = naslijedi StandardError = naslijedi Restart = uvijek Korisnik = pi [Instaliraj] Traži se = višekorisnički cilj WorkingDirectory je put do mape u kojoj se program nalazi
Sada imate svoju pametnu karticu!
Preporučeni:
SIM900A 2G modul + hologramska SIM kartica = dobitna kombinacija u kategoriji "prljavo jeftino"?: 6 koraka
SIM900A 2G modul + hologramska SIM kartica = dobitna kombinacija u kategoriji "prljavo jeftino"?: IoT, popularna riječ ovog desetljeća, ponekad uđe čak i u misli ljudi koji se smatraju otpornima na hir, a među njima sam i ja. Jednog sam dana pregledavao Internet i vidio sam tvrtku za koju nikad prije nisam čuo (hologram) koja daje SIM kartice
Mini kartica: 5 koraka
MiniCard: Projekt Cardinal govori o izradi uređaja otvorenog koda koji vibrira kada je korisnik okrenut prema sjeveru, što nije nova ideja. Jedno prekidanje veze s postojećim modelima je to što se oslanjaju na Zemljino magnetsko polje, što mislim, ima smisla. Problem sa
Bežični čitač SD kartica [ESP8266]: 10 koraka (sa slikama)
Bežični čitač SD kartica [ESP8266]: USB je trebao biti univerzalan, a glavni cilj je bio učiniti zamjenjivim, super lakim za sučelje s drugim uređajima, ali s godinama je ideja krenula naopako. Postoji toliko mnogo varijanti ovih USB priključaka što je toliko frustrirajuće zbog
E-kartica za Majčin dan: 6 koraka
E-čestitka za Majčin dan: Majčin dan dolazi. imate li poklon za svoje mame? Evo jednog tehničkog načina da pozdravite i kažete kako volite svoju majku na taj poseban dan, elektroničku karticu za Majčin dan.Ovaj projekt koristi 4D sustave ’ 4.3 ″ ge
Micro: bitni MU senzor vida za početnike - I2C i prepoznavanje kartica oblika: 8 koraka
Micro: bitni MU senzor vida za početnike - I2C i prepoznavanje kartica oblika: Dobio sam u ruke senzor vida MU za Micro: bit. Čini se da je to super alat koji će mi omogućiti da napravim mnogo različitih projekata temeljenih na viziji. Nažalost, ne čini se toliko vodiča za to, a dok je dokumentacija zaista