Talaan ng mga Nilalaman:

Home_X: 5 Hakbang
Home_X: 5 Hakbang

Video: Home_X: 5 Hakbang

Video: Home_X: 5 Hakbang
Video: DMZ - Helicopter (CLC - Helicopter dance cover) | Sejong Hakdang Tashkent 2024, Hulyo
Anonim
Home_X
Home_X

Ako ay isang mag-aaral sa Howest Kortrijk na nag-aaral ng New Media and Communication Technology (NMCT).

Lahat kami ay kailangang gumawa ng isang proyekto na nakabatay sa paligid ng raspberry at / o Arduino. Kailangan naming gumamit ng mga sensor at database upang maipakita ang data sa isang website, at doon ko naisip ang ideya na lumikha ng isang mini smart house.

Gamit ang matalinong bahay, makikita mo ang lahat ng mga pagbabasa ng sensor sa website.

Sa pagtuturo na ito, gagabayan kita sa bawat hakbang upang maaari mong likhain muli ang proyektong ito para sa iyong sarili.

Hakbang 1: Mga Kagamitan: Ano ang Kailangan Mo

  • Raspberry Pi
  • DHT22
  • Grove - Sensor ng kalidad ng hangin
  • Grove - Gas Sensor (MQ2)
  • Breadboard
  • Raspberry Pi T Cobbler
  • Mga Wire ng Lalaki / Babae na Jumper
  • 5mm LEDs
  • Mga lumalaban
  • Kahoy at kagamitan
  • Servo Motor
  • GrovePi +

Maaari kang bumili ng mga item sa online (Ali express, amazon, kiwi electronics…) o sa iyong mga lokal na tindahan.

Ang isang detalyadong listahan ng mga bahagi na may isang link sa mga tindahan ay ibinibigay sa ibaba sa BOM.

Hakbang 2: Mga kable

Kable
Kable
Kable
Kable

Ginamit ko ang Fritzing para sa mga kable upang magkaroon ng magandang pangkalahatang ideya ng kung paano dapat gawin ang aking mga kable. Ako mismo ang gumamit ng isang GrovePi + para sa 2 sa aking mga sensor. Kung plano mong gawin ito nang walang isang GrovePi + sundin ang Fritzing scheme. Hindi gumagana ang mga sensor para sa iyo, subukang gumamit ng iba't ibang mga pin.

Maaari mong makita ang file na Fritzing sa ibaba.

Hakbang 3: Database Gamit ang MySQL

Database Gamit ang MySQL
Database Gamit ang MySQL

Ang isa sa pinakamahalagang gawain na kailangan naming ipatupad ay ang koneksyon sa isang MySQL database.

Sa tuwing makakakuha ng isang pagbabasa ang isang sensor o magpasindi ng ilaw, makikita mo ang mga pagbabagong ito sa database.

Ipinapadala ng database ang data na ito sa website upang makita din ito ng gumagamit.

Sa ibaba makikita mo ang aking.xml file kung saan mayroon kang isang pangkalahatang ideya ng kung paano gumagana ang database, ngunit kailangan mo munang i-install ang MySQL at prasko sa Raspberry Pi.

Ang pag-cod ng mga sensor ay nangyari sa pamamagitan ng pycharm kaya tiyaking naka-install din iyon (sa iyong computer).

Una kailangan mong suriin para sa mga update at i-install ang mga pakete, tulad nito:

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

Ngayon ay gagamit kami ng isang virtual na kapaligiran:

ako @ 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 / buhayin (env) ako @ my-rpi: ~ / project1 $ python -m pip install MySQL-Connector-Python argon2-Cffi Flask Flask-HTTPAuth Flask-MySQL mysql-konektor-python passlib

Dapat itong sabihin sa iyo na ang mariadb.service ay aktibo.

Ngayon, sa pycharm pumunta sa VCS> Mag-import mula sa Control ng Bersyon> GitHub en clone

Pagkatapos ay i-configure ang paglawak config para sa direktoryo na iyong ginawa, hal. / bahay / ako / proyekto1.

Matapos ito ay tapos na pumunta sa mga setting ng interpreter at i-configure ang virtual na kapaligiran na iyong ginawa, hal. / home / me / project / env / bin / python. Kailangang punan din ang pagmamapa ng landas.

Kung ginawa mo ang lahat ng ito dapat na tumatakbo ang database.

sudo systemctl status MySQL

Ngayon kailangan naming lumikha ng mga gumagamit para sa aming database, tulad nito:

sudo mariadb

GUMAWA NG USER 'project-admin' @ 'localhost' NAILANG NG 'adminpassword'; GUMAWA NG USER 'project-web' @ 'localhost' NAILANG NG 'webpassword'; GUMAWA NG USER 'project-sensor' @ 'localhost' NAILANG NG 'sensorpassword'; GUMAWA ng proyekto sa DATABASE;

IPAGBIGAY ANG LAHAT NG PRIVILEGES SA proyekto. * Sa 'project-admin' @ 'localhost' NA MAY GRANT OPTION; GRANT SELECT, INSERT, UPDATE, Delete SA proyekto. * TO 'project-web' @ 'localhost'; GUMILI NG PILI, INSERT, I-UPDATE, TANGGAL SA proyekto. * SA 'project-sensor' @ 'localhost'; FLUSH PRIVILEGES;

Ngayon upang makita ang aming database sa pycharm kailangan naming gumawa ng isang koneksyon.

Magagawa natin ito sa pamamagitan ng pagpunta sa pagpunta sa View> Tool Windows> Database at pag-click sa berdeng "plus" na pindutan.

Pinagmulan ng Data> MySQL at mag-click (kung mayroon) sa pindutang Mag-download ng driver na pop up.

Pagkatapos ay pumunta sa SSH / SSL at suriin ang SSH. Punan ang host / user / password para sa pi at gumamit ng port 22 kung hindi pa napunan.

Kung nais mong tandaan ng pycharm ang iyong password lagyan ng check ang checkbox na "Tandaan ang password".

Sa tab na "Pangkalahatan", punan ang localhost sa host, proyekto sa Database at gamitin ang proyekto-admin na may password upang masubukan ang koneksyon.

Upang magamit na magamit ang database kailangan mong patakbuhin ang.sql na inilalagay ko sa ibaba. Subukang gamitin ang pagpipilian sa pag-import, kung hindi ka maaaring mag-import ng isang dumpfile, kailangan mong idagdag nang manu-mano ang mga talahanayan.

Matapos itong magawa kailangan mong hanapin ang direktoryo ng conf kasama ang dalawang.service file. Sa doon palitan ang bawat seb na mahahanap mo sa pangalan ng gumagamit na ginagamit mo sa iyong pi. Gayundin, ang pangkat ay kailangang maging www-data.

Ang susunod na hakbang ay upang simulan ang mga serbisyong ito sa iyong pi, tulad nito:

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

sudo systemctl daemon-reload

sudo systemctl simulan ang proyekto- *

sudo systemctl status project- *

Dapat mong makita ang dalawang aktibong serbisyo kapag ang lahat ay umaayon sa plano.

Ang huling hakbang ay upang paganahin ang nginx.

Suriin muna ang apache2 sa iyong pi, kung na-install mo ito, tanggalin ito o huwag paganahin ito.

Sa file nginx kailangan mo munang baguhin ang uwsgi_pass, pagkatapos ay patakbuhin ang mga utos na ito.

sudo cp conf / nginx / etc / nginx / sites-magagamit / proyekto

sudo rm / etc / nginx / mga site-pinagana / default

sudo ln -s / etc / nginx / sites-available / project1 / etc / nginx / sites-pinagana / proyekto

sudo systemctl restart nginx.service

sudo systemctl status nginx.service

Ang Nginx ay dapat na aktibo at tumatakbo. Kung tama ang lahat, maaari ka na ngayong mag-surf sa iyong pi. Makikita mo ang "Kumusta mundo" sa una ngunit kailangan mo pa ring baguhin ang nilalaman ng file na iyon gamit ang aking code sa ibaba.

Maaari mong paganahin ang mga serbisyo upang awtomatiko silang tatakbo kapag nagsimula ang pi.

Kapag ginawa mo ito, siguraduhing naglalagay ka ng hindi bababa sa 1 bahay na may address sa database. Maaari mong gawin ito sa isang simpleng insert.

Hakbang 4: Pag-coding

Coding
Coding
Coding
Coding

Maaari mong i-download ang code sa pamamagitan ng Github:

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

Ang code para sa mga sensor ay kasama sa sensor.py file.

Huwag kalimutan na palitan ang aking pangalan sa iyo (o ang gumagamit kaysa sa ginagamit mo sa iyong pi) sa mga file ng serbisyo upang maaari nilang patakbuhin nang maayos at ilagay ang aking code sa mayroon nang mga file sa iyong Pycharm.

Hakbang 5: Pabahay

Pabahay
Pabahay
Pabahay
Pabahay
Pabahay
Pabahay
Pabahay
Pabahay

Gumawa ako ng isang mabilis na pagguhit kung paano ko ginusto ang aking bahay, ngunit ang iyo ay maaaring magmukhang magkakaiba. Tiyakin mo lamang na mayroon kang isang buo upang mabuksan at maisara ng servo ang isang window.

Pangunahin kong ginamit ang isang maliit na drill at isang lagari sa pagputol ng kahoy. Sinigurado ko rin na ang mga pader ay sapat na makapal upang mailagay ko ang aking servo sa loob ng mga ito.

Kapag natapos mo na ang iyong disenyo at ang servo ay nasa lugar na, kakailanganin mo lamang na ikonekta ang mga sensor at ilagay ang pi sa loob ng bahay at nakatakda kang pumunta.

Tulad ng nabanggit ko bago ang iyong bahay ay maaaring magmukhang eksaktong kapareho ng sa akin, kailangan mo lamang magbigay ng puwang para sa servo at sa bintana.

Sa wakas tapos ka na sa proyekto. Inaasahan ko na ang gabay na ito ay sapat na malinaw upang ikaw din ay maaaring gumawa ng isang kahanga-hangang smarthouse tulad ng ginawa ko.

Pinakamahusay ng swerte.

Inirerekumendang: