Sadržaj:
- Korak 1: Zašto OSD okvir za fotografije?
- Korak 2: Zašto Face Aware?
- Korak 3: Dvoslojni dizajn
- Korak 4: Postavljanje foto poslužitelja Opcija 1: Docker slika
- Korak 5: Postavljanje foto poslužitelja Opcija 2: Izrada iz izvora
- Korak 6: Klijent Opcija 1: Web preglednik
- Korak 7: Opcija 2 klijenta: ESP32 + LCD
- Korak 8: Sklop ESP32 + LCD
- Korak 9: ESP32 + LCD softver
- Korak 10: Uživajte u fotografiji
- Korak 11: Što je sljedeće?
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Ove upute pokazuju kako napraviti okvir za fotografije s zaslonskim prikazom na ekranu (OSD).
OSD može prikazati vrijeme, vrijeme ili druge internetske podatke koje želite.
Korak 1: Zašto OSD okvir za fotografije?
Već sam imao 2 projekta sa satom za fotografije u Instructables:
www.instructables.com/id/ESP32-Photo-Clock…
www.instructables.com/id/Arduino-BiJin-ToK…
Oboje svake minute preuzimaju fotografiju s ljepotama i vremensku ploču s interneta i prikazuju ih na LCD -u.
Izlagati ljepote je dobro, ali sve su mi strane. Kako bi bilo koristiti osobne omiljene fotografije i dodati trenutno vrijeme i daljnje trenutne informacije o njemu?
Ovaj projekt istražuje kako to napraviti.
Korak 2: Zašto Face Aware?
Prvo provjerimo kako fotografiji dodati OSD za trenutne informacije:
- Nasumičnim odabirom fotografije iz određene mape
- Dohvatite vrijeme
- Dohvatite trenutne informacije s Interneta
- izvucite vrijeme i trenutne informacije na fotografiji
Korak 1-3 je ravno naprijed; Korak 4 također izgleda jednostavno, ali odrediti gdje nacrtati tekst nije tako lako.
Ako je tekst premalen, teško ga je čitati na razumnoj udaljenosti; Ako je veličina teksta prevelika, najvjerojatnije će pokriti foto objekte. Posebno ako se radi o portretnoj fotografiji, tekst s prekrivenim licima nije poželjan.
Budući da položaj lica za svaku fotografiju nije isti, da bismo izbjegli lica prekrivena OSD -om, prvo nam je potreban postupak otkrivanja lica. Tada možemo pronaći područje bez lica za crtanje teksta.
Korak 3: Dvoslojni dizajn
Postupak otkrivanja lica zahtijeva određenu procesorsku snagu, za razliku od toga, okvir za fotografije može biti vrlo male težine. Pa sam ga podijelio u 2 sloja:
Poslužitelj
Motor za fotografije osviješten licem poslužitelj je aplikacija Node.js. Za svaki HTTP zahtjev bit će:
- Nasumično odaberite fotografiju iz mape sa fotografijama
- Prepoznavanje lica
- ne utvrdite područje lica ili najmanje lica
- U međuvremenu, preuzimajte vremenske ili druge korisne trenutne informacije s Interneta u svakom određenom razdoblju
- Nacrtajte vrijeme i trenutne informacije na fotografiji
- Vratite fotografiju s OSD -om u JPEG formatu kao HTTP odgovor
Klijent
Klijent može biti web preglednik, applet ili IoT uređaj.
Npr. ESP32 dev boasrd s 2-4 inčnim LCD-om vrlo je prikladan za postavljanje na radnu površinu kao mali okvir za fotografije.
Korak 4: Postavljanje foto poslužitelja Opcija 1: Docker slika
Radi praktičnosti, unaprijed sam napravio Docker sliku za OSD poslužitelj aplikacija OSD Node.js sa fotografijom svjesnom lica.
U slučaju da još niste postavili Docker, slijedite vodič Docker za početak:
www.docker.com/get-started
Zatim pokrenite sljedeću naredbu: (zamijenite/put/do/fotografiju na vlastiti put do fotografije)
docker run -p 8080: 8080 -v/path/to/photo:/app/photo moononournation/face-svjesni-foto-osd: 1.0.1
Testirajte ga pretraživanjem https:// localhost: 8080/
Možda ćete otkriti da vrijeme prikaza nije u vašoj vremenskoj zoni:
docker run -p 8080: 8080 -e TZ = Asia/Hong_Kong -v/path/to/photo:/app/photo moononournation/face -svjesni -foto -osd: 1.0.1
Ako živite u Hong Kongu poput mene, možete dodati vremenske podatke za Hong Kong:
docker run -p 8080: 8080 -e TZ = Asia/Hong_Kong -e OSD = HK_Weather -v/path/to/photo:/app/photo moononournation/face -svjesni -foto -osd: 1.0.1
Ako želite razviti vlastite OSD podatke:
mkdir -p ~/git
cd ~/git git clone https://github.com/moononournation/face-aware-photo-osd.git docker run -it -p 8080: 8080 -e TZ = Asia/Hong_Kong -e OSD = HK_Weather -e DEBUG = Y -v/put/do/fotografije:/app/photo -v ~/git/face-svjesni-foto-osd/app.js: /app/app.js moononournation/lice-svjesni-foto-osd: 1.0. 1
Izmijenite funkciju update_osd () u app.js tako da prilagođene OSD podatke izradite po mjeri. Nakon razvoja, jednostavno uklonite DEBUG = Y okruženje iz naredbe docker.
Korak 5: Postavljanje foto poslužitelja Opcija 2: Izrada iz izvora
Ako ste upoznati s Node.js, poslužitelj aplikacija možete izgraditi iz izvora.
Uzmi izvor:
git klon
Instalirajte pakete:
cd lice svjesno-foto-osd
npm instalirati
Izradite mapu s fotografijama i kopirajte vlastite fotografije u mapu.
Pokrenite poslužitelj aplikacija:
čvor app.js
Korak 6: Klijent Opcija 1: Web preglednik
Jednostavno pretražite na https:// localhost: 8080/
Stranica je skriptirana automatskim učitavanjem slike odgovarajuće veličine svake minute.
p.s. Ako pregledavate s drugog stroja na kojem nije pokrenut poslužitelj aplikacija, sjetite se da ste promijenili localhost u naziv poslužitelja aplikacija ili IP adresu.
Korak 7: Opcija 2 klijenta: ESP32 + LCD
Klijent okvira za fotografije može biti jednostavan poput ESP32 ploče za razvoj i LCD -a.
Ovdje je potreban hardver:
ESP32 ploča za razvoj
Bilo koja ESP32 dev ploča trebala bi biti u redu, ovaj put koristim ploču koja se zove MH-ET LIVE.
LCD zaslon
Bilo koji LCD koji podržava Arduino_GFX, trenutno podržani zaslon možete pronaći na GitHub readme:
github.com/moononournation/Arduino_GFX
Kratkospojna žica
Neke kratkospojne žice ovise o rasporedu razvojnih ploča i LCD pinova. U većini slučajeva dovoljno je 6-9 žica kratkospojnika za žene.
LCD stalak
Neka podrška pomaže LCD -u da stoji ravno, ovaj put koristim stalak za držač kartice.
Korak 8: Sklop ESP32 + LCD
Poželjni je ESP32 s pin zaglavljem na gornjoj strani. Ako je zaglavlje iglice na donjoj strani, jednostavno ploču postavite naopako;>
Spojite ESP32 i LCD pomoću kratkospojnih žica, a zatim ih postavite na postolje.
Evo primjera sažetka veze:
ESP32 -> LCD
Vcc -> Vcc GND -> GND GPIO 5 -> CS GPIO 27 -> DC (ako je dostupan) GPIO 33 -> RST GPIO 18 -> SCK GPIO 19 -> MISO (opcija) GPIO 22 -> LED (ako je dostupan) GPIO 23 -> MOSI / SDA
Korak 9: ESP32 + LCD softver
Arduino IDE
Preuzmite i instalirajte Arduino IDE ako to još niste učinili:
www.arduino.cc/en/main/software
Podrška za ESP32
Slijedite upute za instalaciju da biste dodali podršku za ESP32 ako to još niste učinili:
github.com/espressif/arduino-esp32
Knjižnica Arduino_GFX
Preuzmite najnovije Arduino_GFX knjižnice: (pritisnite "Kloniraj ili preuzmi" -> "Preuzmi ZIP")
github.com/moononournation/Arduino_GFX
Uvezite knjižnice u Arduino IDE. (Arduino IDE "Sketch" izbornik -> "Uključi knjižnicu" -> "Dodaj. ZIP knjižnicu" -> odaberite preuzetu ZIP datoteku)
Kompilacija i prijenos
- Otvorite Arduino IDE
- Otvorite uzorak koda ESP32PhotoFrame ("Datoteka" -> "Primjer" -> "GFX knjižnica za Arduino" -> "WiFiPhotoFrame")
- Unesite svoje WiFi pristupne točke u SSID_NAME i SSID_PASSWORD
- Zamijenite naziv hosta poslužitelja ili IP i port u HTTP_HOST i
- Pritisnite Arduino IDE gumb "Upload"
- Ako smatrate da orijentacija nije točna, promijenite vrijednost "rotacije" (0-3) u novom kodu klase
Korak 10: Uživajte u fotografiji
Vrijeme je da postavite IoT okvir za fotografije na radnu površinu i uživajte!
Korak 11: Što je sljedeće?
- Dodajte vlastite trenutne podatke
- Fino podesite veličinu izvorne fotografije za bolju točnost prepoznavanja lica
- Automatski zadatak za postavljanje najnovijih fotografija u mapu sa fotografijama poslužitelja
- Snimite više fotografija;>