Turinys:
- 1 žingsnis: medžiagos: ko jums reikia
- 2 žingsnis: laidų prijungimas
- 3 veiksmas: duomenų bazė naudojant „MySQL“
- 4 žingsnis: kodavimas
- 5 žingsnis: būstas
Video: Pagrindinis_X: 5 žingsniai
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-10 13:47
Aš esu Howest Kortrijk studentas, studijuojantis naujas žiniasklaidos ir komunikacijos technologijas (NMCT).
Mes visi turėjome sukurti projektą, pagrįstą avietėmis ir (arba) Arduino. Norėdami parodyti duomenis svetainėje, turėjome naudoti jutiklius ir duomenų bazes, ir tada aš sugalvojau sukurti mini išmanųjį namą.
Turėdami išmanųjį namą, svetainėje galėsite pamatyti visus jutiklių rodmenis.
Šioje pamokoje aš jums padėsiu atlikti kiekvieną žingsnį, kad galėtumėte patys atkurti šį projektą.
1 žingsnis: medžiagos: ko jums reikia
- Raspberry Pi
- DHT22
- Grove - oro kokybės jutiklis
- Grove - dujų jutiklis (MQ2)
- Bandomoji Lenta
- Raspberry Pi T Cobbler
- Vyriški/moteriški jungiamieji laidai
- 5 mm šviesos diodai
- Rezistoriai
- Mediena ir įrankiai
- Servo variklis
- GrovePi+
Šias prekes galite nusipirkti internetu („Ali Express“, „Amazon“, „kivi elektronika“…) arba vietinėse parduotuvėse.
Išsamus dalių sąrašas su nuoroda į parduotuves pateiktas žemiau BOM.
2 žingsnis: laidų prijungimas
Aš naudoju „Fritzing“laidams, kad galėčiau gerai apžvelgti, kaip reikia atlikti mano laidus. Aš pats naudoju „GrovePi+“2 savo jutikliams. Jei planuojate tai padaryti be „GrovePi+“, vadovaukitės „Fritzing“schema. Jutikliai jums netinka, pabandykite naudoti skirtingus kaiščius.
Fritzing failą galite rasti žemiau.
3 veiksmas: duomenų bazė naudojant „MySQL“
Viena iš svarbiausių užduočių, kurią turėjome įgyvendinti, buvo ryšys su „MySQL“duomenų baze.
Kiekvieną kartą, kai jutiklis gauna rodmenis arba užsidega lemputė, šiuos pakeitimus matysite duomenų bazėje.
Tada duomenų bazė siunčia šiuos duomenis į svetainę, kad vartotojas juos taip pat galėtų matyti.
Žemiau rasite mano.xml failą, kuriame yra duomenų bazės veikimo apžvalga, bet pirmiausia turite įdiegti „MySQL“ir kolbą „Raspberry Pi“.
Jutiklių kodavimas įvyko per pycharmą, todėl įsitikinkite, kad jis taip pat yra įdiegtas (jūsų kompiuteryje).
Pirmiausia turite patikrinti, ar nėra atnaujinimų, ir įdiegti tokius paketus:
sudo apt-get update && sudo apt-get upgrade
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Dabar mes naudojame virtualią aplinką:
me@my-rpi: ~ $ python3 -m pip install-atnaujinti pip setuptools ratą virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv-system- svetainių paketai env me@my-rpi: ~/project1 $ source env/bin/aktivuoti (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth „Flask-MySQL“„mysql-connector-python“slaptažodis
Tai turėtų pasakyti, kad „mariadb.service“yra aktyvi.
Dabar „pycharm“eikite į VCS> Importuoti iš versijų valdymo> „GitHub“klone
Tada sukonfigūruokite ką tik sukurto katalogo diegimo konfigūraciją, pvz. /home/me/project1.
Kai tai bus padaryta, eikite į vertėjo nustatymus ir sukonfigūruokite ką tik sukurtą virtualią aplinką, pvz. /home/me/project/env/bin/python. Taip pat reikia užpildyti kelių žemėlapius.
Jei visa tai padarėte, duomenų bazė jau turėtų veikti.
sudo systemctl būsena mysql
Dabar turime sukurti savo duomenų bazės vartotojus, pavyzdžiui:
sudo mariadb
KURTI NAUDOTOJĄ 'project-admin'@'localhost', IDENTIFIKUOTAS 'adminpassword'; KURTI NAUDOTOJĄ 'project-web'@'localhost', IDENTIFIKUOTAS 'webpassword'; KURTI NAUDOTOJĄ 'project-sensor'@'localhost', IDENTIFIKUOTAS 'sensorpassword'; CREATE DATABASE projektas;
SUTEIKITE VISAS privilegijas projektui.* „Project-admin“@“localhost“SU DOTACIJOS PASIRINKIMU; GRANT SELECT, INSERT, UPDATE, DELETE ON Project.* Į „project-web“@„localhost“; GRANT SELECT, INSERT, UPDATE, DELETE ON Project.* Į „project-sensor“@„localhost“; PLŪŠIMO PRIVILEGIJOS;
Dabar norėdami pamatyti mūsų duomenų bazę pycharm, turime užmegzti ryšį.
Tai galime padaryti eidami į Vaizdas> Įrankių langai> Duomenų bazė ir spustelėję žalią „pliuso“mygtuką.
Duomenų šaltinis> „MySQL“ir spustelėkite (jei yra) pasirodžiusį mygtuką Atsisiųsti tvarkyklę.
Tada eikite į SSH/SSL ir patikrinkite SSH. Įveskite „pi“pagrindinį kompiuterį/vartotoją/slaptažodį ir naudokite 22 prievadą, jei dar neužpildytas.
Jei norite, kad pycharm prisimintų jūsų slaptažodį, pažymėkite žymimąjį laukelį „Prisiminti slaptažodį“.
Skirtuke „Bendra“užpildykite „localhost in host“, projektą „Duomenų bazėje“ir naudokite „project-admin“su slaptažodžiu, kad galėtumėte patikrinti ryšį.
Kad dabar būtų galima naudoti duomenų bazę, turite paleisti žemiau esantį.sql failą. Pabandykite naudoti importavimo parinktį, jei negalite importuoti dumpfile, turite pridėti lenteles rankiniu būdu.
Kai tai bus padaryta, turite rasti conf katalogą su dviem.service failais. Ten pakeiskite kiekvieną rastą sebą su vartotojo, kurį naudojate savo pi. Be to, grupė turi būti www-data.
Kitas žingsnis yra pradėti šias paslaugas savo pi, pavyzdžiui:
sudo cp conf/project-*. service/etc/systemd/system/
sudo systemctl demonas iš naujo
sudo systemctl pradėti projektą-*
sudo systemctl būsenos projektas-*
Turėtumėte pamatyti dvi aktyvias paslaugas, kai viskas vyksta pagal planą.
Paskutinis žingsnis yra įjungti „nginx“.
Pirmiausia patikrinkite, ar jūsų apa pi2 nėra apache2, jei tai įdiegėte, ištrinkite arba išjunkite.
Faile nginx pirmiausia turite pakeisti uwsgi_pass, tada paleisti šias komandas.
sudo cp conf/nginx/etc/nginx/sites-available/project
sudo rm/etc/nginx/sites-enabled/default
sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project
sudo systemctl iš naujo paleiskite nginx.service
sudo systemctl būsena nginx.service
„Nginx“turėtų būti aktyvus ir veikiantis. Jei viskas teisinga, dabar galite naršyti savo pi. Iš pradžių pamatysite „Labas pasaulis“, bet vis tiek turėsite pakeisti to failo turinį naudodami toliau pateiktą kodą.
Galite įjungti paslaugas, kad jos būtų paleistos automatiškai, kai pi pradės veikti.
Kai tai padarėte, įsitikinkite, kad duomenų bazėje įrašėte bent 1 namą su adresu. Tai galite padaryti naudodami paprastą įdėklą.
4 žingsnis: kodavimas
Kodą galite atsisiųsti iš „Github“:
github.com/NMCT-S2-Project-I/project-i-Tib…
Jutiklių kodas yra įtrauktas į failą sensor.py.
Nepamirškite paslaugų failuose pakeisti mano vardo į jūsų (arba vartotojo, kurį naudojate savo „pi“), kad jie galėtų tinkamai veikti ir įdėti mano kodą į jau esančius „Pycharm“failus.
5 žingsnis: būstas
Greitai nupiešiau, kaip norėjau savo namo, bet jūsų gali atrodyti visiškai kitaip. Jūs tiesiog turite įsitikinti, kad turite visumą, kad servo sistema galėtų atidaryti ir uždaryti langą.
Medžiui pjauti dažniausiai naudojau mažą grąžtą ir pjūklą. Aš taip pat įsitikinau, kad sienos yra pakankamai storos, kad galėčiau įdėti savo servo į jų vidų.
Kai baigsite savo dizainą ir bus įdiegta servo sistema, jums tereikia prijungti jutiklius ir įdėti pi namo viduje, ir jūs būsite pasiruošę eiti.
Kaip jau minėjau, jūsų namas gali atrodyti lygiai toks pat kaip mano, jums reikia skirti tik servo ir lango.
Pagaliau baigsite projektą. Tikiuosi, kad šis vadovas yra pakankamai aiškus, kad ir jūs galėtumėte sukurti nuostabų išmanųjį namą, kaip aš.
Sėkmės.