Obsah:
- Zásoby
- Krok 1: Příprava Rasperry Pi
- Krok 2: Nastavení kódu Visual Studio a MySQL Workbench
- Krok 3: Fritzingův diagram
- Krok 4: Kód na Githubu
- Krok 5: Normalizovaná struktura databáze
- Krok 6: Pouzdro pro distributora karet
- Krok 7: Programovat jako službu
Video: Automatický distributor karet: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Jako svůj první projekt jsem si vybral distributora čipových karet, protože rád hraji karetní hru. Nejvíc se mi nelíbí rozdávání karet. U každé hry si musíte pamatovat, kolik karet každý člověk dostane. Když znáte spoustu karetních her, začíná to být matoucí. Můj projekt také pomůže lidem, kteří mají problémy s distribucí karet, jako jsou starší lidé a lidé trpící Parkinsonovou chorobou.
Zásoby
- 1 Raspberry Pi (použil jsem Raspberry Pi 4)
- Karta SD (doporučeno 16 GB)
- 1 kousek outbread pro Raspberry Pi (T-kus)
- 2 prkénka
- 1 Napájecí modul pro prkénko, 5V a 3V3
- 1 LCD displej
- 1 potenciometr
- 1 MPU6050 (akcelerometr a gyroskop)
- 1 NPN tranzistory
- 1 expandér I/O PCF8574N
- 1 krokový motor
- 1 odpojovací deska ULN2003 pro ovládání krokového motoru
- 1 ultrazvukový senzor HC-SR04
- 1 5V stejnosměrné motory
- 1 diody
- 6 470 Ohm odpory
- 4 odpory 10K Ohm
- Elektrický vodič pro připojení všeho
Užitečné při výrobě:
- Páječka
- Pájka
- Dremel nebo přímočará pila (něco na řezání dřeva a ABS plastů)
Software:
- Tmel
- Pracovní stůl MySQL
- Imager disku Win32
- Editor kódu (doporučuji kód Visual Studio)
- WinSCP
- Raspbian obrázek
Krok 1: Příprava Rasperry Pi
Nejprve musíme připravit Raspberry Pi, než uděláme cokoli jiného. Protože vše poběží na Pi, tak toto je jeden z nejdůležitějších kousků distributora karet.
Instalace:
Stáhněte si obrázek Raspbian z
- Stáhněte si soubor ZIP
- Extrahujte soubor ZIP, kde jej snadno najdete
- Otevřete Win32 Disk Imager a vyberte extrahovaný obrázek
- V rozevírací nabídce vyberte kartu SD a klikněte na zápis
- Jakmile je proces zápisu dokončen, můžete zavřít Win32 Disk Imager
Nyní musíme udělat několik dalších věcí, než se budeme moci připojit k Pi
- Přejděte do spouštěcí složky na kartě SD
- Otevřete soubor cmdline.txt
- Přidejte 'ip = 169.254.10.1' na konec řádku odděleného mezerou
- Uložte a ukončete soubor
- Vytvořte ve stejném adresáři soubor ssh a odeberte příponu (toto povolí ssh při prvním spuštění, abychom se mohli připojit k Pi)
- Bezpečně vysuňte SD kartu a vložte ji do Pi
Nyní se můžeme připojit k Pi:
- Popadněte ethernetový kabel a vložte jeden konec do Pi a druhý konec do počítače
- Otevřete tmel
- Do pole Název hostitele zadejte 169.254.10.1
- Ujistěte se, že je vybráno SSH a port je 22
- Klikněte na otevřít
- Pokud dostanete varování, můžete pokračovat a ignorovat ho
- Uživatelské jméno je pí a heslo je malinové
Konfigurace a instalace softwaru:
Otevřete raspi-config následujícím příkazem:
sudo raspi-config
Vyberte 5. možnost: Možnosti rozhraní
Povolte SPI a I2C
Ve 3. možnosti deaktivujte následující věci: Možnosti spouštění:
- Úvodní obrazovka
- Pro spuštění zvolte cli a ne desktop
Nastavení WiFi:
Wifi je užitečná pro snadnou navigaci na webové stránky. Ujistěte se, že máte přihlašovací údaje k wifi zavřené.
K nastavení wifi potřebujeme pár věcí:
Přidejte svou wifi pomocí tohoto příkazu a změňte SSID a PASSWORD na vaše informace:
sudo wpa_passphrase "SSID" "HESLO" >> /etc/wpa_supplicant/wpa_supplicant.conf
Chcete -li překonfigurovat wifi, proveďte tento příkaz:
sudo wpa_cli
Vyberte správné rozhraní:
rozhraní wlan0
Překonfigurujte rozhraní:
přenastavit
Pomocí tohoto příkazu zkontrolujte, zda byla rekonfigurace úspěšná:
ip a
Pokud na rozhraní wlan0 vidíte IP adresu, je vše nastaveno.
Aktualizace operačního systému
Aktualizujte operační systém pomocí těchto 2 příkazů:
sudo apt aktualizace
sudo apt plná aktualizace
Nastavení MariaDB:
Instalace webového serveru Apache:
sudo apt install apache2 -y
Instalace serveru MariaDB:
sudo apt install mariadb -server -y
Nyní musíme restartovat:
sudo restart
Doporučuje se zajistit instalaci MariaDB. Můžete to provést spuštěním tohoto příkazu:
sudo mysql_secure_installation
Nejprve budete požádáni o aktuální heslo uživatele root, ale výchozí instalace ho nemá, takže stiskněte Enter.
Dále budete dotázáni, zda chcete nastavit heslo uživatele root, zadejte y. Ujistěte se, že si pamatujete heslo!
- Chcete -li odebrat anonymní uživatele, zadejte y
- Chcete -li vzdáleně zakázat přihlášení root, zadejte y
- Chcete -li odebrat testovací databáze a získat k nim přístup, zadejte y
- Chcete -li znovu načíst priveleges, zadejte y
Vaše instalace MariaDB by měla být bezpečná!
Nyní můžeme vytvořit nového uživatele:
Zadejte shell mysql pomocí tohoto příkazu:
sudo mysql
Vytvořte uživatele pomocí uživatelského jména mysql a hesla (your_password) následujících příkazů:
vytvořte uživatele mysql@localhost označeného 'your_password';
udělit všechny priveleges na *. * mysql@localhost;
FLUSH PRIVILEGES;
Ukončete prostředí mysql tímto příkazem:
výstup;
Balíčky Pythonu:
Python by již měl být nainstalován, pokud nevyberete Lite verzi:
sudo apt install python3-pip
Potřebujeme velké množství balíků Pythonu, všechny je můžete nainstalovat pomocí následujícího příkazu:
pip3 install mysql-connector-python flask-socketio flask-cors gevent gevent-websocket
Nyní musíme restartovat ještě jednou
sudo restart
Krok 2: Nastavení kódu Visual Studio a MySQL Workbench
Připojení k Pi pomocí MySQL Workbench:
Otevřete MySQL Workbench
Vytvořte nové připojení k Pi pomocí následujících informací:
- Název připojení: Raspi
- Způsob připojení: Standardní TCP/IP přes SSH
- SSH Hostname: IP adresa Pi
IP adresu můžete získat tímto příkazem:
ip a
- SSH Uživatelské jméno: pí
- Název hostitele MySQL: 127.0.0.1
- Port serveru MySQL: 3306
- Uživatelské jméno: mysql
Klikněte na ok a zadejte heslo pro uživatele pi a poté zadejte heslo pro uživatele mysql.
Nastavení kódu Visual Studio:
Otevřete kód Visual Studio
Nainstalujte si tato 2 rozšíření:
- Dálkové - SSH
- Remote - SSH: Úpravy konfiguračních souborů
Stiskněte v Visual Studio Code F1 a zadejte ssh
Zvolte Vzdálené SSH: Přidat nového hostitele SSH
Vyplňte adresu ssh pi@IP
V dalším kroku stiskněte Enter
Nyní je vytvořeno připojení k Pi. K Pi se můžete připojit stisknutím klávesy F1 a výběrem možnosti Připojit ke vzdálenému hostiteli.
Zadejte heslo, aby měl kód Visual Studio přístup k Pi.
Ještě jedna věc: Nainstalujte si na vzdálený počítač rozšíření Python, abyste mohli snadno spouštět a ladit kód.
Krok 3: Fritzingův diagram
V tomto kroku vysvětlím obvod.
Výše uvedená schémata jsou vytvořena pomocí Fritzing.
DC motor:
Připojte GPIO 18 k základně kolektoru, prostřední pin na tranzistoru npn. Připojte zem motoru ke kolektoru z tranzistoru a výkon motoru na 5V. Připojte uzemnění tranzistoru k uzemnění. Připojte diodu v bariéře přes motor tak, aby blokovala proudový tok z přímého toku do tranzistoru.
Krokový motor:
Připojte krokový motor k řídicí desce. Na řídicí desce jsou na jedné straně piny pro připojení 5V a uzemnění. Ostatní piny jsou kontrolní piny. Tyto kolíky ovládají magnety uvnitř motoru, aby se mohly otáčet. Připojte tyto piny k GPIO 12, 16, 20 a 21 na Raspberry Pi.
Ultrazvukový HC-SR04:
Tento senzor dokáže pomocí zvuku měřit vzdálenosti až asi 4,5 metru.
Připojte kolík VCC k 5V, spouštěcí kolík ke GPIO 25, pin pro echo s odporem 470 Ohm k GPIO 24 a uzemnění s odporem 470 Ohm k zemi.
MPU6050:
Připojte pin VCC k 3V3, uzemnění k zemi, scl k scl na Pi a sda k sda na Pi. U tohoto senzoru jej ovládám pomocí I2C. Více si o tom můžete přečíst zde. Zde je základní vysvětlení: Pi je master a MPU6050 je slave. Prostřednictvím linky scl kontroluje Pi časování a linka sda se používá k odesílání dat z masteru do slave nebo z slave do masteru. Pouze master může zahájit přenos dat.
Odpor závislý na světle:
Pro získání správných hodnot z LDR používám čip MCP3008. Tím je zajištěno, že hodnoty z ldr jsou stabilní a správné převedeny z analogových na digitální signály.
Připojte 3V3 na jednu stranu ldr s odporem 10K Ohm mezi ním. Mezi ldr a odporem připojte vodič ke kanálu 0 MCP3008. Poté připojte druhou stranu ldr k zemi.
LCD displej:
Můžete použít LCD displej bez PCF8574, ale protože jsou GPIO piny na Pi omezené, používám PCF8574 k uložení některých GPIO pinů. Můžete také použít posuvný registr, ale já dávám přednost PCF8574. PCF8574 můžete ovládat protokolem SMbus, ale pro jeho ovládání jsem napsal vlastní třídu. Potenciometr ovládá kontrast.
Kolíky LCD displeje:
- VSS na zem
- VDD na 5V
- V0 na variabilní kolík potenciometru
- RS na GPIO 13
- R/W na zem, protože píšu pouze na displej a nečtu
- E na 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- k zemi
PCF8574 piny:
- A0 k zemi
- A1 na zem
- A2 k zemi
- Země na zem
- VCC až 5V
- SDA na GPIO 27
- SCL na GPIO 22 s odporem 330 Ohm
V závislosti na tom, jaký typ displeje máte, možná nebudete mít LED+ a LED-. LED+ a LED- slouží k podsvícení.
Připojte kladnou stranu potenciometru k 5V a uzemnění k zemi.
Ujistěte se, že používáte Pull-up rezistory!
Krok 4: Kód na Githubu
Veškerý potřebný kód najdete na mém Githubu.
Složka project1:
Tato složka obsahuje veškerý kód pro backend. Ve složce Klasses jsou všechny třídy pro ovládání hardwaru.
Úložiště složek obsahuje 2 soubory: Database.py a DataRepository.py. Database.py udržuje připojení k databázi a zpracovává dotazy. DataRepository.py obsahuje všechny dotazy potřebné pro web.
App.py je hlavní soubor backendu. Tento soubor se spustí automaticky při spuštění Pi.
Config.py obsahuje několik nastavení pro připojení k databázi. Ujistěte se, že tyto soubory vyplňujete svými vlastními informacemi.
Tuto složku můžete umístit kdekoli ve vašem domovském adresáři.
Složka html:
Tato složka obsahuje všechny soubory pro web, frontend.
- Složka obsahuje soubory pro rozložení webu.
- Fonts obsahuje písma použitá na webu.
- Skript obsahuje všechny soubory Javascriptu, aby byl web dynamický
Tato složka musí být ve složce/var/www/html
Soubor nebo složku můžete zkopírovat pomocí tohoto příkazu:
sudo mv/cesta/do/aktuální/adresář/cesta/do/cíl/adresář
Chcete-li v prohlížeči přejít na typ webu, zadejte IP adresu zobrazenou na displeji LCD.
Krok 5: Normalizovaná struktura databáze
V tomto kroku importujeme databázi.
- Připojte se ke svému Raspberry Pi pomocí MySQL Workbench
- Klikněte na Server -> Import dat
- Vyberte možnost Importovat samostatný soubor
- Ve složce Export databáze z Githubu je sql soubor s názvem dump_project1.sql
- Přejděte k tomuto souboru a klikněte na Spustit import
A je to. Pi má nyní přístup k databázi, pokud má správné informace.
Krok 6: Pouzdro pro distributora karet
V tomto kroku vysvětlím, co jsem použil pro případ a jak jsem všechno namontoval.
Pro případ jsem použil 2 ABS boxy:
- 265 x 185 x 95 mm
- 171 x 121 x 80 mm
Otvory, které jsem udělal v krabicích
Otvor pro LCD displej, 3 otvory pro napájecí kabely, jeden pro vodiče od krokového motoru, stejnosměrného motoru a ultrazvukového senzoru.
Do nejmenší krabice jsem udělal díru pro dráty od součástek a otvor pro průchod karet. V horní části jsem vytvořil největší díru, takže do zařízení můžete umístit hrací karty.
Namontoval jsem stejnosměrný motor pomocí držáku a oboustranné pásky. Vyrobil jsem dřevěnou desku, na kterou karty položím, s otvorem pro kolo, kterým lze kartu vystřelit.
Vybral jsem si plast ABS, protože je lehký, takže ho krokový motor může snadno otáčet. Dřevo může být opravdu těžké a krokový motor by s tím mohl mít problémy. K vyřezání otvorů jsem použil vrták s vrtáky určenými pro kov a Dremel. Řezání větších otvorů dalo mnohem více práce a byla by lepší přímočará pila.
Krok 7: Programovat jako službu
Je opravdu užitečné mít kód spuštěný po spuštění Pi. Za to uděláme službu.
Vytvořte nový soubor s názvem smartcard.service pomocí následujícího příkazu:
sudo nano /etc/systemd/system/smartcard.service
To musí jít do souboru:
[Jednotka]
Popis = Backend smart card 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 ke složce, kde je program umístěn
Nyní máte vlastní čipovou kartu!
Doporučuje:
Vytvořte ovladač pásu karet: 11 kroků (s obrázky)
Vytvořte ovladač pásu karet: Ovladače pásu karet jsou skvělý způsob ovládání syntetizátoru. Skládají se z pruhu citlivého na dotek, který vám umožňuje plynule ovládat výšku tónu. Elektricky vodivý pás zvaný „velostat“, který reaguje na změny napětí nebo odporu způsobené
Bezdrátová čtečka karet SD [ESP8266]: 10 kroků (s obrázky)
Bezdrátová čtečka karet SD [ESP8266]: USB mělo být univerzální a hlavním cílem bylo vytvořit hot-swap, super snadné rozhraní s jinými zařízeními, ale v průběhu let se tato myšlenka rozpadla. Existuje tolik různých variant těchto USB portů, což je tak frustrující v
Hovorný prodejce karet Lego: 20 kroků (s obrázky)
Hovorný prodejce karet Lego: Většina lidí hraje karetní hry pro zábavu, ale také přináší několik výhod pro naše emoční a duševní zdraví. Je to jedna z nejpopulárnějších indoorových aktivit. Většina karetních her jako Rummy a Poker potřebuje dealera. Tak jsme tady
WiFi automatický podavač rostlin s rezervoárem - nastavení vnitřní/venkovní kultivace - vodní rostliny automaticky s dálkovým monitorováním: 21 kroků
WiFi automatický podavač rostlin s rezervoárem - vnitřní/venkovní nastavení kultivace - vodní rostliny automaticky s dálkovým monitorováním: V tomto tutoriálu předvedeme, jak nastavit vlastní vnitřní/venkovní systém podavače rostlin, který automaticky zalévá rostliny a lze jej dálkově monitorovat pomocí platformy Adosia
Automatický míchač karet: 6 kroků (s obrázky)
Automatický míchač karet: Dobrý den! Tento instruktáž byl vytvořen při splnění požadavku projektu Makecourse na University of South Florida. (www.makecourse.com) V tomto pokynu vás provedu procesem vytváření automatického míchání karet