Sadržaj:
- Pribor
- 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 s MySQL bazom podataka, stvaranje baze podataka
- Korak 4: Korak 4: Filezilla
- Korak 5: Korak 5: Izrada web stranice
- Korak 6: Korak 6: Stvaranje pozadine (bočica)
- Korak 7: Korak 7: Hardver
- Korak 8: Korak 8: Objašnjenje koda
- Korak 9: Korak 9: Stvaranje slučaja
- Korak 10: Završni koraci
Video: ColorPicker: 10 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Cilj ovog projekta je mjerenje boja i njihovo prevođenje u druge sustave boja. Koristeći samo RGB vrijednosti koje daje senzor, možete prevesti u HSL, CYMK, HEX i također najbliži RAL kod (standard koji se koristi za boje). Ovaj projekt zahtijeva osnovno znanje o Pythonu, MySQL -u, Linuxu i Javascriptu.
Ako ste također upoznati s okvirom Flask i SocketIO, kôd za ovaj projekt trebao bi vam biti lako razumljiv.
Ovaj projekt mogu koristiti slikari, dizajneri interijera ili samo svi koji trebaju mjeriti boje.
Ovaj projekt nije tako skup i košta otprilike _ eura, bez dostave.
Pribor
Ovaj odjeljak možemo podijeliti na dva dijela:
- Hardver
- Softver
Hardver
Koristimo sljedeće komponente
- HC04: Senzor udaljenosti, koliko mjerimo od objekta
- LCD zaslon 2x16
- LCD I2C modul (HW061)
- TCS34725 Modul senzora boje (Adafruit)
- Bijela LED
- Raspberry Pi 3 (Svaki 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 radni stol
- 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)
- Bijela LED dioda: Kupljeno 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 uobičajen.
Opći raspon cijena: oko 70 €, ako ste uključili 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 GUI nije potreban jer ćemo se povezivati samo putem SSH -a.
Zapišite sliku na (praznu) SD karticu (Sve datoteke na kartici bit će izbrisane).
Za zapis 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 u pogon. To 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 boot particiju SD kartice. Napravite praznu datoteku pod nazivom "ssh", bez nastavka datoteke.
Otvorite i "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 računalo pomoću ehternet kabela. Otvorite Putty i idite na karticu SSH, te ispunite ovaj IP: 169.254.10.1. Pritisnite "poveži" 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 sada je 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 sljedeći redak:
'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'
Ovo će otvoriti "nano" uređivač teksta s povišenim pravima.
Dodajte sljedeće retke u datoteku:
mreža = {
ssid = "SSID"
psk = "Lozinka"
}
Zamijenite "SSID" sa SSID -om svoje Wifi mreže
Zamijenite "Lozinku" svojom lozinkom.
Zatim učinite Ctrl+X i odaberite opciju 'da'. Datoteka će sada biti spremljena.
Sada moramo ponovno pokrenuti mrežnu uslugu
Izvršite sljedeće naredbe:
- '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 knjižnica.
- Mariadb: MySQL baza podataka (sudo apt-get install mariadb-server)
- Knjižnica Adafruit za senzor boje: Mjerenje boja (pip3 instalirajte adafruit-circuitpython-tcs34725)
- PHPmyAdmin: ('sudo apt install phpmyadmin', odaberite apache web poslužitelj)
Također instalirajte sljedeće pip knjižnice:
- flask_socketio
- tikvica
- flask_cors
- odbor
- busio
- netifaces
Korak 3: Korak 3: Povezivanje s MySQL bazom podataka, stvaranje 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. Trebamo unos 'wlan0'. Kopirajte IP pored "inet" ili u ovom primjeru "192.168.1.44"
. >> Stvorite 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.
Najprije stvorite shemu, da biste to učinili, s lijeve strane 'desni klik' i odaberite 'kreiraj shemu'.
Dajte imenu sheme i potvrdite.
Sada moramo dodati tablice. Proširite shemu i 'desni klik', 'tablice'.
Izradite sljedeće sheme:
> Tablica 1: RALboje
> Tablica 2: Vrste senzora
> Tablica 3: Mjerenja (Na slici se koristi 'metingen', nizozemski za mjerenja)
> Tablica 4: Podaci_ web stranice || Tablica 4 na dnu
MySQL je relacijski sustav 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 dvije tipke.
> 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 sa stvaranjem tablica i stvaranjem odnosa.
Dodavanje podataka:
Tablica RALcolors je fiksna tablica u kojoj se vrijednosti nikada neće promijeniti. Ove vrijednosti možemo dodati
vrlo lako.
> Preuzmite Excel datoteku
Preuzmite Excel datoteku iznad i odaberite sve podatke i "kopirajte". Učinite kao na slici
> Prikaži tablicu
'desnom tipkom miša' 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 senzornog tipa
Napomena: Opis senzora je na "nizozemskom"
Korak 4: Korak 4: Filezilla
Za jednostavno povezivanje s Raspberry Pi i prijenos datoteka možemo koristiti Filezilla.
> Preuzmite Filezilla
Umetnite podatke o povezivanju i povežite se. S desne strane sada možete prenijeti datoteke povlačenjem.
> Github izvor
Preuzmite datoteke iz gornjeg izvora github -a.
Korak 5: Korak 5: Izrada web stranice
Za hosting web stranice koristimo PHPmyAdmin i Apache2.
Web poslužitelj 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 repoa (prethodni korak)
U '/var/www/html/' zalijepite sve datoteke iz mape 'Frontend'.
>/var/www/html/
Korak 6: Korak 6: Stvaranje pozadine (bočica)
Pozadina web stranice temelji se 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 stvorili direktorij, dođite 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
Izradite 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 osjetnik emitira valove koji se reflektiraju i senzor ih ponovno prima.
Izračunavanjem vremenske delte između emitiranja i primanja možemo izračunati udaljenost.
Udaljenost = ((Timestamp_recieve - Timestamp_emit) / brzina zvuka) / 2
Dijelimo s dva jer se val reflektira, što znači da dva puta putuje udaljenost.
LCD
Koristimo LCD zaslon 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 u korištenju.
TCS34725
Ovaj senzor omogućuje 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 stila koje stiliziraju i postavljaju našu web stranicu.
Njih je dvoje prilično lako čitati i razumjeti, pa ih zato neću objašnjavati.
Zadnji imamo Javascript s dvije knjižnice.
Dvije korištene biblioteke su SocketIO i URLSearchParams.
SocketIO vam omogućuje slanje poruka s 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', primanje se vrši pomoću 'uključeno'.
URLSearchParms vam omogućuje jednostavno dobivanje vrijednosti iz niza upita.
Primjer niza 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 knjižnica.
Prva biblioteka koju uvozimo je 'Flask'. Ova je knjižnica potrebna za stvaranje API -ja, za izvršavanje svih CRUD radnji za MySQL bazu podataka. CRUD kratica za Create Read Update Update Delete.
> Tikvica
Gornja slika prikazuje nekoliko Flask 'ruta'. Surfanjem do rute, automatski ćete napraviti '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 knjižnica za uvoz je SocketIO, koju sam već objasnio u odjeljku prednjeg kraja.
Sljedeći je GPIO.
To vam omogućuje kontrolu GPIO pinova Rapsberry Pi.
Najvažnije naredbe su:
- GPIO.setmode (GPIO. BCM) Odaberite konfiguraciju pinova.
- GPIO.output (, GPIO. LOW ili GPIO. HIGH) Zapišite nisko ili visoko na pin.
- GPIO.setup (,) Definirajte PIN kao ulazni ili izlazni, ili padajući ili povučeni
Dalje imamo threading.
Jedine naredbe koje koristimo su:
- Nit (cilj =)
- .početak()
Pomoću niti možemo istodobno pokrenuti više instanci koda. Na taj način možemo mjeriti udaljenost i istovremeno slušati pristigle poruke na utičnici.
Prva naredba Thread (target =) stvorit će klasu Thread, koja će nakon početka korištenja 'start ()' pokrenuti funkciju u ključnoj riječi 'target', koja je dana pri stvaranju klase.
Zatim imamo biblioteku senzora boje, koja je sasvim ravna. Neću objašnjavati ovu knjižnicu, jer su metode vrlo jasne i objašnjene u kodu.
Na kraju imamo mrežne poveznice. To nam omogućuje dohvaćanje IP adrese koju koristimo za bežičnu i žičanu vezu.
Posljednji put sam i sam napravio tečajeve za senzor udaljenosti, LED i LCD.
Neću objašnjavati kako to funkcionira.
Korak 9: Korak 9: Stvaranje slučaja
Za ovaj projekt stvorio sam drvenu kutiju.
Drvo je lagano, tanko i ne košta puno.
Kao dimenzije koje sam koristio:
- Visina: 5 cm
- Širina: 10,5 cm
- Duljina: 12,5 cm
Za senzore morate dodati 2 rupe i postaviti ih jednu pored druge.
Nakon izrade kućišta, instalirajte senzore, LED i LCD.
Korak 10: Završni koraci
Sve je u osnovi napravljeno.
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 ovaj redak: 'sudo nano /etc/rc.local'
Dodajte svoju naredbu za pokretanje koda: 'sudo python3'
Spremite datoteku pomoću Ctrl-X.
Ako imate problema s uređivanjem. Ponovite ovaj korak, ali prvo izvedite 'sudo -i'.
Preporučeni:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način stvaranja igre, osobito nečega poput zagonetke, vizualnog romana ili avanturističke igre
Broj koraka: 17 koraka
الكشف عن عن أنواع المحاليل: محمدآل سعودالكشف عن المحاليل رابط الفديو
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: 3 koraka
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: U ovom Instructableu ćemo izvršiti detekciju lica na Raspberry Pi 4 sa Shunya O/S pomoću knjižnice Shunyaface. Shunyaface je biblioteka za prepoznavanje/otkrivanje lica. Cilj projekta je postići najbržu brzinu otkrivanja i prepoznavanja s
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 ponovno početi vježbati. Koju opremu trebam pripremiti?
Aduino UNO Broj koraka: 5 koraka
Aduino UNO 를 이용한 도망 치는 &&&& && l g g g g g g g g g g g g g g g 4 g 4 4 4 4 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 일자 일자 일자: 2017.01.06. ~ 2017.01.11.- 역할 분담 SW 엔지니어: 김 예은, 임동영 HW 엔지니어: 김지훈 디자이너: 이재민 레코더: 홍 다예 ------------------------ --------------------------------------------------