Satura rādītājs:

ColorPicker: 10 soļi
ColorPicker: 10 soļi

Video: ColorPicker: 10 soļi

Video: ColorPicker: 10 soļi
Video: Pickr - An Awesome Color Picker for your next Project! 2024, Novembris
Anonim
ColorPicker
ColorPicker

Šī projekta mērķis ir izmērīt krāsas un pārvērst tās citās krāsu sistēmās. Izmantojot tikai sensora norādītās RGB vērtības, varat tulkot uz HSL, CYMK, HEX un arī tuvāko RAL kodu (standarts, ko izmanto krāsošanai). Šim projektam ir nepieciešamas pamatzināšanas par Python, MySQL, Linux un Javascript.

Ja esat pazīstams arī ar kolbas ietvaru un SocketIO, tad šī projekta kodam jums vajadzētu būt viegli saprotamam.

Šo projektu var izmantot gleznotāji, interjera dizaineri vai ikviens, kam nepieciešams izmērīt krāsas.

Šis projekts nav tik dārgs un maksā aptuveni _ eiro, piegāde nav iekļauta.

Piegādes

Mēs varam sadalīt šo sadaļu divās daļās:

  • Aparatūra
  • Programmatūra

Aparatūra

Mēs izmantojam šādus komponentus

  • HC04: attāluma sensors, cik tālu mēs mērām no objekta
  • LCD displejs 2x16
  • LCD I2C modulis (HW061)
  • TCS34725 Krāsu sensora modulis (Adafruit)
  • Balta LED
  • Raspberry Pi 3 (jebkuram Raspberry Pi vajadzētu darboties)
  • 5x 1k omu rezistors
  • 1x 220 vai 330 omu rezistors
  • SD karte 16 GB (14,4 GB)

Programmatūra

  • Python IDE, piemēram, Visual Code vai Pycharm (šeit izmantots Pycharm)
  • MySQL darbgalds
  • Putty (Lejupielādēt Putty)
  • Rufus vai jebkurš cits SD karšu rakstītājs (lejupielādēt Rufus)

Cenu noteikšana

Šis projekts ir diezgan lēts, ja jums jau ir Rapsberry Pi.

  • HC04: sākot no aptuveni 2,5 eiro (Ķīna) un līdz 6 eiro vietējiem veikaliem.
  • LCD: aptuveni 6-8 eiro.
  • I2C modulis: tikpat lēts zem 1 eiro (Ķīna), bet līdz 4 eiro vairāk vietējiem veikaliem.
  • TCS34725: aptuveni 9-12 eiro. Dārgākā daļa (izņemot RPi)
  • Balts LED: nopirkts vairumā, 20 gaismas diodes līdz pat 1 eiro
  • Raspberry Pi: Atkarībā no versijas aptuveni 40 eiro
  • Rezistori: € 0,10 par vienu rezistoru
  • SD karte: aptuveni 8 eiro

Strāvas adapteris Raspberry Pi nav iekļauts cenā, jo šis adapteris ir diezgan izplatīts.

Kopējais cenu diapazons: aptuveni 70 eiro, ja projektā iekļautu Raspberry Pi un futrāli.

Lai izveidotu korpusu, es izmantoju vieglu plānu koku. Es pārstrādāju šo koksni no mēbelēm. Materiāls lietas izskatīšanai ir atkarīgs no jums.

1. darbība: 1. darbība: RPi OS instalēšana, SSH un interneta piekļuves konfigurēšana

1. darbība: RPi OS instalēšana, SSH un interneta piekļuves konfigurēšana
1. darbība: RPi OS instalēšana, SSH un interneta piekļuves konfigurēšana
1. darbība: RPi OS instalēšana, SSH un interneta piekļuves konfigurēšana
1. darbība: RPi OS instalēšana, SSH un interneta piekļuves konfigurēšana
1. darbība: RPi OS instalēšana, SSH un interneta piekļuves konfigurēšana
1. darbība: RPi OS instalēšana, SSH un interneta piekļuves konfigurēšana
1. darbība: RPi OS instalēšana, SSH un interneta piekļuves konfigurēšana
1. darbība: RPi OS instalēšana, SSH un interneta piekļuves konfigurēšana

1.1. Darbība: attēla instalēšana

Lejupielādējiet attēlu no Raspberry Pi oficiālās vietnes. Nav īsti svarīgi, kādu attēlu instalējat. Šim projektam GUI nav nepieciešams, jo mēs izveidosim savienojumu tikai, izmantojot SSH.

Ierakstiet attēlu (tukšā) SD kartē (visi faili no kartes tiks izdzēsti).

Lai visu ierakstītu SD kartē, mēs izmantosim rīku ar nosaukumu “Rufus”. Pēc attēla lejupielādes atveriet Rufus un atlasiet attēla failu. Atlasiet mērķa disku un ierakstiet attēlu diskā. Tas var aizņemt kādu laiku.

> Rufus

1.2. Darbība: SSH instalēšana

Nākamais solis ir izveidot savienojumu ar SD karti. Lai to izdarītu, mums ir jāiespējo SSH.

Lai to izdarītu, neizmantojot monitoru, atveriet failu pārlūku un atveriet SD kartes sāknēšanas nodalījumu. Izveidojiet tukšu failu ar nosaukumu "ssh" bez faila paplašinājuma.

Atveriet arī "cmdline.txt"

Faila beigās pievienojiet "169.254.10.1" un saglabājiet to.

Atvienojiet SD karti un ievietojiet to Raspberry Pi.

Tagad mēs varam savienot Raspberry Pi ar barošanas avotu un startēt un izveidot savienojumu, izmantojot SSH.

Lai izveidotu savienojumu, izmantojot SSH, mēs izmantojam programmu "Putty". Pirms tam savienojiet RPi un datoru, izmantojot ehternet kabeli. Atveriet Putty un dodieties uz cilni SSH un aizpildiet šo IP: 169.254.10.1. Noklikšķiniet uz "savienot", un jūs tiksit savienots.

> Špakteles

Raspberry Pi izmantotais noklusējuma pieteikumvārds ir “pi” kā lietotājvārds un “aveņu” parolei.

1.3. Solis: Bezvadu savienojums

Jūsu Raspberry Pi tagad ir ieslēgts.

Mēs arī vēlamies izveidot savienojumu ar RPi, izmantojot Wifi, tādējādi mums vairs nav nepieciešams Ethernet kabelis.

Izpildiet šādu rindu:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Tādējādi tiks atvērts teksta redaktors “nano” ar paaugstinātām tiesībām.

Pievienojiet failam šādas rindas:

tīkls = {

ssid = "SSID"

psk = "Parole"

}

Aizstājiet “SSID” ar sava Wifi tīkla SSID

Aizstājiet "Parole" ar savu paroli.

Pēc tam nospiediet Ctrl+X un atlasiet opciju “jā”. Fails tagad tiks saglabāts.

Tagad mums ir jārestartē tīkla pakalpojums

Izpildiet šādas komandas:

  • 'sudo -i'
  • "sudo systemctl restartējiet tīklu"

Jūs varat pārbaudīt savu interneta savienojumu, izmantojot komandu wget.

Piemērs: "wget google.com"

> Wget komanda

2. darbība: 2. darbība: programmatūras instalēšana RPi

Šim projektam mums jāinstalē dažas bibliotēkas.

  • Mariadb: MySQL datu bāze (sudo apt-get install mariadb-server)
  • Adafruit bibliotēka krāsu sensoram: krāsu mērīšana (pip3 install adafruit-circuitpython-tcs34725)
  • PHPmyAdmin: ('sudo apt install phpmyadmin', izvēlieties apache tīmekļa serveri)

Instalējiet arī šādas pip bibliotēkas:

  • flask_socketio
  • kolba
  • flask_cors
  • dēlis
  • busio
  • netifaces

3. darbība: 3. darbība. Savienojuma izveide ar MySQL datu bāzi, datu bāzes izveide

3. darbība. Savienojuma izveide ar MySQL datu bāzi, datu bāzes izveide
3. darbība. Savienojuma izveide ar MySQL datu bāzi, datu bāzes izveide
3. darbība. Savienojuma izveide ar MySQL datu bāzi, datu bāzes izveide
3. darbība. Savienojuma izveide ar MySQL datu bāzi, datu bāzes izveide
3. darbība. Savienojuma izveide ar MySQL datu bāzi, datu bāzes izveide
3. darbība. Savienojuma izveide ar MySQL datu bāzi, datu bāzes izveide

Nākamais solis ir izveidot savienojumu ar MySQL datu bāzi, izmantojot MySQL darbgaldu.

> IP a

Izpildiet komandu “ip a”, kā parādīts attēlā iepriekš (noklikšķiniet uz saites)

Vairumā gadījumu tiks parādīti 3 ieraksti. Mums ir nepieciešams ieraksts “wlan0”. Kopējiet IP blakus “inet” vai šajā piemērā “192.168.1.44”

> Izveidot jaunu savienojumu

Kā parādīts iepriekš redzamajā attēlā, izveidojiet jaunu savienojumu ar šādiem parametriem (attēls zemāk par parametriem)

> Savienojuma parametri

Veiciet dubultklikšķi uz jaunizveidotā savienojuma, lai izveidotu savienojumu.

Ja tiek parādīta uzvedne, noklikšķiniet uz Jā.

Šī joprojām ir tukša datu bāze, tāpēc pievienosim dažas tabulas.

Vispirms izveidojiet shēmu, lai to izdarītu, kreisajā pusē noklikšķiniet uz "ar peles labo pogu" un izvēlieties "izveidot shēmu".

Piešķiriet shēmai nosaukumu un apstipriniet.

Tagad mums jāpievieno tabulas. Izvērsiet shēmu un “ar peles labo pogu noklikšķiniet”, “tabulas”.

Izveidojiet šādas shēmas:

> 1. tabula: RALkrāsas

> 2. tabula: Sensoru veidi

> 3. tabula. Mērījumi (attēlā tiek izmantots metingen, holandiešu valodā mērījumiem)

> 4. tabula. Vietnes_dati || 4. tabula apakšā

MySQL ir relāciju datu bāzes sistēma, kas nozīmē, ka mēs varam izveidot attiecības starp tabulām.

Pirmā sakarība, kas mums jāizveido, ir starp sensoru tipu un mērījumiem.

Kā parādīts attēlā, savienojiet abus taustiņus.

> Rediģēt tabulu un saišu atslēgas

Neaizmirstiet saglabāt izmaiņas, apakšējā stūrī noklikšķinot uz “Lietot”.

Rediģējiet arī tabulu “website_data” un saiti “MetingID”.

Tagad mēs esam pabeiguši tabulu izveidi un attiecību izveidi.

Datu pievienošana:

RALcolors tabula ir fiksēta tabula, kurā vērtības nekad nemainīsies. Mēs varam pievienot šīs vērtības

ļoti viegli.

> Lejupielādēt Excel failu

Lejupielādējiet iepriekš minēto Excel failu un atlasiet visus datus un “kopējiet”. Dariet kā attēlā

> Rādīt tabulu

ar peles labo pogu noklikšķiniet uz tabulas un izvēlieties "Ielīmēt rindas". lai pievienotu datus, apakšējā stūrī noklikšķiniet uz “piemērot”.

Tagad visas RALcolors tiek saglabātas datu bāzē.

Mums tikai tagad datubāzei jāpievieno sensor_type.

> Sensortype dati

Piezīme: Sensora apraksts ir holandiešu valodā

4. darbība: 4. darbība: Filezilla

4. solis: Filezilla
4. solis: Filezilla

Lai viegli izveidotu savienojumu ar Raspberry Pi un pārsūtītu failus, mēs varam izmantot Filezilla.

> Lejupielādēt Filezilla

Ierakstiet savienojuma detaļas un izveidojiet savienojumu. Labajā pusē tagad varat pārsūtīt failus, velkot tos iekšā.

> Github avots

Lejupielādējiet failus no iepriekš minētā github avota.

5. darbība: 5. darbība: vietnes izveide

5. darbība: vietnes izveide
5. darbība: vietnes izveide
5. darbība: vietnes izveide
5. darbība: vietnes izveide

Vietnes mitināšanai mēs izmantojam PHPmyAdmin un Apache2.

Raspberry Pi tīmekļa serveris kā sakni izmanto direktoriju "/var/www/html".

Ja jūs ievietojat tur savus failus, tie tiks mitināti Raspberry Pi IP. (IP = sk. 'Ip')

Nepieciešamos failus varat lejupielādēt no mana github repo (iepriekšējā darbība)

Mapē//var/www/html/ielīmējiet visus failus no mapes Frontend.

>/var/www/html/

6. darbība: 6. darbība: aizmugures (kolbas) izveide

Vietnes aizmugure ir balstīta uz kolbu.

Visus failus var atrast vietnē github repo.

Kopējiet visus failus jebkurā Raspberry Pi direktorijā.

Piemēram '/home/pi/colorpicker.

Lai izveidotu direktoriju, dodieties uz galamērķa direktoriju, izmantojot 'cd', un pēc tam izpildiet 'mkdir'.

Tas pagaidām ir viss. Kods tiks izskaidrots turpmākajās darbībās.

7. darbība: 7. darbība: aparatūra

> Lejupielādes shēma

Izveidojiet shēmu, kā parādīts iepriekšējā dokumentā.

PIEZĪME Pievienojiet arī vienu baltu gaismas diodi ar vienu rezistoru (220 vai 330 omi).

Aparatūras izskaidrošana

HC04

HC04 sensors izstaro viļņus, kas atspoguļo un sensors atkal uztver.

Aprēķinot laika deltu starp izstarošanu un saņemšanu, mēs varam aprēķināt attālumu.

Attālums = ((Timestamp_recieve - Timestamp_emit) / skaņas ātrums) / 2

Mēs dalāmies ar diviem, jo vilnis atspoguļo, tas nozīmē, ka tas veic attālumu divreiz.

LCD

Mēs izmantojam LCD displeju, lai parādītu RGB un HEX, kā arī IP, kad programma tiek palaista.

Šim LCD es nopirku I2C moduli. Tagad mums ir nepieciešami tikai 4 vadi. SDA, SCL, GND, VCC

Lai izmantotu šo LCD, es uzrakstīju Python klasi, lai to būtu vieglāk izmantot.

TCS34725

Šis sensors ļauj izmērīt krāsas. Mēs izmantojam bibliotēku, lai izmērītu RGB vērtību.

8. darbība: 8. darbība: izskaidrots kods

8. darbība: izskaidrots kods
8. darbība: izskaidrots kods
8. darbība: izskaidrots kods
8. darbība: izskaidrots kods
8. darbība: izskaidrots kods
8. darbība: izskaidrots kods
8. darbība: izskaidrots kods
8. darbība: izskaidrots kods

Priekšpuse

Priekšpuse sastāv no trim galvenajām daļām.

Pirmkārt, tie ir html faili, kas veido mūsu vietnes struktūru, bet nesatur vai minimālu izkārtojumu.

Otrkārt, mums ir css faili vai stila faili, kuru stils un izkārtojums ir mūsu vietnē.

Abi ir diezgan viegli lasāmi un saprotami, tāpēc es tos nepaskaidrošu.

Pēdējais mums ir Javascript ar divām bibliotēkām.

Divas izmantotās bibliotēkas ir SocketIO un URLSearchParams.

SocketIO ļauj sūtīt ziņojumus no aizmugures uz priekšpusi un otrādi.

Ziņas var nosūtīt vienam klientam, bet arī vairākiem klientiem (apraide)

> Socket IO Javascript

> Socket IO Python

Iepriekš redzamajos attēlos varat redzēt vienu no šajā projektā izveidotajiem kontaktligzdas savienojumiem.

Ziņu sūtīšanas komanda ir “emit”, saņemšanu veic “on”.

URLSearchParms ļauj viegli iegūt vērtības no vaicājuma virknes.

Vaicājuma virknes piemērs: example.com/index.html?id=1

URLSearchParams jums atdos: {'id' = '1'}

> URLSearchParams piemērs

Aizmugures sistēma

Fonts ir pilnībā uzrakstīts Python, un tajā ir daudz bibliotēku.

Pirmā bibliotēka, ko mēs importējam, ir “kolba”. Šī bibliotēka ir nepieciešama, lai izveidotu API, lai veiktu visas CRUD darbības MySQL datu bāzei. CRUD apzīmē Create Read Update Delete.

> Kolba

Augšējā attēlā ir redzami daži kolbu “maršruti”. Ierodoties maršrutā, jūs automātiski veiksit 'GET' metodi, kods tiks izpildīts un jūs saņemsiet vērtību no atgriešanas metodes. Ir arī citas metodes, piemēram, “POST” un “DELETE”. Lai pārbaudītu šādas metodes, jums būs nepieciešama tāda programma kā Pastnieks.

Nākamā importēšanas bibliotēka ir SocketIO, ko es paskaidroju jau priekšgalā.

Nākamais ir GPIO.

Tas ļauj jums kontrolēt Rapsberry Pi GPIO tapas.

Vissvarīgākās komandas ir:

  • GPIO.setmode (GPIO. BCM) Izvēlieties tapas konfigurāciju.
  • GPIO.output (, GPIO. LOW vai GPIO. HIGH) Uzrakstiet tapai LOW vai HIGH.
  • GPIO.setup (,) Definējiet PIN kā ievadi vai izvadi, vai nolaižamu vai izvelkamu

Tālāk mums ir pavedieni.

Mēs izmantojam tikai šādas komandas:

  • Pavediens (mērķis =)
  • .sākt()

Izmantojot pavedienus, mēs varam vienlaikus palaist vairākus koda gadījumus. Tādā veidā mēs varam izmērīt attālumu un vienlaikus klausīties ienākošos kontaktligzdas io ziņojumus.

Pirmā komanda Thread (target =) izveidos pavedienu klasi, kas, sākot lietot 'start ()', izpildīs funkciju atslēgvārdā 'target', kas tika dots, izveidojot klasi.

Tālāk mums ir krāsu sensora bibliotēka, kas ir diezgan taisna. Es neskaidrošu šo bibliotēku, jo metodes ir ļoti skaidras un kodā izskaidrotas.

Visbeidzot, mums ir tīkli. Tas ļauj mums iegūt IP adresi, ko izmantojam bezvadu un vadu savienojumam.

Visbeidzot es pats izveidoju dažas nodarbības attāluma sensoram, LED un LCD.

Es nepaskaidrošu, kā tie darbojas.

9. darbība: 9. darbība: lietas izveidošana

9. darbība: lietas izveidošana
9. darbība: lietas izveidošana
9. darbība: lietas izveidošana
9. darbība: lietas izveidošana
9. darbība: lietas izveidošana
9. darbība: lietas izveidošana

Šim projektam es izveidoju koka futrāli.

Koks ir viegls, plāns un nemaksā daudz.

Kā izmērus izmantoju:

  • Augstums: 5 cm
  • Platums: 10,5 cm
  • Garums: 12,5 cm

Sensoriem jāpievieno 2 caurumi un jānovieto blakus.

Pēc korpusa izveidošanas uzstādiet sensorus, LED un LCD.

10. solis: pēdējie soļi

Viss tiek darīts principiāli.

Tagad mums tikai jāpārliecinās, ka mūsu kods sākas, brīdī, kad pievienojam strāvas avotu.

Ir daudz metožu, kā to izdarīt.

> Piemēri

Mēs izmantosim pirmo metodi:

Izpildiet šo rindu: 'sudo nano /etc/rc.local'

Pievienojiet savu komandu, lai palaistu kodu: 'sudo python3'

Saglabājiet failu, izmantojot Ctrl-X.

Ja jums ir problēmas ar rediģēšanu. Atkārtojiet šo darbību, bet vispirms izpildiet “sudo -i”.

Ieteicams: