Cov txheej txheem:

Raspberry Pi Qhov Rooj Ceeb Toom: 6 Kauj Ruam (nrog Duab)
Raspberry Pi Qhov Rooj Ceeb Toom: 6 Kauj Ruam (nrog Duab)

Video: Raspberry Pi Qhov Rooj Ceeb Toom: 6 Kauj Ruam (nrog Duab)

Video: Raspberry Pi Qhov Rooj Ceeb Toom: 6 Kauj Ruam (nrog Duab)
Video: Saib Mis paub Poj niam (hluas nkauj) tus yam ntxwv lub siab 2024, Cuaj hlis
Anonim
Raspberry Pi Qhov Rooj Ceeb Toom
Raspberry Pi Qhov Rooj Ceeb Toom

Koj puas tau xav tias yog lossis thaum tib neeg nkag mus rau qhov rooj? Koj puas xav tau lub ntsej muag ntse, pheej yig, thiab txoj hauv kev nrawm los saib xyuas lub qhov rooj txav mus los … thiab tej zaum qhov haujlwm me me? Saib tsis muaj ntxiv! Cov cuab yeej yooj yim no yuav taug qab kev co tawm los ntawm cov qhov rooj txav mus thiab qhia rov qab rau tus neeg siv nrog email mus rau qhov chaw nyob email tshwj xeeb.

Txoj haujlwm no yuav muab qee qhov kev xyaum rau koj nrog Flask, Raspberry Pis, GPIO sensors, thiab Mandrill API! Tsis tsuas yog nws lom zem los tsim tab sis nws muaj ntau qhov txiaj ntsig. Intruders ceev faj …

Kauj Ruam 1: Cov khoom siv

Khoom siv
Khoom siv

Puas tseem npaj rau kev tsim qhov kev txwv no? Nov yog yam koj xav tau:

  • Raspberry Pi 3
  • Micro SD daim npav
  • 3 poj niam-rau-poj niam cov xov hlau
  • 1 kev co sensor
  • Lub hwj chim txhab nyiaj
  • Hais kom ua kab

Yog tias koj tab tom npaj tsim txoj haujlwm no rau ntau lub qhov rooj, sib npaug ntawm txhua qhov khoom siv los ntawm pes tsawg lub cuab yeej koj yuav xav tau.

Yog tias koj tab tom tsim/sim cov cuab yeej no, nws tsis tas yuav muaj cov hauv qab no … txawm li cas los xij, nws yuav pab tau zoo heev.

  • Ib lub computer saib
  • USB keyboard
  • Micro USB them khoom

Kauj ruam 2: Kev thaiv kab

Thaiv
Thaiv
Thaiv
Thaiv

Thaum Raspberry Pi yog cov cuab yeej nifty uas tau suav nrog ntau qhov sib txawv thiab cov khoom siv sib txawv, peb yuav tsum ntxiv lub ntsuas hluav taws xob tseem ceeb rau txoj hlua ntawm Pi yog li nws tuaj yeem ntsuas qhov peb xav tau. Lub ntsuas loj uas siv hauv txoj haujlwm no tuaj yeem pom hauv daim duab saum toj no - nws yog lub ntsuas kev co uas muaj qhov ua haujlwm siab. Thaum peb tuaj yeem siv lub khob cij lossis lwm yam khoom siv txhawm rau tso lub ntsuas hluav taws xob no thiab khiav peb cov xov hlau hla, peb yooj yim txuas nws los ntawm poj niam-rau-poj niam cov xov hlau ncaj qha rau cov pins ntawm Raspberry Pi ntaus ntawv.

