Съдържание:

Face Aware OSD Photo Frame: 11 стъпки (със снимки)
Face Aware OSD Photo Frame: 11 стъпки (със снимки)

Видео: Face Aware OSD Photo Frame: 11 стъпки (със снимки)

Видео: Face Aware OSD Photo Frame: 11 стъпки (със снимки)
Видео: Зеленая катастрофа. Беседка преображается. Будка для Карлоса 2024, Юли
Anonim
Face Aware OSD Photo Frame
Face Aware OSD Photo Frame
Face Aware OSD Photo Frame
Face Aware OSD Photo Frame
Face Aware OSD Photo Frame
Face Aware OSD Photo Frame
Face Aware OSD Photo Frame
Face Aware OSD Photo Frame

Тази инструкция показва как да направите фоторамка с лице на екранното меню (OSD).

Екранното меню може да показва времето, времето или друга интернет информация, която искате.

Стъпка 1: Защо OSD Photo Frame?

Защо OSD Photo Frame?
Защо OSD Photo Frame?
Защо OSD Photo Frame?
Защо OSD Photo Frame?

Имам 2 проекта за фоточасовник в Instructables преди:

www.instructables.com/id/ESP32-Photo-Clock…

www.instructables.com/id/Arduino-BiJin-ToK…

И двамата извличат снимка с красота и табела за време от интернет на всеки минути и се показват на LCD.

Показването на красавици е добре, но всички те са ми непознати. Какво ще кажете за използване на лични любими снимки и добавяне на текущо време и допълнителна незабавна информация за него?

Този проект проучва как да го направите.

Стъпка 2: Защо Face Aware?

Защо Face Aware?
Защо Face Aware?
Защо Face Aware?
Защо Face Aware?
Защо Face Aware?
Защо Face Aware?
Защо Face Aware?
Защо Face Aware?

Нека първо проверим как да добавим незабавно информационно OSD към снимка:

  1. Случайно изберете снимка от конкретна папка
  2. Извличане на времето
  3. Изтеглете незабавна информация от Интернет
  4. изтеглете време и незабавна информация за снимката

Стъпка 1-3 е право напред; Стъпка 4 също изглежда проста, но определете къде да нарисувате текста не е толкова лесно.

Ако размерът на текста е твърде малък, е трудно да се чете на разумно разстояние; Ако размерът на текста е твърде голям, той най -вероятно покрива фото обектите. Особено ако това е портретна снимка, текстът, покрит върху лицата, не се предпочита.

Тъй като положението на лицата за всяка снимка не е еднакво, за да избегнем лица, покрити с OSD, първо се нуждаем от процес на разпознаване на лица. След това можем да намерим област без лице, за да нарисуваме текста.

Стъпка 3: Дизайн на 2 нива

Дизайн на 2 нива
Дизайн на 2 нива

Процесът на разпознаване на лице изисква известна процесорна мощност, за разлика от това фото рамката може да бъде с много малко тегло. Затова го разделих на 2 нива:

Сървър

Снимката, разпознаваща лицето, е сървър на приложения Node.js. За всяка HTTP заявка тя ще:

  1. Изберете снимка от папката със снимки на случаен принцип
  2. Разпознаване на лица
  3. определете без лице или зона с най -малко лица
  4. Междувременно извличайте времето или друга полезна незабавна информация от интернет на всеки определен период
  5. Начертайте време и незабавна информация за снимката
  6. Върнете снимката с OSD в JPEG формат като HTTP отговор

Клиент

Клиентът може да бъде уеб браузър, аплет или IoT устройство.

Напр. ESP32 dev boasrd с 2-4 инчов LCD е много подходящ за поставяне на работния плот като малка фоторамка.

Стъпка 4: Настройка на Photo Server Вариант 1: Изображение на Docker

Настройка на Photo Server Вариант 1: Изображение на Docker
Настройка на Photo Server Вариант 1: Изображение на Docker
Настройка на фото сървър Вариант 1: Изображение на Docker
Настройка на фото сървър Вариант 1: Изображение на Docker

За удобство предварително съм изградил изображение на Docker за OSD сървър на приложения OSD Node.js за снимка с лице.

В случай, че все още не сте настроили Docker, моля, следвайте ръководството на Docker Get Started:

www.docker.com/get-started

След това изпълнете следната команда: (заменете/пътека/към/снимка към вашия собствен път на снимка)

docker run -p 8080: 8080 -v/path/to/photo:/app/photo moononournation/face-aware-photo-osd: 1.0.1

Тествайте го, като прегледате https:// localhost: 8080/

Може да откриете, че времето за показване не е във вашата часова зона:

docker run -p 8080: 8080 -e TZ = Asia/Hong_Kong -v/path/to/photo:/app/photo moononournation/face -aware -photo -osd: 1.0.1

Ако живеете в Хонконг като мен, можете да добавите метеорологична информация за Хонконг:

docker run -p 8080: 8080 -e TZ = Asia/Hong_Kong -e OSD = HK_Weather -v/пътека/към/снимка:/app/photo moononournation/face -aware -photo -osd: 1.0.1

Ако искате да разработите своя собствена информация за екранното меню:

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/път/към/снимка:/app/photo -v ~/git/face-aware-photo-osd/app.js: /app/app.js moononournation/face-aware-photo-osd: 1.0. 1

Променете функцията update_osd () в app.js, за да персонализирате собствената си информация за екранното меню. След разработката просто премахнете DEBUG = Y средата от командата docker.

Стъпка 5: Настройка на Photo Server Вариант 2: Изграждане от източник

Ако сте запознати с Node.js, можете да изградите сървъра на приложения от източника.

Вземете източника:

git clone

Инсталирайте пакети:

cd лице-наясно-снимка-osd

npm инсталиране

Създайте папка със снимки и копирайте вашите собствени снимки в папката.

Стартирайте сървъра на приложения:

възел app.js

Стъпка 6: Клиент Вариант 1: Уеб браузър

Клиент Опция 1: Уеб браузър
Клиент Опция 1: Уеб браузър

Просто от браузъра до https:// localhost: 8080/

Страницата е скриптова автоматично зарежда изображение с подходящ размер на страницата всяка минута.

P. S. Ако сърфирате от друга машина, която не изпълнява сървъра на приложения, не забравяйте да промените localhost на името на хоста на сървъра на приложения или IP адреса.

Стъпка 7: Клиентска опция 2: ESP32 + LCD

Клиентски вариант 2: ESP32 + LCD
Клиентски вариант 2: ESP32 + LCD
Клиентски вариант 2: ESP32 + LCD
Клиентски вариант 2: ESP32 + LCD
Клиентски вариант 2: ESP32 + LCD
Клиентски вариант 2: ESP32 + LCD
Клиентски вариант 2: ESP32 + LCD
Клиентски вариант 2: ESP32 + LCD

Клиентът за фоторамка може да бъде толкова прост, колкото ESP32 dev board и LCD.

Ето необходимия хардуер:

ESP32 Dev Board

Всяка платка за разработка на ESP32 трябва да е наред, този път използвам дъска, наречена MH-ET LIVE.

ЛСД дисплей

Всеки поддържан от Arduino_GFX LCD дисплей може да намерите поддържания дисплей в GitHub readme:

github.com/moononournation/Arduino_GFX

Jumper Wire

Някои джъмперни проводници зависят от оформлението на таблото за разработка и LCD пиновете. В повечето случаи са достатъчни 6-9 проводници от женски към женски.

LCD стойка

Някои поддръжки помагат на LCD да стои изправен, този път използвам стойка за държач за карта.

Стъпка 8: ESP32 + LCD монтаж

ESP32 + LCD монтаж
ESP32 + LCD монтаж
ESP32 + LCD монтаж
ESP32 + LCD монтаж
ESP32 + LCD монтаж
ESP32 + LCD монтаж

Предпочита се ESP32 с щифтова заглавка от горната страна. Ако заглавката на щифта от долната страна, просто поставете дъската с главата надолу;>

Свържете ESP32 и LCD с джъмперни проводници, след което го поставете към стойката.

Ето примерното резюме на връзката:

ESP32 -> LCD

Vcc -> Vcc GND -> GND GPIO 5 -> CS GPIO 27 -> DC (ако има такъв) GPIO 33 -> RST GPIO 18 -> SCK GPIO 19 -> MISO (по избор) GPIO 22 -> LED (ако има) GPIO 23 -> MOSI / SDA

Стъпка 9: ESP32 + LCD софтуер

ESP32 + LCD софтуер
ESP32 + LCD софтуер

Arduino IDE

Изтеглете и инсталирайте Arduino IDE, ако все още не сте го направили:

www.arduino.cc/en/main/software

Поддръжка на ESP32

Следвайте инструкциите за инсталиране, за да добавите поддръжка за ESP32, ако все още не го правите:

github.com/espressif/arduino-esp32

Библиотека Arduino_GFX

Изтеглете най -новите библиотеки на Arduino_GFX: (натиснете „Clone or Download“-> „Download ZIP“)

github.com/moononournation/Arduino_GFX

Импортирайте библиотеки в Arduino IDE. (Arduino IDE "Sketch" Menu -> "Include Library" -> "Add. ZIP Library" -> изберете изтегления ZIP файл)

Компилиране и качване

  1. Отворете Arduino IDE
  2. Отворете примерен код на ESP32PhotoFrame ("Файл" -> "Пример" -> "GFX библиотека за Arduino" -> "WiFiPhotoFrame")
  3. Попълнете настройките на вашата WiFi точка за достъп в SSID_NAME и SSID_PASSWORD
  4. Заменете името на хоста на вашия сървър или IP и порт в HTTP_HOST и
  5. Натиснете бутона за качване на Arduino IDE
  6. Ако установите, че ориентацията не е правилна, променете стойността на "въртене" (0-3) в новия код на класа

Стъпка 10: Насладете се на снимка

Насладете се на снимката!
Насладете се на снимката!

Време е да поставите фоторамката на IoT на вашия работен плот и да се насладите!

Стъпка 11: Какво следва?

  • Добавете своя собствена незабавна информация
  • Прецизно настройте размера на снимката на източника за по -добра точност на разпознаване на лица
  • Автоматична задача за поставяне на най -новите снимки в папката със снимки на сървъра
  • Направете още снимки;>

Препоръчано: