Obsah:

Automatický distribútor kariet: 7 krokov
Automatický distribútor kariet: 7 krokov

Video: Automatický distribútor kariet: 7 krokov

Video: Automatický distribútor kariet: 7 krokov
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #7 2024, November
Anonim
Automatický distribútor kariet
Automatický distribútor kariet

Ako svoj prvý projekt som si vybral distribútora čipových kariet, pretože rád hrám kartovú hru. Najviac sa mi nepáči rozdávanie kariet. Pri každej hre si musíte zapamätať, koľko kariet každý človek dostane. Keď poznáte veľa kartových hier, začne to byť mätúce. Môj projekt tiež pomôže ľuďom, ktorí majú problémy s distribúciou kariet, ako sú starší ľudia a ľudia trpiaci Parkinsonovou chorobou.

Zásoby

  • 1 Raspberry Pi (použil som Raspberry Pi 4)
  • Karta SD (odporúča sa 16 GB)
  • 1 Outbread piece for Raspberry Pi (T-piece)
  • 2 chlebníky
  • 1 Napájací modul pre nepájivú dosku, 5V a 3V3
  • 1 LCD displej
  • 1 potenciometer
  • 1 MPU6050 (akcelerometer a gyroskop)
  • 1 tranzistory NPN
  • 1 expandér vstupov a výstupov PCF8574N
  • 1 krokový motor
  • 1 oddeľovacia doska ULN2003 na ovládanie krokového motora
  • 1 ultrazvukový senzor HC-SR04
  • 1 5V jednosmerné motory
  • 1 diódy
  • 6 470 Ohm odpory
  • 4 10K ohmové odpory
  • Elektrický drôt na pripojenie všetkého

Užitočné pri príprave:

  • Spájkovačka
  • Spájka
  • Dremel alebo priamočiara píla (niečo na rezanie dreva a abs plastu)

Softvér:

  • Tmel
  • Pracovný stôl MySQL
  • Zobrazovač disku Win32
  • Editor kódu (odporúčam kód Visual Studio)
  • WinSCP
  • Raspbian obrázok

Krok 1: Príprava Rasperry Pi

Najprv musíme pripraviť Raspberry Pi, než budeme robiť čokoľvek iné. Pretože všetko bude fungovať na počítači Pi, je to jedna z najdôležitejších častí distribútora kariet.

Inštalácia:

Stiahnite si obrázok Raspbian z

  1. Stiahnite si súbor ZIP
  2. Rozbaľte súbor ZIP, kde ho môžete ľahko nájsť
  3. Otvorte aplikáciu Win32 Disk Imager a vyberte extrahovaný obrázok
  4. V rozbaľovacej ponuke vyberte kartu SD a kliknite na položku napísať
  5. Akonáhle je proces zápisu dokončený, môžete zavrieť Win32 Disk Imager

Teraz musíme urobiť niekoľko ďalších vecí, než sa budeme môcť pripojiť k Pi

  1. Prejdite do zavádzacieho priečinka na karte SD
  2. Otvorte súbor cmdline.txt
  3. Na koniec riadka oddeleného medzerou pridajte „ip = 169.254.10.1“
  4. Uložte a ukončite súbor
  5. V tom istom adresári vytvorte súbor s názvom ssh a odstráňte príponu (toto povolí ssh pri prvom spustení, aby sme sa mohli pripojiť k Pi)
  6. Bezpečne vysuňte kartu SD a vložte ju do počítača Pi

Teraz sa môžeme pripojiť k Pi:

  1. Uchopte ethernetový kábel a vložte jeden koniec do Pi a druhý koniec do počítača
  2. Otvorte tmel
  3. Do poľa Názov hostiteľa zadajte 169.254.10.1
  4. Uistite sa, že je vybraté SSH a port je 22
  5. Kliknite na otvorené
  6. Ak dostanete upozornenie, môžete pokračovať a ignorovať ho
  7. Používateľské meno je pi a heslo je malinové

Konfigurácia a inštalácia softvéru:

Otvorte raspi-config pomocou nasledujúceho príkazu:

sudo raspi-config

Vyberte piatu možnosť: Možnosti rozhrania

Povoliť SPI a I2C

V tretej možnosti deaktivujte nasledujúce položky: Možnosti zavádzania:

  • Úvodná obrazovka
  • Na spustenie zvoľte cli, nie desktop

