Turinys:
- 1 žingsnis: Aparatūros prijungimas prie „Pi“
- 2 žingsnis: pagrindinių programų kodavimas
- 3 žingsnis: sukurkite duomenų bazę
- 4 žingsnis: aparatinės įrangos kodavimas
Video: „Beargardian“: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Sveiki, vaikinai mokyklai, man reikėjo projekto idėjos. Taigi aš galvojau, kad tai turi būti projektas su aviečių pi ir tai vietinis. Staiga man kilo puiki idėja ir neklausk manęs, kaip man tokia mintis, bet galvojau apie kūdikio monitoriaus atnaujinimą. Pagalvokite apie šią idėją, dauguma kūdikių monitorių turi funkciją klausytis kūdikio kambario.
Savybės
- Mažas šviesos šou su reguliuojamomis spalvomis
- Fotoaparatas, rodantis tiesioginius vaizdus
- Garsiakalbis, leidžiantis muziką
- Jutikliai, fiksuojantys kūdikio judėjimą
- Visa tai rodoma svetainėje
Trumpa informacija
Leiskite tai paaiškinti trumpa versija. Taigi mums reikia svetainės ir šiam projektui aš naudoju „Flask“, mums taip pat reikia duomenų bazės ir aš naudoju „mysql“, taip pat scenarijų, kuriame paleidžiama aparatinė įranga, ir tai yra su „python“(3), o paskutinis mums reikia serverio sąrankos tai būtų nginx ant PI.
Ko mums reikia
- Raspberry Pi 3
- Posūkio variklis 28BYJ
- Pakopinio variklio mikroschemos ULN2003 žingsninis modulis
- Rgb LED su 3 rezistoriais 330Ohm
- „Pi NoIR“kamera V2
- Ultragarsinis jutiklis HC-SR04
- „Ardiuno“mikro modulis
- MAX98357A
- Garsiakalbis 8 Ohm
- Ir nepamirškite nusipirkti meškos
Raspberry pi sąranka ----------------------------------------------- -------------------------------------------------- --------------------------
Iš pradžių turime nustatyti „Pi“. Pradėkite jau prisijungti naudodami glaistą, jei neturite glaisto, rekomenduoju jį atsisiųsti, tiesiog įveskite savo statinį „Pi“ip naudodami ssh ir eikite su juo. Jei turite įdiegti „Raspberry Pi“, gavau blogų naujienų, šiame projekte to nepaaiškinu.
Įdiekite paketus
sudo apt atnaujinimas
sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Virtuali aplinka
python3 -m pip install -atnaujinti pip setuptools ratą virtualenv
mkdir {jūsų projekto aplanko pavadinimas} && cd {jūsų projekto aplankas MySQL mysql-connector-python prieigos kodas
Dabar jūs turite klonuoti „git“saugyklą savo projekto aplanke
github.com/NMCT-S2-Project-I/Project-I.git
Jei pažvelgsite į savo projekto aplanką, turėsite pamatyti 5 aplankus
- konf
- env
- jutiklis
- sql
- žiniatinklis
Duomenų bazė
sudo systemctl būsena mysql
ss -lt | grep mysql sudo mysql
sukurti duomenų bazėje vartotoją su visomis privilegijomis ir sukurti savo duomenų bazę
sukurti vartotoją „user“@„localhost“, identifikuotą pagal „slaptažodį“;
sukurti duomenų bazę savo duomenų bazės pavadinimas; suteikite visas privilegijas savo duomenų bazės pavadinime.* „user“@„localhost“su suteikimo galimybe;
Serverio konfigūracijos failai
Uwsgi-flask.ini pakeisite „module =…“į „module = web: app“ir savo sukurtą kelią į virtualenv. Kituose failuose turite pakeisti kelius į faktinius absoliučius jūsų katalogo kelius.
Kai tai suprasite, failus galite nustatyti tinkamoje vietoje.
sudo cp conf/project1-*. service/etc/systemd/system/
sudo systemctl daemon-reload sudo systemctl start project1-* sudo systemctl status project1-*
dabar turime tai padaryti prieinamą
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
Jei viskas klostėsi gerai, turėsite sveiką pasaulį su šia komanda
wget -qO - vietinis šeimininkas
Padaryta ! Na, tai yra dalis, leidžianti paleisti jūsų sistemą …
1 žingsnis: Aparatūros prijungimas prie „Pi“
naudojant BCM
garsas MAX98357A
- BCK į GPIO 18
- Duomenys į GPIO 21
- LRCK į GPIO 19
šviesa
- raudona iki GPIO 17
- žalia iki GPIO 27
- mėlyna iki GPIO 22
variklio modulis ULN2003
- 1 kaištis prie GPIO 5
- 2 kaištis prie GPIO 6
- 3 kaištis prie GPIO 13
- 4 kaištis prie GPIO 26
mikro
Nuo D0 iki GPIO 21
ultragarso jutiklis
- pereikite prie GPIO 16
- aidi GPIO 20
2 žingsnis: pagrindinių programų kodavimas
Aš čia nesigilinu į detales, bet jūs galite patikrinti mano kodą „github“.
Pirmiausia sukūriau savo html ir css, indeksą, prisijungimą, registraciją, pagrindinį ekraną, muziką, „addmusic“, „addbear“, šviesą, fotoaparatą, fotoaparato nustatymus, jutiklį, prietaisų skydelio puslapį. HTML failai turi būti šablonuose, o css failai - aplanke static/css. Galite visiškai pritaikyti css, kaip norite.
Jei atlikote šią dalį, turite nustatyti kolbą. Kolbą lengva naudoti tik kaip gero pasaulio pavyzdį
# importo kolba iš pradžių
iš kolbos importo * @app.route ('/') def index (): return render_template ('index.html')
Dabar mano kode tai jau užpildyta, vienintelis dalykas, kurį turite padaryti, yra pakeisti duomenų bazės vartotoją ir slaptažodį iš jūsų ir, žinoma, sukurti tą pačią duomenų bazę, kurią taip pat galite rasti „github“.
3 žingsnis: sukurkite duomenų bazę
Tikriems gerbėjams aš jums pasakysiu, kaip sukurti tą pačią duomenų bazę.
Taigi pirmiausia turime sukurti duomenų bazę, jei to nepadarėte atlikdami pirmą veiksmą.
sukurti duomenų bazę beargardian;
Kai tai padarysite, lenteles sukuriate „mysql workbench“arba „phpadmin“
vartotojo lentelė turi
- Vartotojo ID
- Pirmas vardas
- pavardė
- paštą
- babyname
- slaptažodį su sha1
- userfolder
- playmus (int)
- „playlight“(int)
- grojamas įrašas (int)
muzikos staliukas turi
- musicID
- daina
- kelias
- userfolder
- būsena
- tūrio
yra įrašymo lentelė
- įrašymo ID
- kelias
- userfolder
- laikas
- dieną
yra spalvotas stalas
- colorID
- raudona
- žalias
- mėlyna
- ryškumas
- Vartotojo ID
meškos stalas turi
- bearID (dešimtainis (8))
- userID numatytasis null
- bearname
turi jutiklių lentelę
- sensorID
- atstumas
- mikro
- bearID
- laikas
- dieną
- miego laikas
Taigi dabar jūs sėkmingai sukūrėte duomenų bazę, pereikime prie aparatūros.
4 žingsnis: aparatinės įrangos kodavimas
Aš parodysiu šiek tiek kodo ir pasakysiu, kodėl aš tai padariau.
Pirmiausia naudoju siūlus, kas yra absoliuti būtinybė šiame projekte. Kas yra siūlai, hmmm geras klausimas! „Python“grėsmė yra paleisti kelias programas vienu metu. Taigi, jei, pavyzdžiui, pakeisite spalvą, taip pat galėsite įrašyti. Tai lengva naudoti, nesijaudinkite.
importuoti _threaddef function_name (kažkas, kažkas_else): kodas, kurį reikia paleisti
_thread.start_new_thread (funkcijos_pavadinimas, rinkinys_su_funkcijų_variables)
Jei pažiūrėjote į mano programą, pamatėte logger.info ('…'). Tai yra spausdinimo funkcija, bet daug geriau, nes „Pi“negalite išspausdinti medžiagos, todėl sukuriu failą ir atspausdinu jį ten. Šiuo kodu galite nustatyti žurnalo failą.
logger = logging.getLogger (_ vardas _) logger.setLevel (logging. INFO) # sukurti failų tvarkytoją handler = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)
# sukurkite registravimo formatą
formatter = logging. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)
# pridėkite tvarkytuvus prie registratoriaus
logger.addHandler (tvarkytojas)
logger.info ('paleiskite aparatūrą / n ---------------------------------------')
toliau pačiame kode aš viską paaiškinu.
Rekomenduojamas:
„Arduino“automobilių atbulinės eigos įspėjimo sistema - Žingsniai po žingsnio: 4 žingsniai
„Arduino“automobilių atbulinės eigos įspėjimo sistema | Žingsniai po žingsnio: Šiame projekte aš suprojektuosiu paprastą „Arduino“automobilio atbulinės eigos stovėjimo jutiklio grandinę, naudodamas „Arduino UNO“ir ultragarsinį jutiklį „HC-SR04“. Ši „Arduino“pagrįsta automobilio atbulinės eigos įspėjimo sistema gali būti naudojama autonominei navigacijai, robotų diapazonui ir kitiems diapazonams
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): 8 žingsniai
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): ultragarsiniai garso keitikliai L298N nuolatinės srovės adapterio maitinimo šaltinis su vyrišku nuolatinės srovės kaiščiu „Arduino UNOBreadboard“Kaip tai veikia: pirmiausia įkelkite kodą į „Arduino Uno“(tai yra mikrovaldiklis su skaitmeniniu ir analoginiai prievadai kodui konvertuoti (C ++)
„Pixel Kit“, kuriame veikia „MicroPython“: pirmieji žingsniai: 7 žingsniai
„Pixel Kit“, kuriame veikia „MicroPython“: pirmieji žingsniai: Kelionė, skirta visam „Kano Pixel“potencialui išnaudoti, prasideda gamyklos programinės įrangos pakeitimu „MicroPython“, tačiau tai tik pradžia. Norėdami koduoti „Pixel Kit“, turime prie jo prijungti savo kompiuterius. Ši pamoka paaiškins, kas
Tiesioginė 4G/5G HD vaizdo transliacija iš DJI drono esant mažai delsai [3 žingsniai]: 3 žingsniai
Tiesioginis 4G/5G HD vaizdo įrašų srautinis perdavimas iš DJI drono esant mažai delsai [3 žingsniai]: Šis vadovas padės jums gauti tiesioginius HD kokybės vaizdo srautus iš beveik visų DJI dronų. Naudodami „FlytOS Mobile App“ir „FlytNow Web Application“galite pradėti transliuoti vaizdo įrašus iš drono