Sadržaj:

Beargardian: 5 koraka
Beargardian: 5 koraka

Video: Beargardian: 5 koraka

Video: Beargardian: 5 koraka
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Studeni
Anonim
Beargardian
Beargardian

Hej dečki za školu, trebala mi je ideja za projekt. Pa sam razmišljao, to mora biti projekt s malinom pi i to je lokalno. Odjednom mi je pala na pamet sjajna ideja i ne pitajte me kako sam došao na tu ideju, ali sam razmišljao o nadogradnji monitora za bebe. Razmislite samo malo o toj ideji, većina monitora za bebe samo ima funkciju slušati dječju sobu.

Značajke

  • Mali svjetlosni show s podesivim bojama
  • Kamera koja prikazuje slike uživo
  • Zvučnik za reprodukciju glazbe
  • Senzori za snimanje kretanja bebe
  • Sve se to prikazuje na web stranici

Kratke informacije

Dopustite mi da to objasnim u kratkoj verziji. Dakle, potrebna nam je web stranica, a za ovaj projekt koristim Flask, potrebna nam je i baza podataka, a ja koristim mysql, također skriptu koja pokreće hardver, a to je s pythonom (3) i kao posljednje potrebno nam je postavljanje poslužitelja to bi bio nginx na PI.

Što trebamo

  • Raspberry Pi 3
  • Pokretni motor 28BYJ
  • Steper modul koračnog pokretačkog motora ULN2003
  • RGB vodio sa 3 otpornika 330Ohm
  • Pi NoIR kamera V2
  • Ultrazvučni senzor HC-SR04
  • Mikro modul iz ardiuna
  • MAX98357A
  • Zvučnik 8Ohm
  • I ne zaboravite kupiti medvjeda

Postavljanje maline pi ----------------------------------------------- -------------------------------------------------- --------------------------

U početku moramo postaviti Pi. Počnite se već prijavljivati putem kit -a, ako nemate kit, preporučujem vam da preuzmete ovo, jednostavno upišite svoj statički ip Pi sa ssh -om i krenite s njim. Ako morate instalirati svoj Raspberry Pi, dobio sam loše vijesti, ne objašnjavam ovo u ovom projektu.

Instalirajte pakete

sudo apt ažuriranje

sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-poslužitelj uwsgi nginx uwsgi-plugin-python3

Virtualno okruženje

python3 -m pip install --upgrade pip setuptools wheel virtualenv

mkdir {naziv mape vašeg projekta} && cd {naziv mape vašeg projekta} python3 -m venv --system-site-packages env izvor env/bin/aktiviranje python -m pip instalacija mysql-konektor-python argon2-cffi Bočica-HTTPAuth Flask- MySQL mysql-connector-python passlib

Sada morate klonirati git spremište u mapi projekta

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

Ako pogledate u mapu projekta, morate vidjeti 5 mapa

  • konf
  • env
  • senzor
  • sql
  • mreža

Baza podataka

sudo systemctl status mysql

ss -lt | grep mysql sudo mysql

stvoriti korisnika u bazi podataka sa svim ovlastima i napraviti svoju bazu podataka

stvoriti korisnika 'user'@'localhost' identificiranog 'lozinkom';

izraditi bazu podataka yourdatabasename; dodijelite sve privilegije na vašoj bazi podataka.* korisniku '@' localhost 's opcijom dodjele;

Conf datoteke za poslužitelj

U uwsgi-flask.ini mijenjate 'module = …' u 'module = web: app' i put do vašeg virtualenv-a koji ste stvorili. U ostalim datotekama morate promijeniti putove do stvarnih apsolutnih staza vašeg imenika.

Nakon što ste to shvatili, datoteke možete postaviti na pravo mjesto.

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

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

sada moramo ovo staviti na raspolaganje

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 ponovno pokrenite nginx.service sudo nginx -t

Ako je sve prošlo dobro, trebali biste imati hello world s ovom naredbom

wget -qO - lokalni domaćin

Gotovo! Pa to je dio koji vam omogućuje pokretanje sustava na …

Korak 1: Ožičenje hardvera na Pi

