Cov txheej txheem:

CleanBot los ntawm Guillaume Meurillon: 8 Kauj Ruam
CleanBot los ntawm Guillaume Meurillon: 8 Kauj Ruam

Video: CleanBot los ntawm Guillaume Meurillon: 8 Kauj Ruam

Video: CleanBot los ntawm Guillaume Meurillon: 8 Kauj Ruam
Video: Робот мойщик окон в деле. Лучший мойщик окон, или так себе? Честный отзыв 2024, Kaum ib hlis
Anonim
CleanBot los ntawm Guillaume Meurillon
CleanBot los ntawm Guillaume Meurillon
CleanBot los ntawm Guillaume Meurillon
CleanBot los ntawm Guillaume Meurillon

Nov yog phau ntawv qhia rau txoj haujlwm uas kuv tau ua rau tsev kawm ntawv. Lub hom phiaj yog los tsim cov cuab yeej nrog Raspberry Pi uas tau txuas nrog internet, thaum khaws cov ntaub ntawv los ntawm cov ntsuas. Cov ntaub ntawv no yuav tsum khaws cia hauv (MySQL) database. Cov ntaub ntawv yuav tsum pom nrog lub vev xaib, cim hauv Python nrog Flask webapp pob thiab Jinja2 tus qauv.

Kuv lub tswv yim yog los tsim 'hacked' lub tshuab nqus tsev neeg hlau, siv Raspberry Pi, Arduino, lub tshuab nqus tsev twb tau tawg lawm thiab ib pawg ntawm cov ntsuas.

Kauj Ruam 1: Sau Cov Khoom

Sau Cov Xeem
Sau Cov Xeem
Sau Cov Xeem
Sau Cov Xeem
Sau Cov Xeem
Sau Cov Xeem
Sau Cov Xeem
Sau Cov Xeem

Ua ntej tsim tau ib yam dab tsi, Kuv tau tshawb fawb ntau txog qhov twg los siv, yuav txuas lawv li cas, sau software chav kawm hauv Python thiab ntxiv rau.

Daim ntawv teev npe yuav suav nrog ua cov ntawv, yog li koj tuaj yeem yooj yim tshawb rau cov khoom koj xav tau.

Kuv txiav txim siab siv Arduino Uno ib sab ntawm Raspberry Pi, yog li kuv tuaj yeem nyeem tau kuv cov ntsuas tau zoo yam tsis muaj kev nyuab siab rau kuv Raspberry Pi. Kuv kuj tau xaiv rau Uno vim tias nws muaj lub moos zoo ceev, thiab vim yog cov koob sib piv. Kuv tuaj yeem siv ADC (ex. MCP3008) rau kuv Raspberry Pi, tab sis kuv xav tau xov tooj ntau ntxiv, nws yuav kim dua thiab kuv Pi yuav tsum tau ua haujlwm hnyav dua.

Tom qab ntawd kuv pib tshuaj xyuas cov khoom uas siv tau los ntawm lub tshuab nqus tsev tawg. Cov khoom siv hluav taws xob sab hauv qhov puas, tab sis qhov ntawd tsis muaj teeb meem, vim tias kuv yuav hloov tag nrho cov no. Luckilly lub tshuab hluav taws xob dc tseem ua haujlwm, yog li tsis muaj leej twg yuav tsum tau hloov.

Daim ntawv teev npe:

  • Raspberry Pi 3 nrog tsawg kawg 8GB MicroSD chav kawm 10 thiab rooj plaub;
  • Raspberry Pi T-cobbler thiab breadboard (s);
  • Arduino Uno lossis zoo sib xws (nyiam dua qhov tsis yog suav suav nrog rau kev tsim nyog ADC, qee tus neeg Suav muaj teeb meem AREF) nrog qee qhov xwm txheej;
  • Ethernet cable;
  • A (tawg) lub tshuab nqus tsev neeg hlau;
  • 3x HC-SR04 ultrasonic modules;
  • 1x chav sensor module;
  • Ntau tus resistors hauv qhov sib txawv;
  • Ib LDR;
  • 6x 18650 Li-ion roj teeb + 3-cell tuav rau 12v (tshwj xeeb tshaj yog koj yuav tsum siv cov roj teeb tshiab lossis zoo dua siv LiPo roj teeb, cov no yuav kav ntev dua);
  • 18650 (lossis hom roj teeb twg koj yuav siv) 12v 3-cell charging pcb;
  • Qee qhov PCB DIY cov laug cam los xaum koj cov khoom;
  • Ib daim ntawv yas polyurethane;
  • Ib lub laptop / desktop computer.

Cov cuab yeej teev:

  • Laum nrog ntau qhov laum me ntsis;
  • Lub kaum ntse ntse sib tsoo (tsis txhob siv nws yog tias koj tsis muaj kev paub dhau los) lossis qee yam zoo li Dremel;
  • Ib daim ntawv xuab zeb;
  • Ntau tus ntsia hlau;
  • Superglue, mounting kua nplaum, …;
  • Ib lub raj hlau (siv roj txhawm rau txhuam koj cov xov hlau yooj yim dua);
  • Ib khub ntawm cov hlau txiav thiab cov cuab yeej tshem tawm.

Cov npe software (yeem):

  • Adobe XD: wireframing thiab tsim qauv ua qauv;
  • Fritzing: tsim cov phiaj xwm hluav taws xob;
  • PyCharm Professional: Python IDE nrog lub peev xwm ntawm kev siv kev xa tawm & tus neeg txhais lus nyob deb;
  • Putty: nrawm thiab yooj yim ssh txuas nrog Pi;
  • Etcher.io: cov cuab yeej yooj yim rau nyem duab Raspbian mus rau daim npav SD;
  • Win32DiskImager: cov cuab yeej yooj yim los tsim cov duab los ntawm kev teeb tsa Raspbian uas twb muaj lawm;
  • Programmers Notepad: cov cuab yeej yooj yim uas koj tuaj yeem siv kom ruaj ntseg kho cov ntaub ntawv /boot/cmdline.txt.

Kauj Ruam 2: Txau xim tha xim & Tsim Kev Sib Txuas

Txau-pleev xim & Tsim Kev Sib Tham
Txau-pleev xim & Tsim Kev Sib Tham
Txau-pleev xim & Tsim Kev Sib Tham
Txau-pleev xim & Tsim Kev Sib Tham
Txau-pleev xim & Tsim Kev Sib Tham
Txau-pleev xim & Tsim Kev Sib Tham
Txau-pleev xim & Tsim Kev Sib Tham
Txau-pleev xim & Tsim Kev Sib Tham

Ua ntej kuv pib tsim qhov tsim, kuv tsuag xim rau sab nrauv, vim tias kuv tsis nyiam cov xim kiag li. Kuv tau mus rau tom khw thiab khaws cov yas yas ua ntej, ib lub kaus poom dawb thiab muaj peev xwm ntawm turquoise los teb cov lus saum toj.

Tom qab tso cov tshuaj tsuag xim kom qhuav, Kuv tau saib qhov tseeb hex colorcode rau cov xim kuv tau siv, yog li kuv tuaj yeem phim kuv lub vev xaib-interface nrog kuv lub cuab yeej zoo kawg nkaus. Nrhiav tus lej hex no yooj yim heev, txij li kuv tau siv Montana 94 kos duab, thiab tus lej hex & RGB tau nyob ntawm lawv lub vev xaib.

Kuv tsim kev ncaj ncees wireframes siab rau txhua nplooj ntawv ntawm kuv lub vev xaib, yog li kuv paub zoo kawg li cas kuv yuav mus tsim qhov kev sib tham no. Tom qab qhia kuv qhov kev cuam tshuam rau kuv cov kws qhia ntawv, kuv tau txais cov lus qhia kom ua rau tom qab me ntsis ntau xim av thiab cov nyees khawm dawb, thiab qhov txiaj ntsig tau zoo hauv kuv lub tswv yim.

Kauj Ruam 3: Tsim Database

Tsim cov Database
Tsim cov Database

Cov kauj ruam tom ntej yog xav pib xav txog cov ntaub ntawv twg kuv xav khaws hauv MySQL database. Tsis muaj coob leej neeg nyiam paub txog lawv lub tshuab nqus tsev, yog li kuv tau mus nrog cov ntxhuav rau cov neeg siv thiab lawv cov ntaub ntawv nkag mus, nrog rau cov ntxhuav rau cov ntsuas (roj teeb, nrug & ntim hmoov av).

Cov duab qhia koj cov txheej txheem ntawm kuv cov ntxhuav, kos hauv MySQL Workbench, nrog txhua qhov kev sib raug zoo ntawm cov ntxhuav.

Rau kuv cov neeg siv, Kuv xav kom taug qab lawv lub npe thiab lub xeem los ua tus kheej interface thiab email. Ofcourse xa e-mail, Kuv xav tau lawv email chaw nyob ib yam. Kuv kuj tau ntxiv ib lub rooj los taug qab txog e-mail nyiam ntawm kuv cov neeg siv (txawm yog lawv puas xav tau txais email). Qhov kawg uas kuv xav khaws txog cov neeg siv, yog lawv lub luag haujlwm rau lub cuab yeej. Kuv faib cov neeg siv raws li cov tswj hwm & cov neeg siv ib txwm muaj. Cov thawj coj muaj cai ntxiv, tshem tawm & tswj cov neeg siv hauv cov kab ke, thaum cov neeg siv ib txwm tsis tuaj yeem nkag mus rau cov cuab yeej no.

Cov lus tom ntej muaj "deviceruns", uas yog qhov tseeb khiav lub cuab yeej tau ua tiav. Cov deviceruns yog tus tswv los ntawm qee tus neeg siv (tus neeg uas tau pib khiav), thiab muaj lub sijhawm pib thiab sijhawm kawg, los xam lub sijhawm ua haujlwm.

Lwm lub rooj tau siv los txuas rau sensordata rau txhua tus devicerun. Cov ntsuas lawv tus kheej tau khaws cia rau hauv lwm lub rooj, suav nrog lawv daim npav ID, npe & piav qhia.

Kauj Ruam 4: Txuas Qhov Chaw Ua Ke

Txuas Qhov Chaw Ua Ke
Txuas Qhov Chaw Ua Ke
Txuas Qhov Chaw Ua Ke
Txuas Qhov Chaw Ua Ke

Tom qab tsim cov txheej txheem txheej txheem, kuv pib siv cov laug cam & txuas txuas txhua feem ntawm qhov ua ke hauv ib qho qauv ua haujlwm.

Kauj Ruam 5: Teeb Kho Raspberry Pi

Teeb tsa Raspberry Pi
Teeb tsa Raspberry Pi

Txhawm rau rub tawm cov duab tshiab ntawm Raspbian, mus rau Raspbian lub vev xaib. Ntawm no koj tuaj yeem xaiv qhov distro koj xav rub tawm. Txhawm rau ua haujlwm sai dua, koj tuaj yeem rub lub headless distro, rau kev siv RAM tsawg dua, lossis rub tawm lub desktop nrog GUI yog tias koj xav tau cov duab siv sib cuam tshuam.

Txhawm rau teeb tsa OS, yooj yim rub tawm Etcher, nws yog GUI cov cuab yeej los sau cov duab rau koj daim npav micro SD sai thiab yooj yim.

Txhawm rau pab kom tsis muaj lub taub hau, yog li koj tuaj yeem nkag mus rau pi, koj yuav tsum tau teeb tsa Putty ntawm koj lub computer. Cov kauj ruam tom ntej yog mus rau khau raj nplaub tshev tsim los ntawm Etcher, thiab qhib cov ntaub ntawv cmdline.txt nrog koj cov ntawv nyeem nyiam, ex Programmers Notepad. Ntxiv cov ntawv no mus rau qhov kawg ntawm cov ntawv:

ip = 169.254.10.1

Tsuas yog xyuas kom koj tsis tsim kab tshiab, ntxiv qhov no mus rau qhov kawg ntawm kab!

Tom ntej no, rov qab mus rau lub hauv paus ntawm Boot folder, thiab tsim cov ntaub ntawv npe ssh. Tsis txhob ntxiv ib qho txuas ntxiv, qhov no yuav ua kom ntseeg tau tias SSH server qhib txhua lub sijhawm koj Pi pib. Tam sim no yooj yim muab daim npav SD tso rau hauv koj Pi, txuas lub zog txaus rau koj Pi thiab ntxiv ib qho ethernet cable ntawm koj Pi thiab koj lub computer.

Qhib putty, thiab ntaus tus IP chaw nyob: 169.254.10.1. Tam sim no nyem YES thiab nkag mus, lub npe siv tsis raug yog pi thiab tus password yog raspberry.

Tom ntej no, ua raws cov lus txib hauv qab no kom tau txais hnub tim:

sudo apt-tau hloov tshiab -y && sudo apt-tau hloov tshiab -y && sudo apt-tau txais deb-upgrade -y

Kauj ruam kawg yog los tsim tus neeg txhais lus Python virtual ntawm koj li Raspberry Pi, qhov no yuav ua kom tiav koj cov cai. Txhawm rau ua qhov no, tsuas yog qhib cov putty thiab ntaus cov hauv qab no:

sudo mkdir qhov project 1

cd project1 python3 -m pip nruab -hloov kho pip setuptools log virtualenv python3 -m venv --system -site -packages venv

Kauj Ruam 6: Sau Web-application

Sau qhov Web-application
Sau qhov Web-application

Tom qab txuas txhua ntu thiab teeb tsa Raspberry Pi, kuv pib sau kuv lub vev xaib tseem ceeb siv Flask thiab Jinja2. Flask yog ib qho yooj yim-rau-siv backend moj khaum rau Python, thiab Jinja2 yog cov lus ua piv txwv uas kuv siv. Nrog Jinja, koj tuaj yeem tsim cov ntaub ntawv HTML ib txwm nrog rau loops, yog cov qauv thiab lwm yam.

Thaum coding tus backend, Kuv kuj tau sau ua ntej kawg rau daim ntawv thov, suav nrog HTML, CSS thiab JavaScript rau qee yam. Kuv siv txoj hauv kev ITCSS thiab BEM cov cim rau kuv cov ntawv txheeb.

Dhau li ntawm lub vev-xaij tseem ceeb, kuv tseem tsim 2 lwm cov haujlwm tseem ceeb. Ib qho yog sau kom xa lub cuab yeej tus IP chaw nyob rau cov neeg siv hauv daim ntawv teev npe. Txhua tus neeg siv sau npe uas tau lees txais kom tau txais email, yuav tau txais ntawv xa nrog qhov txuas los pib lub vev xaib. Txoj haujlwm no ua haujlwm raws li kev pabcuam systemd.

Lwm cov ntaub ntawv tseem ceeb yog rau lub cuab yeej tiag. Lub ntsiab no hu tau los ntawm kuv daim ntawv thov Flask, kom pib & nres lub cuab yeej, thiab sau cov ntaub ntawv. Cov ntaub ntawv khaws tseg kuj tseem raug xa mus rau lub cuab yeej cov ntaub ntawv los ntawm lub ntsiab no. Cov ntaub ntawv no tuaj yeem pom hauv web-app.

Lub vev xaib-app txuas nrog lub cuab yeej ua haujlwm tseem ceeb nrog Python Threading. Thaum tus neeg siv nyem lub pob pib, cov xov raug tsim los khiav lub cuab yeej hauv keeb kwm yav dhau. Lub caij no, tus neeg siv tuaj yeem xauj hauv app. Thaum nyem nres, cov xov no tau nres thiab yog li cov cuab yeej nres.

Kauj Ruam 7: Tsim daim kom tiav qhov Casing

Tsim daim kom tiav qhov Casing
Tsim daim kom tiav qhov Casing
Tsim daim kom tiav qhov Casing
Tsim daim kom tiav qhov Casing
Tsim daim kom tiav qhov Casing
Tsim daim kom tiav qhov Casing
Tsim daim kom tiav qhov Casing
Tsim daim kom tiav qhov Casing

Tom qab sau qhov loj tshaj plaws ntawm daim ntawv thov, Kuv pib hloov kho cov cuab yeej ua haujlwm, yog li kuv lub ntsuas cua & lwm qhov yuav haum zoo. Txhawm rau ua qhov no, Kuv yuav ib daim ntawv ntawm polyurethane hauv khw DIY hauv ib cheeb tsam, thiab pib txiav 2 nkhaus. Kuv siv daim ntawv no ntawm polyurethane vim tias nws tsis zoo li yuav tawg ua tej daim thaum txiav, thiab vim tias nws haum tau yooj yim, uas yog qhov zoo tshaj plaws txij li kuv tus neeg hlau muaj lub ntsej muag zoo.

Thawj lub bracket tau ua kom puv lub qhov nyob rau sab saum toj, qhov twg cov zaub siv los zaum hauv. Kuv hloov cov zaub nrog qhib/tua kom lub roj teeb tuaj yeem tua tau.

Lwm qhov bracket yog kev txhawb nqa rau kuv HC-SR04 ultrasonic sensors uas tau muab tso rau ntawm xub ntiag ntawm lub cuab yeej.

Qhov kawg uas yuav tsum tau ua, yog txiav tawm lub qhov nyob hauv kev txhawb nqa ntawm ib lub log, thiab tso cov hlau nplaum, kom kuv tuaj yeem saib xyuas qhov kev sib hloov ntawm lub log.

Tom qab ua tiav cov kab ntawv no, Kuv kuj tau pleev xim rau lawv nrog cov xim uas kuv tau tso tseg, kom nws haum rau qhov tsim.

Kauj Ruam 8: Txoj Cai

Txhawm rau nruab qhov program, rub tawm cov ntawv code.zip thiab unzip nws hauv qhov project1 directory.

Tom ntej no, ua cov lus txib no hauv lub davhlau ya nyob twg ntawm Raspbian lossis Putty:

sudo cp project1/conf/project-1*/thiab/systemd/system/

sudo cp project1/conf/project1-*/etc/systemd/system/sudo systemctl daemon-reload sudo systemctl pab kom project-1* sudo systemctl pab kom project1* sudo systemctl rov pib dua nginx

Tom ntej no, qhib cov ntaub ntawv koj tau tsim thiab tsim cov neeg siv tshiab nrog Argon2 hashed password. Tam sim no koj tuaj yeem siv qhov program.

Txaus siab rau!

Pom zoo: