Sadržaj:
- Supplies
- Korak 1: Priprema Rasperry Pi
- Korak 2: Postavljanje koda Visual Studio i MySQL radne ploče
- Korak 3: Dijagram urezivanja
- Korak 4: Kôd na Githubu
- Korak 5: Normalizirana struktura baze podataka
- Korak 6: Slučaj za distributera kartice
- Korak 7: Program kao usluga
Video: Automatski distributer kartica: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Za prvog projekta odabrao sam distributera pametnih kartica jer volim igrati karte. Ono što najviše ne volim je dijeljenje karata. Za svaku igru morate zapamtiti koliko karata svaka osoba dobije. To postaje zbunjujuće kada znate puno kartaških igara. Moj projekt će također pomoći ljudima koji imaju problema s distribucijom kartica, poput starijih ljudi i ljudi koji boluju od Parkinsonove bolesti.
Supplies
- 1 Raspberry Pi (koristio sam Raspberry Pi 4)
- SD kartica (preporučuje se 16 GB)
- 1 Outbread komad za Raspberry Pi (T-komad)
- 2 matične ploče
- 1 Modul napajanja za matičnu ploču, 5V i 3V3
- 1 LCD ekran
- 1 Potenciometar
- 1 MPU6050 (akcelerometar i žiroskop)
- 1 NPN tranzistor
- 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 5V DC motori
- 1 diode
- 6 470 Ohm otpornika
- 4 otpornika od 10K ohma
- Električna žica za povezivanje svega
Korisno imati pri izradi:
- Lemilica
- Solder
- Dremel ili ubodna pila (nešto za rezanje drva i ABS plastike)
Softver:
- Git
- 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 šta drugo. Budući da će Pi sve funkcionirati, ovo je jedan od najvažnijih dijelova distributera kartica.
Instalacija:
Preuzmite Raspbian sliku sa
- Preuzmite ZIP datoteku
- Izdvojite ZIP datoteku na kojoj ćete je lako pronaći
- Otvorite Win32 Disk Imager i odaberite izdvojenu sliku
- Odaberite SD karticu u 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
- Idite do mape za pokretanje na SD kartici
- Otvorite datoteku cmdline.txt
- Dodajte 'ip = 169.254.10.1' na kraj retka odvojenog razmakom
- Sačuvajte i izađite iz datoteke
- Kreirajte u istom direktoriju datoteku pod nazivom ssh i uklonite ekstenziju (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:
- Uzmite ethernet kabel i umetnite jedan kraj u Pi, a drugi kraj u računar
- Otvorite kit
- Unesite 169.254.10.1 u polje Ime hosta
- Uvjerite se da je izabran SSH i da je port 22
- Kliknite otvoreno
- 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ći 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. Uvjerite se da su vam WiFi vjerodajnice zatvorene.
Za postavljanje wifija potrebno nam je nekoliko stvari:
Dodajte svoju WiFi mrežu pomoću ove naredbe 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:
interfejs wlan0
Ponovo konfigurirajte sučelje:
ponovo 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 operativnog sistema
Ažurirajte operativni sistem pomoću ove 2 naredbe:
sudo apt update
sudo apt potpuna nadogradnja
Postavljanje MariaDB -a:
Instaliranje Apache web servera:
sudo apt install apache2 -y
Instaliranje MariaDB servera:
sudo apt install mariadb -server -y
Sada moramo ponovo pokrenuti sistem:
sudo reboot
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, ali 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 MariaDB instalacija trebala bi biti sigurna!
Sada možemo stvoriti novog korisnika:
Unesite ljusku mysql s ovom naredbom:
sudo mysql
Kreirajte korisnika s korisničkim imenom mysql i lozinkom (vaša_proporta) sa sljedećim naredbama:
kreirati korisnika mysql@localhost identificiranog sa 'your_password';
dodijelite sve privilegije na *. * mysql@localhost;
FLUSH PRIVILEGES;
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
Treba nam velika količina Python paketa, sve ih možete instalirati sa sljedećom naredbom:
pip3 instalirajte mysql-konektor-python flask-socketio flask-cors gevent gevent-websocket
Sada moramo ponovo pokrenuti sistem
sudo reboot
Korak 2: Postavljanje koda Visual Studio i MySQL radne ploče
Povezivanje na Pi sa MySQL radnim stolom:
Otvorite MySQL Workbench
Uspostavite novu vezu sa Pi sa sljedećim podacima:
- Naziv veze: Raspi
- Način povezivanja: Standardni TCP/IP preko SSH -a
- SSH ime hosta: IP adresa Pi-a
IP adresu možete dobiti pomoću ove naredbe:
ip a
- SSH korisničko ime: pi
- MySQL Ime hosta: 127.0.0.1
- Port za MySQL server: 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 2 proširenja:
- Daljinski - SSH
- Daljinski - SSH: Uređivanje konfiguracijskih datoteka
Pritisnite Visual Studio Code F1 i upišite ssh
Odaberite Remote SSH: Dodajte novi SSH host
Popunite ssh pi@IP-adresu
U sljedećem koraku pritisnite enter
Veza je sada uspostavljena sa Pi. Na Pi se možete povezati pritiskom na F1 i odabirom povezivanja na udaljeni host.
Unesite lozinku kako bi Visual Studio Code imao pristup Pi.
Još jedna stvar: Instalirajte Python ekstenziju na udaljenu mašinu kako biste mogli jednostavno pokrenuti i otklanjati greške u kodu.
Korak 3: Dijagram urezivanja
U ovom koraku ću objasniti krug.
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 pinovi za spajanje 5V i mase. Ostali pinovi su kontrolni pinovi. Ovi pinovi upravljaju magnetima unutar motora kako bi se mogli okretati. Spojite ove pinove na GPIO 12, 16, 20 i 21 na Raspberry Pi -u.
HC-SR04 Ultrazvučni:
Ovaj senzor može mjeriti udaljenosti do oko 4,5 metara pomoću zvuka.
Spojite VCC pin na 5V, pin okidača 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 na masu, scl na scl na Pi i sda na sda na Pi. Za ovaj senzor koristim I2C za kontrolu. 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 master.
Otpornik ovisan o svjetlu:
Za ispravna očitanja iz LDR -a koristim čip MCP3008. Ovo osigurava da su očitanja iz ldr stabilna i ispravna pretvorena iz analognih u digitalne signale.
Spojite 3V3 na jednu stranu ldr -a sa otpornikom od 10K Ohma. Između ldr -a i otpornika spojite žicu na kanal 0 MCP3008. Zatim spojite drugu stranu ldr -a sa uzemljenjem.
LCD ekran:
Možete koristiti LCD ekran bez PCF8574, ali pošto su GPIO pinovi na Pi ograničeni, koristim PCF8574 da sačuvam neke GPIO pinove. Možete koristiti i 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 ekran:
- VSS na masu
- VDD do 5V
- V0 na promjenjivi pin potenciometra
- RS na GPIO 13
- R/W na masu jer pišem samo na ekran, 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 sa otpornikom od 330 Ohma
Možda nećete imati LED+ i LED- ovisno o vrsti ekrana koji imate. LED+ i LED- služe za pozadinsko osvjetljenje.
Priključite 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.
Folder project1:
Ova mapa sadrži sav kôd za pozadinu. U fascikli Klasses 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 lokaciju.
App.py je glavna datoteka pozadine. Ova datoteka se 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 direktoriju.
Mapa html:
Ova mapa sadrži sve datoteke za web mjesto, sučelje.
- Mapa sadrži datoteke za izgled 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 fascikla mora biti u fascikli/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 lokacije u vašem pregledniku IP adresa prikazana na LCD ekranu.
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
- Kliknite na Server -> 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 na početak uvoza
To je to. Pi sada može pristupiti bazi podataka ako ima tačne podatke.
Korak 6: Slučaj za distributera kartice
U ovom koraku ću objasniti šta sam koristio za kućište i kako sam sve montirao.
Za kućište 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 prolazak kartica. Na vrhu sam napravio najveću rupu tako da možete staviti karte za igru u uređaj.
Montirao sam istosmjerni motor sa držačem i malo dvostrane trake. Napravio sam drvenu dasku na koju sam položio karte s rupom za točak za snimanje karte.
Izabrao sam za 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 pokretanja Pi -a. Za to ćemo napraviti uslugu.
Kreirajte 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 = 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žim = višekorisnički cilj WorkingDirectory je put do mape u kojoj se program nalazi
Sada imate svoju pametnu karticu!
Preporučuje se:
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č ove decenije, ponekad uđe čak i u misli ljudi koji se smatraju otpornima na hir, a među njima sam i ja. Jednog dana sam pregledavao Na internetu i vidio kompaniju za koju nikada prije nisam čuo (Hologram) koja daje SIM kartice
Mini kartica: 5 koraka
MiniCard: Projekt Cardinal govori o stvaranju uređaja otvorenog koda koji vibrira kada je korisnik okrenut prema sjeveru, što nije nova ideja. Jedno prekidanje veze sa postojećim modelima je to što se oslanjaju na Zemljino magnetno 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 napraviti zamjenu koja se može vruće zamijeniti, super laku za povezivanje 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 sisteme ’ 4.3 ″ ge
JavaStation (potpuno automatski automatski IoT aparat za kavu sa automatskim punjenjem): 9 koraka (sa slikama)
JavaStation (Automatski aparat za kavu sa stvarima koje se sam puni): Cilj ovog projekta bio je napraviti potpuno automatski aparat za kavu s glasovnom kontrolom koji se automatski dopunjava vodom i sve što trebate učiniti je zamijeniti korisnike i popiti kavu; ))