Obsah:
- Krok 1: Zapojení hardwaru do Pi
- Krok 2: Kódování hlavních programů
- Krok 3: Vytvoření databáze
- Krok 4: Kódování hardwaru
Video: Beargardian: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Čau lidi do školy, potřeboval jsem nápad na projekt. Tak jsem přemýšlel, musí to být projekt s malinovou pí a je to místní. Najednou jsem dostal skvělý nápad a neptejte se mě, jak jsem ten nápad dostal, ale přemýšlel jsem o vylepšení dětské chůvičky. Zamyslete se nad tím nápadem, většina dětských chůviček má pouze funkci poslouchat dětský pokoj.
Vlastnosti
- Malá světelná show s nastavitelnými barvami
- Kamera, která vám zobrazuje živé obrázky
- Reproduktor pro přehrávání hudby
- Senzory pro zachycení pohybu dítěte
- To vše se zobrazuje na webových stránkách
Krátké informace
Pojďme to vysvětlit v krátké verzi. Takže potřebujeme webové stránky a pro tento projekt používám Flask, potřebujeme také databázi a já používám mysql, také skript, který spouští hardware a to je s pythonem (3) a jako poslední potřebujeme nastavení serveru to by byl nginx na PI.
Co potřebujeme
- Raspberry Pi 3
- Nevlastní motor 28BYJ
- Krokový modul ovladače krokového motoru ULN2003
- RGB LED se 3 odpory 330Ohm
- Kamera Pi NoIR V2
- Ultrazvukový senzor HC-SR04
- Mikro modul od ardiuno
- MAX98357A
- Reproduktor 8 Ohmů
- A nezapomeňte si koupit medvěda
Nastavit malinový pi ----------------------------------------------- ---------------------------------------------------------- --------------------------
Nejprve musíme nastavit Pi. Začněte již pro přihlášení pomocí tmelu, pokud nemáte tmel, doporučuji vám jej stáhnout, jednoduše zadejte svou statickou IP Pi pomocí ssh a jdete s tím. Pokud musíte nainstalovat svůj Raspberry Pi, pak mám špatnou zprávu, v tomto projektu to nevysvětluji.
Nainstalujte balíčky
sudo apt aktualizace
sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Virtuální prostředí
python3 -m pip install --upgrade pip setuptools kolečko virtualenv
mkdir {název složky vašeho projektu} && cd {název složky vašeho projektu} python3 -m venv --system-site-packages env zdroj env/bin/aktivovat python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-connector-python passlib
Nyní musíte klonovat úložiště git ve složce projektu
github.com/NMCT-S2-Project-I/Project-I.git
Pokud se podíváte do složky projektu, musíte vidět 5 složek
- conf
- env
- senzor
- sql
- web
Databáze
sudo systemctl status mysql
ss -lt | grep mysql sudo mysql
vytvořte uživatele v databázi se všemi oprávněními a vytvořte si databázi
vytvořit uživatele 'user'@'localhost' identifikovaný 'heslem';
vytvořte databázi jméno_database; udělte všechna oprávnění k vašemu datovému jménu.* uživateli '@' localhost 's možností grantu;
Soubory conf pro server
V souboru uwsgi-flask.ini změníte 'module = …' na 'module = web: app' a cestu k vašemu virtuálnímu souboru, který jste vytvořili. V ostatních souborech musíte změnit cesty na skutečné absolutní cesty vašeho adresáře.
Jakmile na to přijdete, můžete soubory nastavit na správném místě.
sudo cp conf/project1-*. service/etc/systemd/system/
sudo systemctl daemon-reload sudo systemctl start project1-* sudo systemctl status project1-*
teď to musíme nastavit
sudo cp conf/nginx/etc/nginx/sites-available/project1
sudo rm/etc/nginx/sites-enabled/default sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1 sudo systemctl restart nginx.service sudo nginx -t
Pokud vše proběhlo dobře, měli byste mít s tímto příkazem ahoj svět
wget -qO - localhost
Hotovo ! No, to je pro tu část, která vám umožní spustit váš systém …
Krok 1: Zapojení hardwaru do Pi
pomocí BCM
audio MAX98357A
- BCK na GPIO 18
- Data do GPIO 21
- LRCK na GPIO 19
světlo
- červená na GPIO 17
- zelená na GPIO 27
- modrá na GPIO 22
motorový modul ULN2003
- kolík 1 na GPIO 5
- pin 2 na GPIO 6
- pin 3 na GPIO 13
- pin 4 na GPIO 26
mikro
D0 až GPIO 21
ultrazvukový senzor
- spusťte na GPIO 16
- echo na GPIO 20
Krok 2: Kódování hlavních programů
Tady se nedostávám do podrobností, ale můj kód si můžete rezervovat v github.
Nejprve jsem vytvořil svůj html a css, index, přihlášení, registraci, úvodní obrazovku, hudbu, addmusic, addbear, světlo, fotoaparát, nastavení kamery, senzor, stránku palubní desky. Soubory html musí být v šablonách a soubory css ve složce static/css. CSS si můžete plně přizpůsobit, jak chcete.
Pokud jste tuto část dokončili, musíte nastavit svoji baňku. Baňka se snadno používá jen jako příklad ahoj světa
# nejprve importujte baňku
z baňky import * @app.route ('/') def index (): return render_template ('index.html')
Nyní v mém kódu je to již vyplněno, jediná věc, kterou musíte udělat, je změnit uživatele databáze a heslo na to od vás a samozřejmě vytvořit stejnou databázi, kterou můžete také najít v github.
Krok 3: Vytvoření databáze
Pro skutečné fanoušky vám řeknu, jak vytvořit stejnou databázi.
Nejprve tedy musíme vytvořit databázi, pokud jste to neudělali v prvním kroku.
vytvořit databázi beargardian;
Jakmile to uděláte, vytvoříte tabulky v mysql workbench nebo phpadmin
uživatelská tabulka má
- uživatelské ID
- jméno
- příjmení
- e-mailem
- jméno dítěte
- heslo s sha1
- uživatelská složka
- playmusic (int)
- playlight (int)
- přehrávání záznamu (int)
hudební stůl má
- ID hudby
- píseň
- cesta
- uživatelská složka
- postavení
- objem
záznamový stůl má
- ID záznamu
- cesta
- uživatelská složka
- čas
- den
tabulka barev má
- colorID
- Červené
- zelená
- modrý
- jas
- uživatelské ID
medvědí stůl má
- bearID (desítkové (8))
- userID výchozí null
- medvědí jméno
senzorový stůl má
- sensorID
- vzdálenost
- mikro
- bearID
- čas
- den
- Čas spát
Nyní jste tedy úspěšně vytvořili databázi, přejdeme k hardwaru.
Krok 4: Kódování hardwaru
Ukážu trochu kódu a řeknu vám, proč jsem to tak udělal.
Nejprve jsem použil vlákno, co je v tomto projektu absolutní nutností. Co je to závitování, hmmm dobrá otázka! Hrozbou v pythonu je spouštění více programů najednou. Pokud například změníte barvu, můžete také nahrávat. Je to snadné použití nebojte se.
import _threaddef function_name (something, something_else): kód pro spuštění
_thread.start_new_thread (function_name, tuple_with_the_functions_variables)
Když jste se podívali na můj program, viděli jste logger.info ('…'). Toto je funkce tisku, ale mnohem lepší, protože na Pi nemůžete tisknout věci, takže vytvořím soubor a vytisknu ho tam. S tímto kódem lze nastavit soubor protokolu.
logger = logging.getLogger (_ name _) logger.setLevel (logging. INFO) # vytvořit obslužnou rutinu souboru = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)
# vytvořte formát protokolování
formatter = logging. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)
# přidejte obslužné rutiny do záznamníku
logger.addHandler (handler)
logger.info ('spuštění hardwaru / n ---------------------------------------')
dále v samotném kódu vše vysvětlím.
Doporučuje:
Počitadlo kroků - mikro: bit: 12 kroků (s obrázky)
Počitadlo kroků - Micro: Bit: Tento projekt bude počítadlem kroků. K měření našich kroků použijeme snímač akcelerometru, který je zabudovaný v Micro: Bit. Pokaždé, když se Micro: Bit zatřese, přidáme 2 k počtu a zobrazíme ho na obrazovce
Akustická levitace s Arduino Uno krok za krokem (8 kroků): 8 kroků
Akustická levitace s Arduino Uno krok za krokem (8 kroků): Ultrazvukové měniče zvuku L298N Dc samice napájecí zdroj s mužským DC pinem Arduino UNOBreadboard Jak to funguje: Nejprve nahrajete kód do Arduino Uno (je to mikrokontrolér vybavený digitálním a analogové porty pro převod kódu (C ++)
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): 6 kroků (s obrázky)
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): Indukční nabíjení (známé také jako bezdrátové nabíjení nebo bezdrátové nabíjení) je druh bezdrátového přenosu energie. Využívá elektromagnetickou indukci k poskytování elektřiny přenosným zařízením. Nejběžnější aplikací je bezdrátové nabíjení Qi
Jak rozebrat počítač pomocí jednoduchých kroků a obrázků: 13 kroků (s obrázky)
Jak rozebrat počítač pomocí jednoduchých kroků a obrázků: Toto je návod, jak rozebrat počítač. Většina základních komponent je modulární a lze je snadno odstranit. Je však důležité, abyste o tom byli organizovaní. To vám pomůže zabránit ztrátě součástí a také při opětovné montáži
Banka přepínaného zatěžovacího odporu s menší velikostí kroku: 5 kroků
Banka přepínaného zatěžovacího odporu s menší velikostí kroku: Banky zatěžovacích odporů jsou vyžadovány pro testování energetických produktů, pro charakterizaci solárních panelů, v testovacích laboratořích a v průmyslových odvětvích. Reostaty zajišťují nepřetržité kolísání odporu zátěže. Jak se však hodnota odporu snižuje, výkon