Nastavenie Wifi:

Wifi je užitočná pre jednoduchú navigáciu na webovú stránku. Uistite sa, že máte zatvorené poverenia pre wifi.

Na nastavenie wifi potrebujeme niekoľko vecí:

Pridajte svoju wifi pomocou tohto príkazu a zmeňte SSID a HESLO na svoje informácie:

sudo wpa_passphrase "SSID" "HESLO" >> /etc/wpa_supplicant/wpa_supplicant.conf

Vykonajte tento príkaz a rekonfigurujte svoju wifi:

sudo wpa_cli

Vyberte správne rozhranie:

rozhranie wlan0

Prekonfigurujte rozhranie:

prekonfigurovať

Pomocou tohto príkazu skontrolujte, či bola rekonfigurácia úspešná:

ip a

Ak na rozhraní wlan0 vidíte IP adresu, je všetko nastavené.

Aktualizácia operačného systému

Aktualizujte operačný systém pomocou týchto dvoch príkazov:

sudo apt aktualizácia

sudo apt úplná aktualizácia

Nastavenie MariaDB:

Inštalácia webového servera Apache:

sudo apt nainštalovať apache2 -y

Inštalácia servera MariaDB:

sudo apt nainštalovať mariadb -server -y

Teraz musíme reštartovať:

sudo reštart

Odporúča sa zabezpečiť inštaláciu MariaDB. Môžete to urobiť spustením tohto príkazu:

sudo mysql_secure_installation

Najprv budete požiadaní o aktuálne heslo root, ale predvolená inštalácia ho nemá, takže stlačte kláves Enter.

Ďalej sa vás opýta, či chcete nastaviť heslo root, zadajte y. Uistite sa, že si heslo zapamätáte!

  • Ak chcete odstrániť anonymných používateľov, zadajte y
  • Ak chcete vzdialene zakázať prihlásenie root, zadajte y
  • Zadajte y, aby ste odstránili testovacie databázy a získali k nim prístup
  • Zadajte y a znova načítajte predvoľby

Vaša inštalácia MariaDB by mala byť bezpečná!

Teraz môžeme vytvoriť nového používateľa:

Zadajte shell mysql týmto príkazom:

sudo mysql

Vytvorte používateľa pomocou používateľského mena mysql a hesla (your_password) nasledujúcich príkazov:

vytvorte používateľa mysql@localhost označeného heslom 'your_password';

udeliť všetky priveleges na *. * mysql@localhost;

FLUSH PRIVILEGES;

Ukončite shell mysql týmto príkazom:

východ;

Balíky Pythonu:

Python by už mal byť nainštalovaný, pokiaľ nevyberiete Lite verziu:

sudo apt install python3-pip

Potrebujeme veľké množstvo balíkov Pythonu, všetky ich môžete nainštalovať pomocou nasledujúceho príkazu:

pip3 nainštalovať mysql-konektor-python flask-socketio flask-cors gevent gevent-websocket

Teraz musíme reštartovať ešte raz

sudo reštart

Krok 2: Nastavenie kódu Visual Studio a MySQL Workbench

Pripojenie k Pi pomocou MySQL Workbench:

Otvorte MySQL Workbench

Vytvorte nové pripojenie k Pi pomocou nasledujúcich informácií:

  • Názov pripojenia: Raspi
  • Spôsob pripojenia: Štandardný TCP/IP cez SSH
  • SSH Hostname: IP adresa Pi

IP adresu môžete získať týmto príkazom:

ip a

  • Používateľské meno SSH: pi
  • Názov hostiteľa MySQL: 127.0.0.1
  • Port servera MySQL: 3306
  • Používateľské meno: mysql

Kliknite na ok a zadajte heslo pre používateľa pi a potom zadajte heslo pre používateľa mysql.

Nastavenie kódu Visual Studio:

Otvorte kód Visual Studio

Nainštalujte tieto 2 rozšírenia:

  • Diaľkové ovládanie - SSH
  • Remote - SSH: Úprava konfiguračných súborov

Stlačte tlačidlo Visual Studio Code F1 a zadajte príkaz ssh

Vyberte položku Vzdialený SSH: Pridajte nového hostiteľa SSH

Vyplňte ssh pi@IP adresu

V ďalšom kroku stlačte kláves Enter

Teraz sa vytvorí spojenie s Pi. K počítaču Pi sa môžete pripojiť stlačením klávesu F1 a výberom možnosti Pripojiť k vzdialenému hostiteľovi.

Zadajte heslo, aby mal kód Visual Studio prístup k Pi.

Ešte jedna vec: Nainštalujte si rozšírenie Python na vzdialený počítač, aby ste mohli ľahko spúšťať a ladiť kód.

Krok 3: Fritzingov diagram

Fritzingov diagram
Fritzingov diagram
Fritzingov diagram
Fritzingov diagram
Fritzingov diagram
Fritzingov diagram

V tomto kroku vysvetlím obvod.

Vyššie uvedené schémy sú vyrobené s Fritzingom.

Jednosmerný motor:

Pripojte GPIO 18 k základni kolektora, strednému kolíku na npn tranzistore. Pripojte uzemnenie motora k kolektoru z tranzistora a výkon motora na 5V. Pripojte uzemnenie tranzistora k uzemneniu. Pripojte diódu k bariére nad motor tak, aby blokovala prúdový tok priamo do tranzistora.

Krokový motor:

Pripojte krokový motor k riadiacej doske. Na riadiacej doske sú na jednej strane kolíky na pripojenie 5V a uzemnenia. Ostatné piny sú ovládacie piny. Tieto kolíky ovládajú magnety vo vnútri motora, aby sa mohol otáčať. Pripojte tieto piny k GPIO 12, 16, 20 a 21 na Raspberry Pi.

Ultrazvukový HC-SR04:

Tento senzor dokáže pomocou zvuku merať vzdialenosti približne 4,5 metra.

Pripojte kolík VCC k 5V, spúšťací kolík k GPIO 25, kolík ozveny s odporom 470 Ohm k GPIO 24 a uzemnenie s odporom 470 Ohm k zemi.

MPU6050:

Pripojte pin VCC k 3V3, uzemnenie k zemi, scl k scl na Pi a sda k sda na Pi. Na ovládanie tohto senzora používam I2C. Viac si o tom môžete prečítať tu. Tu je základné vysvetlenie: Pi je hlavný a MPU6050 je podriadený. Prostredníctvom linky scl riadi Pi časovanie a linka sda sa používa na odosielanie údajov z mastera do slave alebo z slave do masteru. Iba majster môže začať prenos údajov.

Odpor závislý od svetla:

Na získanie správnych hodnôt z LDR používam čip MCP3008. To zaisťuje, že hodnoty z ldr sú stabilné a správne prevádzané z analógových na digitálne signály.

Pripojte 3V3 na jednu stranu ldr s odporom 10K Ohm medzi ním. Medzi ldr a odporom zapojte vodič do kanála 0 MCP3008. Potom pripojte druhú stranu ldr k zemi.

Displej LCD:

Môžete použiť LCD displej bez PCF8574, ale pretože GPIO piny na Pi sú obmedzené, používam PCF8574 na uloženie niektorých GPIO pinov. Môžete tiež použiť posuvný register, ale ja dávam prednosť PCF8574. PCF8574 môžete ovládať pomocou protokolu SMbus, ale na jeho ovládanie som napísal vlastnú triedu. Potenciometer ovláda kontrast.

Kolíky LCD displeja:

  • VSS na zem
  • VDD až 5V
  • V0 na variabilný kolík potenciometra
  • RS na GPIO 13
  • R/W na zem, pretože píšem iba na displej a nečítam
  • E až GPIO 19
  • DB0 až P0 PCF
  • DB1 až P1
  • DB2 na P2
  • DB3 až P3
  • DB4 až P4
  • DB5 až P5
  • DB6 až P6
  • DB7 až P7
  • LED+ až 5V
  • LED- na zem

Kolíky PCF8574:

  • A0 na zem
  • A1 na zem
  • A2 na zem
  • Zem na zem
  • VCC až 5V
  • SDA na GPIO 27
  • SCL na GPIO 22 s odporom 330 Ohm

V závislosti od toho, aký typ displeja ste dostali, nemusíte mať LED+ a LED-. LED+ a LED- slúži na podsvietenie.

Pripojte kladnú stranu potenciometra k 5 V a uzemnenie k zemi.

Uistite sa, že používate vyťahovacie odpory!

Krok 4: Kód na Github

