Satura rādītājs:

Beargardian: 5 soļi
Beargardian: 5 soļi

Video: Beargardian: 5 soļi

Video: Beargardian: 5 soļi
Video: 5 Biggest Changes That Are Coming To NBA 2K21 On Next Gen! 2024, Novembris
Anonim
Lācietis
Lācietis

Čau puiši uz skolu Man bija vajadzīga ideja projektam. Tāpēc es domāju, ka tam jābūt projektam ar aveņu pi, un tas ir vietējais. Pēkšņi man radās lieliska ideja un nejautājiet man, kā man rodas šī ideja, bet es domāju par mazuļa monitora jaunināšanu. Vienkārši padomājiet par šo ideju, lielākajai daļai bērnu monitoru ir tikai funkcija klausīties mazuļa istabu.

Iezīmes

  • Neliels gaismas šovs ar regulējamām krāsām
  • Kamera, kas parāda tiešraides attēlus
  • Skaļrunis mūzikas atskaņošanai
  • Sensori, lai fiksētu mazuļa kustību
  • Tas viss tiek parādīts vietnē

Īsa informācija

Ļaujiet mums to izskaidrot īsā versijā. Tātad mums ir nepieciešama vietne, un šim projektam es izmantoju kolbu, mums ir nepieciešama arī datu bāze, un es izmantoju mysql, kā arī skripts, kas vada aparatūru, un tas ir ar python (3), un kā pēdējais mums ir nepieciešama servera iestatīšana tas būtu nginx uz PI.

Kas mums vajadzīgs

  • Raspberry Pi 3
  • Pakāpis 28BYJ
  • Pakāpju motora mikroshēmas ULN2003 pakāpju modulis
  • Rgb led ar 3 rezistoriem 330Ohm
  • Pi NoIR kamera V2
  • Ultraskaņas sensors HC-SR04
  • Mikromodulis no ardiuno
  • MAX98357A
  • Skaļrunis 8 omi
  • Un neaizmirstiet iegādāties lāci

Aveņu pi iestatīšana ----------------------------------------------- -------------------------------------------------- --------------------------

Sākumā mums ir jāiestata Pi. Sāciet jau pieteikties, izmantojot špakteli, ja jums nav špakteles, es iesaku to lejupielādēt, vienkārši ierakstiet savu statisko Pi ip ar ssh un dodieties ar to. Ja jums jāinstalē Raspberry Pi, tad es saņēmu sliktas ziņas, es šajā projektā to neskaidroju.

Instalējiet paketes

sudo apt atjauninājums

sudo apt instalēt -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3

Virtuālā vide

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

mkdir {jūsu projekta mapes nosaukums} && cd {jūsu projekta mapes nosaukums} python3 -m venv-system-site-paketes env avots env/bin/aktivizēt python -m pip instalēt mysql-connector-python argon2-cffi kolbas kolba-HTTPAuth kolba- MySQL mysql-savienotājs-python piekļuves

Tagad jums ir jāklonē git krātuve jūsu projekta mapē

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

Ja paskatās projekta mapē, jums ir jāredz 5 mapes

  • konf
  • env
  • sensors
  • sql
  • tīmeklī

Datu bāze

sudo systemctl statuss mysql

ss -lt | grep mysql sudo mysql

izveidot datu bāzē lietotāju ar visām privilēģijām un izveidot savu datu bāzi

izveidot lietotāju 'user'@'localhost', kas identificēts ar 'paroli';

izveidot datu bāzi jūsudatabasename; piešķirt visas privilēģijas jūsu datubāzes nosaukumā.* lietotājam@'localhost' ar piešķiršanas iespēju;

Conf faili serverim

Vietnē uwsgi-flask.ini maināt “module =…” uz “module = web: app” un izveidoto ceļu uz jūsu virtualenv. Citos failos jums ir jāmaina ceļi uz direktorija faktiskajiem absolūtajiem ceļiem.

Kad esat to sapratis, varat iestatīt failus pareizajā vietā.

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

sudo systemctl dēmons-pārlādēt sudo systemctl sākt projektu1-* sudo systemctl statuss projekts1-*

tagad mums tas ir jādara pieejams

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

Ja viss noritēja labi, jums vajadzētu sveicināt pasauli ar šo komandu

wget -qO - vietējais saimnieks

Gatavs! Tā ir daļa, kas ļauj palaist jūsu sistēmu …

1. darbība: aparatūras savienošana ar Pi

Aparatūras savienošana ar Pi
Aparatūras savienošana ar Pi

izmantojot BCM

audio MAX98357A

  • BCK uz GPIO 18
  • Dati uz GPIO 21
  • LRCK uz GPIO 19

gaisma

  • sarkans līdz GPIO 17
  • zaļš līdz GPIO 27
  • zils līdz GPIO 22

motora modulis ULN2003

  • 1. tapa līdz GPIO 5
  • 2. tapa līdz GPIO 6
  • 3. tapa līdz GPIO 13
  • 4. tapa līdz GPIO 26

mikro

D0 līdz GPIO 21

ultraskaņas sensors

  • pārslēdziet uz GPIO 16
  • atbalss GPIO 20

2. darbība: galveno programmu kodēšana

Šeit es neiedziļinos detaļās, bet jūs varat pārbaudīt manu kodu vietnē github.

Sākumā es izveidoju savu html un css, indeksu, pieteikšanos, reģistrāciju, sākuma ekrānu, mūziku, addmusic, addbear, gaismu, kameru, kameru iestatījumus, sensoru, informācijas paneļa lapu. HTML failiem ir jābūt veidnēs, bet css failiem - mapē static/css. Jūs varat pilnībā pielāgot css, kā vēlaties.

Ja esat veicis šo daļu, jums jāiestata kolba. Kolbu ir viegli izmantot tikai sveikas pasaules piemērs

# importa kolba sākumā

no kolbas importēšanas * @app.route ('/') def index (): return render_template ('index.html')

Tagad manā kodā tas jau ir aizpildīts, vienīgais, kas jums jādara, ir nomainīt datubāzes lietotāju un paroli uz jums un, protams, izveidot to pašu datu bāzi, kuru varat atrast arī vietnē github.

3. darbība. Datu bāzes izveide

Datu bāzes izveide
Datu bāzes izveide

Īstiem faniem es jums pastāstīšu, kā izveidot to pašu datu bāzi.

Tātad vispirms mums ir jāizveido datu bāze, ja jūs to nedarījāt pirmajā solī.

izveidot datu bāzi beargardian;

Kad esat to izdarījis, jūs izveidojat tabulas mysql workbench vai phpadmin

lietotāju tabulā ir

  • Lietotāja ID
  • vārds
  • uzvārds
  • e -pastu
  • babyname
  • parole ar sha1
  • lietotāja mape
  • playmus (int)
  • playlight (int)
  • atskaņošanas ieraksts (int)

mūzikas galdam ir

  • musicID
  • dziesma
  • ceļš
  • lietotāja mape
  • statuss
  • apjoms

ierakstīšanas tabulā ir

  • ieraksta ID
  • ceļš
  • lietotāja mape
  • laiks
  • diena

krāsu galdam ir

  • colorID
  • sarkans
  • zaļš
  • zils
  • spilgtums
  • Lietotāja ID

lāču galdam ir

  • bearID (decimālskaitlis (8))
  • userID noklusējuma nulle
  • bearname

sensoru tabulā ir

  • sensorID
  • attālums
  • mikro
  • bearID
  • laiks
  • diena
  • miega laiks

Tātad, tagad esat veiksmīgi izveidojis datu bāzi, dodieties uz aparatūru.

4. solis: aparatūras kodēšana

Es parādīšu nedaudz koda un pastāstīšu, kāpēc es tā rīkojos.

Vispirms es izmantoju vītņošanu, kas šajā projektā ir absolūti nepieciešama. Kas ir pavedināšana, hmmm labs jautājums! Python draudi ir palaist vairākas programmas vienlaikus. Tātad, ja, piemēram, maināt krāsu, varat arī ierakstīt. Tas ir viegli lietojams, neuztraucieties.

importēt _threaddef function_name (kaut kas, kaut kas cits): kods, kas jāizpilda

_thread.start_new_thread (funkcija_nosaukums, kopums_ar_funkciju_variables)

Ja paskatījāties uz manu programmu, jūs redzējāt logger.info ('…'). Šī ir drukas funkcija, bet daudz labāka, jo uz Pi nevar izdrukāt materiālus, tāpēc es izveidoju failu un izdrukāju to tur. Jūs varat iestatīt žurnāla failu ar šo kodu.

logger = logging.getLogger (_ name _) logger.setLevel (logging. INFO) # izveidot failu apstrādātāja apstrādātāju = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)

# izveidot reģistrēšanas formātu

formatētājs = reģistrēšana. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)

# pievienojiet apstrādātājus reģistratoram

logger.addHandler (apstrādātājs)

logger.info ('palaidiet aparatūru / n ---------------------------------------')

tālāk pašā kodā es visu izskaidroju.

Ieteicams: