Sisukord:
- Tarvikud
- 1. samm: 1. samm: RPi OS -i installimine, SSH ja Interneti -ühenduse seadistamine
- 2. samm: 2. samm: tarkvara installimine RPi -le
- 3. samm: 3. samm: ühenduse loomine MySQL -i andmebaasiga, andmebaasi loomine
- 4. samm: 4. samm: Filezilla
- 5. samm: 5. samm: veebisaidi loomine
- 6. samm: 6. samm: taustaprogrammi loomine (kolb)
- Samm 7: samm 7: riistvara
- 8. samm: 8. samm: selgitatud kood
- 9. samm: 9. samm: juhtumi loomine
- 10. samm: viimased sammud
Video: ColorPicker: 10 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Selle projekti eesmärk on mõõta värve ja teisendada need teistesse värvisüsteemidesse. Kasutades ainult anduri antud RGB väärtusi, saate tõlkida HSL, CYMK, HEX ja lähima RAL -koodi (värvimisel kasutatav standard). See projekt nõuab põhiteadmisi Pythoni, MySQL, Linuxi ja Javascripti kohta.
Kui olete kursis ka Flaski raamistiku ja SocketIO -ga, peaks selle projekti kood olema teile hõlpsasti arusaadav.
Seda projekti saavad kasutada maalrid, sisekujundajad või lihtsalt kõik, kellel on vaja värve mõõta.
See projekt ei ole nii kallis ja maksab hinnanguliselt _ eurot, saatekulu ei sisalda.
Tarvikud
Selle jaotise saame jagada kaheks osaks:
- Riistvara
- Tarkvara
Riistvara
Kasutame järgmisi komponente
- HC04: Kaugusandur, kui kaugel me objektist mõõdame
- LCD ekraan 2x16
- LCD I2C moodul (HW061)
- TCS34725 värvianduri moodul (Adafruit)
- Valge LED
- Raspberry Pi 3 (mis tahes Raspberry Pi peaks töötama)
- 5x 1k oomi takisti
- 1x 220 või 330 oomi takisti
- SD -kaart 16 GB (14,4 GB)
Tarkvara
- Python IDE, nagu Visual Code või Pycharm (siin kasutatakse Pycharmi)
- MySQL töölaud
- Putty (allalaadimine Putty)
- Rufus või mõni muu SD -kaardi kirjutaja (Lae alla Rufus)
Hinnakujundus
See projekt on üsna odav, kui teil on juba Rapsberry Pi.
- HC04: alates umbes 2,5 eurost (Hiina) ja kuni 6 euroni kohalike kaupluste jaoks.
- LCD: Umbes 6-8 eurot.
- I2C moodul: odavalt alla 1 euro (Hiina), kuid kohalike poodide puhul kuni 4 eurot.
- TCS34725: umbes 9-12 eurot. Kõige kallim osa (välja arvatud RPi)
- Valge LED: ostetud hulgi, 20 LED -i hinnaga kuni 1 €
- Vaarika Pi: Sõltuvalt sellest, milline versioon, umbes 40 eurot
- Takistid: 0,10 € ühe takisti eest
- SD -kaart: umbes 8 eurot
Raspberry Pi toiteadapter ei kuulu hinna sisse, kuna see adapter on üsna tavaline.
Üldine hinnavahemik: umbes 70 eurot, kui lisate projekti Raspberry Pi ja ümbrise.
Korpuse ehitamiseks kasutasin kerget õhukest puitu. Taaskasutasin selle puidu mööblist. Materjal juhtumi jaoks on teie otsustada.
1. samm: 1. samm: RPi OS -i installimine, SSH ja Interneti -ühenduse seadistamine
Samm 1.1: Pildi installimine
Laadige pilt alla Raspberry Pi ametlikult saidilt. See pole tegelikult oluline, millise pildi installite. Selle projekti jaoks pole GUI -d vaja, kuna ühendame ainult SSH -ga.
Kirjutage pilt (tühjale) SD -kaardile (kõik kaardil olevad failid kustutatakse).
Kõigi SD -kaardile kirjutamiseks kasutame tööriista nimega "Rufus". Pärast pildi allalaadimist avage Rufus ja valige pildifail. Valige sihtketas ja kirjutage pilt draivi. See võib võtta aega.
> Rufus
Samm 1.2: SSH installimine
Järgmine samm on ühenduse loomine SD -kaardiga. Selleks peame lubama SSH.
Selleks, ilma monitorita, avage oma failiuurija ja avage SD -kaardi alglaadimissektsioon. Looge tühi fail nimega "ssh", ilma faililaiendita.
Avage ka "cmdline.txt"
Lisage faili lõppu "169.254.10.1" ja salvestage see.
Lahutage SD -kaart ja sisestage see Raspberry Pi -sse.
Nüüd saame Raspberry Pi ühendada toiteallikaga ning käivitada ja ühendada SSH abil.
SSH abil ühenduse loomiseks kasutame programmi "Putty". Enne seda ühendage oma RPi ja arvuti ehternet -kaabli abil. Avage Putty ja minge vahekaardile SSH ning sisestage see IP: 169.254.10.1. Klõpsake nuppu "Ühenda" ja teid ühendatakse.
> Pahtel
Raspberry Pi vaikimisi kasutatav sisselogimisnimi on kasutajanimena „pi” ja parooli jaoks „vaarikas”.
Samm 1.3: traadita ühendus
Teie Raspberry Pi on nüüd sisse lülitatud.
Samuti tahame RPi -ga ühenduse luua Wifi abil, nii et me ei vaja enam Etherneti kaablit.
Täitke järgmine rida:
'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'
See avab laiendatud õigustega tekstiredaktori "nano".
Lisage faili järgmised read:
võrk = {
ssid = "SSID"
psk = "Parool"
}
Asendage "SSID" oma WiFi -võrgu SSID -ga
Asendage "Parool" oma parooliga.
Seejärel tehke Ctrl+X ja valige suvand „jah”. Fail salvestatakse nüüd.
Nüüd peame võrguteenuse taaskäivitama
Täitke järgmised käsud:
- 'sudo -i'
- "sudo systemctl taaskäivitage võrk"
Saate oma Interneti -ühendust testida, kasutades käsku wget.
Näide: 'wget google.com'
> Wget käsk
2. samm: 2. samm: tarkvara installimine RPi -le
Selle projekti jaoks peame installima mõned teegid.
- Mariadb: MySQL andmebaas (sudo apt-get install mariadb-server)
- Adafruit raamatukogu värvisensorile: värvide mõõtmine (pip3 install adafruit-circuitpython-tcs34725)
- PHPmyAdmin: ('sudo apt install phpmyadmin', valige apache veebiserver)
Installige ka järgmised pip -teegid:
- flask_socketio
- kolb
- flask_cors
- pardal
- busio
- netiface
3. samm: 3. samm: ühenduse loomine MySQL -i andmebaasiga, andmebaasi loomine
Järgmine samm on luua ühendus MySQL andmebaasiga MySQL töölaua abil.
> IP a
Täitke käsk "ip a", nagu on näidatud ülaltoodud pildil (klõpsake linki)
Enamikul juhtudel kuvatakse 3 kirjet. Vajame kirjet „wlan0”. Kopeerige IP aadressi „inet” või selles näites „192.168.1.44” kõrval
. >> Loo uus ühendus
Nagu ülaltoodud pildil näidatud, looge uus ühendus järgmiste parameetritega (allpool olev pilt parameetrite jaoks)
> Ühenduse parameetrid
Ühendamiseks topeltklõpsake äsja loodud ühendust.
Kui kuvatakse viip, klõpsake "Jah".
See on endiselt tühi andmebaas, seega lisame mõned tabelid.
Esmalt looge skeem, selleks tehke vasakpoolsel paremklõps ja valige „Loo skeem”.
Andke skeemile nimi ja kinnitage.
Nüüd peame lisama tabelid. Laiendage skeemi ja paremklõpsake tabeleid.
Looge järgmised skeemid:
> Tabel 1: RALvärvid
> Tabel 2: Andurite tüübid
> Tabel 3: Mõõtmised (pildil kasutatakse "metingen", mõõtmiseks hollandi keeles)
> Tabel 4: Veebisaidi_andmed || Tabel 4 all
MySQL on relatsiooniline andmebaasisüsteem, mis tähendab, et saame tabelite vahel suhteid luua.
Esimene seos, mille peame looma, on 'sensor_type' ja 'mõõtmised'.
Nagu pildil näidatud, ühendage kaks klahvi.
> Muutke tabelit ja linki
Ärge unustage muudatusi salvestada, klõpsates alumises nurgas nuppu Rakenda.
Muutke ka tabelit „website_data” ja linkige „MetingID”.
Nüüd oleme tabelite loomise ja seoste loomisega valmis.
Andmete lisamine:
Tabel RALcolors on fikseeritud tabel, kus väärtused ei muutu kunagi. Saame need väärtused lisada
väga lihtsalt.
> Laadige alla Exceli fail
Laadige alla ülaltoodud Exceli fail ja valige kõik andmed ning kopeerige. Tehke nagu pildil
> Näita tabelit
'paremklõpsake' tabelil ja valige 'Kleebi read'. Andmete lisamiseks klõpsake alumises nurgas nuppu „Rakenda”.
Nüüd salvestatakse kõik RALvärvid andmebaasi.
Meil on vaja andmebaasi lisada ainult sensor_type.
> Sensortüübi andmed
Märkus: Anduri kirjeldus on hollandi keeles
4. samm: 4. samm: Filezilla
Raspberry Pi -ga hõlpsaks ühendamiseks ja failide edastamiseks saame kasutada Filezilla.
> Laadige alla Filezilla
Sisestage ühenduse üksikasjad ja ühendage. Nüüd saate paremal küljel faile teisaldada, lohistades need sisse.
> Githubi allikas
Laadige failid alla ülaltoodud githubi allikast.
5. samm: 5. samm: veebisaidi loomine
Veebisaidi hostimiseks kasutame PHPmyAdmin ja Apache2.
Raspberry Pi veebiserver kasutab juurina kataloogi '/var/www/html'.
Kui paigutate oma failid sinna, hostitakse neid Raspberry Pi IP -l. (IP = vt 'ip')
Vajalikud failid saate alla laadida minu githubi repost (eelmine samm)
Kleepige kausta '/var/www/html/' kõik failid kaustast Frontend.
>/var/www/html/
6. samm: 6. samm: taustaprogrammi loomine (kolb)
Veebisaidi taustaprogramm põhineb Flaskil.
Kõik failid leiate githubi repost.
Kopeerige kõik failid Raspberry Pi mis tahes kataloogi.
Näiteks '/home/pi/colorpicker.
Kataloogi loomiseks liikuge 'cd' abil sihtkataloogi ja käivitage 'mkdir'.
Praeguseks kõik. Koodi selgitatakse järgmistes sammudes.
Samm 7: samm 7: riistvara
> Allalaadimisskeem
Looge skeem, nagu ülaltoodud dokumendis näidatud.
MÄRKUS. Lisage ka üks valge LED koos ühe takistiga (220 või 330 oomi).
Riistvara selgitamine
HC04
HC04 andur kiirgab laineid, mis peegelduvad ja andur võtab need uuesti vastu.
Väljastamise ja vastuvõtmise vahelise aja delta arvutamisel saame arvutada kauguse.
Kaugus = ((Timestamp_recieve - Timestamp_emit) / helikiirus) / 2
Jagame kahega, sest laine peegeldab, st läbib vahemaa kaks korda.
LCD
RGB ja HEX kuvamiseks kasutame LCD -ekraani, samuti programmi käivitamisel IP -d.
Selle LCD jaoks ostsin I2C mooduli. Nüüd vajame ainult 4 juhet. SDA, SCL, GND, VCC
Selle LCD kasutamiseks kirjutasin Pythoni klassi, et seda oleks lihtsam kasutada.
TCS34725
See andur võimaldab teil värve mõõta. RGB väärtuse mõõtmiseks kasutame raamatukogu.
8. samm: 8. samm: selgitatud kood
Esikülg
Kasutajaliides koosneb kolmest põhiosast.
Esiteks on html -failid, mis moodustavad meie veebisaidi struktuuri, kuid ei sisalda või on minimaalse paigutusega.
Teiseks on meil css -failid või stiilifailid, mis on meie veebisaidi stiili ja paigutuse järgi.
Neid kahte on üsna lihtne lugeda ja mõista, mistõttu ma ei hakka neid selgitama.
Viimati on meil Javascript kahe raamatukoguga.
Kaks kasutatavat raamatukogu on SocketIO ja URLSearchParams.
SocketIO võimaldab teil saata sõnumeid taustaprogrammist kasutajaliidesesse ja vastupidi.
Sõnumeid saab saata ühele kliendile, aga ka mitmele kliendile (ringhääling)
> Pistikupesa IO Javascript
> Pesa IO Python
Ülaltoodud piltidel näete ühte selles projektis tehtud pistikupesaühendustest.
Sõnumite saatmise käsk on 'emit', vastuvõtmine toimub 'on' abil.
URLSearchParms võimaldab teil päringustringilt hõlpsalt väärtusi saada.
Päringstringi näide: example.com/index.html?id=1
URLSearchParams annab teile tagasi: {'id' = '1'}
> URLSearchParams näide
Taustaprogramm
Taustprogramm on täielikult kirjutatud Pythonis, koos hulga raamatukogudega.
Esimene raamatukogu, mille impordime, on „kolb”. Seda teeki on vaja API loomiseks ja kõigi MySQL andmebaasi CRUD -toimingute tegemiseks. CRUD tähistab Create Read Update Delete.
> Kolb
Ülaltoodud pilt näitab mõnda kolvi "marsruuti". Marsruudil surfates teete automaatselt 'GET' meetodi, kood käivitub ja saate väärtuse tagastamismeetodilt. On ka teisi meetodeid, näiteks POST ja DELETE. Selliste meetodite testimiseks vajate sellist programmi nagu Postman.
Järgmine imporditeek on SocketIO, mida selgitasin juba esiosas.
Järgmine on GPIO.
See võimaldab teil juhtida Rapsberry Pi GPIO nööpnõelu.
Kõige olulisemad käsud on järgmised:
- GPIO.setmode (GPIO. BCM) Valige tihvtide konfiguratsioon.
- GPIO.väljund (, GPIO. LOW või GPIO. HIGH) Kirjutage tihvtile LOW või HIGH.
- GPIO.setup (,) Määrake PIN -kood sisendiks või väljundiks või allalaadimiseks või allalaadimiseks
Järgmisena on meil lõime.
Ainsad käsud, mida kasutame, on järgmised:
- Teema (sihtmärk =)
- .start ()
Lõimede abil saame korraga käivitada mitu koodi eksemplari. Nii saame mõõta kaugust ja samal ajal kuulata sissetulevaid pistikupesa io sõnumeid.
Esimene käsk Thread (target =) loob lõimeklassi, mille käivitamisel 'start ()' käivitab funktsiooni märksõnas 'target', mis anti klassi loomisel.
Järgmisena on meil värvianduri raamatukogu, mis on üsna sirgjooneline. Ma ei seleta seda raamatukogu, sest meetodid on koodis väga selged ja selgitatud.
Viimati on meil võrguvõrgud. See võimaldab meil hankida traadita ja traadiga ühenduse jaoks kasutatava IP -aadressi.
Viimati tegin ise mõned klassid kaugusanduri, LED -i ja LCD -ekraani jaoks.
Ma ei selgita, kuidas need toimivad.
9. samm: 9. samm: juhtumi loomine
Selle projekti jaoks lõin puidust korpuse.
Puit on kerge, õhuke ja ei maksa palju.
Mõõtmetena kasutasin:
- Kõrgus: 5 cm
- Laius: 10,5 cm
- Pikkus: 12,5 cm
Andurite jaoks peate lisama 2 auku ja asetama need üksteise kõrvale.
Pärast korpuse loomist paigaldage andurid, LED ja LCD.
10. samm: viimased sammud
Kõik on põhimõtteliselt tehtud.
Nüüd peame vaid veenduma, et meie kood käivitub hetkel, mil ühendame oma toiteallika.
Selleks on palju meetodeid.
> Näited
Kasutame esimest meetodit:
Käivitage see rida: 'sudo nano /etc/rc.local'
Koodi käivitamiseks lisage oma käsk: 'sudo python3'
Salvestage fail klahvikombinatsiooni Ctrl-X abil.
Kui teil on redigeerimisega probleeme. Tehke seda sammu uuesti, kuid käivitage kõigepealt sudo -i.
Soovitan:
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Akustiline levitatsioon Arduino Unoga samm-sammult (8 sammu): 8 sammu
Akustiline levitatsioon Arduino Uno abil samm-sammult (8 sammu): ultraheliheli muundurid L298N DC-naissoost adapteri toiteallikas isase alalisvoolupistikuga Arduino UNOBreadboard ja analoogpordid koodi teisendamiseks (C ++)
4G/5G HD -video otseülekanne DJI droonilt madala latentsusega [3 sammu]: 3 sammu
4G/5G HD-video otseülekanne DJI droonilt madala latentsusega [3 sammu]: Järgnev juhend aitab teil saada HD-kvaliteediga otseülekandeid peaaegu igalt DJI droonilt. FlytOSi mobiilirakenduse ja veebirakenduse FlytNow abil saate alustada drooni video voogesitust
Polt - DIY juhtmeta laadimise öökell (6 sammu): 6 sammu (piltidega)
Bolt - DIY juhtmeta laadimise öökell (6 sammu): Induktiivsed laadimised (tuntud ka kui juhtmeta laadimine või juhtmeta laadimine) on traadita jõuülekande tüüp. See kasutab kaasaskantavatele seadmetele elektrit pakkumiseks elektromagnetilist induktsiooni. Kõige tavalisem rakendus on Qi traadita laadimisst
4 sammu aku sisemise takistuse mõõtmiseks: 4 sammu
4 sammu aku sisemise takistuse mõõtmiseks: Siin on 4 lihtsat sammu, mis aitavad mõõta taigna sisemist takistust