Sadržaj:
- Supplies
- Korak 1: Korak 1: Instaliranje RPi OS -a, konfiguriranje SSH -a i pristupa internetu
- Korak 2: Korak 2: Instaliranje softvera na RPi
- Korak 3: Korak 3: Povezivanje sa MySQL bazom podataka, kreiranje baze podataka
- Korak 4: Korak 4: Filezilla
- Korak 5: Korak 5: Kreiranje web stranice
- Korak 6: Korak 6: Kreiranje pozadine (Flask)
- Korak 7: Korak 7: Hardver
- Korak 8: Korak 8: Objašnjenje koda
- Korak 9: Korak 9: Kreiranje slučaja
- Korak 10: Završni koraci
Video: ColorPicker: 10 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Cilj ovog projekta je mjerenje boja i njihovo prevođenje u druge sisteme boja. Koristeći samo RGB vrijednosti koje daje senzor, možete prevesti u HSL, CYMK, HEX, kao i najbliži RAL kôd (standard koji se koristi za boje). Ovaj projekt zahtijeva osnovno znanje o Pythonu, MySQL -u, Linuxu i Javascriptu.
Ako ste također upoznati s Flask framework -om i SocketIO -om, kôd za ovaj projekt trebao bi vam biti lako razumljiv.
Ovaj projekt mogu koristiti slikari, dizajneri interijera ili samo svi oni koji trebaju mjeriti boje.
Ovaj projekt nije tako skup i košta otprilike _ eura, bez dostave.
Supplies
Ovaj odjeljak možemo podijeliti na dva dijela:
- Hardver
- Softver
Hardver
Koristimo sljedeće komponente
- HC04: Senzor udaljenosti, koliko mjerimo od objekta
- LCD ekran 2x16
- LCD I2C modul (HW061)
- TCS34725 Modul senzora boje (Adafruit)
- Bijela LED dioda
- Raspberry Pi 3 (Bilo koji Raspberry Pi bi trebao raditi)
- 5x 1k Ohm otpornik
- 1x 220 ili 330 Ohm otpornik
- SD kartica 16 GB (14,4 GB)
Softver
- Python IDE, poput vizualnog koda ili Pycharma (ovdje se koristi Pycharm)
- MySQL Workbench
- Putty (Preuzmi Putty)
- Rufus ili bilo koji drugi pisac SD kartica (preuzmite Rufus)
Cijene
Ovaj projekt je prilično jeftin, ako već imate Rapsberry Pi.
- HC04: Počevši od 2,5 eura (Kina) i do 6 eura za više lokalnih trgovina.
- LCD: Oko 6-8 eura.
- I2C modul: jeftino ispod 1 € (Kina), ali do 4 € za više lokalnih trgovina.
- TCS34725: Oko 9-12 eura. Najskuplji dio (isključujući RPi)
- Bijeli LED: Kupljen na veliko, 20 LED dioda već za 1 €
- Raspberry Pi: Ovisno o verziji, oko 40 eura
- Otpornici: 0,10 € za jedan otpornik
- SD kartica: oko 8 €
Adapter za napajanje za Raspberry Pi isključen je u cijenu, budući da je ovaj adapter prilično uobičajen.
Opći raspon cijena: oko 70 €, ako uključite Raspberry Pi i kućište za projekt.
Za izradu kućišta koristio sam lagano tanko drvo. Reciklirao sam ovo drvo iz namještaja. Materijal za kućište je na vama.
Korak 1: Korak 1: Instaliranje RPi OS -a, konfiguriranje SSH -a i pristupa internetu
Korak 1.1: Instaliranje slike
Preuzmite sliku sa službene stranice Raspberry Pi. Nije važno koju sliku instalirate. Za ovaj projekt nije potreban GUI, jer ćemo se povezivati samo putem SSH -a.
Zapišite sliku na (praznu) SD karticu (Sve datoteke na kartici će biti izbrisane).
Za pisanje svega na SD karticu upotrijebit ćemo alat pod nazivom 'Rufus'. Nakon preuzimanja slike otvorite Rufus i odaberite datoteku slike. Odaberite ciljni pogon i upišite sliku na pogon. Ovo može potrajati.
> Rufus
Korak 1.2: Instaliranje SSH -a
Sljedeći korak je stvaranje veze sa SD karticom. Da bismo to učinili, moramo omogućiti SSH.
Da biste to učinili bez upotrebe monitora, otvorite istraživač datoteka i otvorite particiju za pokretanje SD kartice. Napravite praznu datoteku pod nazivom "ssh", bez nastavka datoteke.
Također otvorite "cmdline.txt"
Dodajte "169.254.10.1" na kraj datoteke i spremite je.
Demontirajte SD karticu i umetnite je u Raspberry Pi.
Sada možemo spojiti Raspberry Pi na izvor napajanja i pokrenuti se i povezati pomoću SSH -a.
Za povezivanje pomoću SSH -a koristimo program "Putty". Prije toga povežite svoj RPi i PC pomoću ehternet kabela. Otvorite Putty i idite na karticu SSH i popunite ovaj IP: 169.254.10.1. Pritisnite 'poveži se' i bit ćete povezani.
> Git
Zadana prijava koju koristi Raspberry Pi je 'pi' kao korisničko ime i 'malina' za lozinku.
Korak 1.3: Bežična veza
Vaš Raspberry Pi je sada uključen.
Također se želimo spojiti na RPi putem Wi -Fi -ja, pa nam na taj način više ne treba Ethernet kabel.
Izvršite sledeći red:
'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'
Ovo će otvoriti "nano" uređivač teksta s povišenim pravima.
Dodajte sljedeće redove u datoteku:
mreža = {
ssid = "SSID"
psk = "Lozinka"
}
Zamijenite "SSID" sa SSID vaše WiFi mreže
Zamijenite "Lozinku" svojom lozinkom.
Zatim pritisnite Ctrl+X i odaberite opciju 'da'. Datoteka će sada biti spremljena.
Sada moramo ponovo pokrenuti mrežni servis
Izvršite sledeće komande:
- 'sudo -i'
- 'sudo systemctl restart networking'
Svoju internetsku vezu možete testirati pomoću naredbe wget.
Primjer: 'wget google.com'
> Wget naredba
Korak 2: Korak 2: Instaliranje softvera na RPi
Za ovaj projekt moramo instalirati nekoliko biblioteka.
- Mariadb: MySQL baza podataka (sudo apt-get install mariadb-server)
- Biblioteka Adafruit za senzor boje: Mjerenje boja (pip3 instalirajte adafruit-circuitpython-tcs34725)
- PHPmyAdmin: ('sudo apt install phpmyadmin', odaberite apache web server)
Takođe instalirajte sledeće pip biblioteke:
- flask_socketio
- boca
- flask_cors
- daska
- busio
- netifaces
Korak 3: Korak 3: Povezivanje sa MySQL bazom podataka, kreiranje baze podataka
Sljedeći korak je povezivanje s MySQL bazom podataka pomoću MySQL radnog stola.
> IP a
Izvršite naredbu 'ip a', kao što je prikazano na gornjoj slici (kliknite vezu)
U većini situacija bit će prikazana 3 unosa. Treba nam unos 'wlan0'. Kopirajte IP pored "inet" ili u ovom primjeru "192.168.1.44"
. >> Kreirajte novu vezu
Kao što je prikazano na gornjoj slici, stvorite novu vezu sa sljedećim parametrima (Slika ispod za parametre)
> Parametri veze
Dvaput kliknite na novostvorenu vezu za povezivanje.
Ako se pojavi upit, kliknite 'Da'.
Ovo je još uvijek prazna baza podataka, pa dodajmo neke tablice.
Prvo stvorite shemu, da biste to učinili, s lijeve strane kliknite desnim tasterom miša i odaberite "kreiraj shemu".
Dajte imenu sheme i potvrdite.
Sada moramo dodati tablice. Proširite shemu i 'desni klik', 'tablice'.
Kreirajte sljedeće sheme:
> Tabela 1: RALboje
> Tabela 2: Tipovi senzora
> Tabela 3: Mjerenja (Na slici se koristi 'metingen', holandski za mjerenja)
> Tabela 4: Podaci_ veb lokacije || Tabela 4 na dnu
MySQL je relacijski sistem baze podataka, što znači da možemo stvoriti odnose između tablica.
Prva relacija koju moramo stvoriti je između 'sensor_type' i 'mjerenja'.
Kao što je prikazano na slici, povežite dva ključa.
> Uredite tablicu i ključeve veza
Ne zaboravite spremiti promjene klikom na 'Primijeni' u donjem kutu.
Također uredite tablicu 'website_data' i povežite 'MetingID'.
Sada smo završili s stvaranjem tablica i stvaranjem odnosa.
Dodavanje podataka:
Tablica RALcolors je fiksna tablica u kojoj se vrijednosti nikada neće promijeniti. Ove vrednosti možemo dodati
veoma lako.
> Preuzmite Excel datoteku
Preuzmite Excel datoteku iznad i odaberite sve podatke i 'kopirajte'. Uradite kao na slici
> Prikaži tabelu
'desnim klikom' na tablici i odaberite 'Zalijepi retke'. 'kliknite' 'primijeni' 'u donjem kutu za dodavanje podataka.
Sada su sve RAL boje spremljene u bazu podataka.
Sada samo moramo dodati sensor_type u bazu podataka.
> Podaci senzortipa
Napomena: Opis senzora je na 'holandskom'
Korak 4: Korak 4: Filezilla
Za jednostavno povezivanje s Raspberry Pi i prijenos datoteka možemo koristiti Filezilla.
> Preuzmite Filezilla
Umetnite detalje povezivanja i povežite se. Na desnoj strani sada možete prenijeti datoteke povlačenjem.
> Github izvor
Preuzmite datoteke iz gornjeg izvora github -a.
Korak 5: Korak 5: Kreiranje web stranice
Za hosting web stranice koristimo PHPmyAdmin i Apache2.
Web server na Raspberry Pi -u koristi direktorij '/var/www/html' kao root.
Ako svoje datoteke smjestite tamo, bit će hostirane na IP -u Raspberry Pi. (IP = vidi 'ip a')
Možete preuzeti potrebne datoteke iz mog github repo -a (prethodni korak)
U '/var/www/html/' zalijepite sve datoteke iz mape 'Frontend'.
>/var/www/html/
Korak 6: Korak 6: Kreiranje pozadine (Flask)
Pozadina web stranice je zasnovana na Flasku.
Sve datoteke možete pronaći na github repo -u.
Kopirajte sve datoteke u bilo koji direktorij na Raspberry Pi.
Na primjer '/home/pi/colorpicker.
Da biste kreirali direktorij, idite do odredišnog direktorija pomoću 'cd', a zatim izvedite 'mkdir'.
To je sve za sada. Kôd će biti objašnjen u sljedećim koracima.
Korak 7: Korak 7: Hardver
> Preuzmi shemu
Kreirajte shemu kao što je prikazano u gornjem dokumentu.
NAPOMENA: Dodajte i jednu bijelu LED sa jednim otpornikom (220 ili 330 Ohma).
Objašnjenje hardvera
HC04
HC04 senzor emitira valove, koji se reflektiraju i senzor ih ponovo prima.
Izračunavanjem vremenske delte između emitovanja i prijema, možemo izračunati udaljenost.
Udaljenost = ((Timestamp_recieve - Timestamp_emit) / brzina zvuka) / 2
Dijelimo na dva jer se val reflektira, što znači da putuje dva puta.
LCD
Koristimo LCD ekran za prikaz RGB -a i HEX -a, kao i IP -a pri pokretanju programa.
Za ovaj LCD, kupio sam I2C modul. Sada nam trebaju samo 4 žice. SDA, SCL, GND, VCC
Da bih koristio ovaj LCD, napisao sam Python klasu, kako bih ga olakšao.
TCS34725
Ovaj senzor vam omogućava mjerenje boja. Za mjerenje RGB vrijednosti koristimo biblioteku.
Korak 8: Korak 8: Objašnjenje koda
Frontend
Frontend se sastoji od tri glavna dijela.
Prvo su html datoteke koje grade strukturu naše web stranice, ali ne sadrže ili imaju minimalni izgled.
Drugo, imamo css datoteke ili datoteke stilova koje stiliziraju i postavljaju našu web stranicu.
Ovo dvoje je prilično lako za čitanje i razumijevanje, pa ih zato neću objašnjavati.
Na kraju imamo Javascript sa dvije biblioteke.
Dvije korištene biblioteke su SocketIO i URLSearchParams.
SocketIO vam omogućuje slanje poruka sa pozadine na sučelje i obrnuto.
Poruke se mogu slati jednom klijentu, ali i više klijenata (emitiranje)
> Socket IO Javascript
> Socket IO Python
Na gornjim slikama možete vidjeti jednu od veza utičnice napravljenu u ovom projektu.
Naredba za slanje poruka je 'emitovanje', prijem se vrši pomoću 'uključeno'.
URLSearchParms vam omogućuje da lako dobijete vrijednosti iz niza upita.
Primjer nizova upita: example.com/index.html?id=1
URLSearchParams će vam vratiti: {'id' = '1'}
> Primjer URLSearchParams
Pozadina
Pozadina je u potpunosti napisana na Pythonu, s hrpom biblioteka.
Prva biblioteka koju uvozimo je 'Flask'. Ova biblioteka je potrebna za stvaranje API -ja, za izvršavanje svih CRUD radnji za MySQL bazu podataka. CRUD označava Create Read Update Update Delete.
> Boca
Gornja slika prikazuje nekoliko "ruta" Flaska. Surfanjem do rute, automatski ćete izvršiti 'GET' metodu, kôd će se izvršiti i dobit ćete vrijednost iz metode povratka. Postoje i druge metode, poput 'POST' i 'DELETE'. Za testiranje takvih metoda trebat će vam program poput Poštara.
Sljedeća biblioteka za uvoz je SocketIO, koju sam već objasnio u prednjem dijelu.
Sledeći je GPIO.
To vam omogućuje kontrolu GPIO pinova Rapsberry Pi.
Najvažnije komande su:
- GPIO.setmode (GPIO. BCM) Odaberite konfiguraciju pinova.
- GPIO.output (, GPIO. LOW ili GPIO. HIGH) Upišite nisko ili visoko na pin.
- GPIO.setup (,) Definirajte PIN kao ulazni ili izlazni, ili padajući ili povučeni
Slijedi nam threading.
Jedine naredbe koje koristimo su:
- Nit (cilj =)
- .start ()
Koristeći niti, možemo pokrenuti više instanci koda istovremeno. Na ovaj način možemo mjeriti udaljenost i istovremeno slušati pristigle poruke sa utičnice.
Prva naredba Thread (target =) će stvoriti Thread klasu, koja će nakon početka korištenja 'start ()' pokrenuti funkciju u ključnoj riječi 'target', koja je dana pri kreiranju klase.
Zatim imamo biblioteku senzora boja, koja je prilično jasna. Neću objašnjavati ovu biblioteku, jer su metode vrlo jasne i objašnjene u kodu.
Na kraju imamo mrežne interfejse. To nam omogućuje da dohvatimo IP adresu koju koristimo za bežičnu i žičanu vezu.
Na kraju sam i sam napravio neke časove za senzor udaljenosti, LED i LCD.
Neću objašnjavati kako to funkcionira.
Korak 9: Korak 9: Kreiranje slučaja
Za ovaj projekt stvorio sam drvenu kutiju.
Drvo je lagano, tanko i ne košta mnogo.
Kao dimenzije koje sam koristio:
- Visina: 5 cm
- Širina: 10,5 cm
- Dužina: 12,5 cm
Za senzore morate dodati 2 rupe i postaviti ih jednu pored druge.
Nakon stvaranja kućišta, instalirajte senzore, LED i LCD.
Korak 10: Završni koraci
Sve je u osnovi urađeno.
Sada se samo moramo pobrinuti da se naš kôd pokrene, onog trenutka kada uključimo izvor napajanja.
Postoji mnogo metoda za to.
> Primjeri
Koristit ćemo prvu metodu:
Izvršite ovu liniju: 'sudo nano /etc/rc.local'
Dodajte svoju naredbu za pokretanje koda: 'sudo python3'
Sačuvajte datoteku pomoću Ctrl-X.
Ako imate problema s uređivanjem. Ponovite ovaj korak, ali prvo izvedite 'sudo -i'.
Preporučuje se:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način da napravite igru, posebno nešto poput zagonetke, vizuelnog romana ili avanturističke igre
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: 3 koraka
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: U ovom uputstvu ćemo izvršiti otkrivanje lica na Raspberry Pi 4 sa Shunya O/S koristeći biblioteku Shunyaface. Shunyaface je biblioteka za prepoznavanje/otkrivanje lica. Cilj projekta je postići najbržu brzinu otkrivanja i prepoznavanja sa
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovo početi vježbati. Koju opremu treba pripremiti?
Brojač koraka - Mikro: Bit: 12 koraka (sa slikama)
Brojač koraka - Micro: Bit: Ovaj projekat će biti brojač koraka. Za mjerenje koraka koristit ćemo senzor akcelerometra koji je ugrađen u Micro: Bit. Svaki put kada se Micro: Bit protrese, broju ćemo dodati 2 i prikazati ga na ekranu
Broj koraka / koraka: 3 koraka
পেনড্রাইভ / মেমোরি কার্ডে ভাইরাসের ভাইরাসের হারিয়ে সমাধান সমাধান সমাধান সমাধান সমাধান পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি এখন এখন এখন।।।।।। Zaštita podataka, pristup prečicama / virusima