INHOUDSOPGAWE:

Home_X: 5 stappe
Home_X: 5 stappe

Video: Home_X: 5 stappe

Video: Home_X: 5 stappe
Video: Узнав этот секрет ты НИКОГДА не выбросишь старый БУР от перфоратора! Такого ты еще не видел! 2024, Julie
Anonim
Huis_X
Huis_X

Ek is 'n student aan Howest Kortrijk wat nuwe media en kommunikasietegnologie (NMCT) studeer.

Ons moes almal 'n projek maak wat gebaseer is op framboos en/of Arduino. Ons moes sensors en databasisse gebruik om die data op 'n webwerf te wys, en toe kom ek op die idee om 'n klein slimhuis te skep.

Met die slimhuis kan u al die sensorlesings op die webwerf sien.

In hierdie instruksies sal ek u deur elke stap lei, sodat u hierdie projek self kan herskep.

Stap 1: Materiaal: wat benodig u

  • Framboos Pi
  • DHT22
  • Grove - Luggehalte sensor
  • Grove - Gassensor (MQ2)
  • Broodbord
  • Framboos Pi T Skoenmaker
  • Manlike/vroulike springdrade
  • 5 mm LED's
  • Weerstande
  • Hout en gereedskap
  • Servomotor
  • GrovePi+

U kan hierdie items aanlyn koop (Ali Express, Amazon, kiwi -elektronika …) of by u plaaslike winkels.

'N Gedetailleerde lys van onderdele met 'n skakel na die winkels word hieronder in die stembus gegee.

Stap 2: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading

Ek het Fritzing vir die bedrading gebruik om 'n goeie oorsig te hê van hoe my bedrading gedoen moet word. Ek het self 'n GrovePi+ vir 2 van my sensors gebruik. Volg die Fritzing -skema as u van plan is om dit sonder 'n GrovePi+ te maak. Ek sensors werk nie vir jou nie; probeer om verskillende penne te gebruik.

U kan die Fritzing -lêer hieronder vind.

Stap 3: Databasis met behulp van MySQL

Databasis met behulp van MySQL
Databasis met behulp van MySQL

Een van die belangrikste take wat ons moes uitvoer, was die verbinding met 'n MySQL -databasis.

Elke keer as 'n sensor lesings kry of 'n lamp brand, sien u hierdie veranderinge in die databasis.

Die databasis stuur hierdie data dan na die webwerf sodat die gebruiker dit ook daar kan sien.

Hieronder vind u my.xml -lêer met 'n oorsig van hoe die databasis werk, maar eers moet u MySQL en fles op die Raspberry Pi installeer.

Die kodering van die sensors het deur Pycharm gebeur, dus maak seker dat dit ook op u rekenaar geïnstalleer is.

U moet eers kyk na opdaterings en pakkette installeer, soos volg:

sudo apt-get update && sudo apt-get upgrade

sudo apt installeer -y python3-venv python3-pip python3-mysqldb mariadb-bediener uwsgi nginx uwsgi-plugin-python3

Nou gaan ons 'n virtuele omgewing gebruik:

my@my-rpi: ~ $ python3 -m pip install-upgrade pip setuptools wiel virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system- site-packages env me@my-rpi: ~/project1 $ source env/bin/activeer (env) me@my-rpi: ~/project1 $ python -m pip installeer mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Dit moet u vertel dat mariadb.service aktief is.

Gaan nou in Pycharm na VCS> Import from Version Control> GitHub en kloon

Stel dan die implementeringskonfigurasie op vir die gids wat u so pas gemaak het, bv. /huis/ek/projek1.

Nadat dit gedoen is, gaan na die tolkinstellings en stel u die virtuele omgewing in wat u so pas gemaak het, bv. /home/me/project/env/bin/python. Padkartering moet ook ingevul word.

As u dit alles gedoen het, behoort die databasis reeds te wees.

sudo systemctl status mysql

Nou moet ons gebruikers vir ons databasis skep, soos volg:

sudo mariadb

SKEP GEBRUIKER 'project-admin'@'localhost' IDENTIFIED BY 'adminpassword'; SKEP GEBRUIKER 'project-web'@'localhost' IDENTIFIED BY 'webpassword'; SKEP GEBRUIKER 'project-sensor'@'localhost' IDENTIFIED BY 'sensorpassword'; SKEP DATABASIS -projek;

GEEN ALLE VOORREGTE OP projek.* Aan 'project-admin'@'localhost' MET GRANT OPTION; GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-web'@'localhost'; TOEEKEN SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-sensor'@'localhost'; FLUSH VOORREGTE;

Om ons databasis in Pycharm te sien, moet ons 'n verbinding maak.

Ons kan dit doen deur na View> Tool Windows> Database te gaan en op die groen "plus" -knoppie te klik.

Gegee bron> MySQL en klik (indien teenwoordig) op die aflaai bestuurder knoppie wat verskyn.

Gaan dan na SSH/SSL en kyk na SSH. Vul gasheer/gebruiker/wagwoord in vir die pi en gebruik poort 22 as dit nog nie ingevul is nie.

As u wil hê dat pycharm u wagwoord moet onthou, merk die boks "Onthou wagwoord".

Vul in die oortjie "Algemeen" localhost in host, projekteer in databasis en gebruik projek-admin met die wagwoord om die verbinding te kan toets.

Om die databasis nou bruikbaar te maak, moet u die.sql wat ek hier onder plaas, uitvoer. Probeer die invoeropsie gebruik. As u nie 'n vullislêer kan invoer nie, moet u die tabelle handmatig byvoeg.

Nadat dit gedoen is, moet u die conf -gids vind met die twee.service -lêers. Daar verander u elke seb wat u vind, met die naam van die gebruiker wat u op u pi gebruik. Die groep moet ook www-data wees.

Die volgende stap is om hierdie dienste op u pi te begin, soos volg:

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

sudo systemctl daemon-herlaai

sudo systemctl begin projek-*

sudo systemctl status projek-*

U moet twee aktiewe dienste sien as alles volgens plan verloop.

Die laaste stap is om nginx in te skakel.

Kyk eers na apache2 op u pi, as u dit geïnstalleer het, verwyder dit of deaktiveer dit.

In die lêer nginx moet u eers uwsgi_pass verander en dan hierdie opdragte uitvoer.

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 herbegin nginx.service

sudo systemctl status nginx.service

Nginx moet aktief en aktief wees. As alles reg is, kan u nou na u pi gaan. U sal eers 'Hallo wêreld' sien, maar u moet nog steeds die inhoud van die lêer verander met my kode hieronder.

U kan dienste inskakel sodat dit outomaties loop wanneer die pi begin.

As u dit alles gedoen het, moet u ten minste 1 huis met adres in die databasis plaas. U kan dit doen met 'n eenvoudige insetsel in.

Stap 4: Kodering

Kodering
Kodering
Kodering
Kodering

U kan die kode aflaai via Github:

github.com/NMCT-S2-Project-I/project-i-Tib…

Die kode vir die sensors is ingesluit in die sensor.py -lêer.

Moenie vergeet om my naam in u diens (of die gebruiker as wat u op u pi gebruik) in die dienslêers te verander sodat hulle behoorlik kan werk en my kode in die reeds bestaande lêers in u Pycharm kan plaas nie.

Stap 5: Behuising

Behuising
Behuising
Behuising
Behuising
Behuising
Behuising
Behuising
Behuising

Ek het 'n vinnige tekening gemaak van hoe ek my huis wou hê, maar die uwe kan heeltemal anders lyk. U moet net seker maak dat u 'n geheel het sodat die servo 'n venster kan oopmaak en toemaak.

Ek het hoofsaaklik 'n klein boor en 'n saag gebruik om die hout te sny. Ek het ook seker gemaak dat die mure dik genoeg is sodat ek my servo daarin kan sit.

As u klaar is met u ontwerp en die servo in plek is, hoef u slegs die sensors aan te sluit en die pi binne -in die huis te plaas, en u kan begin.

Soos ek al genoem het, kan u huis presies dieselfde lyk as myne, u hoef net plek te maak vir die servo en die venster.

Uiteindelik is u klaar met die projek. Ek hoop dat hierdie gids duidelik genoeg is, sodat u ook 'n wonderlike smarthouse kan maak soos ek.

Beste wense.

Aanbeveel: