Obsah:
- Zásoby
- Krok 1: Príprava Rasperry Pi
- Krok 2: Nastavenie kódu Visual Studio a MySQL Workbench
- Krok 3: Fritzingov diagram
- Krok 4: Kód na Github
- Krok 5: Normalizovaná štruktúra databázy
- Krok 6: Puzdro pre distribútora kariet
- Krok 7: Programovať ako služba
Video: Automatický distribútor kariet: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
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
- Stiahnite si súbor ZIP
- Rozbaľte súbor ZIP, kde ho môžete ľahko nájsť
- Otvorte aplikáciu Win32 Disk Imager a vyberte extrahovaný obrázok
- V rozbaľovacej ponuke vyberte kartu SD a kliknite na položku napísať
- 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
- Prejdite do zavádzacieho priečinka na karte SD
- Otvorte súbor cmdline.txt
- Na koniec riadka oddeleného medzerou pridajte „ip = 169.254.10.1“
- Uložte a ukončite súbor
- 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)
- Bezpečne vysuňte kartu SD a vložte ju do počítača Pi
Teraz sa môžeme pripojiť k Pi:
- Uchopte ethernetový kábel a vložte jeden koniec do Pi a druhý koniec do počítača
- Otvorte tmel
- Do poľa Názov hostiteľa zadajte 169.254.10.1
- Uistite sa, že je vybraté SSH a port je 22
- Kliknite na otvorené
- Ak dostanete upozornenie, môžete pokračovať a ignorovať ho
- 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
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
V tomto kroku sa chystáme importovať databázu.
- Pripojte sa k svojmu Raspberry Pi pomocou MySQL Workbench
- Kliknite na Server -> Import údajov
- Vyberte položku Importovať samostatný súbor
- V priečinku Export databázy z Githubu sa nachádza sql súbor s názvom dump_project1.sql
- 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
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:
Bezdrôtová čítačka kariet SD [ESP8266]: 10 krokov (s obrázkami)
Bezdrôtová čítačka kariet SD [ESP8266]: USB malo byť univerzálne a hlavným cieľom bolo vytvoriť hot-swap, super ľahké rozhranie s inými zariadeniami, ale v priebehu rokov sa táto myšlienka rozpadla. Existuje toľko rôznych variantov týchto portov USB, ktoré sú tak frustrujúce v
Mikro: bitový snímač videnia MU pre začiatočníkov - hodnoty štítkov a rozpoznávanie číselných kariet: 6 krokov
Mikro: bitový zrakový snímač MU pre začiatočníkov - hodnoty štítkov a rozpoznávanie číselných kariet: Toto je môj druhý sprievodca k zrakovému senzoru MU. V tomto projekte naprogramujeme mikro: bit na rozpoznanie rôznych číselných kariet pomocou hodnôt štítkov
Zhovorčivý predajca kariet Lego: 20 krokov (s obrázkami)
Zhovorčivý predajca kariet Lego: Väčšina ľudí hrá kartové hry pre zábavu, ale poskytujú aj niekoľko výhod pre naše emocionálne a duševné zdravie. Je to jedna z najobľúbenejších indoorových aktivít. Väčšina kartových hier ako Rummy a Poker potrebuje dílera. Tak sme tu
WiFi automatický podávač rastlín s rezervoárom - nastavenie vnútornej/vonkajšej kultivácie - vodné rastliny automaticky s diaľkovým monitorovaním: 21 krokov
WiFi automatický podávač rastlín s rezervoárom - nastavenie vnútornej/vonkajšej kultivácie - vodné rastliny automaticky s diaľkovým monitorovaním: V tomto tutoriáli vám ukážeme, ako nastaviť vlastný vnútorný/vonkajší systém podávača rastlín, ktorý automaticky polieva rastliny a je možné ho diaľkovo monitorovať pomocou platformy Adosia
Automatický miešač kariet: 6 krokov (s obrázkami)
Automatický miešač kariet: Dobrý deň! Tento pokyn bol vytvorený ako splnenie projektovej požiadavky Makecourse na University of South Florida. (www.makecourse.com) V tomto návode vás prevediem procesom vytvárania automatického miešania kariet