Všetky potrebné kódy nájdete na mojom Githube.

Priečinok projekt1:

Tento priečinok obsahuje všetok kód pre backend. V priečinku Klasses sú všetky triedy na ovládanie hardvéru.

Úložiská priečinkov obsahujú 2 súbory: Database.py a DataRepository.py. Database.py udržuje pripojenie k databáze a spracováva dotazy. DataRepository.py obsahuje všetky dotazy potrebné pre web.

App.py je hlavný súbor backendu. Tento súbor sa spustí automaticky pri spustení systému Pi.

Config.py obsahuje niekoľko nastavení na pripojenie k databáze. Uistite sa, že ste do týchto súborov vyplnili svoje vlastné informácie.

Tento priečinok môžete umiestniť kdekoľvek vo svojom domovskom adresári.

Priečinok html:

Tento priečinok obsahuje všetky súbory pre web, frontend.

  • Priečinok obsahuje súbory na rozloženie stránky.
  • Fonts obsahuje písma používané na webe.
  • Script obsahuje všetky súbory JavaScript, aby bola stránka dynamická

Tento priečinok musí byť v priečinku/var/www/html

Súbor alebo priečinok môžete skopírovať pomocou tohto príkazu:

sudo mv/cesta/do/aktuálny/adresár/cesta/do/cieľ/adresár

Na navigáciu na typ stránky vo vašom prehliadači je potrebná IP adresa zobrazená na LCD displeji.

Krok 5: Normalizovaná štruktúra databázy

Normalizovaná štruktúra databázy
Normalizovaná štruktúra databázy

V tomto kroku sa chystáme importovať databázu.

  1. Pripojte sa k svojmu Raspberry Pi pomocou MySQL Workbench
  2. Kliknite na Server -> Import údajov
  3. Vyberte položku Importovať samostatný súbor
  4. V priečinku Export databázy z Githubu sa nachádza sql súbor s názvom dump_project1.sql
  5. Prejdite na tento súbor a kliknite na tlačidlo Spustiť import

To je všetko. Pi má teraz prístup k databáze, ak má správne informácie.

Krok 6: Puzdro pre distribútora kariet

Puzdro pre distribútora kariet
Puzdro pre distribútora kariet
Puzdro pre distribútora kariet
Puzdro pre distribútora kariet
Puzdro pre distribútora kariet
Puzdro pre distribútora kariet

V tomto kroku vysvetlím, čo som použil na puzdro a ako som všetko namontoval.

Pre prípad som použil 2 ABS boxy:

- 265 x 185 x 95 mm

- 171 x 121 x 80 mm

Otvory, ktoré som urobil v škatuliach

Otvor pre LCD displej, 3 otvory pre napájacie káble, jeden pre vodiče od krokového motora, jednosmerného motora a ultrazvukového senzora.

Do najmenšej škatule som urobil dieru pre vodiče od súčiastok a otvor pre priechod kariet. V hornej časti som urobil najväčšiu dieru, aby ste do zariadenia mohli umiestniť hracie karty.

Jednosmerný motor som namontoval pomocou konzoly a obojstrannej pásky. Vyrobil som drevenú dosku, na ktorú som položil karty, s otvorom pre koleso na vystrelenie karty.

Vybral som si plast ABS, pretože je ľahký, takže ho krokový motor môže ľahko otáčať. Drevo môže byť skutočne ťažké a krokový motor by s tým mohol mať problémy. Na vyrezanie otvorov som použil vŕtačku s vrtákmi určenými na kov a Dremel. Rezanie väčších otvorov si vyžadovalo oveľa viac práce a lepšia by bola priamočiara píla.

Krok 7: Programovať ako služba

Je skutočne užitočné mať kód spustený po zavedení Pi. Za to urobíme službu.

Vytvorte nový súbor s názvom smartcard.service pomocou nasledujúceho príkazu:

sudo nano /etc/systemd/system/smartcard.service

Toto musí ísť do súboru:

[Jednotka]

Popis = Backend čipových kariet After = network.target [Service] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory =/home/pi/project1 StandardOutput = inherit StandardError = inherit Restart = always User = pi [Install] WantedBy = multi-user.target WorkingDirectory je cesta k priečinku, v ktorom sa program nachádza

Teraz máte vlastnú čipovú kartu!

Odporúča: