Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Vaihe 1: RPi -käyttöjärjestelmän asentaminen, SSH: n ja Internet -yhteyden määrittäminen
- Vaihe 2: Vaihe 2: Ohjelmiston asentaminen RPi -laitteeseen
- Vaihe 3: Vaihe 3: Yhteyden muodostaminen MySQL -tietokantaan, tietokannan luominen
- Vaihe 4: Vaihe 4: Filezilla
- Vaihe 5: Vaihe 5: Verkkosivuston luominen
- Vaihe 6: Vaihe 6: Taustaohjelman (pullo) luominen
- Vaihe 7: Vaihe 7: Laitteisto
- Vaihe 8: Vaihe 8: Koodi selitetty
- Vaihe 9: Vaihe 9: Kotelon luominen
- Vaihe 10: Viimeiset vaiheet
Video: ColorPicker: 10 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Tämän projektin tavoitteena on mitata värejä ja kääntää ne muihin värijärjestelmiin. Käyttämällä vain anturin antamia RGB -arvoja voit kääntää HSL-, CYMK-, HEX- ja lähimmän RAL -koodin (standardi, jota käytetään maalissa). Tämä projekti vaatii perustiedot Pythonista, MySQL: stä, Linuxista ja Javascriptista.
Jos tunnet myös Flask -kehyksen ja SocketIO: n, tämän projektin koodin pitäisi olla sinulle helposti ymmärrettävä.
Tätä projektia voivat käyttää maalarit, sisustussuunnittelijat tai kaikki, jotka tarvitsevat värien mittaamista.
Tämä projekti ei ole niin kallis ja maksaa arviolta _ euroa, ei sisällä toimituskuluja.
Tarvikkeet
Voimme jakaa tämän osan kahteen osaan:
- Laitteisto
- Ohjelmisto
Laitteisto
Käytämme seuraavia komponentteja
- HC04: Etäisyysanturi, kuinka kauas mittaamme kohteesta
- LCD -näyttö 2x16
- LCD I2C -moduuli (HW061)
- TCS34725 Värianturimoduuli (Adafruit)
- Valkoinen LED
- Raspberry Pi 3 (minkä tahansa Raspberry Pi: n pitäisi toimia)
- 5x 1k ohmin vastus
- 1x 220 tai 330 ohmin vastus
- SD -kortti 16 Gt (14,4 Gt)
Ohjelmisto
- Python IDE, kuten Visual Code tai Pycharm (tässä käytetään Pycharmia)
- MySQL -työpöytä
- Putty (Lataa Putty)
- Rufus tai mikä tahansa muu SD -kortin kirjoittaja (Lataa Rufus)
Hinnoittelu
Tämä projekti on melko halpa, jos sinulla on jo Rapsberry Pi.
- HC04: Alkaen noin 2,5 euroa (Kiina) ja jopa 6 euroa enemmän paikallisia kauppoja.
- LCD: noin 6-8 euroa.
- I2C -moduuli: Halpa alle 1 € (Kiina), mutta jopa 4 € enemmän paikallisia kauppoja.
- TCS34725: Noin 9-12 euroa. Kallein osa (pois lukien RPi)
- Valkoinen led: Ostettu irtotavarana, 20 LEDiä jopa 1 eurosta
- Raspberry Pi: Versiosta riippuen noin 40 euroa
- Vastukset: 0,10 € yksi vastus
- SD -kortti: noin 8 €
Raspberry Pi -laitteen virtalähde ei sisälly hintaan, koska tämä sovitin on melko yleinen.
Yleinen hintaluokka: noin 70 €, jos otat mukaan Raspberry Pi: n ja projektin kotelon.
Kotelon rakentamiseen käytin kevyttä ohutta puuta. Kierrätin tämän puun huonekaluista. Kotelon materiaali on sinun.
Vaihe 1: Vaihe 1: RPi -käyttöjärjestelmän asentaminen, SSH: n ja Internet -yhteyden määrittäminen
Vaihe 1.1: Kuvan asentaminen
Lataa kuva Raspberry Pi: n viralliselta sivustolta. Ei ole väliä, minkä kuvan asennat. Tässä projektissa graafista käyttöliittymää ei tarvita, koska muodostamme yhteyden vain SSH: n avulla.
Kirjoita kuva (tyhjälle) SD -kortille (kaikki kortilla olevat tiedostot poistetaan).
Kirjoittaaksemme kaiken SD -kortille käytämme työkalua nimeltä Rufus. Kun olet ladannut kuvan, avaa Rufus ja valitse kuvatiedosto. Valitse kohdeasema ja kirjoita kuva asemaan. Tämä voi kestää jonkin aikaa.
> Rufus
Vaihe 1.2: SSH: n asennus
Seuraava vaihe on yhteyden luominen SD -kortille. Tätä varten meidän on otettava SSH käyttöön.
Voit tehdä tämän ilman näyttöä avaamalla tiedostonhallinnan ja avaamalla SD -kortin käynnistysosion. Luo tyhjä tiedosto nimeltä "ssh" ilman tiedostopääte.
Avaa myös "cmdline.txt"
Lisää "169.254.10.1" tiedoston loppuun ja tallenna se.
Irrota SD -kortti ja aseta se Raspberry Pi -laitteeseen.
Nyt voimme yhdistää Raspberry Pi virtalähteeseen ja käynnistää ja muodostaa yhteyden SSH: n avulla.
Yhdistämiseen SSH: n avulla käytämme ohjelmaa "Putty". Liitä RPi ja tietokone ehternet -kaapelilla ennen kuin teet sen. Avaa Putty ja siirry SSH -välilehdelle ja täytä tämä IP -osoite: 169.254.10.1. Napsauta 'yhdistä' ja sinut yhdistetään.
> kitti
Raspberry Pi: n käyttämä oletuskirjautuminen on 'pi' käyttäjänimellä ja 'vadelma' salasanalla.
Vaihe 1.3: Langaton yhteys
Raspberry Pi -laitteeseen on nyt kytketty virta.
Haluamme myös muodostaa yhteyden RPi: hen Wi -Fi -yhteyden avulla, joten et tarvitse enää ethernet -kaapelia.
Suorita seuraava rivi:
'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'
Tämä avaa nano -tekstieditorin, jolla on laajennetut oikeudet.
Lisää seuraavat rivit tiedostoon:
verkko = {
ssid = "SSID"
psk = "Salasana"
}
Korvaa "SSID" Wifi -verkon SSID: llä
Korvaa "Salasana" salasanallasi.
Tee sitten Ctrl+X ja valitse kyllä -vaihtoehto. Tiedosto tallennetaan nyt.
Nyt meidän on käynnistettävä verkkopalvelu uudelleen
Suorita seuraavat komennot:
- 'sudo -i'
- 'sudo systemctl käynnistä verkko uudelleen'
Voit testata Internet -yhteyden wget -komennolla.
Esimerkki: wget google.com
> Wget -komento
Vaihe 2: Vaihe 2: Ohjelmiston asentaminen RPi -laitteeseen
Tätä projektia varten meidän on asennettava muutama kirjasto.
- Mariadb: MySQL-tietokanta (sudo apt-get install mariadb-server)
- Adafruit-kirjasto värianturille: Värien mittaaminen (pip3 install adafruit-circuitpython-tcs34725)
- PHPmyAdmin: ('sudo apt install phpmyadmin', valitse apache -verkkopalvelin)
Asenna myös seuraavat pip -kirjastot:
- flask_socketio
- pullo
- flask_cors
- aluksella
- busio
- netifasseja
Vaihe 3: Vaihe 3: Yhteyden muodostaminen MySQL -tietokantaan, tietokannan luominen
Seuraava vaihe on muodostaa yhteys MySQL -tietokantaan MySQL -työpöydän avulla.
> IP a
Suorita komento 'ip a, kuten yllä olevassa kuvassa näkyy (napsauta linkkiä)
Useimmissa tilanteissa näytetään 3 merkintää. Tarvitsemme wlan0 -merkinnän. Kopioi IP -osoite "inet" tai tässä esimerkissä "192.168.1.44"
> Luo uusi yhteys
Luo uusi yhteys seuraavien parametrien kanssa (kuten yllä olevassa kuvassa näkyy) (Kuva alla paramille)
> Yhteysparametrit
Muodosta yhteys kaksoisnapsauttamalla äskettäin luotua yhteyttä.
Jos kehote tulee näkyviin, napsauta Kyllä.
Tämä on edelleen tyhjä tietokanta, joten lisätään muutamia taulukoita.
Luo ensin malli, voit tehdä sen napsauttamalla vasemmanpuoleista hiiren kakkospainiketta ja valitsemalla Luo kaava.
Anna skeemalle nimi ja vahvista.
Nyt meidän on lisättävä taulukot. Laajenna kaava ja napsauta hiiren kakkospainikkeella taulukkoja.
Luo seuraavat mallit:
> Taulukko 1: RAL -värit
> Taulukko 2: Anturityypit
> Taulukko 3: Mittaukset (kuvassa käytetään "metingen", hollanniksi mittauksiin)
> Taulukko 4: Verkkosivuston tiedot || Taulukko 4 alhaalla
MySQL on relaatiotietokantajärjestelmä, mikä tarkoittaa, että voimme luoda suhteita taulukoiden välille.
Ensimmäinen suhde, joka meidän on luotava, on "sensor_type" ja "mittaukset".
Yhdistä kaksi näppäintä kuvan mukaisesti.
> Muokkaa taulukkoa ja linkkinäppäimiä
Muista tallentaa muutokset napsauttamalla alareunan Käytä -painiketta.
Muokkaa myös "website_data" -taulukkoa ja linkitä MetingID.
Nyt olemme luoneet taulukot ja luoneet suhteet.
Tietojen lisääminen:
RALcolors -taulukko on kiinteä taulukko, jossa arvot eivät koskaan muutu. Voimme lisätä nämä arvot
tosi helposti.
> Lataa Excel -tiedosto
Lataa yllä oleva Excel -tiedosto ja valitse kaikki tiedot ja "kopioi". Tee kuten kuvassa
> Näytä taulukko
napsauta taulukkoa hiiren kakkospainikkeella ja valitse Liitä rivit. Lisää tiedot napsauttamalla alareunassa olevaa Käytä -painiketta.
Nyt kaikki RAL -värit tallennetaan tietokantaan.
Meidän tarvitsee vain lisätä sensor_type tietokantaan nyt.
> Aistityypin tiedot
Huomautus: Anturin kuvaus on hollanniksi
Vaihe 4: Vaihe 4: Filezilla
Voimme muodostaa yhteyden Raspberry Pi: hen ja siirtää tiedostoja helposti käyttämällä Filezillaa.
> Lataa Filezilla
Kirjoita yhteystiedot ja muodosta yhteys. Oikealla puolella voit nyt siirtää tiedostoja vetämällä ne sisään.
> Github -lähde
Lataa tiedostot yllä olevasta github -lähteestä.
Vaihe 5: Vaihe 5: Verkkosivuston luominen
Sivuston isännöintiin käytämme PHPmyAdminia ja Apache2: ta.
Raspberry Pi -verkkopalvelin käyttää hakemistoa '/var/www/html' juurina.
Jos sijoitat tiedostosi sinne, ne isännöidään Raspberry Pi: n IP -osoitteella. (IP = katso 'ip')
Voit ladata tarvittavat tiedostot github -repostani (edellinen vaihe)
Liitä/var/www/html/-kansioon kaikki tiedostot Frontend -kansiosta.
>/var/www/html/
Vaihe 6: Vaihe 6: Taustaohjelman (pullo) luominen
Verkkosivuston taustajärjestelmä perustuu Flaskiin.
Kaikki tiedostot löytyvät github reposta.
Kopioi kaikki tiedostot mihin tahansa Raspberry Pi -hakemistoon.
Esimerkiksi '/home/pi/colorpicker.
Jos haluat luoda hakemiston, siirry kohdehakemistoon käyttämällä cd -tiedostoa ja suorita sitten mkdir.
Tässä kaikki tältä erää. Koodi selitetään seuraavissa vaiheissa.
Vaihe 7: Vaihe 7: Laitteisto
> Lataa malli
Luo malli yllä olevan asiakirjan mukaisesti.
HUOMAUTUS: Lisää myös yksi valkoinen LED ja yksi vastus (220 tai 330 ohmia).
Laitteiston selitys
HC04
HC04 -anturi lähettää aaltoja, jotka heijastavat ja anturi ottaa ne uudelleen vastaan.
Laskemalla lähetyksen ja vastaanoton välisen ajan delta, voimme laskea etäisyyden.
Etäisyys = (((Aikaleima_saanti - Aikaleima_emit) / äänen nopeus) / 2
Jaamme kahdella, koska aalto heijastuu, eli se kulkee matkan kahdesti.
LCD -näyttö
Käytämme LCD -näyttöä RGB: n ja HEX: n näyttämiseen sekä IP: tä ohjelman alkaessa.
Ostin tälle nestekidenäytölle I2C -moduulin. Tarvitsemme nyt vain 4 johtoa. SDA, SCL, GND, VCC
Tämän LCD -näytön käyttämiseksi kirjoitin Python -luokan käytön helpottamiseksi.
TCS34725
Tämän anturin avulla voit mitata värejä. Käytämme kirjastoa RGB -arvon mittaamiseen.
Vaihe 8: Vaihe 8: Koodi selitetty
Käyttöliittymä
Käyttöliittymä koostuu kolmesta pääosasta.
Ensinnäkin html -tiedostot, jotka rakentavat verkkosivustomme rakenteen, mutta eivät sisällä tai ovat minimaalisia.
Toiseksi meillä on css -tiedostot tai tyylitiedostot, jotka tyylittävät ja asettavat verkkosivustomme.
Nämä kaksi ovat melko helppolukuisia ja ymmärrettäviä, joten en selitä niitä.
Viimeksi meillä on Javascript, jossa on kaksi kirjastoa.
Kaksi käytettyä kirjastoa ovat SocketIO ja URLSearchParams.
SocketIO: n avulla voit lähettää viestejä taustajärjestelmästä käyttöliittymään ja päinvastoin.
Viestit voidaan lähettää yhdelle asiakkaalle, mutta myös useille asiakkaille (Broadcast)
> Socket IO Javascript
> Socket IO Python
Yllä olevissa kuvissa näet yhden tässä projektissa tehdyistä pistorasiayhteyksistä.
Viestien lähetyskomento on 'emit', vastaanotto tapahtuu 'on'.
URLSearchParmsin avulla voit saada arvoja kyselymerkkijonosta helposti.
Esimerkki kyselymerkkijonosta: example.com/index.html?id=1
URLSearchParams antaa sinulle takaisin: {'id' = '1'}
> URLSearchParams Esimerkki
Taustaosa
Taustaosa on kirjoitettu kokonaan Pythonilla, ja siinä on joukko kirjastoja.
Ensimmäinen tuoma kirjasto on 'Pullo'. Tätä kirjastoa tarvitaan sovellusliittymän luomiseen, jotta kaikki MySQL -tietokannan CRUD -toiminnot voidaan suorittaa. CRUD tarkoittaa Create Read Update Delete.
> Pullo
Yllä oleva kuva esittää muutamia pulloreittejä. Surffaamalla reitille teet automaattisesti GET -menetelmän, koodi suoritetaan ja saat arvon palautusmenetelmästä. On myös muita menetelmiä, kuten "POST" ja "DELETE". Tällaisten menetelmien testaamiseen tarvitset Postmanin kaltaisen ohjelman.
Seuraava tuontikirjasto on SocketIO, jonka selitin jo käyttöliittymän osassa.
Seuraava on GPIO.
Tämän avulla voit hallita Rapsberry Pi: n GPIO -nastoja.
Tärkeimmät komennot ovat:
- GPIO.setmode (GPIO. BCM) Valitse nastojen kokoonpano.
- GPIO.output (, GPIO. LOW tai GPIO. HIGH) Kirjoita NAPAA tai HIGH.
- GPIO.setup (,) Määritä PIN -koodi tuloksi tai ulostuloksi tai vedettäväksi tai vedettäväksi
Seuraavaksi meillä on langoitus.
Ainoat käyttämämme komennot ovat:
- Säie (kohde =)
- .alkaa()
Säikeiden avulla voimme suorittaa useita koodin esiintymiä samanaikaisesti. Tällä tavalla voimme mitata etäisyyttä ja samalla kuunnella saapuvia socket io -viestejä.
Ensimmäinen komento Thread (target =) luo säieluokan, joka alkaa käyttää 'start ()' - toimintoa ja suorittaa toiminnon avainsanassa 'target', joka annettiin luokan luomisessa.
Seuraavaksi meillä on värianturin kirjasto, joka on melko suoraviivainen. En aio selittää tätä kirjastoa, koska menetelmät ovat hyvin selkeitä ja selitetty koodissa.
Viimeksi meillä on netifaces. Tämän avulla voimme noutaa langattomassa ja langallisessa yhteydessä käytetyn IP -osoitteen.
Viimeksi tein joitakin luokkia itse etäisyysanturille, LEDille ja nestekidenäytölle.
En selitä miten ne toimivat.
Vaihe 9: Vaihe 9: Kotelon luominen
Tätä projektia varten tein puukotelon.
Puu on kevyttä, ohutta eikä maksa paljon.
Mittoina käytin:
- Korkeus: 5 cm
- Leveys: 10,5 cm
- Pituus: 12,5 cm
Antureita varten sinun on lisättävä 2 reikää ja asetettava ne vierekkäin.
Asenna kotelon luomisen jälkeen anturit, LED ja LCD.
Vaihe 10: Viimeiset vaiheet
Kaikki tehdään periaatteessa.
Nyt meidän on vain varmistettava, että koodimme alkaa heti, kun kytket virtalähteemme.
Tähän on monia menetelmiä.
> Esimerkkejä
Käytämme ensimmäistä menetelmää:
Suorita tämä rivi: 'sudo nano /etc/rc.local'
Lisää komento suorittaaksesi koodin: 'sudo python3'
Tallenna tiedosto näppäinyhdistelmällä Ctrl-X.
Jos muokkaamisessa on ongelmia. Tee tämä vaihe uudelleen, mutta suorita ensin sudo -i.
Suositeltava:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen