Cov txheej txheem:
- Khoom siv
- Kauj Ruam 1: Kauj Ruam 1: Txhim Kho RPi OS, teeb tsa SSH thiab Siv Internet
- Kauj Ruam 2: Kauj Ruam 2: Txhim Kho Software ntawm RPi
- Kauj Ruam 3: Kauj Ruam 3: Txuas rau MySQL Database, Tsim Database
- Kauj ruam 4: Kauj Ruam 4: Filezilla
- Kauj Ruam 5: Kauj Ruam 5: Tsim Lub Vev Xaib
- Kauj Ruam 6: Kauj Ruam 6: Tsim Lub Backend (Flask)
- Kauj Ruam 7: Kauj Ruam 7: Kho vajtse
- Kauj Ruam 8: Kauj Ruam 8: Piav Qhia
- Kauj Ruam 9: Kauj Ruam 9: Tsim Rooj Plaub
- Kauj Ruam 10: Kauj Ruam Kawg
Video: ColorPicker: 10 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:25
Lub hom phiaj ntawm txoj haujlwm no yog ntsuas cov xim, thiab txhais lawv mus rau lwm lub tshuab xim. Siv tsuas yog RGB qhov ntsuas tau muab los ntawm lub ntsuas cua, koj tuaj yeem txhais mus rau HSL, CYMK, HEX thiab tseem nyob ze RAL code (tus qauv siv rau xim). Txoj haujlwm no xav tau kev paub pib ntawm Python, MySQL, Linux thiab Javascript.
Yog tias koj tseem tau paub txog lub raj mis thiab SocketIO, tom qab ntawv cov cai rau txoj haujlwm no yuav tsum nkag siab yooj yim rau koj.
Txoj haujlwm no tuaj yeem siv los ntawm cov neeg pleev xim, tsim qauv ib nrab lossis tsuas yog los ntawm ib tus neeg uas xav ntsuas xim.
Txoj haujlwm no tsis kim heev, thiab raug nqi kwv yees _ euros, tsis suav nrog thauj khoom.
Khoom siv
Peb tuaj yeem faib ntu no ua ob ntu:
- Kho vajtse
- Software
Kho vajtse
Peb siv cov khoom siv hauv qab no
- HC04: Kev ntsuas nrug deb, peb nyob deb npaum li cas los ntawm qhov khoom
- LCD zaub 2x16
- LCD I2C module (HW061)
- TCS34725 Xim xim module (Adafruit)
- Dawb LED
- Raspberry Pi 3 (Txhua Raspberry Pi yuav tsum ua haujlwm)
- 5 x 1k Ohm resistor
- 1x 220 lossis 330 Ohm resistor
- SD daim npav 16GB (14.4GB)
Software
- Python IDE, zoo li Visual Code lossis Pycharm (Pycharm siv ntawm no)
- MySQL Workbench
- Putty (Download tau Putty)
- Rufus lossis lwm tus sau daim npav SD (Rub tawm Rufus)
Nqi
Txoj haujlwm no pheej yig heev, yog tias koj twb muaj Rapsberry Pi.
- HC04: Pib ncig € 2.5 euros (Suav Teb) thiab nce txog € 6 rau ntau lub khw hauv zos.
- LCD: Ib puag ncig 6-8 Euro.
- I2C module: Raws li pheej yig hauv qab € 1 (Tuam Tshoj), tab sis mus txog € 4 rau ntau lub khw hauv zos.
- TCS34725: Ib puag ncig € 9-12 euros. Feem ntau kim tshaj (Tsis suav nrog RPi)
- Dawb coj: Yuav hauv ntau, 20 LEDS qis li € 1
- Raspberry Pi: Nyob ntawm seb qhov twg, ib puag ncig € 40 euros
- Resistors: € 0.10 rau ib tus tiv thaiv
- SD daim npav: ib ncig € 8
Lub zog hloov pauv rau Raspberry Pi tsis suav nrog tus nqi, vim tias lub adapter no zoo ib yam.
Tus nqi ntau tshaj: ib puag ncig € 70, yog tias koj suav nrog Raspberry Pi thiab rooj plaub rau txoj haujlwm.
Txhawm rau tsim rooj plaub, kuv tau siv cov ntoo nyias nyias. Kuv rov siv ntoo no los ntawm rooj tog. Cov ntaub ntawv rau rooj plaub yog nyob ntawm koj.
Kauj Ruam 1: Kauj Ruam 1: Txhim Kho RPi OS, teeb tsa SSH thiab Siv Internet
Kauj ruam 1.1: Txhim kho daim duab
Rub tawm daim duab los ntawm qhov chaw raug cai ntawm Raspberry Pi. Nws tsis muaj teeb meem dab tsi duab koj nruab. Txog qhov haujlwm no, tsis xav tau GUI, txij li peb tsuas yog txuas siv SSH.
Sau daim duab rau (tsis muaj) daim npav SD (Txhua cov ntaub ntawv ntawm daim npav yuav raug lwv tawm).
Txhawm rau sau txhua yam rau SD daim npav, peb yuav siv lub cuab yeej hu ua 'Rufus'. Tom qab rub tawm cov duab, qhib Rufus thiab xaiv cov duab ua ntaub ntawv thov. Xaiv lub hom phiaj tsav thiab sau daim duab rau tus tsav. Qhov no tuaj yeem siv sijhawm me ntsis.
> Rufus
Kauj Ruam 1.2: Txhim Kho SSH
Cov kauj ruam tom ntej yog tsim kev sib txuas rau SD daim npav. Txhawm rau ua qhov ntawd, peb yuav tsum tau pab kom SSH.
Txhawm rau ua qhov ntawd yam tsis siv tus saib, qhib koj cov ntaub ntawv tshawb nrhiav thiab qhib qhov muab faib ntawm SD daim npav. Tsim cov ntawv uas tsis muaj npe hu ua "ssh", tsis muaj daim ntawv txuas ntxiv.
Tsis tas li, qhib "cmdline.txt"
Ntxiv "169.254.10.1" hauv qhov kawg ntawm cov ntawv thiab khaws nws.
Unmount SD card thiab ntxig rau hauv Raspberry Pi.
Tam sim no peb tuaj yeem txuas Raspberry Pi mus rau lub zog siv thiab khau raj thiab txuas nrog siv SSH.
Txhawm rau txuas siv SSH, peb siv qhov program "Putty". Txuas koj RPi thiab PC siv txoj hlua txuas txuas ua ntej ua qhov ntawd. Qhib Putty thiab mus rau SSH tab, thiab sau rau tus IP no: 169.254.10.1. Nyem 'txuas' thiab koj yuav txuas nrog.
> Putty
Tus ID nkag mus tsis raug siv los ntawm Raspberry Pi yog 'pi' raws li lub npe siv thiab 'raspberry' rau tus password.
Kauj Ruam 1.3: Kev sib txuas wireless
Koj li Raspberry Pi tam sim no tau qhib.
Peb kuj xav txuas rau RPi siv Wifi, txoj kev ntawd peb tsis xav tau Ethernet cable ntxiv lawm.
Ua cov kab hauv qab no:
'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'
Qhov no yuav qhib qhov 'nano' cov ntawv sau nrog cov cai tshwj xeeb.
Ntxiv cov kab hauv qab no hauv cov ntawv:
network = {
ssid = "SSID"
psk = "Tus password"
}
Hloov "SSID" nrog SSID ntawm koj lub network Wifi
Hloov "Password" nrog koj tus password.
Tom qab ntawd ua Ctrl+X thiab xaiv qhov 'yog' xaiv. Tam sim no cov ntaub ntawv yuav raug cawm.
Tam sim no peb yuav tsum rov pib dua qhov kev pabcuam sib tham
Ua cov lus txib hauv qab no:
- 'sudo -i'
- 'sudo systemctl rov pib dua network'
Koj tuaj yeem sim koj li kev siv internet siv cov lus txib wget.
Piv txwv: 'wget google.com'
> Wget hais kom ua
Kauj Ruam 2: Kauj Ruam 2: Txhim Kho Software ntawm RPi
Txog qhov haujlwm no peb yuav tsum teeb tsa ob peb lub tsev qiv ntawv.
- Mariadb: MySQL database (sudo apt-tau nruab mariadb-server)
- Adafruit lub tsev qiv ntawv rau xim xim: Ntsuas xim (pip3 nruab adafruit-circuitpython-tcs34725)
- PHPmyAdmin: ('sudo apt install phpmyadmin', xaiv apache webserver)
Kuj teeb tsa cov tsev qiv ntawv hauv qab no:
- hwj txwv_socketio
- hwj
- hwj txwv_cors
- pawg thawj coj saib
- siv
- netifaces
Kauj Ruam 3: Kauj Ruam 3: Txuas rau MySQL Database, Tsim Database
Cov kauj ruam tom ntej, yog txuas rau MySQL database siv MySQL workbench.
> Tus IP a
Ua cov lus txib 'ip a', raws li qhia hauv daim duab saum toj no (Nyem txuas)
Hauv ntau qhov xwm txheej, yuav pom 3 nkag. Peb xav tau qhov 'wlan0' nkag. Luam tus IP tom ntej ntawm 'inet', lossis hauv qhov piv txwv no '192.168.1.44'
. >> Tsim kev sib txuas tshiab
Raws li qhia hauv daim duab saum toj no, tsim kev sib txuas tshiab nrog cov ntsuas hauv qab no (Duab hauv qab no rau params)
> Kev sib txuas tsis
Ob npaug nias qhov txuas tshiab uas tau tsim los txuas.
Yog tias muaj qhov tshwm sim tshwm sim, nyem 'Yog'.
Qhov no tseem yog cov ntaub ntawv khoob, yog li cia peb ntxiv qee lub rooj.
Ua ntej tsim cov phiaj xwm, ua li ntawd, ntawm sab laug 'nyem txoj cai' thiab xaiv 'tsim cov phiaj xwm'.
Muab lub npe schema thiab lees paub.
Tam sim no peb xav tau ntxiv cov ntxhuav. Nthuav cov txheej txheem thiab 'right-click', 'tables'.
Tsim cov schema hauv qab no:
> Table 1: RALcolors
> Rooj 2: Hom sensor
> Table 3: Kev ntsuas (Hauv daim duab, 'metingen' yog siv, Dutch rau kev ntsuas)
> Table 4: Website_data || Rooj 4 hauv qab
MySQL yog cov ntaub ntawv txheeb xyuas qhov system, uas txhais tau tias peb tuaj yeem tsim kev sib raug zoo ntawm cov rooj.
Thawj qhov kev sib raug zoo peb yuav tsum tsim yog nruab nrab ntawm 'sensor_type' thiab 'ntsuas'.
Raws li qhia hauv daim duab, txuas ob lub yuam sij.
> Kho lub rooj & txuas cov yuam sij
Tsis txhob hnov qab khaws cov kev hloov pauv los ntawm nyem 'Thov' hauv qab hauv qab.
Kuj hloov kho 'website_data' rooj thiab txuas 'MetingID'.
Tam sim no peb tau ua tiav nrog tsim cov ntxhuav thiab tsim kev sib raug zoo.
Ntxiv cov ntaub ntawv:
RALcolors table yog lub rooj ruaj, qhov twg qhov txiaj ntsig yuav tsis hloov pauv. Peb tuaj yeem ntxiv cov txiaj ntsig no
yooj yim heev
> Rub tawm Excel cov ntawv
Rub tawm cov ntawv excel saum toj no thiab xaiv txhua cov ntaub ntawv thiab 'luam'. Ua zoo li hauv daim duab
> Qhia cov lus
'right-click' ntawm lub rooj thiab xaiv 'Muab kab sib txuas'. 'nyem' 'thov' nyob rau hauv qab kaum sab xis txhawm rau ntxiv cov ntaub ntawv.
Tam sim no txhua RALcolors tau txais kev cawmdim hauv lub database.
Peb tsuas yog xav tau ntxiv cov sensor_type rau cov ntaub ntawv tam sim no.
> Sensortype cov ntaub ntawv
Nco tseg: Cov lus piav qhia ntawm lub sensor yog hauv 'Dutch'
Kauj ruam 4: Kauj Ruam 4: Filezilla
Txhawm rau txuas tau yooj yim rau Raspberry Pi thiab xa cov ntaub ntawv, peb tuaj yeem siv Filezilla.
> Download Filezilla
Cov ntaub ntawv hauv cov ntsiab lus txuas thiab txuas. Ntawm sab xis koj tam sim no tuaj yeem xa cov ntaub ntawv los ntawm rub lawv rau hauv.
> Github qhov chaw
Rub tawm cov ntawv los ntawm github qhov chaw saum toj no.
Kauj Ruam 5: Kauj Ruam 5: Tsim Lub Vev Xaib
Rau kev tuav lub vev xaib, peb siv PHPmyAdmin thiab Apache2.
Lub webserver ntawm Raspberry Pi siv '/var/www/html' cov npe raws li hauv paus.
Yog tias koj tso koj cov ntaub ntawv nyob rau ntawd, lawv yuav raug tuav ntawm IP ntawm Raspberry Pi. (IP = saib 'ip a')
Koj tuaj yeem rub tawm cov ntawv xav tau los ntawm kuv github repo (cov kauj ruam dhau los)
Hauv '/var/www/html/', muab tag nrho cov ntaub ntawv los ntawm 'Frontend' nplaub tshev.
>/var/www/html/
Kauj Ruam 6: Kauj Ruam 6: Tsim Lub Backend (Flask)
Lub vev xaib backend yog raws li Flask.
Txhua cov ntaub ntawv tuaj yeem pom ntawm github repo.
Luam tag nrho cov ntaub ntawv rau txhua phau ntawv teev npe ntawm Raspberry Pi.
Piv txwv li '/home/pi/colorpicker.
Txhawm rau tsim cov npe, txav mus rau phau ntawv qhia chaw siv 'cd', thiab tom qab ntawd ua tiav 'mkdir'.
Qhov ntawd yog txhua yam rau tam sim no. Txoj cai yuav piav qhia hauv cov kauj ruam tom ntej.
Kauj Ruam 7: Kauj Ruam 7: Kho vajtse
> Download Scheme
Tsim cov phiaj xwm zoo li qhia hauv daim ntawv saum toj no.
NCO TSEG: Ntxiv rau ib qho LED dawb, nrog rau ib tus tiv thaiv (220 lossis 330 Ohms).
Piav txog kho vajtse
HC04
HC04 sensor tso tawm nthwv dej, uas cuam tshuam thiab tau txais dua los ntawm lub ntsuas.
Los ntawm kev suav lub sijhawm delta nruab nrab ntawm kev tso tawm thiab tau txais, peb tuaj yeem suav qhov deb.
Qhov nrug = ((Timestamp_recieve - Timestamp_emit) / suab nrawm) / 2
Peb faib los ntawm ob vim hais tias nthwv dej cuam tshuam, txhais tau tias nws taug kev deb ob zaug.
LCD
Peb siv lub vijtsam LCD los qhia RGB thiab HEX, zoo li tus IP thaum txoj haujlwm pib.
Rau lub LCD no, Kuv yuav ib qho I2C module. Peb tsuas xav tau 4 xov hlau tam sim no. SDA, SCL, GND, VCC
Txhawm rau siv lub LCD no, Kuv tau sau chav kawm Python, kom yooj yim siv.
TIAB SA 34725
Qhov ntsuas no tso cai rau koj ntsuas xim. Peb siv lub tsev qiv ntawv los ntsuas tus nqi RGB.
Kauj Ruam 8: Kauj Ruam 8: Piav Qhia
Lub ntsej muag
Lub ntsej muag tshwm sim ntawm peb ntu loj.
Ua ntej tshaj yog cov ntaub ntawv html, uas tsim cov qauv ntawm peb lub vev xaib, tab sis tsis muaj lossis tsawg txheej txheem.
Qhov thib ob peb muaj cov ntaub ntawv css, lossis cov ntaub ntawv style, uas style thiab teeb tsa peb lub vev xaib.
Ob qho no yooj yim heev rau nyeem thiab nkag siab, uas yog vim li cas kuv thiaj tsis piav qhia lawv.
Kawg peb muaj Javascript, nrog ob lub tsev qiv ntawv.
Ob lub tsev qiv ntawv siv yog SocketIO thiab URLSearchParams.
SocketIO tso cai rau koj xa cov lus los ntawm lub backend mus rau lub ntsej muag, thiab hloov pauv.
Cov lus tuaj yeem xa mus rau ib tus neeg siv khoom, tab sis kuj tseem muaj ntau tus neeg siv khoom (Tshaj Tawm)
> Socket IO Javascript
> Socket IO Python
Hauv cov duab saum toj no, koj tuaj yeem pom ib qho ntawm Cov Qhov Txuas Txuas ua hauv qhov haujlwm no.
Cov lus txib kom xa xov yog 'emit', kev ua tiav yog ua los ntawm 'on'.
URLSearchParms tso cai rau koj kom tau txais txiaj ntsig los ntawm cov lus nug yooj yim.
Piv txwv querystring: piv txwv.com/index.html?id=1
URLSearchParams yuav muab rov qab rau koj: {'id' = '1'}
> URLSearchParams Piv txwv
Cov backend
Lub backend tau sau tag nrho hauv Python, nrog rau pawg ntawm cov tsev qiv ntawv.
Thawj lub tsev qiv ntawv peb ntshuam yog 'Flask'. Lub tsev qiv ntawv no xav tau los tsim API, ua txhua yam CRUD ua rau MySQL database. CRUD sawv rau Tsim Nyeem Hloov Tshiab Rho Tawm.
> Flask
Cov duab saum toj no qhia txog ob peb Flask 'txoj kev'. Los ntawm caij nthwv dej mus rau txoj kev, koj yuav cia li ua 'GET' txoj hauv kev, cov cai yuav ua thiab koj yuav tau txais tus nqi los ntawm txoj kev rov qab los. Kuj tseem muaj lwm txoj hauv kev, zoo li 'POST' thiab 'DELETE'. Txhawm rau sim cov txheej txheem no, koj yuav xav tau ib txoj haujlwm zoo li Postman.
Lub tsev qiv ntawv ntshuam tom ntej yog SocketIO, uas kuv tau piav qhia nyob hauv ntu kawg hauv ntej.
Ib qho ntxiv yog GPIO.
Qhov no tso cai rau koj los tswj GPIO tus pin ntawm Rapsberry Pi.
Cov lus txib tseem ceeb tshaj plaws yog:
- GPIO.setmode (GPIO. BCM) Xaiv qhov teeb tsa ntawm tus pin.
- GPIO.output (, GPIO. LOW lossis GPIO. HIGH) Sau LOW lossis HIGH rau tus pin.
- GPIO.setup (,) Txheeb xyuas tus lej PIN li cov tswv yim lossis tso tawm, lossis rub tawm lossis rub tawm
Tom ntej no peb muaj threading.
Tsuas yog cov lus txib peb siv yog:
- Xov (phiaj =)
- . pib ()
Siv xov, peb tuaj yeem ua haujlwm ntau zaus ntawm cov lej tib lub sijhawm. Txoj kev no peb tuaj yeem ntsuas kev nrug deb thiab tib lub sijhawm, mloog cov lus nkag hauv qhov io.
Thawj lo lus txib Thread (phiaj =) yuav tsim Thread class, uas thaum pib siv 'pib ()', yuav ua haujlwm hauv lo lus tseem ceeb 'phiaj', uas tau muab rau ntawm kev tsim cov chav kawm.
Tom ntej no peb muaj lub tsev qiv ntawv xim xim, uas yog ncaj nraim rau pem hauv ntej. Kuv tsis piav qhia lub tsev qiv ntawv no, vim tias cov txheej txheem tau meej heev thiab piav qhia hauv txoj cai.
Thaum kawg peb muaj netifaces. Qhov no ua rau peb rov qab tau tus IP chaw nyob uas peb siv rau Kev Sib Txuas Wireless thiab Wired.
Kawg kuv tau ua qee chav kawm kuv tus kheej rau qhov ntsuas qhov deb, LED thiab LCD.
Kuv yuav tsis piav qhia cov haujlwm ntawd li cas.
Kauj Ruam 9: Kauj Ruam 9: Tsim Rooj Plaub
Txog qhov haujlwm no, kuv tsim rooj ntoo.
Ntoo yog qhov hnyav, nyias thiab tsis raug nqi ntau.
Raws li qhov ntev kuv tau siv:
- Qhov siab: 5 cm
- Dav: 10.5cm
- Ntev: 12.5cm
Txog cov ntsuas, koj yuav tsum ntxiv 2 qhov thiab tso lawv nyob ib sab.
Tom qab tsim cov ntaub ntawv, teeb tsa lub ntsuas cua, LED thiab LCD.
Kauj Ruam 10: Kauj Ruam Kawg
Txhua yam yog ua tiav.
Tam sim no peb tsuas yog yuav tsum paub tseeb tias peb cov cai pib, lub sijhawm peb ntsaws rau hauv peb lub zog siv.
Muaj ntau txoj hauv kev los ua qhov no.
> Piv txwv
Peb yuav siv thawj txoj kev:
Ua txoj kab no: 'sudo nano /etc/rc.local'
Ntxiv koj cov lus txib kom ua raws txoj cai: 'sudo python3'
Txuag cov ntaub ntawv siv Ctrl-X.
Yog tias koj muaj teeb meem kho. Rov ua cov kauj ruam no, tab sis thawj zaug ua 'sudo -i'.
Pom zoo:
Arduino Tsheb Rov Qab Chaw Nres Tsheb Ceeb Toom - Cov Kauj Ruam ntawm Kauj Ruam: 4 Kauj Ruam
Arduino Tsheb Rov Qab Chaw Nres Tsheb Ceeb Toom | Cov kauj ruam ib kauj ruam: Hauv txoj haujlwm no, kuv yuav tsim qhov yooj yim Arduino Tsheb Rov Qab Tsheb Nres Tsheb Nres Sensor Siv Arduino UNO thiab HC-SR04 Ultrasonic Sensor. Qhov no Arduino raws Lub Tsheb Rov Qab ceeb toom tuaj yeem siv rau Kev Tshawb Fawb Txog Tus Kheej, Robot Ranging thiab lwm yam
Tsev Automation Kauj Ruam ntawm Kauj Ruam Siv Wemos D1 Mini Nrog PCB Tsim: 4 Kauj Ruam
Tsev Automation Kauj Ruam Ib Leeg Siv Wemos D1 Mini Nrog PCB Tsim: Tsev Automation Kauj Ruam los ntawm Kauj Ruam siv Wemos D1 Mini nrog PCB Tsim cov tub ntxhais kawm ntawv qib siab. Tom qab ntawd ib tus ntawm peb cov tswv cuab tuaj
RC Taug Qab Neeg Hlau Siv Arduino - Kauj Ruam Ib kauj ruam: 3 Kauj Ruam
RC Tracked Robot Siv Arduino - Kauj Ruam Ib Nrab: Hav guys, Kuv rov qab los nrog lwm tus neeg hlau txias chassis los ntawm BangGood. Vam tias koj tau dhau los ntawm peb cov phiaj xwm yav dhau los - Spinel Crux V1 - Tus Cwj Pwm Tswj Tus Neeg Hlau, Spinel Crux L2 - Arduino Xaiv thiab Muab Neeg Hlau nrog Robotic caj npab thiab Badland Braw
Kawm Yuav Ua Li Cas Kos Tus Tswm Ciab - Kauj Ruam Ib Kauj Ruam: 6 Kauj Ruam
Kawm Yuav Ua Li Cas Thiaj Li Tswmciab - Kauj Ruam Ib kauj ruam: Cov tswm ciab no siv sijhawm 10 feeb los kos yog tias koj ua raws kuv cov kauj ruam ua tib zoo
DIY Arduino Robotic Arm, Kauj Ruam ntawm Kauj Ruam: 9 Kauj Ruam
DIY Arduino Robotic Arm, Kauj Ruam ntawm Kauj Ruam: Cov ntawv qhia no yog qhia koj yuav tsim lub Caj Npab Caj Npab ntawm koj tus kheej li cas