Satura rādītājs:
- Piegādes
- 1. darbība: 1. darbība: RPi OS instalēšana, SSH un interneta piekļuves konfigurēšana
- 2. darbība: 2. darbība: programmatūras instalēšana RPi
- 3. darbība: 3. darbība. Savienojuma izveide ar MySQL datu bāzi, datu bāzes izveide
- 4. darbība: 4. darbība: Filezilla
- 5. darbība: 5. darbība: vietnes izveide
- 6. darbība: 6. darbība: aizmugures (kolbas) izveide
- 7. darbība: 7. darbība: aparatūra
- 8. darbība: 8. darbība: izskaidrots kods
- 9. darbība: 9. darbība: lietas izveidošana
- 10. solis: pēdējie soļi
Video: ColorPicker: 10 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Šī 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.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
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
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
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
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
Š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:
Arduino brīdinājuma sistēma par automašīnas novietošanu atpakaļgaitā Soli pa solim: 4 soļi
Arduino brīdinājuma sistēma par automašīnas novietošanu atpakaļgaitā Soli pa solim: Šajā projektā es izveidošu vienkāršu Arduino automašīnas atpakaļgaitas stāvvietas sensora shēmu, izmantojot Arduino UNO un ultraskaņas sensoru HC-SR04. Šo uz Arduino bāzēto automašīnas reverso brīdinājuma sistēmu var izmantot autonomai navigācijai, robotu diapazonam un citiem diapazoniem
Soli pa solim datora veidošana: 9 soļi
Soli pa solim datora veidošana: Piegādes: Aparatūra: mātesplateCPU & CPU dzesētājs PSU (barošanas bloks) Krātuve (HDD/SSD) RAMGPU (nav nepieciešams) Korpuss Instrumenti: skrūvgriezis ESD rokassprādze/matermālā pasta ar aplikatoru
Trīs skaļruņu shēmas -- Soli pa solim apmācība: 3 soļi
Trīs skaļruņu shēmas || Soli pa solim apmācība: Skaļruņu ķēde pastiprina no vides saņemtos audio signālus uz MIC un nosūta to skaļrunim, no kura tiek radīts pastiprināts audio. Šeit es parādīšu trīs dažādus veidus, kā izveidot šo skaļruņu shēmu, izmantojot:
Arduino Halloween Edition - zombiju uznirstošais ekrāns (soļi ar attēliem): 6 soļi
Arduino Helovīna izdevums - zombiju uznirstošais ekrāns (soļi ar attēliem): Vai vēlaties Helovīnā nobiedēt savus draugus un radīt kliedzošu troksni? Vai arī vienkārši gribi uztaisīt labu palaidnību? Šis zombiju uznirstošais ekrāns to var izdarīt! Šajā pamācībā es iemācīšu jums, kā viegli izveidot izlecošus zombijus, izmantojot Arduino. HC-SR0
Akustiskā levitācija ar Arduino Uno soli pa solim (8 soļi): 8 soļi
Akustiskā levitācija ar Arduino Uno soli pa solim (8 soļi): ultraskaņas skaņas pārveidotāji L298N līdzstrāvas adaptera strāvas padeve ar vīriešu līdzstrāvas tapu Arduino UNOBreadboard un analogie porti koda konvertēšanai (C ++)