Ožičenje hardvera na Pi
Ožičenje hardvera na Pi

pomoću BCM -a

audio MAX98357A

  • BCK na GPIO 18
  • Podaci u GPIO 21
  • LRCK na GPIO 19

svjetlo

  • crveno do GPIO 17
  • zelena za GPIO 27
  • plava do GPIO 22

modul motora ULN2003

  • pin 1 na GPIO 5
  • pin 2 na GPIO 6
  • pin 3 na GPIO 13
  • pin 4 na GPIO 26

mikro

D0 do GPIO 21

ultrazvučni senzor

  • okrenite na GPIO 16
  • eho na GPIO 20

Korak 2: Kodiranje glavnih programa

Ovdje ne ulazim u detalje, ali možete provjeriti moj kôd u githubu.

Za početak sam napravio svoj html i css, indeks, prijavu, registraciju, početni zaslon, glazbu, addmusic, addbear, svjetlo, kameru, postavke fotoaparata, senzor, stranicu nadzorne ploče. HTML datoteke moraju biti u predlošcima, a datoteke css u mapi static/css. Možete potpuno prilagoditi css kako želite.

Ako ste učinili ovaj dio, morate postaviti bocu. Flask je jednostavan za korištenje samo primjer svijeta hello

# uvozne tikvice u početku

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

Sada je u mom kodu ovo već popunjeno, jedino što trebate učiniti je promijeniti korisnika baze podataka i lozinku na onu koju imate i naravno napraviti istu bazu podataka koju također možete pronaći u githubu.

Korak 3: Stvaranje baze podataka

Stvaranje baze podataka
Stvaranje baze podataka

Za prave obožavatelje reći ću vam kako stvoriti istu bazu podataka.

Dakle, prvo moramo stvoriti bazu podataka ako niste u prvom koraku.

stvoriti bazu podataka beargardian;

Nakon što to učinite, stvarate tablice u mysql radnom stolu ili phpadminu

korisnička tablica ima

  • userID
  • ime
  • prezime
  • e -mail
  • babyname
  • lozinka sa sha1
  • korisnička mapa
  • playmusic (int)
  • playlight (int)
  • snimanje reprodukcije (int)

glazbeni stol ima

  • musicID
  • pjesma
  • staza
  • korisnička mapa
  • status
  • volumen

stol za snimanje ima

  • recordID
  • staza
  • korisnička mapa
  • vrijeme
  • dan

tablica boja ima

  • colorID
  • Crvena
  • zelena
  • plava
  • svjetlina
  • userID

medvjeđi stol ima

  • bearID (decimalni (8))
  • userID zadana vrijednost null
  • ime medvjeda

senzorski stol ima

  • senzorID
  • udaljenost
  • mikro
  • bearID
  • vrijeme
  • dan
  • vrijeme za spavanje

Dakle, sada ste uspješno stvorili bazu podataka, idemo na hardver.

Korak 4: Kodiranje hardvera

Pokazat ću vam malo koda i reći ću vam zašto sam to učinio na taj način.

Za početak sam koristio threading, što je apsolutni must u ovom projektu. Što je threading, hmmm dobro pitanje! U Pythonu prijeti pokretanje više programa odjednom. Ako, na primjer, promijenite boju, možete i snimiti. Lako je koristiti, ne brinite.

import _threaddef ime_funkcije (nešto, nešto_ostalo): kôd za pokretanje

_thread.start_new_thread (ime_funkcije, tuple_with_the_functions_variables)

Ako ste pogledali moj program, vidjeli ste logger.info ('…'). Ovo je funkcija ispisa, ali mnogo bolja, jer na Pi ne možete ispisivati stvari pa ja napravim datoteku i tamo je isprintam. Yoe možete postaviti datoteku dnevnika s ovim kodom.

logger = logging.getLogger (_ name _) logger.setLevel (logging. INFO) # stvoriti handler handler handler = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# stvorite format zapisa

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

# dodajte rukovatelje zapisničaru

logger.addHandler (rukovatelj)

logger.info ('pokretanje hardvera / n ---------------------------------------')

dalje u samom kodu sve objašnjavam.

Preporučeni: