From db46f3158af8c7033ba0e1f096db373709ba6b6d Mon Sep 17 00:00:00 2001 From: kkard2 Date: Wed, 10 Jun 2026 16:11:07 +0200 Subject: docs --- docs/doc.typ | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 docs/doc.typ (limited to 'docs/doc.typ') diff --git a/docs/doc.typ b/docs/doc.typ new file mode 100644 index 0000000..0fcf535 --- /dev/null +++ b/docs/doc.typ @@ -0,0 +1,99 @@ +#set text(font: "Noto Sans") +#show link: underline + +#page[ += Projekt zaliczeniowy z przedmiotu Internet Rzeczy + +- Autor: #sys.inputs.at("author") +- Kod źródłowy: https://git.kkard2.com/iot-esp32-textboard/ (oraz w załączniku) + += Opis + +Celem projektu jest stworzenie wyświetlacza pozwalającego zostawiać +wiadomości innym użytkownikom przestrzeni współdzielonej. + +Wiadomość wyświetla się przez minutę po krótkim naciśnięciu przycisku. +Następnie ekran gaśnie aby zaoszczędzić energię +(można go też wyłączyć klikając przycisk ponownie). + +Wprowadzanie wiadomości odbywa się poprzez stronę serwowaną +przez mikrokontroler po przytrzymaniu przycisku. + += Szczegóły techniczne + +== Rysowanie tekstu + +Glify czcionki zostały wygenerowane za pomocą programu znajdującego się w +podfolderze `src/font/`. Są one zapisane w tablicy 256 elementowej +(enkodowanie ISO-8859-2 dla wsparcia polskich znaków). +Czcionka zajmuje 4KiB pamięci (16 B #sym.times 256). + +== Emulacja + +Kod został napisany w taki sposób aby umożliwić testowanie go bez fizycznego +sprzętu. Aby uruchomić emulator należy użyć skryptu `src/run_emulator.sh`. + +Do działania jest wymagana biblioteka raylib (https://www.raylib.com/). + +== Firmware + +Firmware został skompilowany za pomocą narzędzia PlatformIO +(https://platformio.org/). +] + += Działanie + +== Wyświetlanie tekstu + +Po krótkim kliknięciu przycisku pojawia się zapisany tekst +w ustawionym motywie i wielkością czcionki. + +#grid( + columns: 2, + rows: auto, + image("display-example-1.png"), + image("display-example-2.png"), + image("display-example-3.png") +) + +Po długim wciśnięciu (2 sekundy) +pojawia się informacja o możliwości ustawienia tekstu: + +#image("wifi-enabled.png") + +U góry ekranu pokazuje się pasek jak długo jeszcze będzie włączona obecna funkcja. +Przy kontakcie z mikrokontrolerem pasek się odświeża +(np. wysłanie tekstu do wyświetlacza, odświeżenie strony). + +== Strona + +#image("webpage.png") + +Strona pozwala na ustawienie tekstu, zmianę kolorów oraz skali czcionki. +Odznaczenie zawijania słowami spowoduje zawijanie pojedynczych znaków. + +Można też wyłączyć WiFi z poziomu strony zamiast trzymania przycisku przez 2 sekundy. + += Diagram połączeń + +#image("diagram.png") + +== Tabela + +#table( + columns: (auto, auto, auto), + inset: 10pt, + table.header( + [*Komponent*], [*Wyprowadzenie*], [*Pin ESP32*] + ), + [TFT ILI9341], [SCK], [18], + [TFT ILI9341], [SDI/MOSI], [23], + [TFT ILI9341], [DC], [16], + [TFT ILI9341], [RESET], [17], + [TFT ILI9341], [CS], [5], + [TFT ILI9341], [GND], [GND], + [TFT ILI9341], [VCC, LED], [3.3V], + [Przycisk], [A], [4], + [Przycisk], [B], [GND], +) + -- cgit v1.3.1