Cov txheej txheem:
- Kauj Ruam 1: Sau Cov Khoom
- Kauj Ruam 2: Txau xim tha xim & Tsim Kev Sib Txuas
- Kauj Ruam 3: Tsim Database
- Kauj Ruam 4: Txuas Qhov Chaw Ua Ke
- Kauj Ruam 5: Teeb Kho Raspberry Pi
- Kauj Ruam 6: Sau Web-application
- Kauj Ruam 7: Tsim daim kom tiav qhov Casing
- Kauj Ruam 8: Txoj Cai
Video: CleanBot los ntawm Guillaume Meurillon: 8 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:29
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
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
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
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
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
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
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
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:
Plotting Real-time Graph ntawm Android Los Ntawm Arduino Los Ntawm HC-05: 3 Cov Kauj Ruam
Plotting Real-time Graph ntawm Android Los ntawm Arduino Los ntawm HC-05: Hav nyob ntawm no, ntawm no yog kev qhia qhia yuav ua li cas npaj cov phiaj xwm ntawm lub sijhawm tiag tiag ntawm qhov tseem ceeb los ntawm tus tswj hwm micro xws li Arduino rau lub app. Nws siv Bluetooth qauv xws li HC-05 los ua lub cuab yeej xa xov mus rau kis thiab tau txais cov ntaub ntawv ntawm Ar
Tib Neeg-Khoos Phis Tawj Kev Sib Txuas: Ua Haujlwm Gripper (ua los ntawm Kirigami) los ntawm Lub Cev Kev Siv Siv EMG: 7 Cov Kauj Ruam
Tib Neeg-Khoos Phis Tawj Kev Sib Txuas: Ua haujlwm Gripper (ua los ntawm Kirigami) los ntawm Kev Siv Lub Cev Siv EMG.: Yog li qhov no yog kuv thawj zaug sim ntawm tib neeg-khoos phis tawj interface.Kuv ntes cov leeg ua kom pom ntawm kuv lub dab teg txav siv EMG sensor, ua tiav los ntawm nab hab sej thiab arduino thiab ua haujlwm ua origami raws li tus tuav
Standalone Arduino 3.3V W / Sab Nraud 8 MHz Lub Sij Hawm Ua Haujlwm Los Ntawm Arduino Uno Los Ntawm ICSP / ISP (nrog Saib Xyuas Ib Leeg!): 4 Cov Kauj Ruam
Standalone Arduino 3.3V W / Sab Nraud 8 MHz Lub Sij Hawm Ua Haujlwm Los Ntawm Arduino Uno Los ntawm ICSP / ISP (nrog Kev Saib Xyuas Ib Leeg!): Lub hom phiaj: Tsim kom muaj ib leeg Arduino uas khiav ntawm 3.3V tawm ntawm 8 MHz sab nraud moos. Txhawm rau nws los ntawm ISP (tseem hu ua ICSP, hauv-ntu ntu kev ua haujlwm) los ntawm Arduino Uno (khiav ntawm 5V) Txhawm rau kho cov bootloader cov ntaub ntawv thiab hlawv
Neopixel Ws 2812 LED Sawb Nrog Arduino Tswj los ntawm Bluetooth Los ntawm Android lossis Iphone: 4 Cov Kauj Ruam
Neopixel Ws 2812 LED Sawb Nrog Arduino Tswj los ntawm Bluetooth Los ntawm Android lossis Iphone: Nyob zoo cov neeg hauv phau ntawv qhia no kuv tau tham txog yuav ua li cas thiaj tswj tau neopixel coj sawb lossis ws2812 coj sawb ntawm koj lub xov tooj Android lossis iphone siv Bluetooth txuas.so koj tuaj yeem ua tau ntxiv neopixel coj sawb hauv koj lub tsev nrog rau Arduino nrog
Teem Los Ntawm Khaub Ncaws Raspberry Pi rau Log Cov Ntaub Ntawv Los Ntawm Arduino: 5 Kauj Ruam
Teeb Los Ntawm Khaub Ncaws Raspberry Pi rau Log Cov Ntaub Ntawv Los Ntawm Arduino: Cov ntawv qhia no yog rau cov uas tsis muaj kev paub nrog kev txhim kho kho vajtse tshiab, lossis software, cia nyob ib leeg Python lossis Linux.Let hais tias koj tau xaj rau Raspberry Pi (RPi) nrog SD daim npav (tsawg kawg 8GB, Kuv siv 16GB, hom I) thiab lub zog siv (5V, tsawg kawg 2