Obsah:
- Krok 1: Materiály
- Krok 2: Elektrický obvod
- Krok 3: Kódování senzorů
- Krok 4: Příprava a umístění senzorů
- Krok 5: Příprava a umístění modulu Matrix
- Krok 6: Vytváření IoT
- Krok 7: Připojení Raspberry Pi
- Krok 8: Nastavení databáze
- Krok 9: Vytvoření webové stránky
- Krok 10: Připojení k World Wide Web
- Krok 11: Dokončení vypnuto
Video: Tabulka stolního fotbalu Raspberry Pi IoT: 11 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Vítejte v mé verzi hacknutého stolního fotbalu, jako součást studentského projektu pro nová média a komunikační technologie. V zásadě jsem vyrostl kolem stolního fotbalu a kulečníkových stolů, takže jsem si řekl, že by bylo skvělé zkusit připojit jedno z těchto zařízení k internetu.
Hlavní nastavení je pomocí stávajícího stolního fotbalu připojeného k Raspberry Pi, který může provádět všechny následující úkoly:
- Používá GPIO piny k ovládání IR LED/přijímačů a 8x8 bodových maticových modulů
- Provozuje webovou stránku Flask pomocí nginx
- Provozuje databázi MySQL/MariaDB pro ukládání dat
Abyste mohli tento projekt znovu vytvořit, budete potřebovat následující dovednosti:
Backend:
- Porozumění HTML/CSS/Javascriptu pro klienta webové stránky
- Porozumění Pythonu pomocí Flask/Flask-SocketIO/Jinja2 na straně serveru na webu
- Základní znalost MySQL
- Zjistěte, jak spustit webový server
Prototyp
- Základní znalosti o zapojení elektrického obvodu
- Pájení
- Základní znalosti o tom, jak napsat skript v Pythonu
- Práce s Linuxem (Raspbian)
- Mít hodně trpělivosti, protože s tím bude spojeno hodně ladění
Krok 1: Materiály
Zde je seznam se všemi potřebnými částmi pro tabulku:
- Raspberry Pi Model 3 (s pouzdrem)
- T-Cobbler pro připojení Pi k prkénku
- Stolní fotbal (Použil jsem velmi starý stůl podobný tomuto. Musí být ochoten do něj vyvrtat otvory)
- MAX7219 Modul Arduino Dot Matrix (2)
- IR LED vysílače (2+, protože se rozbijí, podobné tomuto)
- IR přijímače (2+, protože se také lámou, podobné tomuto)
- Základní nepájivé prkénko
- Hodně a hodně drátu (závisí na velikosti stolního fotbalu)
- zástrčky (30+)
- zásuvky (10+)
- Rezistory 100-220 Ohm (4+)
- pájecí materiály
- drátěné popruhy
- LED držáky
- nějaké dřevo/šrouby v případě, že u chcete přenášet kouli do žlabu
Celkové náklady na tento projekt zcela závisí na nákladech na váš stolní fotbal (drahý). Kromě stolu bude materiál maximálně 150 EUR.
Krok 2: Elektrický obvod
Než se pokusíte pájet, sestavte všechny součásti, které vřele doporučuji nejprve vyzkoušet na prkénku. Je snadnější vyměnit vadné součásti, než strávíte hodiny jejich pájením.
Nejprve jsem se pokusil implementovat matici 8x8 LED s posuvným registrem 74HC595 (první obrázek) a tranzistorovým polem, ale kvůli mnoha vodičům a velmi nízkému výkonu jsem přešel na modul MAX7219 Dot Matrix Module, protože to vyžaduje pouze 5 vodičů a je přímo poháněno autobus SPI.
Obvod, který jsem nakonec použil, je nakreslen Fritzingem. Vezměte prosím na vědomí, že IR LED a přijímače lze připojit k libovolnému vašemu bezplatnému GPIO pinu.
IR přijímače a LED by měly být přímo přes sebe a horní část LED by měla směřovat k přijímači. Protože chceme simulovat přímý paprsek, který může být přerušen pohybem koule, v takovém případě dojde ke změně stavu linie DATA přijímače z 0 na 1.
Krok 3: Kódování senzorů
Většinu tohoto projektu jsem zakódoval pomocí Pycharmu, protože umožňuje snadné nasazení SSH na váš Raspberry Pi pomocí vzdáleného tlumočníka. Nebudu se podrobně zabývat tím, jak tento program funguje, ale mnoho informací lze nalézt na webových stránkách pycharm.
V současné době stále pracuji na projektu, ale jakmile bude vše hotové, celý projekt bude k dispozici na mém profilu github
Kód pro senzory se skládá ze 3 tříd, které jsou spuštěny ve vlákně na pozadí na mém serveru Flask (což bude vysvětleno později):
- Třída cíle (odkaz) -Tento soubor inicializuje všechny samostatné komponenty, které lze vyvolat vložením správného zařízení/sběrnice SPI a čísla PIN
- Třída Matrix (odkaz) -Toto je hlavní třída pro napájení modulu MAX7219
- Třída LED a přijímače (odkaz) - Toto je hlavní třída pro napájení infračerveného paprsku pomocí samostatných vláken pro snížení zatížení procesoru RPi
LED i přijímač pracují na frekvenci 38 kHz a přijímače vždy očekávají, že 50% vzestupný a 50% sestupný puls bude fungovat správně.
Krok 4: Příprava a umístění senzorů
Nyní připravíme IR LED a přijímač. Na obrázku v tabulce můžete najít umístění, kde by měly být umístěny RPi a senzory.
Nejprve však musíme připravit zapojení:
- Ujistěte se, že u změříte potřebné množství drátu od umístění RPi/prkénka k umístění senzoru
- Připájejte piny IR přijímače k jednomu konci vodiče (COM/GND/V+)
- Na druhý konec drátu připájejte kusy zástrčky
Nyní připravíme tabulku:
- Udělejte základní kresbu (podle obrázku), kam vrtat. Je velmi důležité, aby 2 otvory byly zarovnány přes sebe, protože toto bude umístění paprsku.
- Vyvrtejte otvory
- Pokud máte nějaké držáky LED (odkaz), můžete je umístit do otvoru, aby byly robustnější
- Vložte + přilepte LED + přijímač na obou stranách
- Připevněte dráty + nalepte je na dřevo, aby se příliš nepřekřížily
- Vložte zástrčkové kolíky na prkénko podle dříve poskytnutého obvodu
Krok 5: Příprava a umístění modulu Matrix
Dále připojíme 2 maticové moduly LED
Poznámka:
Protože jsem použil starý stolní fotbálek, už tam byly otvory směřující nahoru k horní části kvůli držákům cigaret. Pokud je nemáte, budete je muset vytvořit.
Příprava vodičů:
- Změřte drát od prkénka směrem k horní části stolu
- Na první konec drátu připájejte některé konektory
- Na druhý konec drátu připájejte některé zástrčkové konektory
Umístění matice:
- Vytáhněte matici otvorem nahoře
- Připevněte + nalepte vodiče uvnitř na dřevo, abyste se vyhnuli křížení
- Vložte zástrčkové kolíky na prkénko podle dříve uvedených obvodů
V určitém okamžiku přidám malý kutilský krok k přidání pouzdra pro maticový modul, ale prozatím jsou nazí.
Krok 6: Vytváření IoT
Pokud se chcete pouze zaregistrovat a zobrazit skóre, můžete projekt dokončit napsáním malého běžícího skriptu pythonu, který se bude opakovat, dokud jedno ze skóre nedosáhne 9, a poté se resetuje.
Pokud však chcete svůj stůl připojit k internetu, několik následujících kroků by vám mělo uličku napravit.
V následujících několika krocích se budeme zabývat následujícím:
- Konfigurace Raspberry Pi
- Vytvoření databáze pro úložiště
- Vytvoření webové stránky
- Uvedení na internet
V tomto okamžiku, pokud jste obeznámeni s git, doporučuji u vytvořit úložiště na GitHub/GitLab, abyste měli přehled o svých souborech. Pokud ne, můžete vytvořit složku se stejnou strukturou jako na obrázku.
Celý projekt bude brzy k dispozici na GitHubu. K dispozici je však dočasný soubor rar se všemi potřebnými soubory.
Krok 7: Připojení Raspberry Pi
Dále nastavíme prostředí Raspberry Pi, k tomu je třeba provést následující kroky:
- Připojte se přes SSH k vašemu Rasberry Pi (můžete použít PuTTY)
- Vytvořte složku (příklad projektu mkdir) a přesuňte se do této složky pomocí příkazu cd
- V této složce vytvořte virtuální prostředí Pythonu pomocí příkazu python3 -m venv --system-site-packages env
- Aktivujte virtuální interpret pomocí příkazu source/env/bin/activate
- Nainstalujte balíčky z požadavků.txt pomocí příkazu python -m pip install název -balíčku
- Přeneste soubory z dříve poskytnutého souboru project_example.rar přes SSH ve složce projektu
Nyní byste měli mít možnost spustit celý projekt na svém Raspberry Pi. Doporučuji použít IDE Pythonu, jako je PyCharm, které vám umožní použít vás k ladění ze vzdáleného tlumočníka přes SSH a v případě potřeby přímo nahrávat změny.
Krok 8: Nastavení databáze
Nyní musíte na základě tohoto modelu nastavit velmi základní databázi.
Nejjednodušší způsob, jak toho dosáhnout, je vytvořit si databázi na pracovním stole MySQL, kde můžete také provést nějaké testování.
Až budete hotovi, můžete exportovat výpis databáze a nahrát jej do svého RPi a poté jej spustit pomocí sudo mariadb <pathtofile/file.sql
Krok 9: Vytvoření webové stránky
Dále můžete u analyzovat (a použít) kód uvedený v souboru project_example.rar.
Hlavním souborem je Flask.py, který je chlebem tohoto projektu:
- Spouští aplikaci Flask-SocketIO, která zpracovává backend webu
- Vytvoří spojení mezi databází a baňkou
- Poskytuje ověření přihlášení a registraci uživatele
- Poskytuje potřebný kód, jak hrát hru, pomocí socketio aktualizuje web v reálném čase během hry
- Vloží výsledky hry do databáze
Ve složkách static a templates můžete najít HTML/CSS/JS, které poskytují frontendovou část webu. Nebojte se je upravit podle svého vlastního vkusu.
Krok 10: Připojení k World Wide Web
Pro připojení našeho webu k webu použijeme nginx a uwsgi. V příkladu projektu u můžete najít potřebné soubory ve složce conf.
Nejprve musíte v těchto souborech aktualizovat následující:
- V souboru uwsgi-flask.ini u musíte změnit cestu parametru virtualenv k vašemu tlumočníkovi
- V project1-flask.service u potřebujete aktualizovat část [Service] souboru pomocí vašich přihlašovacích údajů a cest k přidruženým souborům
- V souboru nginx u musíte aktualizovat server a umístění / cestu k přidruženému soketu
Dále je třeba nahradit výchozí soubor webového serveru nginx umístěním konfiguračního souboru nginx, níže je příklad příkazů linux, jak to provést
- me@my-rpi: ~/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1
- me@my-rpi: ~/project1 $ sudo rm/etc/nginx/sites-enabled/defaul t
- me@my-rpi: ~/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1
- me@my-rpi: ~/project1 $ sudo systemctl restart nginx.service
Nakonec musíte do složky systemd přidat vlastní služby, toto je příklad, jak to udělat:
- me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
- me@my-rpi: ~/project1 $ sudo systemctl daemon-reload
- já@my-rpi: ~/project1 $ sudo systemctl start project1-*
- já@my-rpi: ~/project1 $ sudo systemctl status project1-*
Pokud chcete, aby se webový server spustil při spuštění vaší maliny, musíte použít příkaz sudo systemctl enable project1-*. Service.
Pokud je to provedeno správně, po restartu systému by měl být váš web spuštěn na vaší IP adrese. Pokud budete chtít upravit jeden z těchto konfiguračních souborů, vždy musíte službu zastavit, znovu načíst soubory a použít příkaz daemon-reload následovaný spuštěním, jinak nebudou změny účinné.
Krok 11: Dokončení vypnuto
Při psaní závěrečné části tohoto pokynu tento malý školní projekt stále probíhá.
Strávil jsem nespočet hodin, než jsem to zvládl za 2,5 týdne. I když bylo všechno trochu uspěchané, stále jsem hrdý na to, čeho jsem dosáhl. Během fáze montáže jsem narazil na nespočet chyb/chyb/vadných senzorů, takže se nenechte příliš odradit, pokud vše nefunguje na první pokus.
Nejlepší věc, kterou můžete udělat, je požádat nebo vyhledat pomoc na internetu. Existuje mnoho lidí s mnohem lepšími znalostmi, kteří vám velmi rádi pomohou.
V neposlední řadě chci poděkovat svým učitelům z New Media and Communication Technology za to, že mi poskytli mnoho rad a pomohli mi dokončit tento projekt.
Doporučuje:
Hodiny stolního počítače na pevném disku: 5 kroků
Stolní hodiny na pevném disku: ÚvodNa prodej jsou nějaké hodiny na pevném disku na Pinterestu. Vždy chci udělat jeden z nich pro svůj stůl. Karanténa COVID-19 mi dává šanci si ji vytvořit. Kvůli viru to musím udělat z čehokoli, co mám doma, takže toto je můj první Instru
Box UV expozice ze stolního skeneru: 5 kroků
Box UV expozice ze stolního skeneru: Výroba desek plošných spojů doma pomocí fotocitlivého filmu doma, vyžaduje box s expozicí UV záření a já jsem se rozhodl jej vyrobit - rychle, ze stolního skeneru, který jsem dostal zdarma, byl na jeho cesta do koše - rozhodl se dát tomu druhý život
Ovladač ventilátoru stolního počítače Arduino: 4 kroky
Arduino Desk Fan Controller: Když jsem nedávno změnil role v rámci společnosti, přesunul jsem stránky a přesunul se z Bradfordu do našeho sídla ve Wakefieldu. Rozloučil jsem se se svým věrným starým psacím stolem s nutným stolním ventilátorem, který mě udrží v pohodě, zatímco všude kolem mě … Každopádně trend v našem
Tabulka stolního tenisu: 16 kroků (s obrázky)
Tabulka stolního tenisu: Příliš líní sledovat své skóre ve stolním tenise / Ping Pongu? Nebo vám může vadit, že jste na to vždy zapomněli? Pokud ano, může vás zajímat vytvoření této digitální tabulky výsledků stolního tenisu. Zde jsou hlavní body: Body , hry, server a
Eliminujte pohotovostní režim pomocí vypínače stolního počítače !: 7 kroků (s obrázky)
Eliminujte pohotovostní napájení pomocí vypínače stolního počítače!: Všichni víme, že se to děje. I když jsou vaše spotřebiče (televize, počítač, reproduktory, externí pevné disky, monitory atd.) Vypnuty " VYPNUTY " jsou stále ve skutečnosti v pohotovostním režimu a plýtvají energií. Některé plazmové televize skutečně spotřebovávají více energie