Sadržaj:
- Korak 1: Ožičenje hardvera na Pi
- Korak 2: Kodiranje glavnih programa
- Korak 3: Stvaranje baze podataka
- Korak 4: Kodiranje hardvera
Video: Beargardian: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
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
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
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:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način stvaranja igre, osobito nečega poput zagonetke, vizualnog romana ili avanturističke igre
Broj koraka: 17 koraka
الكشف عن عن أنواع المحاليل: محمدآل سعودالكشف عن المحاليل رابط الفديو
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: 3 koraka
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: U ovom Instructableu ćemo izvršiti detekciju lica na Raspberry Pi 4 sa Shunya O/S pomoću knjižnice Shunyaface. Shunyaface je biblioteka za prepoznavanje/otkrivanje lica. Cilj projekta je postići najbržu brzinu otkrivanja i prepoznavanja s
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovno početi vježbati. Koju opremu trebam pripremiti?
Aduino UNO Broj koraka: 5 koraka
Aduino UNO 를 이용한 도망 치는 &&&& && l g g g g g g g g g g g g g g g 4 g 4 4 4 4 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 일자 일자 일자: 2017.01.06. ~ 2017.01.11.- 역할 분담 SW 엔지니어: 김 예은, 임동영 HW 엔지니어: 김지훈 디자이너: 이재민 레코더: 홍 다예 ------------------------ --------------------------------------------------