Përmbajtje:
- Furnizimet
- Hapi 1: Hapi 1: Instalimi i RPi OS, Konfigurimi i SSH dhe Qasja në Internet
- Hapi 2: Hapi 2: Instalimi i Softuerit në RPi
- Hapi 3: Hapi 3: Lidhja me bazën e të dhënave MySQL, Krijimi i bazës së të dhënave
- Hapi 4: Hapi 4: Filezilla
- Hapi 5: Hapi 5: Krijimi i Uebfaqes
- Hapi 6: Hapi 6: Krijimi i Backend (Flask)
- Hapi 7: Hapi 7: Hardware
- Hapi 8: Hapi 8: Kodi i Shpjeguar
- Hapi 9: Hapi 9: Krijimi i një rasti
- Hapi 10: Hapat e fundit
Video: Zgjedhës ngjyrash: 10 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:14
Qëllimi i këtij projekti është matja e ngjyrave dhe përkthimi i tyre në sisteme të tjera ngjyrash. Duke përdorur vetëm vlerat RGB të dhëna nga sensori, mund të përktheni në HSL, CYMK, HEX dhe gjithashtu kodin më të afërt RAL (standardi i përdorur për bojë). Ky projekt kërkon një njohuri bazë të Python, MySQL, Linux dhe Javascript.
Nëse jeni të njohur edhe me kuadrin Flask dhe SocketIO, atëherë kodi për këtë projekt duhet të jetë i lehtë për tu kuptuar për ju.
Ky projekt mund të përdoret nga piktorë, stilistë të brendshëm ose thjesht nga kushdo që ka nevojë të masë ngjyrat.
Ky projekt nuk është aq i shtrenjtë dhe kushton rreth _ euro, transporti nuk përfshihet.
Furnizimet
Ne mund ta ndajmë këtë pjesë në dy pjesë:
- Hardware
- Softuer
Hardware
Ne përdorim përbërësit e mëposhtëm
- HC04: Sensori i distancës, sa larg jemi duke matur nga objekti
- Ekran LCD 2x16
- Moduli LCD I2C (HW061)
- Moduli i sensorit të ngjyrave TCS34725 (Adafruit)
- LED i bardhë
- Raspberry Pi 3 (Çdo Raspberry Pi duhet të funksionojë)
- Rezistencë 5x 1k Ohm
- Rezistencë 1x 220 ose 330 Ohm
- Kartë SD 16 GB (14.4 GB)
Softuer
- Python IDE, si Visual Code ose Pycharm (Pycharm përdoret këtu)
- MySQL Workbench
- Stuko (Shkarko Stuko)
- Rufus ose ndonjë shkrimtar tjetër i kartave SD (Shkarkoni Rufus)
Çmimi
Ky projekt është mjaft i lirë, nëse tashmë keni një Rapsberry Pi.
- HC04: Duke filluar rreth 2.5 euro (Kinë) dhe deri në 6 euro për më shumë dyqane lokale.
- LCD: Rreth 6-8 euro.
- Moduli I2C: Si i lirë nën 1 € (Kinë), por deri në 4 € për më shumë dyqane lokale.
- TCS34725: Rreth 9-12 euro. Pjesa më e shtrenjtë (pa përfshirë RPi)
- E bardhë e bardhë: Blerë me shumicë, 20 LEDS aq të ulëta sa 1 €
- Raspberry Pi: Varësisht nga cili version, rreth 40 euro
- Rezistentët: 0.10 € për një rezistencë
- Kartë SD: rreth 8 €
Përshtatësi i energjisë për Raspberry Pi përjashtohet në koston e çmimit, pasi ky përshtatës është mjaft i zakonshëm.
Gama e përgjithshme e çmimeve: rreth 70 €, nëse përfshini Raspberry Pi dhe kutinë për projektin.
Për të ndërtuar kasën, kam përdorur dru të hollë të lehtë. Unë e riciklova këtë dru nga mobiljet. Materiali për rastin varet nga ju.
Hapi 1: Hapi 1: Instalimi i RPi OS, Konfigurimi i SSH dhe Qasja në Internet
Hapi 1.1: Instalimi i figurës
Shkarkoni imazhin nga faqja zyrtare e Raspberry Pi. Nuk ka shumë rëndësi se çfarë imazhi instaloni. Për këtë projekt, një GUI nuk është i nevojshëm, pasi ne do të lidhemi vetëm duke përdorur SSH.
Shkruani imazhin në kartën SD (të zbrazët) (Të gjithë skedarët në kartë do të fshihen).
Për të shkruar gjithçka në kartën SD, ne do të përdorim një mjet të quajtur 'Rufus'. Pas shkarkimit të figurës, hapni Rufus dhe zgjidhni skedarin e figurës. Zgjidhni diskun e synuar dhe shkruani imazhin në disk. Kjo mund të zgjasë pak.
> Rufus
Hapi 1.2: Instalimi i SSH
Hapi tjetër është krijimi i një lidhjeje me kartën SD. Për ta bërë këtë, ne duhet të aktivizojmë SSH.
Për ta bërë këtë pa përdorur një monitor, hapni eksploruesin e skedarëve tuaj dhe hapni ndarjen e nisjes së kartës SD. Krijoni një skedar bosh të quajtur "ssh", pa zgjerim skedari.
Gjithashtu, hapni "cmdline.txt"
Shtoni "169.254.10.1" në fund të skedarit dhe ruani atë.
Çmontoni kartën SD dhe futeni në Raspberry Pi.
Tani mund ta lidhim Raspberry Pi me një burim energjie dhe të fillojmë dhe lidhemi duke përdorur SSH.
Për t'u lidhur duke përdorur SSH, ne përdorim programin "Putty". Lidhni RPi dhe PC tuaj duke përdorur një kabllo ehternet para se ta bëni këtë. Hapni Stuko dhe shkoni te skeda SSH dhe plotësoni këtë IP: 169.254.10.1. Klikoni 'lidh' dhe do të lidheni.
> Stuko
Hyrja e paracaktuar e përdorur nga Raspberry Pi është 'pi' si emër përdoruesi dhe 'mjedër' për fjalëkalimin.
Hapi 1.3: Lidhje pa tel
Raspberry Pi juaj tani është aktivizuar.
Ne gjithashtu duam të lidhemi me RPi duke përdorur Wifi, në atë mënyrë nuk kemi më nevojë për një kabllo ethernet.
Ekzekutoni rreshtin e mëposhtëm:
'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'
Kjo do të hapë redaktuesin e tekstit 'nano' me të drejta të larta.
Shtoni rreshtat e mëposhtëm në skedar:
rrjet = {
ssid = "SSID"
psk = "Fjalëkalimi"
}
Zëvendësoni "SSID" me SSID të rrjetit tuaj Wifi
Zëvendësoni "Fjalëkalimin" me fjalëkalimin tuaj.
Pastaj bëni Ctrl+X dhe zgjidhni opsionin 'po'. Tani skedari do të ruhet.
Tani duhet të rinisim shërbimin e rrjetit
Ekzekutoni komandat e mëposhtme:
- 'sudo -i'
- 'sudo systemctl rinis rrjetin'
Ju mund të provoni lidhjen tuaj në internet duke përdorur komandën wget.
Shembull: 'wget google.com'
> Komanda Wget
Hapi 2: Hapi 2: Instalimi i Softuerit në RPi
Për këtë projekt ne duhet të instalojmë disa biblioteka.
- Mariadb: Baza e të dhënave MySQL (sudo apt-get install mariadb-server)
- Biblioteka Adafruit për sensorin e ngjyrave: Matja e ngjyrave (pip3 install adafruit-circuitpython-tcs34725)
- PHPmyAdmin: ('sudo apt install phpmyadmin', zgjidhni apache webserver)
Gjithashtu instaloni bibliotekat e mëposhtme pip:
- balona_socketio
- balonë
- balona_cors
- bordi
- autobus
- netifaces
Hapi 3: Hapi 3: Lidhja me bazën e të dhënave MySQL, Krijimi i bazës së të dhënave
Hapi tjetër, është lidhja me bazën e të dhënave MySQL duke përdorur tryezën e punës MySQL.
> IP a
Ekzekutoni komandën 'ip a', siç tregohet në imazhin e mësipërm (Klikoni lidhjen)
Në shumicën e situatave, do të shfaqen 3 hyrje. Ne kemi nevojë për hyrjen 'wlan0'. Kopjoni IP -në pranë 'inet', ose në këtë shembull '192.168.1.44'
. >> Krijo lidhje të re
Siç tregohet në imazhin e mësipërm, krijoni një lidhje të re me parametrat e mëposhtëm (Imazhi më poshtë për parametrat)
> Parametrat e lidhjes
Klikoni dy herë lidhësin e krijuar rishtazi për t'u lidhur.
Nëse shfaqet një kërkesë, klikoni 'Po'.
Kjo është ende një bazë e të dhënave boshe, kështu që le të shtojmë disa tabela.
Së pari krijoni një skemë, për ta bërë këtë, në anën e majtë 'klikoni me të djathtën' dhe zgjidhni 'krijoni skemë'.
Jepni skemës një emër dhe konfirmoni.
Tani duhet të shtojmë tabela. Zgjero skemën dhe "kliko me të djathtën", "tabelat".
Krijoni skemat e mëposhtme:
> Tabela 1: Ngjyrat RAL
> Tabela 2: Llojet e sensorëve
> Tabela 3: Matjet (Në figurë përdoret 'metingen', holandisht për matjet)
> Tabela 4: Të dhënat e faqes në internet || Tabela 4 në fund
MySQL është një sistem i bazës së të dhënave relacionale, që do të thotë se ne mund të krijojmë marrëdhënie midis tabelave.
Marrëdhënia e parë që duhet të krijojmë është midis 'tipit të sensorit' dhe 'matjeve'.
Siç tregohet në figurë, lidhni dy çelësat.
> Redakto një tabelë dhe çelësat e lidhjes
Mos harroni të ruani ndryshimet duke klikuar "Apliko" në këndin e poshtëm.
Ndryshoni gjithashtu tabelën 'website_data' dhe lidhjen 'MetingID'.
Tani kemi mbaruar me krijimin e tabelave dhe krijimin e marrëdhënieve.
Shtimi i të dhënave:
Tabela RALcolors është një tabelë fikse, ku vlerat nuk do të ndryshojnë kurrë. Ne mund t'i shtojmë këto vlera
shumë lehtë.
> Shkarkoni skedarin Excel
Shkarkoni skedarin excel më lart dhe zgjidhni të gjitha të dhënat dhe 'kopjoni'. Bëni si në imazh
> Trego tabelën
'kliko me të djathtën' në tabelë dhe zgjidh 'Ngjit rreshtat'. 'kliko' 'apliko' në këndin e poshtëm për të shtuar të dhënat.
Tani të gjitha RALcolors ruhen në bazën e të dhënave.
Ne vetëm duhet të shtojmë llojin sensor_ në bazën e të dhënave tani.
> Të dhënat e sensorit
Shënim: Përshkrimi i sensorit është në 'holandisht'
Hapi 4: Hapi 4: Filezilla
Për t'u lidhur lehtë me Raspberry Pi dhe transferuar skedarë, mund të përdorim Filezilla.
> Shkarko Filezilla
Shkruani në detajet e lidhjes dhe lidheni. Në anën e djathtë tani mund të transferoni skedarë duke i tërhequr ato brenda.
> Burimi Github
Shkarkoni skedarët nga burimi i github më lart.
Hapi 5: Hapi 5: Krijimi i Uebfaqes
Për pritjen e faqes në internet, ne përdorim PHPmyAdmin dhe Apache2.
Serveri i uebit në Raspberry Pi përdor drejtorinë '/var/www/html' si rrënjë.
Nëse vendosni skedarët tuaj atje, ato do të strehohen në IP -në e Raspberry Pi. (IP = shiko 'ip a')
Ju mund të shkarkoni skedarët e kërkuar nga repoja ime e github (hapi i mëparshëm)
Në '/var/www/html/', ngjitni të gjithë skedarët nga dosja 'Frontend'.
>/var/www/html/
Hapi 6: Hapi 6: Krijimi i Backend (Flask)
Seksioni i faqes në internet bazohet në Flask.
Të gjithë skedarët mund të gjenden në repo github.
Kopjoni të gjithë skedarët në çdo drejtori në Raspberry Pi.
Për shembull '/home/pi/colorpicker.
Për të krijuar një drejtori, lundroni te drejtoria e destinacionit duke përdorur 'cd' dhe më pas ekzekutoni 'mkdir'.
Kjo është e gjitha për tani. Kodi do të shpjegohet në hapat e ardhshëm.
Hapi 7: Hapi 7: Hardware
> Skema e shkarkimit
Krijoni skemën siç tregohet në dokumentin e mësipërm.
SH NOTNIM: Shtoni gjithashtu një LED të bardhë, me një rezistencë (220 ose 330 Ohms).
Shpjegimi i harduerit
HC04
Sensori HC04 lëshon valë, të cilat reflektojnë dhe merren përsëri nga sensori.
Duke llogaritur deltën e kohës midis emetimit dhe marrjes, ne mund të llogarisim distancën.
Distanca = ((Timestamp_recieve - Timestamp_emit) / shpejtësia e zërit) / 2
Ne e ndajmë me dy sepse vala reflekton, që do të thotë se udhëton distancën dy herë.
LCD
Ne përdorim një ekran LCD për të treguar RGB dhe HEX, si IP kur programi fillon.
Për këtë LCD, bleva një modul I2C. Na duhen vetëm 4 tela tani. SDA, SCL, GND, VCC
Për të përdorur këtë LCD, kam shkruar një klasë Python, për ta bërë më të lehtë përdorimin.
TCS34725
Ky sensor ju lejon të matni ngjyrat. Ne përdorim një bibliotekë për të matur vlerën e RGB.
Hapi 8: Hapi 8: Kodi i Shpjeguar
Pjesa e përparme
Pjesa e përparme ekziston nga tre pjesë kryesore.
Së pari janë skedarët html, të cilët ndërtojnë strukturën e faqes sonë të internetit, por nuk përmbajnë ose paraqitje minimale.
Së dyti kemi skedarët css, ose skedarët e stilit, të cilët stilojnë dhe paraqesin faqen tonë të internetit.
Të dyja janë mjaft të lehta për t'u lexuar dhe kuptuar, kjo është arsyeja pse unë nuk do t'i shpjegoj ato.
Së fundmi kemi Javascript, me dy biblioteka.
Dy bibliotekat e përdorura janë SocketIO dhe URLSearchParams.
SocketIO ju lejon të dërgoni mesazhe nga pjesa e pasme në pjesën e përparme, dhe anasjelltas.
Mesazhet mund t'i dërgohen një klienti, por edhe klientëve të shumtë (Transmetim)
> Socket IO Javascript
> Socket IO Python
Në imazhet e mësipërme, mund të shihni një nga lidhjet Socket të bëra në këtë projekt.
Komanda për të dërguar mesazhe është 'emit', marrja bëhet me 'on'.
URLSearchParms ju lejojnë të merrni me lehtësi vlerat nga një querystring.
Shembull querystring: example.com/index.html?id=1
URLSearchParams do t'ju kthejë: {'id' = '1'}
> URLSearchParams Shembull
Sfondi
Pjesa e pasme është shkruar plotësisht në Python, me një mori bibliotekash.
Biblioteka e parë që importojmë është 'Flask'. Kjo bibliotekë është e nevojshme për të krijuar një API, për të bërë të gjitha veprimet CRUD për bazën e të dhënave MySQL. CRUD qëndron për Krijo Përditësimin Lexo Fshirjen.
> Shishe
Imazhi i mësipërm tregon disa 'rrugë' të Flaskës. Duke lundruar në një rrugë, ju automatikisht do të bëni një metodë 'GET', kodi do të ekzekutohet dhe ju do të merrni vlerën nga metoda e kthimit. Ka edhe metoda të tjera, si 'POST' dhe 'DELETE'. Për të testuar metoda të tilla, do t'ju duhet një program si Postieri.
Biblioteka tjetër e importit është SocketIO, të cilën e shpjegova tashmë në pjesën e përparme.
Tjetra është GPIO.
Kjo ju lejon të kontrolloni kunjat GPIO të Rapsberry Pi.
Komandat më të rëndësishme janë:
- GPIO.setmode (GPIO. BCM) Zgjidhni konfigurimin e kunjave.
- GPIO.output (, GPIO. LOW ose GPIO. HIGH) Shkruani një LOW ose HIGH në një kunj.
- GPIO.setup (,) Përcaktoni një PIN si hyrje ose dalje, ose tërheqje ose tërheqje
Tjetra kemi filetim.
Komandat e vetme që përdorim janë:
- Fije (target =)
- .fillo ()
Duke përdorur fijet, ne mund të ekzekutojmë raste të shumta të kodit në të njëjtën kohë. Në këtë mënyrë ne mund të matim distancën dhe në të njëjtën kohë, të dëgjojmë mesazhet hyrëse të prizës io.
Komanda e parë Thread (target =) do të krijojë një klasë Thread, e cila me fillimin e përdorimit të 'start ()', do të ekzekutojë funksionin në fjalën kyçe 'target', e cila u dha në krijimin e klasës.
Tjetra kemi bibliotekën e sensorit të ngjyrave, e cila është mjaft e drejtë përpara. Unë nuk do ta shpjegoj këtë bibliotekë, sepse metodat janë shumë të qarta dhe të shpjeguara në kod.
Së fundmi kemi netifaces. Kjo na lejon të marrim adresën IP që përdorim për lidhjen Wireless dhe Wired.
Së fundmi kam bërë disa klasa vetë për sensorin e distancës, LED dhe LCD.
Unë nuk do të shpjegoj se si funksionojnë ato.
Hapi 9: Hapi 9: Krijimi i një rasti
Për këtë projekt, krijova një kasë druri.
Druri është i lehtë, i hollë dhe nuk kushton shumë.
Si dimensione që kam përdorur:
- Lartësia: 5 cm
- Gjerësia: 10.5 cm
- Gjatësia: 12.5 cm
Për sensorët, duhet të shtoni 2 vrima dhe t'i vendosni pranë njëri -tjetrit.
Pas krijimit të kasës, instaloni sensorët, LED dhe LCD.
Hapi 10: Hapat e fundit
Gjithçka është bërë në mënyrë themelore.
Tani ne vetëm duhet të sigurohemi që kodi ynë të fillojë, në momentin që lidhim burimin tonë të energjisë.
Ka shumë metoda për ta bërë këtë.
> Shembuj
Ne do të përdorim metodën e parë:
Ekzekutoni këtë linjë: 'sudo nano /etc/rc.local'
Shtoni komandën tuaj për të ekzekutuar kodin: 'sudo python3'
Ruani skedarin duke përdorur Ctrl-X.
Nëse keni probleme me redaktimin. Përsëriteni këtë hap, por së pari ekzekutoni 'sudo -i'.
Recommended:
Si të kodoni një renditje ngjyrash në Modkit për Vex: 7 hapa
Si të Kodoni një Renditës të Ngjyrave në Modkit për Vex: Përshëndetje të gjithëve, Në këtë tutorial do të mësoni se si të kodoni një ndarës topash me ngjyra në Modkit për Vex. Shpresoni ta bëni dhe kënaqeni! Ju lutem votoni për mua!
Zgjedhës i ngjyrave: 4 hapa
Zgjedhësi i ngjyrave: faza 1Hapi 1: komponentët ndihmues Komponentët: Esp. 32 (mikrokontrollues) Unaza pa piksel 12 & 9 (Drita unazore RGB) Sensori i ngjyrës 3.7v bateri 3.7v në 5v Konvertuesi Sfidat: Marrja e matjeve të sakta për përbërësit Hapi 2: Kodimi i materialeve: Një
Përdorimi i LED -ve RGB për të krijuar sekuenca ngjyrash: 12 hapa
Përdorimi i LED -ve RGB për të krijuar sekuenca ngjyrash: Ky udhëzues do të tregojë se si të përdorni LED -të RGB për të krijuar sekuenca ngjyrash duke përdorur Arduino Uno dhe një Kod. 3 LED RGB do të ndryshojnë ngjyrat gjatë kohës, ndërsa 2 LED -të e tjerë RGB do të mbeten me të njëjtën ngjyrë
Kuti e dritës së fotografisë me kontroll ngjyrash: 5 hapa
Kutia e dritës së fotografisë me kontroll të ngjyrave: Një kuti dritash është një pajisje e përdorur në fotografi për të kontrolluar se sa e bardhë është drita që bie mbi një objekt. Shumica e planeve të kutisë së dritës që kam parë në internet mbështeten në dritën natyrale ose ndriçimin artificial të bardhë, siç janë llambat, llambat fluoreshente dhe
Përzierës ngjyrash me Arduino: 9 hapa (me fotografi)
Përzierës ngjyrash me Arduino: Një mikser ngjyrash është një projekt i shkëlqyeshëm për këdo që punon dhe rritet me Arduino. Deri në fund të këtij udhëzimi ju do të jeni në gjendje të përzieni dhe përputheni me pothuajse çdo ngjyrë të imagjinueshme duke rrotulluar 3 çelësa. Niveli i aftësive është mjaft i ulët sa që edhe një grumbull i plotë