Obsah:

Beargardian: 5 kroků
Beargardian: 5 kroků

Video: Beargardian: 5 kroků

Video: Beargardian: 5 kroků
Video: Teddy Bear SCP-6330 Guardians of the Innocent (SCP Animation) 2024, Listopad
Anonim
Beargardian
Beargardian

Č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

Zapojení hardwaru do Pi
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

Vytvoření databáze
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: