Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Fotozegar na ESP32 korzystający z BiJin ToKei

ghost666 15 Sty 2018 10:26 6459 1
  • Fotozegar na ESP32 korzystający z BiJin ToKei

    Poniższa instrukcja przedstawi nam, jak skonstruować fotozegar oparty o moduł z układem ESP32 oraz ekran LCD. System wykorzystuje japoński portal BiJin ToKei (美人時計) do pobierania zdjęć, które wyświetlane będą przez zegar.

    Krok 1: Co to jest BiJin ToKei?



    BiJin ToKei(美人時計)to usługa uruchomiona w 2009 roku w Japonii, która dostarcza "zdjęć pięknych ludzi", jak głosi jej strona internetowa. Istnieje aplikacja na komputer i na systemy mobilne. Przez te wszystkie lata od powstania usługi stworzone zostało wiele wariantów i odmian tej aplikacji. Znaleźć je możemy między innymi na:

    http://www.bijint.com
    https://ja.wikipedia.org/wiki/BIJIN%26Co..
    https://itunes.apple.com/us/app/bijin-tokei-plus/i......
    http://deadoralive.wikia.com/wiki/Bijin_Tokei
    https://twitter.com/search?q=%23bijintokei

    Krok 2: Czemu ESP32?

    Fotozegar na ESP32 korzystający z BiJin ToKei


    Początkowo BiJin ToKei udostępniał jedynie aplikację webową i mobilną dla telefonów komórkowych. Trudno wyobrazić sobie, że do stworzenia tego fotozegara wykorzystamy laptop czy telefon komórkowy. Konieczna jest więc niedroga alternatywna platforma o podobnych możliwościach.

    Dlatego też wybór padł na ESP32 z ekranem LCD. Elementy do tej ramki kosztują zaledwie około 10 dolarów - na tyle mało, że każdy może wykonać sobie takie coś.





    Krok 3: Przygotowanie elementów

    Fotozegar na ESP32 korzystający z BiJin ToKeiFotozegar na ESP32 korzystający z BiJin ToKeiFotozegar na ESP32 korzystający z BiJin ToKei


    Potrzebne nam będą:

    * Płytka z ESP32 - dowolny moduł z tym układem i wyprowadzonymi pinami SPI.
    * Ekran LCD - dowolny wspierany przez bibliotekę ESP32_TFT_Library, która obsługuje kontrolery takie jak ILI9341, ILI9488, ST7789V oraz ST7735. W tym projekcie wykorzystany został LCD, 2,4" z ST7789V LCD, numer katalogowy JLX240-00302-BN. Ma on jedynie 10 pinów, jako że sterowany jest tylko poprezz SPI - wyraźnie upraszcza to podłączenie ekranu do modułu sterującego.
    * Ramka, na której zamontujemy fotozegar. Autor tego projektu wykonał ją z pleksi, ale można ją stworzyć z dowolnego materiału, który umożliwi nam jej zamocowanie i postawienie.
    * Opornik 10 Ω
    * Kabelek do podłączenia LCD do modułu ESP32.

    Krok 4: System - projektowanie

    Fotozegar na ESP32 korzystający z BiJin ToKei


    Fotozegar musi być w stanie wyświetlać zdjęcia; znajdują się one na www.bijint.com i są dostępne w formacie JPG. Konieczne będzie zatem dekodowanie zdjęcia. Dotychczasowo na niewielkich mikrokontrolerach było to trudne, ale od momentu pojawienia się ESP32 jest to możliwe do zrealizowania przez hobbystów. Popularyzacja ESP32 pozwoliła na stworzenie bibliotek takich jak ESP32_TFT_library, które umożliwiają dekodowanie JPGów i obsługę wyświetlaczy graficznych.

    Oto jak działa cały program:

    1. Połączenie się z WiFi.
    2. Pobranie czasu z wykorzystaniem protokołu NTP.
    3. Stworzenie stringa z czasem, posłuży on nam do pobrania aktualnego obrazka z bijint.com. Będzie to robione co minutę.
    4. Pobranie i zapisanie obrazu do SPIFFS.
    5. Wyświetlenie obrazka na LCD.

    W najnowszej wersji programu (zamieszczonej poniżej) możliwe jest dekodowanie obrazka JPG "w locie", więc nie ma konieczności zapisywania go do pamięci podręcznej.

    Program wydaje się prosty, ale jest kilka detali, które musiały zostać uwzględnione, by program działał poprawnie. Po pierwsze, trzeba monitorować połączenie z Internetem. Nie jest ono w 100% niezawodne, więc trzeba pilnować, aby nasz fotozegar nie zawiesił się z powodu napotkania jakiegoś błędu w połączeniu. Po wykryciu awarii połączenia sieciowego lub problemu z pobieraniem zdjęcia program musi zresetować połączenie i spróbować ponownie. Innym problemem jest ograniczenie pamięci. Obrazek zmienia się co minutę, co oznacza, że jest ich 1440 dziennie. Nie można ich wszystkich pobrać i trzymać w pamięci, gdyż wbudowany w ESP32 Flash jest stanowczo zbyt mały na takie coś. Musimy pobierać jedno zdjęcie naraz, wgrywać na LCD i kasować. Takie częste kasowanie uszkadza pamięć Flash, więc program co jakiś czas rotuje pamięć. Dzięki temu dane nie są ciągle zapisywane w tym samym miejscu - wydłuża to żywotność pamięci w ESP32.

    Krok 5: Program: pobranie, kompilacja i wgranie na ESP32

    Fotozegar na ESP32 korzystający z BiJin ToKei


    W pierwszej kolejności pobrać musimy ESP-IDF, jeśli jeszcze go nie mamy.

    * Instrukcja instalacji dla Windowsa
    * Instrukcja instalacji dla MacOSa
    * Instrukcja instalacji dla Linuxa

    Następnie pobieramy kody źródłowe z repozytorium na GitHubie.
    https://github.com/moononournation/ESP32_BiJin_ToK......

    Główny kod źródłowy programu:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Konfiguracja:

    W konsoli wpisujemy:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Teraz możemy skonfigurować port szeregowy, a następnie wybieramy w "Serial Flasher Config" port domyślny - "Default serial port". Teraz wpisać musimy dane tego portu, np. COM6 na Windowsie lub /dev/cu.SLAB_USBtoUART na macOSie.

    W kolejnym kroku konfigurujemy połączenie Wi-Fi. Wpisać musimy SSID sieci, do której podłączyć ma się fotozegar oraz hasło do sieci. Dane te podajemy w menu "BiJin Tokei Configuration".

    W pliku "partitions.csv", zmienić możemy wielkość przestrzeni pamięci do przechowywania danych (maksymalnie do 0x100000 dla 2 M lub 0x300000 dla 4 M). Wpis ten wygląda, przykładowo, w ten sposób:

    Code:
    storage, data, spiffs, 0x100000, 0xF0000,


    Główny plik źródłowy - "main/bijin_tokei.c" - możemy edytować w celu zmiany szeregu opcji:

    Możemy zdefiniować, ile plików zgromadzonych będzie w pamięci podręcznej - zależy to od zdefiniowanej wielkości pamięci SPIFFS. Jeśli poniższą wartość ustawimy na zero, to pliki JPG dekodowane będą "w locie":

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Następnie możemy wybrać z listy URL, z którego pobierane będą zdjęcia:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Po wprowadzeniu zmian musimy przekompilować program, żeby wgrać go do ESP32:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Krok 6: Lutowanie połączeń

    Fotozegar na ESP32 korzystający z BiJin ToKeiFotozegar na ESP32 korzystający z BiJin ToKeiFotozegar na ESP32 korzystający z BiJin ToKeiFotozegar na ESP32 korzystający z BiJin ToKei


    Moduł z ESP32 montujemy z tyłu ekranu LCD i podłączamy do niego lutując cienkie miedziane druciki pomiędzy wyprowadzeniami LCD a poszczególnymi pinami wyjściowymi z modułu. Połączenia są bardzo proste, ale postarajmy się nie poplątać kabelków.

    W poniższej tabelce zebrano listę połączeń w systemie:

    ESP32 GND LCD -ve
    ESP32 GND LCD LED -ve
    ESP32 3v3 LCD +ve
    ESP32 3v3 LCD LED +ve przez opornik 10 Ω
    ESP32 GPIO16 LCD RS (DC)
    ESP32 GPIO23 LCD SDA (SPI MOSI)
    ESP32 GPIO05 LCD CS
    ESP32 GPIO17 LCD RST
    ESP32 GPIO18 LCD CL (SPI CLK)


    Uwaga - licznie zasilające wymagają grubszych kabelków niż linie sygnałowe, dlatego dobrze jest zwrócić na nie szczególną uwagę podczas montażu.

    Krok 7: Umieszczenie fotozegara w ramce-stojaku

    Fotozegar na ESP32 korzystający z BiJin ToKei


    Sprawdź, czy program działa poprawnie. Jeśli tak, to można przyczepić całe urządzenie do przygotowanego wcześniej stojaka.

    Krok 8: Gotowe!

    Fotozegar na ESP32 korzystający z BiJin ToKei


    Możesz teraz postawić zegar w dowolnym miejscu i pochwalić się swoją konstrukcją.

    Krok 9: Co dalej?

    Możesz teraz między innymi:
    * Sprawdzić inne warianty BiJin ToKei,
    * Obracać losowo wybrane warianty zdjęć,
    * Stworzyć własne zdjęcia,
    * Zmienić np. czcionkę, jaka wykorzystana jest do wyświetlenia zdjęcia albo modyfikować ją, gdy np. zdjęcie się nie załaduje,
    * Zainstalować większy ekran, na przykład ili9488 (rozdzielczość 320 px x 480 px).

    Źródło: http://www.instructables.com/id/ESP32-Photo-Clock/


    Fajne!
  • #2 18 Sty 2018 15:39
    yogi009
    Poziom 42  

    Tylko Japończycy mogli wymyślić coś takiego, jak serwer ze zdjęciami pięknych ludzi...