Obsah:
- Zásoby
- Krok 1: Krok 1: Inštalácia systému RPi OS, konfigurácia SSH a prístupu na internet
- Krok 2: Krok 2: Inštalácia softvéru na RPi
- Krok 3: Krok 3: Pripojenie k databáze MySQL, vytvorenie databázy
- Krok 4: Krok 4: Filezilla
- Krok 5: Krok 5: Vytvorenie webovej stránky
- Krok 6: Krok 6: Vytvorenie backendu (banka)
- Krok 7: Krok 7: Hardvér
- Krok 8: Krok 8: Vysvetlený kód
- Krok 9: Krok 9: Vytvorenie puzdra
- Krok 10: Posledné kroky
Video: ColorPicker: 10 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Cieľom tohto projektu je zmerať farby a preniesť ich do iných farebných systémov. Použitím iba hodnôt RGB daných snímačom môžete preložiť do HSL, CYMK, HEX a tiež na najbližší kód RAL (štandard používaný pre farby). Tento projekt vyžaduje základné znalosti jazyka Python, MySQL, Linux a Javascript.
Ak ste tiež oboznámení s rámcom Flask a SocketIO, potom by mal byť kód pre tento projekt pre vás ľahko zrozumiteľný.
Tento projekt môžu využiť maliari, interiéroví dizajnéri alebo len ktokoľvek, kto potrebuje merať farby.
Tento projekt nie je tak drahý a stojí odhadom _ eur, poštovné nie je zahrnuté.
Zásoby
Túto časť môžeme rozdeliť na dve časti:
- Hardvér
- Softvér
Hardvér
Používame nasledujúce komponenty
- HC04: Snímač vzdialenosti, ako ďaleko meriame od objektu
- LCD displej 2x16
- Modul LCD I2C (HW061)
- Modul snímača farieb TCS34725 (Adafruit)
- Biela LED
- Raspberry Pi 3 (Akýkoľvek Raspberry Pi by mal fungovať)
- Rezistor 5x 1k Ohm
- 1x odpor 220 alebo 330 ohmov
- SD karta 16 GB (14,4 GB)
Softvér
- Python IDE, napríklad Visual Code alebo Pycharm (tu sa používa Pycharm)
- MySQL Workbench
- Tmel (Stiahnuť tmel)
- Rufus alebo akákoľvek iná zapisovačka kariet SD (stiahnuť Rufus)
Ceny
Tento projekt je dosť lacný, ak už máte Rapsberry Pi.
- HC04: Začína sa okolo 2,5 EUR (Čína) a až 6 EUR pre ďalšie miestne obchody.
- LCD: Okolo 6-8 eur.
- Modul I2C: Ako lacný do 1 EUR (Čína), ale do 4 EUR pre viac miestnych obchodov.
- TCS34725: Okolo 9-12 eur. Najdrahšia časť (bez RPi)
- Biela LED dióda: Kupované hromadne, 20 LED diód už od 1 EUR
- Raspberry Pi: Podľa toho, ktorá verzia, okolo 40 eur
- Rezistory: 0,10 € za jeden odpor
- Karta SD: približne 8 EUR
Napájací adaptér pre Raspberry Pi je v cene nezahrnutý, pretože tento adaptér je celkom bežný.
Celkové cenové rozpätie: približne 70 EUR, ak ste do projektu zahrnuli Raspberry Pi a puzdro.
Na stavbu puzdra som použil ľahké tenké drevo. Toto drevo som recykloval z nábytku. Materiál puzdra je na vás.
Krok 1: Krok 1: Inštalácia systému RPi OS, konfigurácia SSH a prístupu na internet
Krok 1.1: Inštalácia obrazu
Stiahnite si obrázok z oficiálnych stránok Raspberry Pi. Nezáleží na tom, aký obrázok si nainštalujete. Pre tento projekt nie je potrebné GUI, pretože sa pripájame iba pomocou SSH.
Zapíšte obrázok na (prázdnu) kartu SD (všetky súbory na karte budú vymazané).
Na zápis všetkého na kartu SD použijeme nástroj s názvom „Rufus“. Po stiahnutí obrázku otvorte Rufus a vyberte súbor s obrázkom. Vyberte cieľovú jednotku a napíšte na ňu obrázok. To môže chvíľu trvať.
> Rufus
Krok 1.2: Inštalácia SSH
Ďalším krokom je vytvorenie pripojenia k karte SD. Aby sme to urobili, musíme povoliť SSH.
Ak to chcete urobiť bez použitia monitora, otvorte prieskumník súborov a otvorte zavádzací oddiel karty SD. Vytvorte prázdny súbor s názvom „ssh“bez prípony.
Otvorte tiež súbor „cmdline.txt“
Na koniec súboru pridajte „169.254.10.1“a uložte ho.
Odpojte kartu SD a vložte ju do Raspberry Pi.
Teraz môžeme Raspberry Pi pripojiť k zdroju napájania, spustiť ho a pripojiť sa pomocou SSH.
Na pripojenie pomocou SSH používame program „Putty“. Predtým prepojte svoj RPi a počítač pomocou kábla ehternet. Otvorte Putty, prejdite na kartu SSH a zadajte túto IP: 169.254.10.1. Kliknite na „pripojiť“a budete pripojení.
> Tmel
Predvolené prihlasovacie meno, ktoré používa Raspberry Pi, je „pi“ako používateľské meno a „Raspberry“ako heslo.
Krok 1.3: Bezdrôtové pripojenie
Váš Raspberry Pi je teraz zapnutý.
Chceme sa tiež pripojiť k RPi pomocou Wifi, takže už nepotrebujeme ethernetový kábel.
Vykonajte nasledujúci riadok:
'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'
Otvorí sa textový editor „nano“so zvýšenými právami.
Do súboru pridajte nasledujúce riadky:
sieť = {
ssid = "SSID"
psk = "heslo"
}
Nahraďte „SSID“SSID vašej siete Wifi
Nahraďte „Heslo“svojim heslom.
Potom urobte Ctrl+X a vyberte možnosť „áno“. Súbor sa teraz uloží.
Teraz musíme reštartovať sieťovú službu
Vykonajte nasledujúce príkazy:
- 'sudo -i'
- 'sudo systemctl restart networking'
Pripojenie k internetu môžete otestovať pomocou príkazu wget.
Príklad: 'wget google.com'
> Príkaz Wget
Krok 2: Krok 2: Inštalácia softvéru na RPi
Pre tento projekt musíme nainštalovať niekoľko knižníc.
- Mariadb: MySQL databáza (sudo apt-get install mariadb-server)
- Knižnica Adafruit pre snímač farieb: Meranie farieb (pip3 install adafruit-circuitpython-tcs34725)
- PHPmyAdmin: ('sudo apt install phpmyadmin', zvoľte webový server apache)
Nainštalujte aj nasledujúce knižnice pipov:
- flask_socketio
- fľaša
- flask_cors
- doska
- busio
- siete
Krok 3: Krok 3: Pripojenie k databáze MySQL, vytvorenie databázy
Ďalším krokom je pripojenie k databáze MySQL pomocou pracovného stola MySQL.
> IP a
Vykonajte príkaz „ip a“, ako je znázornené na obrázku vyššie (Kliknite na odkaz)
Vo väčšine prípadov sa zobrazia 3 záznamy. Potrebujeme vstup 'wlan0'. Skopírujte IP vedľa „inet“alebo v tomto prípade „192.168.1.44“
. >> Vytvorte nové pripojenie
Ako je znázornené na obrázku vyššie, vytvorte nové spojenie s nasledujúcimi parametrami (Parametre nižšie)
> Parametre pripojenia
Pripojte sa dvojitým kliknutím na novo vytvorené pripojenie.
Ak sa zobrazí výzva, kliknite na „Áno“.
Toto je stále prázdna databáza, takže pridáme niekoľko tabuliek.
Najprv vytvorte schému, aby ste to urobili, na ľavej strane kliknite pravým tlačidlom myši a zvoľte „vytvoriť schému“.
Pomenujte schému a potvrďte.
Teraz musíme pridať tabuľky. Rozbaľte schému a kliknite na „pravé tlačidlo myši“, „tabuľky“.
Vytvorte nasledujúce schémy:
> Tabuľka 1: Farby RAL
> Tabuľka 2: Typy senzorov
> Tabuľka 3: Merania (Na obrázku je použitý „metingen“, holandský výraz na meranie)
> Tabuľka 4: Údaje o webových stránkach || Tabuľka 4 dole
MySQL je relačný databázový systém, to znamená, že medzi tabuľkami môžeme vytvárať vzťahy.
Prvý vzťah, ktorý musíme vytvoriť, je medzi „typom senzora“a „meraniami“.
Ako je znázornené na obrázku, prepojte dva kľúče.
> Upravte tabuľku a prepojovacie klávesy
Nezabudnite uložiť zmeny kliknutím na položku Použiť v dolnom rohu.
Upravte tiež tabuľku „website_data“a odkaz „MetingID“.
Teraz sme s vytváraním tabuliek a vytváraním vzťahov hotoví.
Pridávanie údajov:
Tabuľka RALcolors je pevná tabuľka, v ktorej sa hodnoty nikdy nezmenia. Tieto hodnoty môžeme sčítať
veľmi ľahko.
> Stiahnite si súbor programu Excel
Stiahnite si súbor Excel vyššie, vyberte všetky údaje a „skopírujte“. Páči sa vám to na obrázku
> Zobraziť tabuľku
„kliknite pravým tlačidlom myši“na tabuľku a zvoľte „Prilepiť riadky“. Dáta pridáte kliknutím na položku Použiť v dolnom rohu.
Teraz sú všetky farby RAL uložené v databáze.
Teraz musíme do databázy pridať iba typ senzora.
> Údaje typu Sensortype
Poznámka: Popis senzora je v „holandčine“
Krok 4: Krok 4: Filezilla
Na ľahké pripojenie k Raspberry Pi a prenos súborov môžeme použiť Filezilla.
> Stiahnite si Filezilla
Zapíšte podrobnosti o pripojení a pripojte sa. Na pravej strane teraz môžete prenášať súbory ich potiahnutím.
> zdroj Github
Stiahnite si súbory zo zdroja github vyššie.
Krok 5: Krok 5: Vytvorenie webovej stránky
Na hostovanie webových stránok používame PHPmyAdmin a Apache2.
Webový server na Raspberry Pi používa ako root adresár '/var/www/html'.
Ak tam umiestnite svoje súbory, budú hostené na IP Raspberry Pi. (IP = pozri „ip a“)
Požadované súbory si môžete stiahnuť z môjho github repo (predchádzajúci krok)
Do súboru/var/www/html/vložte všetky súbory z priečinka Frontend.
>/var/www/html/
Krok 6: Krok 6: Vytvorenie backendu (banka)
Backend webovej stránky je založený na Flask.
Všetky súbory nájdete v repo github.
Skopírujte všetky súbory do ľubovoľného adresára na Raspberry Pi.
Napríklad '/home/pi/colorpicker.
Ak chcete vytvoriť adresár, prejdite do cieľového adresára pomocou „cd“a potom spustite „mkdir“.
To je zatiaľ všetko. Kód bude vysvetlený v ďalších krokoch.
Krok 7: Krok 7: Hardvér
> Schéma sťahovania
Vytvorte schému podľa vyššie uvedeného dokumentu.
POZNÁMKA: Pridajte tiež jednu bielu LED diódu s jedným odporom (220 alebo 330 ohmov).
Vysvetlenie hardvéru
HC04
Senzor HC04 vysiela vlny, ktoré sa odrážajú a sú snímačom opäť prijaté.
Vypočítaním časového delta medzi vysielaním a príjmom môžeme vypočítať vzdialenosť.
Vzdialenosť = ((Timestamp_recieve - Timestamp_emit) / rýchlosť zvuku) / 2
Delíme dvoma, pretože vlna sa odráža, to znamená, že prejde vzdialenosť dvakrát.
LCD
Na spustenie programu používame LCD displej na zobrazenie RGB a HEX, ako aj IP.
K tomuto LCD som kúpil modul I2C. Teraz potrebujeme iba 4 vodiče. SDA, SCL, GND, VCC
Aby som mohol používať tento LCD, napísal som triedu Pythonu, aby bolo používanie jednoduchšie.
TCS34725
Tento senzor vám umožňuje merať farby. Na meranie hodnoty RGB používame knižnicu.
Krok 8: Krok 8: Vysvetlený kód
Frontend
Frontend existuje z troch hlavných častí.
Najprv sú to súbory html, ktoré stavajú štruktúru našich webových stránok, ale neobsahujú alebo majú minimálne rozloženie.
Za druhé máme súbory CSS alebo súbory štýlov, ktoré majú štýl a rozloženie.
Tieto dva sa celkom ľahko čítajú a rozumejú, a preto ich nebudem vysvetľovať.
Nakoniec tu máme Javascript s dvoma knižnicami.
Dve použité knižnice sú SocketIO a URLSearchParams.
SocketIO vám umožňuje odosielať správy z backendu do frontendu a naopak.
Správy je možné odosielať jednému klientovi, ale aj viacerým klientom (vysielanie)
> Socket IO Javascript
> Socket IO Python
Na vyššie uvedených obrázkoch môžete vidieť jedno zo zásuvkových pripojení vytvorených v tomto projekte.
Príkaz na odosielanie správ je „emitovať“, prijímanie sa vykonáva pomocou „zapnuté“.
URLSearchParms vám umožňuje ľahko získať hodnoty z reťazca dotazov.
Príklad reťazca dotazov: example.com/index.html?id=1
URLSearchParams vám vráti: {'id' = '1'}
> Príklad URLSearchParams
Backend
Backend je kompletne napísaný v Pythone s mnohými knižnicami.
Prvá knižnica, ktorú importujeme, je 'Flask'. Táto knižnica je potrebná na vytvorenie API, aby bolo možné vykonávať všetky akcie CRUD pre databázu MySQL. CRUD je skratka pre Create Read Update Delete.
> Banka
Obrázok vyššie ukazuje niekoľko „trás“banky. Pri surfovaní na trase automaticky urobíte metódu „ZÍSKAŤ“, kód sa spustí a hodnotu dostanete z metódy návratu. Existujú aj ďalšie metódy, ako napríklad „POST“a „DELETE“. Na testovanie týchto metód budete potrebovať program ako Postman.
Ďalšou importovanou knižnicou je SocketIO, ktorú som vysvetlil už v prednej časti.
Ďalším je GPIO.
To vám umožní ovládať piny GPIO na Rapsberry Pi.
Najdôležitejšie príkazy sú:
- GPIO.setmode (GPIO. BCM) Vyberte konfiguráciu pinov.
- GPIO.output (, GPIO. LOW alebo GPIO. HIGH) Napíšte špendlík LOW alebo HIGH.
- GPIO.setup (,) Definujte PIN ako vstup alebo výstup, alebo sťahovanie alebo sťahovanie
Ďalej tu máme závitovanie.
Používame iba tieto príkazy:
- Vlákno (cieľ =)
- .start ()
Pomocou vlákien môžeme spustiť niekoľko inštancií kódu súčasne. Týmto spôsobom môžeme merať vzdialenosť a zároveň počúvať prichádzajúce správy socket io.
Prvý príkaz Thread (target =) vytvorí triedu Thread, ktorá po spustení pomocou 'start ()' spustí funkciu v kľúčovom slove 'target', ktoré bolo zadané pri vytváraní triedy.
Ďalej tu máme knižnicu senzora farieb, ktorá je celkom priamočiara. Túto knižnicu nebudem vysvetľovať, pretože metódy sú veľmi jasné a vysvetlené v kóde.
Ako posledné tu máme siete. To nám umožňuje získať adresu IP, ktorú používame na bezdrôtové a káblové pripojenie.
Naposledy som sám urobil niekoľko tried pre snímač vzdialenosti, LED a LCD.
Nebudem vysvetľovať, ako to funguje.
Krok 9: Krok 9: Vytvorenie puzdra
Pre tento projekt som vytvoril drevené puzdro.
Drevo je ľahké, tenké a nestojí veľa.
Ako rozmery som použil:
- Výška: 5 cm
- Šírka: 10,5 cm
- Dĺžka: 12,5 cm
Pre snímače je potrebné pridať 2 otvory a umiestniť ich vedľa seba.
Po vytvorení puzdra nainštalujte senzory, LED a LCD.
Krok 10: Posledné kroky
Všetko je v zásade urobené.
Teraz sa musíme len uistiť, že sa náš kód spustí, v okamihu, keď zapojíme zdroj energie.
Existuje mnoho spôsobov, ako to urobiť.
> Príklady
Použijeme prvú metódu:
Spustite tento riadok: 'sudo nano /etc/rc.local'
Na spustenie kódu zadajte príkaz: 'sudo python3'
Uložte súbor pomocou Ctrl-X.
Ak máte problémy s úpravou. Vykonajte tento krok znova, ale najskôr spustite príkaz „sudo -i“.
Odporúča:
Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami)
Počítadlo krokov - mikro: bit: Tento projekt bude počítadlom krokov. Na meranie našich krokov použijeme senzor akcelerometra, ktorý je vstavaný v Micro: Bit. Zakaždým, keď sa Micro: Bit zatrasie, pridáme k počtu 2 a zobrazíme ho na obrazovke
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): 8 krokov
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): Ultrazvukové meniče zvuku L298N Dc napájací adaptér ženského adaptéra s mužským DC kolíkom Arduino UNOBreadboard Ako to funguje: Najprv nahráte kód do Arduino Uno (je to mikrokontrolér vybavený digitálnym a analógové porty na prevod kódu (C ++)
Bolt - Nočné hodiny pre bezdrôtové nabíjanie DIY (6 krokov): 6 krokov (s obrázkami)
Bolt - Nočné hodiny bezdrôtového nabíjania DIY (6 krokov): Indukčné nabíjanie (tiež známe ako bezdrôtové nabíjanie alebo bezdrôtové nabíjanie) je typ bezdrôtového prenosu energie. Na prenos elektriny do prenosných zariadení používa elektromagnetickú indukciu. Najbežnejšou aplikáciou je bezdrôtové nabíjanie Qi
Ako rozobrať počítač pomocou jednoduchých krokov a fotografií: 13 krokov (s obrázkami)
Ako rozobrať počítač jednoduchými krokmi a obrázkami: Toto je návod, ako rozobrať počítač. Väčšina základných komponentov je modulárna a dá sa ľahko odstrániť. Je však dôležité, aby ste o tom boli organizovaní. Pomôže to zabrániť strate súčiastok a tiež pri opätovnej montáži
Od Roomby k Roveru iba 5 krokov!: 5 krokov
Od Roomby po Rover za pouhých 5 krokov !: Roboti Roomba sú zábavným a jednoduchým spôsobom, ako ponoriť prsty do nohy vo svete robotiky. V tomto návode podrobne popíšeme, ako previesť jednoduchú Roombu na ovládateľný rover, ktorý súčasne analyzuje svoje okolie. Zoznam dielov 1.) MATLAB2.) Roomb