Sadržaj:

Home_X: 5 koraka
Home_X: 5 koraka

Video: Home_X: 5 koraka

Video: Home_X: 5 koraka
Video: Lil Dicky - Freaky Friday feat. Chris Brown (Official Music Video) 2024, Juli
Anonim
Home_X
Home_X

Student sam Howest Kortrijka koji studira nove medije i komunikacijske tehnologije (NMCT).

Svi smo morali napraviti projekt zasnovan na malini i/ili Arduinu. Morali smo koristiti senzore i baze podataka za prikaz podataka na web stranici, i tada sam došao na ideju da napravim mini pametnu kuću.

Uz pametnu kuću moći ćete vidjeti sva očitanja senzora na web stranici.

U ovom uputstvu vodit ću vas kroz svaki korak kako biste sami mogli ponovo stvoriti ovaj projekt.

Korak 1: Materijali: Šta vam je potrebno

  • Raspberry Pi
  • DHT22
  • Grove - Senzor kvalitete zraka
  • Grove - Senzor plina (MQ2)
  • Breadboard
  • Raspberry Pi T Cobbler
  • Muške/ženske žice kratkospojnika
  • 5 mm LED diode
  • Otpornici
  • Drvo i alat
  • Servo motor
  • GrovePi+

Ove artikle možete kupiti na mreži (Ali express, amazon, kiwi electronics …) ili u vašim lokalnim trgovinama.

Detaljan popis dijelova s vezom do trgovina dan je ispod u BOM -u.

Korak 2: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje

Koristio sam Fritzing za ožičenje kako bih imao lijep pregled kako bi trebalo ožičenje. I sam sam koristio GrovePi+ za 2 svoja senzora. Ako ovo namjeravate napraviti bez GrovePi+, slijedite shemu Fritzing. Senzori vam ne rade, pokušajte koristiti različite pinove.

Datoteku Fritzing možete pronaći ispod.

Korak 3: Baza podataka pomoću MySQL -a

Baza podataka pomoću MySQL -a
Baza podataka pomoću MySQL -a

Jedan od najvažnijih zadataka koje smo morali implementirati bila je veza s MySQL bazom podataka.

Svaki put kad senzor dobije očitanja ili se upali svjetlo, vidjet ćete te promjene u bazi podataka.

Baza podataka zatim šalje te podatke na web stranicu kako bi ih korisnici mogli vidjeti i tamo.

Ispod možete pronaći moju.xml datoteku u kojoj imate pregled rada baze podataka, ali prvo morate instalirati MySQL i flask na Raspberry Pi.

Kodiranje senzora dogodilo se putem pycharma pa provjerite je li i on instaliran (na vašem računaru).

Prvo morate provjeriti ima li ažuriranja i instalirati pakete, poput ovog:

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

Sada ćemo koristiti virtualno okruženje:

me@my-rpi: ~ $ python3 -m pip install --upgrade pip setuptools wheel virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --sistem- web-paketi env me@my-rpi: ~/project1 $ source env/bin/enable (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Trebalo bi vam reći da je mariadb.service aktivna.

Sada u pycharmu idite na VCS> Uvezi iz kontrole verzija> GitHub en klon

Zatim konfigurirajte konfiguraciju implementacije za direktorij koji ste upravo napravili, npr. /home/me/project1.

Nakon što to učinite, idite na postavke tumača i konfigurirajte virtualno okruženje koje ste upravo napravili, npr. /home/me/project/env/bin/python. Potrebno je popuniti i mapiranje putanje.

Ako ste sve ovo učinili, baza podataka bi već trebala biti pokrenuta.

sudo systemctl status mysql

Sada moramo stvoriti korisnike za našu bazu podataka, ovako:

sudo mariadb

CREATE USER 'project-admin'@'localhost' IDENTIFICIRANO 'adminpassword'; CREATE USER 'project-web'@'localhost' IDENTIFICIRANO 'webpassword'; CREATE USER 'project-sensor'@'localhost' IDENTIFICIRANO sa 'sensorpassword'; CREATE DATABASE project;

DODELITE SVE PRIVILEGIJE NA PROJEKTU.* Na 'project-admin'@'localhost' SA GRANT OPCIJOM; GRANT SELECT, INSERT, UPDATE, DELETE ON project.* NA 'project-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-sensor'@'localhost'; FLUSH PRIVILEGES;

Sada da bismo vidjeli našu bazu podataka u pycharmu moramo uspostaviti vezu.

To možemo učiniti odlaskom na View> Tool Windows> Database i klikom na zeleno dugme "plus".

Izvor podataka> MySQL i kliknite (ako postoji) na dugme Preuzmi upravljački program koje će se pojaviti.

Zatim idite na SSH/SSL i provjerite SSH. Popunite host/user/lozinku za pi i koristite port 22 ako još nije popunjen.

Ako želite da pycharm zapamti vašu lozinku, potvrdite okvir "Zapamti lozinku".

Na kartici "Općenito" popunite localhost na hostu, projekt u bazi podataka i upotrijebite project-admin sa lozinkom da biste mogli testirati vezu.

Da biste sada učinili bazu podataka upotrebljivom, morate pokrenuti.sql koji stavljam ispod. Pokušajte koristiti opciju uvoza, ako ne možete uvesti dump datoteku, morate ručno dodati tablice.

Nakon što to učinite, morate pronaći direktorij conf s dvije.service datoteke. Ovdje promijenite svaki seb koji pronađete s imenom korisnika kojeg koristite na svom pi. Također, grupa mora biti www-data.

Sljedeći korak je pokretanje ovih usluga na vašem pi -u, ovako:

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

sudo systemctl daemon-reload

sudo systemctl početak projekta-*

sudo systemctl status project-*

Trebali biste vidjeti dvije aktivne usluge kada sve ide po planu.

Zadnji korak je omogućiti nginx.

Prvo provjerite ima li apache2 na vašem pi, ako imate ovo instalirano, izbrišite ga ili onemogućite.

U datoteci nginx prvo morate promijeniti uwsgi_pass, a zatim pokrenuti ove naredbe.

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 ponovo pokrenite nginx.service

sudo systemctl status nginx.service

Nginx bi trebao biti aktivan i pokrenut. Ako je sve u redu, sada možete surfati do svog pi. Prvo ćete vidjeti "Hello world", ali i dalje morate promijeniti sadržaj te datoteke s mojim kodom ispod.

Možete omogućiti usluge tako da se automatski pokreću kada pi započne.

Kada ste to učinili, obavezno u bazu podataka unesite barem 1 kuću s adresom. To možete učiniti jednostavnim umetkom u.

Korak 4: Kodiranje

Kodiranje
Kodiranje
Kodiranje
Kodiranje

Kôd možete preuzeti putem Github -a:

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

Kod senzora je uključen u datoteku sensor.py.

Ne zaboravite promijeniti moje ime u vaše (ili korisnika nego što koristite na svom pi) u servisnim datotekama kako bi se mogle ispravno pokrenuti i postaviti moj kôd u već postojeće datoteke u vašem Pycharmu.

Korak 5: Stanovanje

Stanovanje
Stanovanje
Stanovanje
Stanovanje
Stanovanje
Stanovanje
Stanovanje
Stanovanje

Na brzinu sam nacrtao kako želim svoju kuću, ali vaša može izgledati potpuno drugačije. Samo morate biti sigurni da imate cjelinu kako bi servo mogao otvoriti i zatvoriti prozor.

Za rezanje drva uglavnom sam koristio malu bušilicu i pilu. Takođe sam se pobrinuo da zidovi budu dovoljno debeli da mogu staviti servo u njih.

Kad završite s dizajnom i servo je na mjestu, trebate samo spojiti senzore i postaviti pi unutar kuće i spremni ste za polazak.

Kao što sam već spomenuo, vaša kuća može izgledati potpuno isto kao i moja, samo trebate napraviti mjesta za servo i prozor.

Konačno ste završili s projektom. Nadam se da je ovaj vodič dovoljno jasan kako biste i vi mogli napraviti sjajnu pametnu kuću poput mene.

Sretno.

Preporučuje se: