Obsah:

Beargardian: 5 krokov
Beargardian: 5 krokov

Video: Beargardian: 5 krokov

Video: Beargardian: 5 krokov
Video: Брат (фильм в HD) 2024, November
Anonim
Beargardian
Beargardian

Čaute chlapci do školy Potreboval som nápad na projekt. Tak som si myslel, že to musí byť projekt s malinovým pi a je lokálny. Zrazu som dostal skvelý nápad a nepýtajte sa ma, ako som ten nápad dostal, ale premýšľal som o aktualizácii detskej opatrovateľky. Zamyslite sa nad touto myšlienkou, väčšina detských monitorov má iba funkciu, ktorou je počúvať detskú izbu.

Vlastnosti

  • Malá svetelná šou s nastaviteľnými farbami
  • Fotoaparát, ktorý vám zobrazuje živé obrázky
  • Reproduktor na prehrávanie hudby
  • Senzory na zachytenie pohybu dieťaťa
  • To všetko sa zobrazuje na webovej stránke

Krátke informácie

Vysvetlíme to v krátkej verzii. Takže potrebujeme webovú stránku a pre tento projekt používam Flask, tiež potrebujeme databázu a ja používam mysql, tiež skript, ktorý beží hardvér a je to s pythonom (3) a ako posledné potrebujeme nastavenie servera to by bolo nginx na PI.

Čo potrebujeme

  • Raspberry Pi 3
  • Nevlastný motor 28BYJ
  • Krokový modul krokového motora ovládača čipu ULN2003
  • RGB žiarovka s 3 odpormi 330Ohm
  • Kamera Pi NoIR V2
  • Ultrazvukový senzor HC-SR04
  • Mikro modul od ardiuno
  • MAX98357A
  • Reproduktor 8 Ohm
  • A nezabudnite si kúpiť medveďa

Nastaviť malinový pi ----------------------------------------------- ---------------------------------------------------------- --------------------------

Najprv musíme nastaviť Pi. Začnite sa už prihlasovať pomocou tmelu, ak nemáte tmel, odporúčame vám ho stiahnuť, jednoducho zadajte svoju statickú ip Pi pomocou ssh a idete na to. Ak musíte nainštalovať svoj Raspberry Pi, mám zlú správu, v tomto projekte to nevysvetľujem.

Nainštalujte balíky

sudo apt aktualizácia

sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3

Virtuálne prostredie

python3 -m pip install -upgrade pip setuptools wheel virtualenv

mkdir {názov priečinka vášho projektu} && cd {názov priečinka vášho projektu} python3 -m venv --system-site-packages env zdroj env/bin/aktivovať python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-connector-python passlib

Teraz musíte klonovať úložisko git do priečinka projektu

github.com/NMCT-S2-Project-I/Project-I.git

Ak sa pozriete do priečinka projektu, musíte vidieť 5 priečinkov

  • conf
  • env
  • snímač
  • sql
  • web

Databáza

sudo systemctl status mysql

ss -lt | grep mysql sudo mysql

vytvorte užívateľa v databáze so všetkými oprávneniami a vytvorte si databázu

vytvorte používateľa 'user'@'localhost' identifikovaného 'heslom';

vytvorte databázu meno_data; udeliť všetky oprávnenia pre vaše meno_databázy.* používateľovi@@localhost s možnosťou udelenia;

Konfiguračné súbory pre server

V uwsgi-flask.ini zmeníte 'module = …' na 'module = web: app' a cestu k vášmu virtuálnemu súboru, ktorý ste vytvorili. V ostatných súboroch musíte zmeniť cesty na skutočné absolútne cesty vášho adresára.

Keď ste na to prišli, môžete súbory nastaviť na správnom mieste.

sudo cp conf/project1-*. service/etc/systemd/system/

sudo systemctl daemon-reload sudo systemctl start project1-* sudo systemctl status project1-*

Teraz to musíme nastaviť

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

Ak všetko prebehlo dobre, mali by ste s týmto príkazom pozdraviť svet

wget -qO - localhost

Hotový ! To je na tej časti, aby nechal váš systém bežať na …

Krok 1: Pripojenie hardvéru k pí

Pripojenie hardvéru k pí
Pripojenie hardvéru k pí

pomocou BCM

audio MAX98357A

  • BCK na GPIO 18
  • Údaje do GPIO 21
  • LRCK na GPIO 19

svetlo

  • červená na GPIO 17
  • zelená na GPIO 27
  • modrá na GPIO 22

motorový modul ULN2003

  • kolík 1 na GPIO 5
  • kolík 2 na GPIO 6
  • kolík 3 na GPIO 13
  • kolík 4 na GPIO 26

mikro

D0 až GPIO 21

ultrazvukový senzor

  • trig na GPIO 16
  • ozvena na GPIO 20

Krok 2: Kódovanie hlavných programov

Tu sa nedostávam do podrobností, ale môžete si pozrieť môj kód v github.

Na začiatku som urobil svoj html a css, index, prihlásenie, registráciu, úvodnú obrazovku, hudbu, addmusic, addbear, svetlo, fotoaparát, nastavenia kamery, senzor, stránku palubnej dosky. Súbory html musia byť v šablónach a súbory css v priečinku static/css. CSS si môžete úplne prispôsobiť, ako chcete.

Ak ste urobili túto časť, musíte nastaviť svoju banku. Flakón sa ľahko používa, je len príkladom ahoj sveta

# importná banka na začiatku

z banky import * @app.route ('/') def index (): return render_template ('index.html')

Teraz je to v mojom kóde už vyplnené. Jediná vec, ktorú musíte urobiť, je zmeniť používateľa databázy a heslo na to, ktoré ste zadali, a samozrejme vytvoriť rovnakú databázu, akú nájdete aj v github.

Krok 3: Vytvorenie databázy

Vytvorenie databázy
Vytvorenie databázy

Pre skutočných fanúšikov vám poviem, ako vytvoriť rovnakú databázu.

Najprv teda musíme vytvoriť databázu, ak ste to neurobili v prvom kroku.

vytvoriť databázu beargardian;

Akonáhle to urobíte, vytvoríte tabuľky v mysql workbench alebo phpadmin

užívateľská tabuľka má

  • ID používateľa
  • krstné meno
  • priezvisko
  • e -mail
  • meno dieťaťa
  • heslo s sha1
  • užívateľský priečinok
  • playmusic (int)
  • svetielko (int)
  • prehrávanie záznamu (int)

hudobný stôl má

  • musicID
  • pieseň
  • cesta
  • užívateľský priečinok
  • postavenie
  • objem

záznamový stôl má

  • ID záznamu
  • cesta
  • užívateľský priečinok
  • čas
  • deň

tabuľka farieb má

  • colorID
  • červená
  • zelená
  • Modrá
  • jas
  • ID používateľa

medvedí stôl má

  • bearID (desatinne (8))
  • userID default null
  • medvede meno

senzorový stôl má

  • sensorID
  • vzdialenosť
  • mikro
  • bearID
  • čas
  • deň
  • čas na spanie

Takže teraz ste úspešne vytvorili databázu, poďme na hardvér.

Krok 4: Kódovanie hardvéru

Ukážem trochu kódu a poviem vám, prečo som to urobil.

Na začiatok som použil závitovanie, čo je v tomto projekte absolútnou nevyhnutnosťou. Čo je to závitovanie, hmmm, dobrá otázka! Hrozbou v pythone je spustenie viacerých programov naraz. Ak napríklad zmeníte farbu, môžete tiež nahrávať. Je to jednoduché použitie nebojte sa.

import _threaddef function_name (something, something_else): kód na spustenie

_thread.start_new_thread (function_name, tuple_with_the_functions_variables)

Ak ste sa pozreli na môj program, videli ste logger.info ('…'). Toto je funkcia tlače, ale oveľa lepšia, pretože na Pi nemôžete tlačiť veci, takže vytvorím súbor a vytlačím ho tam. S týmto kódom môžete nastaviť súbor denníka.

logger = logging.getLogger (_ name _) logger.setLevel (logging. INFO) # vytvoriť obslužnú rutinu obsluhy súboru = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# vytvorte formát protokolovania

formatter = logging. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)

# pridajte obslužné rutiny do záznamníka

logger.addHandler (handler)

logger.info ('spustenie hardvéru / n ---------------------------------------')

ďalej v samotnom kóde všetko vysvetľujem.

Odporúča: