Operácie

Oznamovač

Z SensorWiki

Záverečný projekt predmetu DTV / LS2023 - Martin Bartoš


Úvod

Mojím cieľom pre tento projekt bolo najmä oboznámenie sa s e-ink displejom a bezdrôtovou funkcionalitou zvoleného mikrokontroléra. Tento projekt ma však aj dôvernejšie oboznámil s 3D modelovaním v programe OpenSCAD a s opravou, a jej možnými rizikami, 3D tlačiarne.

Oznamovač ako taký slúži na oznamovanie všetkého možného, na čo si len užívateľ spomenie. Dá sa využiť na upovedomenie členov domácnosti na nedostatok danej potraviny, no i v pracovnom prostredí sa nestratí - naprogramovaním jedného z tlačidiel je možné jednoducho upovedomiť kolegov/zákazníkov že ste práve odišli na obed.

Literatúra:


Analýza a opis riešenia

Potrebujeme tieto súčiastky:

  • Raspberry Pi Pico W
  • Waveshare 2.9 palcový modul s e-ink displejom
  • Li-Po batéria
  • TP4056 nabíjací modul s ochranným obvodom
  • prepínač
  • 3 tlačítka
  • 4 skrutky

Na programovanie mikrokontroléra budeme používať Micropython, ktorý zavedieme na Pico W nasledovne: Zapojíme Pico do USB portu počítača, zatiaľ čo držíme tlačítko na doske kontroléra. Pico W by sa mal zobraziť ako bežný USB disk. Stiahneme najnovší micropython firmware z tejto stránky: link. Stránka obsahuje taktiež názornejší návod inštalácie.

Po skopírovaní súboru na Pico, by sa mal odpojiť, a po opätovnom zapojení schopný komunikácie cez sériový port. Na komunikáciu s Picom a najmä na jeho programovanie som použil jednoduché, no od výrobcu odporúčané, Python IDE - Thonny. Podobnú funkcionalitu ako Thonny poskytuje taktiež plugin Pico-W-Go do praktického IDE Visual Studio Code, no je menej intuitívny a spoľahlivý.

Na ovládanie najdôležitejšej časti projektu, e-ink displeja, je možné stiahnuť micropython súbor od výrobcu, ktorý uľahčuje komunikáciu (skrz SPI) s modulom. Tento súbor sa dá stiahnuť tu. Tento driver je kompatibilný aj s modulom špecificky zameraným na Pico/Pico W. Po stiahnutí a skopírovaní do flash pamäte mikrokontroléra zapojíme displej podľa tejto schémy:

E-ink modul zapojenie

Nasledovne spustíme stiahnutý micropython driver, keďže obsahuje krátke demo na test displeja (displej môže byt poškodený). Pri programovaní e-ink displejov sa neodporúča veľmi časté obnovovanie displeja - nie je na to stavaný a mohol by sa poškodiť. Ak nie je poškodený, skopírujte do pamäte mikrokontroléra zvyšné potrebné súbory: webserver.py, web.html, sprava0.txt, sprava1.txt a sprava2.txt. V súbore webserver.py si nastavte názov a heslo vašej Wifi siete a upravte import e-ink driver súboru, aby sa zhodoval s názvom vášho, už uploadnutého, driver súboru.

Ak po spustení súboru webserver.py všetko funguje, premenujte súbor na main.py, aby sa spustil pri každom zapnutí mikrokontroléra. Následovne môžeme zapojiť všetky súčiastky podľa tejto schémy:

Celkové zapojenie projektu

Posledná položka je vytlačenie samotnej krabičky, ktorá všetky komponenty uschová. V .zip archíve sú poskytnuté obidva .stl súbory (krabička a veko), ale aj parametrický OpenSCAD zdrojový kód, v ktorom možno podľa potreby upraviť rôzne parametre modelu. Na uzatvorenie krabičky treba ešte 4 skrutky.

Krabička a veko

Kód, 3D modely a iné materiály

Zdrojový kód webservera je bohužiaľ príliš dlhý, aby tu bol zobrazený vcelku, a preto je poskytnutý až v .zip archíve. Archív obsahuje, okrem micropython a OpenSCAD kódu, vygenerované .stl modely, schému zapojenia, html súbor poskytovaný webserverom a 3 textové súbory, ktorých obsah je možné zobraziť na displeji po stlačení daného tlačítka a najmä pozmeniť cez rozhranie html webstránky.

archív: oznamovac.zip

Záver

Dúfam, že tento projekt niekomu, niekedy v istom smere poslúži.

Ku koncu dám ešte do pozornosti tento foto rámik od spritesmods.com - využitie pre ktoré je e-ink ako stvorený.