Obsah:

Home_X: 5 krokov
Home_X: 5 krokov

Video: Home_X: 5 krokov

Video: Home_X: 5 krokov
Video: running away | dreamcore playlist •° 2024, Júl
Anonim
Domov_X
Domov_X

Som študentom Howest Kortrijk, ktorý študuje nové mediálne a komunikačné technológie (NMCT).

Všetci sme museli vytvoriť projekt, ktorý bol založený na malinách a/alebo Arduine. Na zobrazenie údajov na webovej stránke sme museli použiť senzory a databázy, a vtedy som prišiel s myšlienkou vytvoriť mini inteligentný dom.

V inteligentnom dome budete môcť vidieť všetky údaje zo senzorov na webovej stránke.

V tomto návode vás prevediem každým krokom, aby ste si mohli tento projekt znova vytvoriť.

Krok 1: Materiály: Čo potrebujete

  • Malinový koláč
  • DHT22
  • Grove - snímač kvality vzduchu
  • Grove - snímač plynu (MQ2)
  • Breadboard
  • Malina Pi T ševec
  • Samec/samica prepojovacích káblov
  • 5 mm LED diódy
  • Rezistory
  • Drevo a nástroje
  • Servo motor
  • GrovePi+

Tieto položky si môžete kúpiť online (Ali Express, amazon, kiwi elektronika …) alebo vo svojich miestnych obchodoch.

Podrobný zoznam dielov s odkazom na obchody je uvedený nižšie v kusovníku.

Krok 2: Zapojenie

Elektrické vedenie
Elektrické vedenie
Elektrické vedenie
Elektrické vedenie

Na zapojenie som použil Fritzing, aby som mal pekný prehľad o tom, ako by sa malo moje zapojenie vykonávať. Sám som použil GrovePi+ pre 2 zo svojich senzorov. Ak to plánujete urobiť bez GrovePi+, postupujte podľa schémy Fritzing. Senzory pre vás nefungujú, skúste použiť rôzne piny.

Súbor Fritzing nájdete nižšie.

Krok 3: Databáza využívajúca MySQL

Databáza využívajúca MySQL
Databáza využívajúca MySQL

Jednou z najdôležitejších úloh, ktoré sme museli implementovať, bolo spojenie s databázou MySQL.

Tieto zmeny sa zobrazia v databáze zakaždým, keď snímač odčíta alebo sa rozsvieti kontrolka.

Databáza potom odošle tieto údaje na webovú stránku, aby ich tam používateľ mohol tiež vidieť.

Nižšie nájdete môj.xml súbor, kde máte prehľad o tom, ako databáza funguje, ale najskôr musíte na Raspberry Pi nainštalovať MySQL a banku.

Kódovanie senzorov prebiehalo cez pycharm, takže sa uistite, že je tiež nainštalovaný (vo vašom počítači).

Najprv musíte skontrolovať aktualizácie a nainštalovať balíky, a to takto:

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

Teraz použijeme virtuálne prostredie:

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 --system- site-packages env me@my-rpi: ~/project1 $ source env/bin/activate (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Malo by vám to povedať, že služba mariadb.service je aktívna.

Teraz v pycharme prejdite na VCS> Import z ovládania verzií> Klon GitHub en

Potom nakonfigurujte konfiguráciu nasadenia pre adresár, ktorý ste práve vytvorili, napr. /home/me/project1.

Keď to urobíte, prejdite na nastavenia tlmočníka a nakonfigurujte virtuálne prostredie, ktoré ste práve vytvorili, napr. /home/me/project/env/bin/python. Je tiež potrebné vyplniť mapovanie cesty.

Ak ste urobili toto všetko, databáza by už mala byť spustená.

sudo systemctl status mysql

Teraz musíme vytvoriť používateľov pre našu databázu takto:

sudo mariadb

VYTVORIŤ UŽÍVATEĽA 'project-admin'@'localhost' IDENTIFIKOVANÉ 'adminpassword'; VYTVORIŤ UŽÍVATEĽA 'project-web'@'localhost' IDENTIFIKOVANÉ 'webpassword'; VYTVORIŤ UŽÍVATEĽA 'project-sensor'@'localhost' IDENTIFIKOVANÉ 'senzorovým heslom'; VYTVORIŤ DATABÁZU projektu;

UDELTE VŠETKY VÝHODY NA projekt.* Na 'project-admin'@'localhost' S MOŽNOSŤOU GRANT; GRANT VÝBER, VLOŽIŤ, AKTUALIZOVAŤ, VYMAZAŤ NA projekt.* NA 'project-web'@'localhost'; VYBERTE, VLOŽTE, AKTUALIZUJTE, VYMAZAJTE na projekte.* DO 'projektového senzora'@'localhost'; FLUSH PRIVILEGES;

Teraz, aby sme videli našu databázu v pycharme, musíme vytvoriť spojenie.

Môžeme to urobiť tak, že prejdeme na položku Zobraziť> Nástroje Windows> Databáza a klikneme na zelené tlačidlo „plus“.

Zdroj údajov> MySQL a kliknite (ak je k dispozícii) na tlačidlo Prevziať ovládač, ktoré sa zobrazí.

Potom prejdite na SSH/SSL a začiarknite políčko SSH. Vyplňte host/užívateľ/heslo pre pi a použite port 22, ak ešte nie je vyplnený.

Ak chcete, aby si pycharm zapamätal vaše heslo, začiarknite políčko „Zapamätať si heslo“.

Na karte „Všeobecné“zadajte localhost do hostiteľa, projekt do databázy a pomocou príkazu project-admin s heslom môžete otestovať pripojenie.

Aby bola databáza teraz použiteľná, musíte spustiť.sql, ktorý uvádzam nižšie. Skúste použiť možnosť importu. Ak nemôžete importovať skládkový súbor, musíte tabuľky pridať ručne.

Potom, čo to urobíte, musíte nájsť adresár conf s dvoma súbormi.service. Tam zmeňte všetky svoje sebapoznania s menom používateľa, ktorého použijete na svojom obrázku. Skupina musí byť tiež www-data.

Ďalším krokom je spustenie týchto služieb na vašom pi, napríklad:

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

sudo systemctl daemon-reload

sudo systemctl začať projekt-*

stavový projekt sudo systemctl-*

Keď všetko pôjde podľa plánu, mali by ste vidieť dve aktívne služby.

Posledným krokom je povolenie nginx.

Najprv skontrolujte, či na vašom pí nie je apache2, ak ho máte nainštalovaný, odstráňte ho alebo ho deaktivujte.

V súbore nginx musíte najskôr zmeniť uwsgi_pass a potom spustiť tieto príkazy.

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 reštartujte službu nginx.service

sudo systemctl status nginx.service

Nginx by mal byť aktívny a spustený. Ak je všetko v poriadku, môžete teraz surfovať po svojom pí. Najprv uvidíte „Hello world“, ale stále musíte zmeniť obsah tohto súboru pomocou môjho kódu nižšie.

Môžete povoliť služby tak, aby sa automaticky spustili pri spustení pí.

Keď to urobíte, uistite sa, že ste do databázy vložili aspoň 1 dom s adresou. Môžete to urobiť jednoduchým vložením do.

Krok 4: Kódovanie

Kódovanie
Kódovanie
Kódovanie
Kódovanie

Kód si môžete stiahnuť cez Github:

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

Kód pre snímače je zahrnutý v súbore sensor.py.

Nezabudnite v súboroch služieb zmeniť moje meno na vaše (alebo používateľa, ako ho používate na svojom pi), aby mohli správne fungovať a vložiť môj kód do už existujúcich súborov vo vašom Pycharme.

Krok 5: Bývanie

Bývanie
Bývanie
Bývanie
Bývanie
Bývanie
Bývanie
Bývanie
Bývanie

Rýchlo som nakreslil, ako chcem svoj dom, ale ten váš môže vyzerať úplne inak. Musíte sa uistiť, že máte celok, aby servo mohlo otvárať a zatvárať okno.

Na rezanie dreva som používal hlavne malú vŕtačku a pílu. Tiež som sa ubezpečil, že steny sú dostatočne hrubé, aby som do nich mohol umiestniť svoje servo.

Keď ste hotoví so svojim návrhom a servo je na svojom mieste, stačí pripojiť senzory a umiestniť pi do domu a môžete vyraziť.

Ako som už spomenul, váš dom môže vyzerať úplne rovnako ako ten môj, stačí, aby ste uvoľnili miesto pre servo a okno.

Nakoniec ste s projektom hotoví. Dúfam, že je táto príručka dostatočne zrozumiteľná, aby ste si aj vy mohli vytvoriť úžasný inteligentný dom ako ja.

Veľa šťastia.

Odporúča: