Turinys:
- Prekės
- 1 veiksmas: 1 veiksmas: RPi OS diegimas, SSH ir interneto prieigos konfigūravimas
- 2 veiksmas: 2 veiksmas: programinės įrangos diegimas RPi
- 3 veiksmas: 3 veiksmas: prisijungimas prie „MySQL“duomenų bazės, duomenų bazės kūrimas
- 4 žingsnis: 4 žingsnis: „Filezilla“
- 5 veiksmas: 5 veiksmas: svetainės sukūrimas
- 6 veiksmas: 6 žingsnis: užpakalinės dalies (kolbos) sukūrimas
- 7 veiksmas: 7 žingsnis: aparatinė įranga
- 8 veiksmas: 8 žingsnis: paaiškintas kodas
- 9 veiksmas: 9 veiksmas: bylos sukūrimas
- 10 žingsnis: paskutiniai žingsniai
Video: „ColorPicker“: 10 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Šio projekto tikslas - išmatuoti spalvas ir jas išversti į kitas spalvų sistemas. Naudodami tik jutiklio pateiktas RGB reikšmes, galite išversti į HSL, CYMK, HEX ir artimiausią RAL kodą (standartas, naudojamas dažams). Šis projektas reikalauja pagrindinių žinių apie „Python“, „MySQL“, „Linux“ir „Javascript“.
Jei taip pat esate susipažinę su „Flask“sistema ir „SocketIO“, šio projekto kodas jums turėtų būti lengvai suprantamas.
Šį projektą gali naudoti tapytojai, interjero dizaineriai ar tiesiog visi, kuriems reikia išmatuoti spalvas.
Šis projektas nėra toks brangus ir kainuoja apie _ eurų, be pristatymo.
Prekės
Šį skyrių galime padalyti į dvi dalis:
- Techninė įranga
- Programinė įranga
Techninė įranga
Mes naudojame šiuos komponentus
- HC04: atstumo jutiklis, kiek mes matuojame nuo objekto
- LCD ekranas 2x16
- LCD I2C modulis (HW061)
- TCS34725 Spalvų jutiklio modulis („Adafruit“)
- Baltas LED
- „Raspberry Pi 3“(bet koks „Raspberry Pi“turėtų veikti)
- 5x 1k omo rezistorius
- 1x 220 arba 330 omų rezistorius
- SD kortelė 16 GB (14,4 GB)
Programinė įranga
- „Python IDE“, pvz., „Visual Code“arba „Pycharm“(čia naudojamas „Pycharm“)
- „MySQL“darbastalis
- Putty (parsisiųsti Putty)
- „Rufus“ar bet kuris kitas SD kortelių rašytojas (atsisiųskite „Rufus“)
Kainodara
Šis projektas yra gana pigus, jei jau turite „Rapsberry Pi“.
- HC04: nuo maždaug 2,5 euro (Kinija) ir iki 6 eurų daugiau vietinių parduotuvių.
- LCD: apie 6-8 eurus.
- „I2C“modulis: kaip pigus iki 1 euro (Kinija), bet iki 4 eurų - daugiau vietinių parduotuvių.
- TCS34725: apie 9–12 eurų. Brangiausia dalis (išskyrus RPi)
- Balta lemputė: nupirkta dideliais kiekiais, 20 šviesos diodų, kurių kaina yra tik 1 €
- „Raspberry Pi“: priklausomai nuo versijos, apie 40 eurų
- Rezistoriai: 0,10 € už vieną rezistorių
- SD kortelė: apie 8 eurus
„Raspberry Pi“maitinimo adapteris neįskaičiuotas į kainą, nes šis adapteris yra gana dažnas.
Bendras kainų diapazonas: apie 70 eurų, jei įtraukėte „Raspberry Pi“ir projekto dėklą.
Norėdami sukurti korpusą, aš naudoju lengvą ploną medieną. Šią medieną perdirbau iš baldų. Medžiaga bylai priklauso nuo jūsų.
1 veiksmas: 1 veiksmas: RPi OS diegimas, SSH ir interneto prieigos konfigūravimas
1.1 veiksmas: vaizdo įdiegimas
Atsisiųskite paveikslėlį iš oficialios „Raspberry Pi“svetainės. Visiškai nesvarbu, kokį vaizdą įdiegsite. Šiam projektui GUI nereikia, nes prisijungsime tik naudodami SSH.
Įrašykite vaizdą į (tuščią) SD kortelę (visi kortelėje esantys failai bus ištrinti).
Norėdami viską įrašyti į SD kortelę, naudosime įrankį „Rufus“. Atsisiuntę vaizdą, atidarykite „Rufus“ir pasirinkite vaizdo failą. Pasirinkite tikslinį diską ir įrašykite vaizdą į diską. Tai gali užtrukti.
> Rufus
1.2 veiksmas: SSH diegimas
Kitas žingsnis - sukurti ryšį su SD kortele. Norėdami tai padaryti, turime įjungti SSH.
Norėdami tai padaryti nenaudodami monitoriaus, atidarykite failų naršyklę ir atidarykite SD kortelės įkrovos skaidinį. Sukurkite tuščią failą, pavadintą „ssh“, be failo plėtinio.
Taip pat atidarykite „cmdline.txt“
Failo pabaigoje pridėkite „169.254.10.1“ir išsaugokite.
Atjunkite SD kortelę ir įdėkite ją į „Raspberry Pi“.
Dabar galime prijungti „Raspberry Pi“prie maitinimo šaltinio ir paleisti bei prisijungti naudodami SSH.
Norėdami prisijungti naudodami SSH, naudojame programą „Glaistas“. Prieš tai prijunkite RPi ir kompiuterį naudodami ehternet kabelį. Atidarykite „Putty“ir eikite į skirtuką SSH ir užpildykite šį IP: 169.254.10.1. Spustelėkite „prisijungti“ir būsite prisijungę.
> Glaistas
Numatytasis „Raspberry Pi“naudojamas prisijungimo vardas yra „pi“kaip vartotojo vardas ir „avietė“kaip slaptažodis.
1.3 veiksmas: belaidis ryšys
„Raspberry Pi“dabar įjungtas.
Mes taip pat norime prisijungti prie RPi naudodami „Wifi“, todėl mums nebereikia eterneto kabelio.
Vykdykite šią eilutę:
'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'
Tai atvers „nano“teksto redaktorių su padidintomis teisėmis.
Į failą pridėkite šias eilutes:
tinklas = {
ssid = "SSID"
psk = "Slaptažodis"
}
Pakeiskite „SSID“savo „Wifi“tinklo SSID
Pakeiskite „Slaptažodį“savo slaptažodžiu.
Tada paspauskite Ctrl+X ir pasirinkite parinktį „taip“. Dabar failas bus išsaugotas.
Dabar turime iš naujo paleisti tinklo paslaugą
Vykdykite šias komandas:
- 'sudo -i'
- „sudo systemctl iš naujo paleisti tinklą“
Galite patikrinti savo interneto ryšį naudodami komandą wget.
Pavyzdys: „wget google.com“
> Wget komanda
2 veiksmas: 2 veiksmas: programinės įrangos diegimas RPi
Šiam projektui turime įdiegti kelias bibliotekas.
- „Mariadb“: „MySQL“duomenų bazė (sudo apt-get install mariadb-server)
- „Adafruit“biblioteka spalvų jutikliui: spalvų matavimas (pip3 install adafruit-circuitpython-tcs34725)
- PHPmyAdmin: ('sudo apt install phpmyadmin', pasirinkite apache žiniatinklio serverį)
Taip pat įdiekite šias „pip“bibliotekas:
- flask_socketio
- kolba
- flask_cors
- lenta
- busio
- tinklai
3 veiksmas: 3 veiksmas: prisijungimas prie „MySQL“duomenų bazės, duomenų bazės kūrimas
Kitas žingsnis yra prisijungti prie „MySQL“duomenų bazės naudojant „MySQL“darbastalį.
> IP a
Vykdykite komandą „ip a“, kaip parodyta aukščiau esančiame paveikslėlyje (spustelėkite nuorodą)
Daugeliu atvejų bus rodomi 3 įrašai. Mums reikia įrašo „wlan0“. Nukopijuokite IP šalia „inet“arba šiame pavyzdyje „192.168.1.44“
> Sukurti naują ryšį
Kaip parodyta aukščiau esančiame paveikslėlyje, sukurkite naują ryšį su šiais parametrais (paveikslėlis žemiau, skirtas paramsams)
> Ryšio parametrai
Norėdami prisijungti, dukart spustelėkite naujai sukurtą ryšį.
Jei pasirodys raginimas, spustelėkite „Taip“.
Tai dar tuščia duomenų bazė, todėl pridėkime keletą lentelių.
Pirmiausia sukurkite schemą, kad tai padarytumėte, kairėje pusėje dešiniuoju pelės mygtuku spustelėkite ir pasirinkite „sukurti schemą“.
Suteikite schemai pavadinimą ir patvirtinkite.
Dabar turime pridėti lentelių. Išplėskite schemą ir „dešiniuoju pelės mygtuku spustelėkite“, „lentelės“.
Sukurkite šias schemas:
> 1 lentelė: RAL spalvos
> 2 lentelė. Jutiklių tipai
> 3 lentelė. Matavimai (paveikslėlyje naudojamas „metingen“, olandų - matavimams)
> 4 lentelė. Tinklalapio duomenys || 4 lentelė apačioje
„MySQL“yra santykių duomenų bazių sistema, tai reiškia, kad galime sukurti ryšius tarp lentelių.
Pirmasis ryšys, kurį turime sukurti, yra tarp „sensor_type“ir „matavimų“.
Kaip parodyta paveikslėlyje, susiekite du raktus.
> Redaguoti lentelę ir nuorodų klavišus
Nepamirškite išsaugoti pakeitimų spustelėdami „Taikyti“apatiniame kampe.
Taip pat redaguokite lentelę „website_data“ir susiekite „MetingID“.
Dabar mes baigėme kurti lenteles ir kurti ryšius.
Pridedami duomenys:
RALcolors lentelė yra fiksuota lentelė, kurioje vertės niekada nesikeis. Galime pridėti šias vertes
labai lengvai.
> Atsisiųskite „Excel“failą
Atsisiųskite aukščiau esantį „Excel“failą ir pasirinkite visus duomenis bei „nukopijuokite“. Daryk kaip paveikslėlyje
> Rodyti lentelę
dešiniuoju pelės mygtuku spustelėkite lentelę ir pasirinkite „Įklijuoti eilutes“. Norėdami pridėti duomenis, apatiniame kampe spustelėkite „Taikyti“.
Dabar visos RAL spalvos išsaugomos duomenų bazėje.
Dabar į duomenų bazę turime pridėti tik sensor_type.
> Sensorinio tipo duomenys
Pastaba: jutiklio aprašymas yra olandų kalba
4 žingsnis: 4 žingsnis: „Filezilla“
Norėdami lengvai prisijungti prie „Raspberry Pi“ir perkelti failus, galime naudoti „Filezilla“.
> Atsisiųskite „Filezilla“
Įveskite ryšio informaciją ir prisijunkite. Dešinėje pusėje dabar galite perkelti failus vilkdami juos.
> „Github“šaltinis
Atsisiųskite failus iš aukščiau esančio „github“šaltinio.
5 veiksmas: 5 veiksmas: svetainės sukūrimas
Svetainės prieglobai naudojame PHPmyAdmin ir Apache2.
„Raspberry Pi“žiniatinklio serveris kaip katalogą naudoja katalogą „/var/www/html“.
Jei ten įdėsite failus, jie bus priglobti „Raspberry Pi“IP. (IP = žr. „IP“)
Reikiamus failus galite atsisiųsti iš mano „github“repo (ankstesnis žingsnis)
„/Var/www/html/“įklijuokite visus failus iš aplanko „Frontend“.
>/var/www/html/
6 veiksmas: 6 žingsnis: užpakalinės dalies (kolbos) sukūrimas
Svetainės užpakalinė dalis sukurta naudojant kolbą.
Visus failus galite rasti „github repo“.
Nukopijuokite visus failus į bet kurį „Raspberry Pi“katalogą.
Pavyzdžiui, „/home/pi/colorpicker“.
Norėdami sukurti katalogą, eikite į paskirties katalogą naudodami „cd“ir paleiskite „mkdir“.
Tai kol kas viskas. Kodas bus paaiškintas tolesniuose veiksmuose.
7 veiksmas: 7 žingsnis: aparatinė įranga
> Atsisiuntimo schema
Sukurkite schemą, kaip parodyta aukščiau esančiame dokumente.
PASTABA: Taip pat pridėkite vieną baltą šviesos diodą su vienu rezistoriumi (220 arba 330 omų).
Aparatūros paaiškinimas
HC04
HC04 jutiklis skleidžia bangas, kurios atspindi ir vėl jas priima.
Apskaičiuodami laiko delta tarp išleidimo ir gavimo, galime apskaičiuoti atstumą.
Atstumas = (((laiko žymos_ gavimas - laiko žymos_emitas) / garso greitis) / 2
Mes dalijamės iš dviejų, nes banga atspindi, o tai reiškia, kad atstumą nukeliauja du kartus.
LCD
Mes naudojame LCD ekraną RGB ir HEX rodymui, taip pat IP, kai programa paleidžiama.
Šiam LCD ekranui nusipirkau I2C modulį. Dabar mums reikia tik 4 laidų. SDA, SCL, GND, VCC
Norėdami naudoti šį LCD, parašiau „Python“klasę, kad būtų lengviau ja naudotis.
TCS34725
Šis jutiklis leidžia matuoti spalvas. RGB reikšmei matuoti naudojame biblioteką.
8 veiksmas: 8 žingsnis: paaiškintas kodas
Sąsaja
Priekinė dalis susideda iš trijų pagrindinių dalių.
Pirmiausia yra html failai, kurie sukuria mūsų svetainės struktūrą, tačiau juose nėra minimalaus išdėstymo.
Antra, mes turime css failus arba stiliaus failus, kurių stilius ir išdėstymas yra mūsų svetainėje.
Juos labai lengva skaityti ir suprasti, todėl aš jų nepaaiškinsiu.
Galiausiai turime „Javascript“su dviem bibliotekomis.
Dvi naudojamos bibliotekos yra „SocketIO“ir „URLSearchParams“.
„SocketIO“leidžia siųsti pranešimus iš vidinės sistemos į priekinę ir atvirkščiai.
Pranešimai gali būti siunčiami vienam klientui, bet taip pat keliems klientams (transliacija)
> „Socket IO Javascript“
> „Socket IO Python“
Aukščiau esančiuose paveikslėliuose galite pamatyti vieną iš šiame projekte atliktų lizdo jungčių.
Komanda siųsti pranešimus yra „emit“, priėmimas atliekamas „on“.
„URLSearchParms“leidžia lengvai gauti vertes iš užklausos eilutės.
Užklausos eilutės pavyzdys: example.com/index.html?id=1
„URLSearchParams“jums grąžins: {'id' = '1'}
> URLSearchParams pavyzdys
Užpakalinė programa
Užpakalinė programa yra visiškai parašyta „Python“, su daugybe bibliotekų.
Pirmoji biblioteka, kurią importuojame, yra „Kolba“. Ši biblioteka reikalinga norint sukurti API, atlikti visus CRUD veiksmus MySQL duomenų bazei. CRUD reiškia „Create Read Update Delete“.
> Kolba
Aukščiau esančiame paveikslėlyje parodyta keletas kolbinių „maršrutų“. Naršydami maršrutą automatiškai atliksite „GET“metodą, kodas bus įvykdytas ir gausite vertę iš grąžinimo metodo. Taip pat yra kitų metodų, tokių kaip „POST“ir „DELETE“. Norėdami išbandyti tokius metodus, jums reikės tokios programos kaip „Postman“.
Kita importo biblioteka yra „SocketIO“, kurią paaiškinau jau priekinėje dalyje.
Kitas yra GPIO.
Tai leidžia valdyti „Rapsberry Pi“GPIO kaiščius.
Svarbiausios komandos yra:
- GPIO.setmode (GPIO. BCM) Pasirinkite kaiščių konfigūraciją.
- GPIO.output (, GPIO. LOW arba GPIO. HIGH) Į kaištį įrašykite LOW arba HIGH.
- GPIO.setup (,) Nustatykite PIN kodą kaip įvestį ar išvestį arba išskleidžiamąjį arba atsisiuntimą
Toliau turime sriegimą.
Vienintelės komandos, kurias naudojame, yra šios:
- Siūlas (tikslas =)
- .start ()
Naudodami gijas, vienu metu galime paleisti kelis kodo egzempliorius. Tokiu būdu galime išmatuoti atstumą ir tuo pačiu metu klausytis gaunamų lizdo io pranešimų.
Pirmoji komanda „Thread“(target =) sukurs „Thread“klasę, kuri, pradėjus naudoti „start ()“, paleis raktinio žodžio „target“funkciją, kuri buvo duota kuriant klasę.
Toliau turime spalvų jutiklio biblioteką, kuri yra gana tiesi. Aš nepaaiškinsiu šios bibliotekos, nes metodai yra labai aiškūs ir paaiškinti kodekse.
Paskutinį kartą turime tinklus. Tai leidžia mums nuskaityti belaidžio ir laidinio ryšio IP adresą.
Paskutinį kartą aš pats sukūriau atstumo jutiklio, šviesos diodo ir skystųjų kristalų klases.
Aš nepaaiškinsiu, kaip jie veikia.
9 veiksmas: 9 veiksmas: bylos sukūrimas
Šiam projektui sukūriau medinę dėžę.
Mediena yra lengva, plona ir nekainuoja daug.
Kaip matmenis naudojau:
- Aukštis: 5 cm
- Plotis: 10,5 cm
- Ilgis: 12,5 cm
Jutikliams reikia pridėti 2 skyles ir pastatyti jas viena šalia kitos.
Sukūrę dėklą, įdiekite jutiklius, LED ir LCD.
10 žingsnis: paskutiniai žingsniai
Viskas iš esmės padaryta.
Dabar turime tik įsitikinti, kad mūsų kodas prasideda, kai prijungiame maitinimo šaltinį.
Tam yra daugybė metodų.
> Pavyzdžiai
Mes naudosime pirmąjį metodą:
Vykdykite šią eilutę: „sudo nano /etc/rc.local“
Pridėkite komandą, kad paleistumėte kodą: „sudo python3“
Išsaugokite failą naudodami „Ctrl-X“.
Jei redaguojant kyla problemų. Pakartokite šį veiksmą, bet pirmiausia paleiskite „sudo -i“.
Rekomenduojamas:
„Covid“saugos šalmas 1 dalis: „Tinkercad“grandinių įvadas!: 20 žingsnių (su nuotraukomis)
„Covid“saugos šalmas 1 dalis: „Tinkercad“grandinių įvadas!: Sveiki, drauge! Šioje dviejų dalių serijoje sužinosime, kaip naudotis „Tinkercad“grandinėmis - linksma, galinga ir edukacinė priemonė, skirta sužinoti, kaip veikia grandinės! Vienas iš geriausių mokymosi būdų yra tai padaryti. Taigi, pirmiausia suprojektuosime savo projektą:
Žingsnių skaitiklis - mikro: bitas: 12 žingsnių (su paveikslėliais)
Žingsnių skaitiklis - „Micro: Bit“: šis projektas bus žingsnių skaitiklis. Savo žingsniams matuoti naudosime „Micro: Bit“įmontuotą akselerometro jutiklį. Kiekvieną kartą purtant „Micro: Bit“, prie skaičiaus pridėsime 2 ir parodysime jį ekrane
MIDI žingsnių sąsaja: 12 žingsnių (su paveikslėliais)
„MIDI Step“sąsaja: versija ispanų kalba. Šioje instrukcijoje parodysime, kaip sukurti šviesos ir garso sąsają, kurią galima naudoti norint groti „Simon Says“ir kaip MIDI sąsaja. Abu režimai bus žaidžiami kojomis. Fonas Projektas gimė, nes
4 žingsnių skaitmeninis sekos sekiklis: 19 žingsnių (su nuotraukomis)
4 žingsnių skaitmeninis sequencer: CPE 133, Cal Poly San Luis Obispo Projekto kūrėjai: Jayson Johnston ir Bjorn NelsonŠių dienų muzikos industrijoje, viena iš dažniausiai naudojamų “ instrumentų “ yra skaitmeninis sintezatorius. Kiekvienas muzikos žanras, nuo hip-hopo iki pop ir vakaro
Nešiojamas reklamos ženklas pigiai vos 10 žingsnių !!: 13 žingsnių (su nuotraukomis)
Nešiojamas reklamos ženklas pigiai vos per 10 žingsnių !!: Sukurkite savo pigų, nešiojamą reklamos ženklą. Naudodami šį ženklą, bet kurioje miesto vietoje galite bet kur rodyti savo pranešimą ar logotipą. Ši instrukcija yra atsakas į/patobulinimą/pakeitimą: https://www.instructables.com/id/Low-Cost-Illuminated