Cov kab hluav taws xob tuaj yeem pom saum toj no (pib los ntawm https://www.piddlerintheroot.com/vibration-sensor/). Cias txuas tag nrho cov xov hlau raws li qhia hauv daim duab no thiab koj qhov kev co co yuav tsum zoo mus. Tseem nco ntsoov tias thaum kawg koj yuav xav tau lub roj teeb pob rau txoj haujlwm no, tab sis yog tias koj tab tom sim nws tej zaum yuav pab tau kom lub cuab yeej ntsaws rau hauv lub qhov hluav taws xob.

Kauj Ruam 3: Teeb Cov Khoom

Nrog koj zoo siab! Koj tau ua qhov no deb. Cia peb mus ntxiv!

Peb tam sim no yuav pib ua haujlwm ncaj qha nrog Pi. Txhua yam hauv qab no tuaj yeem ua tiav ntawm lub cuab yeej nrog cov keyboard thiab saib xyuas (lossis hla SSH yog tias koj xis nyob).

Muaj ntau qhov kev npaj ua ntej kom tau txais ib qho GPIO sensor ua haujlwm nrog Pi thiab Flask. Kev ua siab ntev yog kev tsim txiaj. Muaj ob peb lub tsev qiv ntawv Python koj yuav tau teeb tsa ua ntej. Qhov no tuaj yeem ua tiav nrog Pip, lub tsev qiv ntawv/tus tswj hwm pob rau Python. Txhawm rau siv, ntaus hauv 'pip install' Txhawm rau qee lub tsev qiv ntawv koj yuav xav tau:

  • thov
  • RPi. GPIO
  • hwj
  • hwj chim_restful
  • hwj txwv_wtf
  • wtforms
  • email
  • mandrill

Koj yuav xav tuav lub kas fes thaum koj tos rau cov no los teeb tsa - nws tuaj yeem siv sijhawm me ntsis.

Tam sim no tias tag nrho koj lub tsev qiv ntawv tau teeb tsa koj npaj txhij pib koj li Flask project. Flask yog lub teeb yuag uas ua haujlwm rau nplooj ntawv los ntawm lub cuab yeej nws tau ua haujlwm. Hauv qhov no, Raspberry Pi dhau los ua neeg rau zaub mov. Zoo nkauj zoo nkauj, eh? Koj tuaj yeem kawm paub teeb tsa daim ntawv thov Flask yooj yim heev ntawm no. Thov ua qhov no ua ntej sim ib qho ntawm cov lus qhia tom qab qhov no.

Kauj ruam 4: Code thiab Khiav

Thaum koj ua tiav qhov no, koj npaj tau pib tsim tawm cov phiaj xwm phiaj xwm. Kuv tau suav tag nrho cov ntaub ntawv koj xav tau hauv qab no –– koj yuav tsum rov sau dua cov cai, txawm li cas los xij, thiab tsis yog luam cov ntawv hla (koj yuav kawm paub ntau ntxiv!).

Nov yog dab tsi cov koom haum teev npe yuav tsum zoo li:

+- iotapp | +- appFolder | +- qauv | +- index.html | +- _init_.py | +- forms.py | +- mcemail.py | +- route.py | +- iotapp.py | +- vibes.py

Muab tag nrho cov ntaub ntawv no tso rau hauv qhov kev txiav txim raug thiab koj yuav tsum muaj peev xwm ua kom koj txoj haujlwm tiav thiab ua haujlwm tsis muaj sijhawm. Txhawm rau kom tom qab ntawd khiav koj lub Flask server koj yuav tsum mus rau hauv cov npe hauv paus. Koj yuav tsum ntaus ntawv:

$ export FLASK_APP = iotapp.py

$ python -m flask run --host 0.0.0.0

Nrog rau qhov no, koj yuav tsum tau txais cov lus uas qhia tias koj lub server ua haujlwm thiab koj yuav tsum muaj peev xwm ua haujlwm nplooj ntawv los ntawm lub cuab yeej mus rau lwm lub cuab yeej ntawm lub network.

Tam sim no yuav yog lub sijhawm zoo los saib los ntawm koj cov ntaub ntawv thiab tiag tiag sim kom tau lub siab ntawm qhov chaws ua. Tau kawg, tsis muaj ib txoj cai tau teeb tsa hauv pob zeb … nws tuaj yeem hloov kho/hloov pauv kom haum rau qhov kev xav tau tshwj xeeb. Piv txwv li, tam sim no thaum lub cuab yeej POSTs thaum tau txais cov tswv yim los ntawm lub ntsuas kev co nws xa lub sij hawm ntawm thaum lub tswv yim tshwm sim. Txawm li cas los xij, tus neeg rau zaub mov tsis khaws cov ntaub ntawv no. Qhov no tuaj yeem ua tiav yog tias tus neeg siv nyiam khaws cov ntaub ntawv keeb kwm thiab xav qhia nws qhov chaw.

Ib yam uas koj yuav pom tau yog tias CODE TSIS YOG TSEEB. Txoj haujlwm no ua rau siv API sab nraud rau xa tawm email ceeb toom thaum muaj kev co (qhib qhov rooj). Txhawm rau teeb tsa qhov no, koj yuav tsum tsim tus lej Mandrill thiab tsim tus lej API.

Thaum koj tau txheeb xyuas koj qhov chaw xa thiab muaj tus lej API koj tuaj yeem tso koj tus yuam sij rau hauv `mcemail.py` cov ntaub ntawv (nyob qhov twg tam sim no) thiab kho qhov xa cov ntaub ntawv (ib qho los ntawm kev hloov pauv qhov ua tsis tiav hauv tib cov ntaub ntawv lossis dhau los Yog tias koj xav tau cov ntaub ntawv ntxiv ntawm Mandrill thiab yuav siv nws li cas, koj tuaj yeem pom qhov ntawd ntawm no.

Kauj ruam 5: Xeem

Kev Xeem
Kev Xeem

Ua ntej koj teeb tsa lub cuab yeej hauv nws qhov chaw nyob tas mus li, nws yog lub tswv yim zoo los ntsuas txhua yam uas nws ua. Nov yog qhov koj khiav cov khoom.

Lub cuab yeej tau ua tiav ob txoj haujlwm: `vibes.py` thiab Flask server. Tus qub yuav tsum tau ua ntej hauv keeb kwm yav dhau thiab tom qab ntawd Flask server tuaj yeem ua haujlwm. `vibes.py` tsuas yog POSTing rau tus neeg rau zaub mov thiab tus neeg rau zaub mov txhais lus POST thov.

$ python vibes.py &

$ python -m flask run --host 0.0.0.0

Tom qab ntawd koj yuav tsum tuaj yeem taw rau qhov URI/IP raug thiab teeb tsa email chaw nyob uas koj xav xa tag nrho koj cov ntawv ceeb toom rau. Koj yuav tsum coj mus rhaub lub ntsuas hluav taws xob kom sim xa qee qhov kev sim email thiab xyuas kom meej tias txoj haujlwm tau ua haujlwm.

Txhua yam zoo? Okay, peb tau npaj rau kev lag luam!

Kauj ruam 6: Mounting

Mounting
Mounting

Mounting lub cuab yeej yog piav qhia tus kheej zoo nkauj. Yeej, koj tsuas yog yuav tsum xyuas kom lub cuab yeej txuas nrog lub roj teeb thiab siv cov kab hais kom ua txuas lub cuab yeej mus rau lub qhov rooj.

Faj seeb: lub cuab yeej yuav tsum tau muab tso rau nrog lub ntsuas qhov ntsuas qhov ntsuas nyob ib sab rau lub qhov rooj rau lub ntsuas kom ntes lub suab ntawm lub qhov rooj

Thaum qhov no ua tiav, koj yuav tsum muaj peev xwm SSH rau hauv lub cuab yeej thiab ua haujlwm cov haujlwm raws li tau hais hauv qib dhau los thiab tos rau cov neeg nkag!

Txog cov ntsiab lus ntxiv, sim zais cov xov hlau/ntaus ntawv kom cov neeg nkag nkag tsis xav txog koj lub cuab yeej ntse! … lossis tsuas yog tsis txhob tso nws rau ntawm lub qhov rooj iav. ¯ / _ (ツ) _/¯

Pom zoo: