Obsah:

Budík Oled: 8 krokov (s obrázkami)
Budík Oled: 8 krokov (s obrázkami)

Video: Budík Oled: 8 krokov (s obrázkami)

Video: Budík Oled: 8 krokov (s obrázkami)
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, December
Anonim
Budík Oled
Budík Oled

Okolo sa pohybuje veľa hodín arduino/ESP32, ale používajú tieto pekné a ostré OLED?

Už nejaký čas experimentujem s arduinos a ESP32, ale nikdy som sa nedostal k hotovému produktu. Vyrobil som budík so 4 1,3 -palcovými monochromatickými OLED. Hodiny majú tiež stmievateľnú nočnú lampu a nabíjací port USB (nikto nemá náhradné zásuvky vedľa svojej postele). OLED sú tiež stmievateľné, to bolo pridané na poslednú chvíľu potom, čo môj projekt ohrozila moja priateľka. Ak by dim nemalo byť - v priateľkách hlasom - dostatočne tlmené, môžem poskytnúť aj verziu kódu, v ktorej sa medzi určitými hodinami napájajú 3 displeje. Cieľom bolo vytvoriť ľahko prevádzkyschopné hodiny s pohľadom presahujúcim „prototyp“. Pri vytváraní hodín som narazil na niekoľko ťažkostí, ktoré som musel vyriešiť, a preto si myslím, že tento návod je na mieste zdieľať. Hodiny je možné vyrábať s malým počtom nástrojov, nemám rád „a v ďalšom kroku som použil svoje návody na CNC mlyn 10.000 EUR/$“.

Niektoré veci, ktoré budú vysvetlené v tomto pokyne (v štruktúrovanej výnimke):

- Ako používať/zapojiť I2C OLED displej s Arduino/ESP32

- Ako používať viac objektov I2C s jedným arduino/ESP32

- Ako vytvoriť „posúvateľnú“ponuku pomocou rotačného enkodéra (+ ako používať kodér s ESP32/arduino)

- Ako navrhnúť a objednať vlastný PCB pomocou fritovania.

- Hodiny tiež používajú RTC (hodiny v reálnom čase), LED diódy, modul znižujúceho napätia … K týmto sa naozaj nedostanem, pretože pre tieto moduly je skutočne dostupných veľa informácií.

Chcel by som poznamenať, že nie som profesionálny programátor. Cieľom môjho pokynu je vysvetliť body, ktoré som spomenul vyššie. Ako som to dal dohromady pre svoj konečný produkt, nemusí byť práve najčistejšia cesta. Je to spôsob, ktorý mi umožnil sledovať to všetko.

Zásoby

Pri nákupe spotrebného materiálu sa vždy snažím zvážiť dôležitosť kvality/dokumentácie oproti cene. Moje zásoby sú kombináciou značiek A a lacnejších čínskych dielov. Mouser je vynikajúcim dodávateľom, ak je dôležitá kvalita, objednávam lacnejšie diely z Banggood/Aliexpress.

- Doska ESP32, použil som Huzzah32 od adafruit, ale existuje veľa ďalších (lacnejších) možností. Vybral som Huzzah32, pretože je veľmi dobre zdokumentovaný.

- 4 1,3 -palcové I2C OLED displeje (128 x 64, s ovládačom SH1106), 0,96 "sú bežnejšie, ale pre tento projekt dávam prednosť 1,3" displejom

- Sparkfun femtobuck vodič na ovládanie LED

- Hodiny RTC, použil som jedny s lítiovým článkom

- Arduino nano

-Zásuvka USB 2.0 (použil som: SS-52200-002 z konektora Stewart)

- Zásuvka DC (používal som: L722A od Switchcraft)

- 12V 3A DC adaptér (GST36E12-P1J od Mean Well)

- Vlastná doska plošných spojov, voliteľná, ale to robí projekt oveľa kompaktnejším a ľahko opraviteľným, ak časť zomrie + väčšia spoľahlivosť, pretože menej káblov (jlcpcb.com)

- Skrutky a skrutky M3

- Mosadzné vložky M3

- Znižovací modul 12V až 5V od Pololu (DF24V22F5)

- 3 watty napájané chladičom

- prepojovacie vodiče

- bzučiak

- multiplexor I2C (TCA9548A od adafruit)

- 2 rotačné enkodéry (vyskúšal som niektoré, nie všetky fungujú s mojím kódom. Ten z „DFrobot“funguje a rovnako aj ten z okrúhleho plošného spoja z „DIYmore“. Môj kód zrejme nepracuje na tlačidle typu KY-040. Môj budík používa ten od DIYmore, pretože sa veľmi ľahko montuje na panel (nie sú potrebné žiadne ďalšie skrutky/otvory).

- Sortiment hlavičiek (voliteľné)

- Drevo na rám: 18 mm x 18 mm x 2400 mm

- pauzovací papier

Použil som aj nejaké nástroje (spájkovačku, tretiu ruku, pílu …), ale nič skutočne exotické.

Krok 1: Použitie Oledu

Použitie Oleda
Použitie Oleda
Použitie Oleda
Použitie Oleda
Použitie Oleda
Použitie Oleda

Ak chcete používať OLED, musíte si nainštalovať knižnicu. Používam U8G2lib od Oli Kraus, je veľmi zrozumiteľný a má referenčný návod s jasnými príkladmi.

Na pripojenie dosky (ESP alebo arduino) musíte nájsť piny SDA a SCL. Tieto piny sú komunikačné piny I2C. Ak ich nemôžete nájsť, vyhľadajte „pinout“konkrétnej nástenky.

Pridal som nejaký ukážkový kód. Kód funguje pre arduino aj ESP32, ale v ESP32 je menšia pravdepodobnosť, že dôjde k nedostatku pamäte. Všetky oledy, ktoré som zatiaľ vyskúšal, fungujú s 3.3V (ESP32) aj 5V.

Krok 2: Viaceré OLED

Viacnásobné OLED
Viacnásobné OLED

Tu sa môj projekt začína líšiť od mnohých iných budíkov. Väčšina arduinos/ESP má iba jeden alebo dva piny I2C. Tento druh obmedzuje používanie dielov I2C. Čo keď mám 4 snímače I2C a chcem zobrazovať ich hodnoty na displeji I2C? Zadajte multiplexor. Muliplexer vám umožňuje adresovať 7 rôznych častí I2C. To umožňuje môjmu ESP32 používať hodiny I2C v reálnom čase a zobrazovať čas znova pomocou I2C na 4 displejoch (alebo viac, nedovoľte mi, aby som vás zastavil).

Pridal som nejaký ukážkový kód pre ESP32, odtiaľ si nie som istý, či arduino dokáže držať krok. Príklad používa iba displeje, môžu to byť aj iné veci, napríklad senzory I2C atď. Princíp je vždy rovnaký, na správny kanál zavoláte „tcaselect (#);“potom spustíte kód potrebný pre váš objekt I2C.

Krok 3: Vytvorenie posúvateľnej ponuky pomocou rotačného enkodéra

Vytvorenie posúvateľnej ponuky pomocou rotačného kodéra
Vytvorenie posúvateľnej ponuky pomocou rotačného kodéra
Vytvorenie posúvateľnej ponuky pomocou rotačného kodéra
Vytvorenie posúvateľnej ponuky pomocou rotačného kodéra
Vytvorenie posúvateľnej ponuky pomocou rotačného kodéra
Vytvorenie posúvateľnej ponuky pomocou rotačného kodéra

Najprv si najskôr vyskúšajte kodéry. Pridal som nejaký kód na testovanie vašich modulov kodéra. Ako je uvedené v dodávkach: Môj kód som úspešne testoval iba s modulmi rotačných snímačov od robota DF a modulom s okrúhlou doskou od DIYmore. Správne kodéry nájdete na obrázkoch vyššie.

Knižnica, ktorú som použil, je táto:

PDF, ktorý som pridal, snáď pomôže so štruktúrou ponuky, ktorú som použil pre svoje hodiny.

Sfunkčnenie kodéra bolo pre mňa v tomto projekte najťažšie. Existuje veľa rôznych kodérov a množstvo rôznych knižníc, ktoré nie sú vždy kompatibilné s ESP32. Myslím si však, že (pracovný) rotačný kodér je elegantné riešenie, ak chcete niečo zadať. Ak by som používal iba tlačidlá, potreboval by som viac ako 1 a nastavenie času by vyžadovalo veľa stlačení.

Krok 4: Vloženie predchádzajúceho kódu do druhého

Uvedenie predchádzajúceho kódu na druhú
Uvedenie predchádzajúceho kódu na druhú

Názov titulu sumarizuje to, čo som urobil. Skúsil som časť za časťou a potom som dal všetko dohromady. Ale pretože nič nie je nikdy jednoduché, niektoré veci som musel zmeniť. Sériová komunikácia je pomalý proces. To prekáža správnemu čítaniu kodéra. Aby som to prekonal, pridal som na kolíky kodéra prerušenia. Kód na prečítanie kodéra sa potom okamžite zavolá, ak kodér stlačíte alebo otočíte.

Keď pochopíte, ako sú ponuky zostavené, zistíte, že je veľmi jednoduché pridávať alebo odoberať funkcie podľa vlastného vkusu. Chcete načítať aktuálne počasie alebo čas z internetu a zobraziť ho?

Mnoho takýchto myšlienok som vynechal, pretože som chcel predovšetkým spoľahlivý časový pokoj. Taký, ktorý nerobí nič automaticky. Pracujem veľmi zvláštne hodiny v zóne letného času. Zakaždým, keď sa zmení hodina, som nervózny zaspať. Zmení môj telefón automaticky hodinu? Budú moje hodinky? Moje hodiny nebudú, pokiaľ si ich sám nezmením. Ale možno chcete dať svoje hodiny do kuchyne? Odlišný scenár, pridávajte funkcie, kým sa nevybije pamäť!

Krok 5: Vlastná doska plošných spojov so schémou Fritzing +

Vlastná doska plošných spojov so schémou Fritzing +
Vlastná doska plošných spojov so schémou Fritzing +
Vlastná doska plošných spojov so schémou Fritzing +
Vlastná doska plošných spojov so schémou Fritzing +
Vlastná doska plošných spojov so schémou Fritzing +
Vlastná doska plošných spojov so schémou Fritzing +

Poznámka: Adafruit poukazuje na to, že hoci môžete huzzah32 napájať cez USB kolík, musíte dávať pozor, aby ste súčasne nepoužívali napájací konektor micro USB. Moja doska plošných spojov je napájaná zosilňovačom, ktorý potom napája huzzu prostredníctvom USB kolíka. Pri nahrávaní preto vždy odpojte externé napájanie/vyberte huzzah z dosky.

Rozhodol som sa spájkovať ženské záhlavia na doske plošných spojov, pretože to uľahčuje výmenu časti alebo napríklad pridanie dodatočného snímača I2C. To mi tiež umožňuje ľahko odstrániť nano alebo ESP32 a načítať programy.

Pridal som súbor Frizting, môžem tu napísať román, ale myslím si, že príklad hovorí najlepšie. Začal som schémou celého nastavenia. Aj keď má Fritzing v zásobníkoch veľa častí, nie všetko tam je. Niekedy nájdete časť Fritzing na internete, niekedy nie. Časti, ktoré som nenašiel, som jednoducho nahradil ženskou hlavičkovou časťou. Ak naň kliknete pravým tlačidlom myši, môžete upraviť hlavičku na požadovaný počet pinov a priradiť k nej pinout. Robil som to s každou časťou, ktorú som nenašiel. Pretože takmer všetky moduly používajú rovnakú rozteč 0,1 palca (2,54 mm), získate správne rozstupy pre súčiastku.

Ďalej prepnete na zobrazenie PCB vo fritzujúcej aplikácii. Bude nainštalovaná doska plošných spojov, ak na ňu kliknete, môžete nastaviť jej veľkosť a vybrať si jednovrstvovú alebo dvojvrstvovú dosku plošných spojov. Ten môj používa 2 vrstvy. Fritzing navrhne pripojenia, ktoré ste vytvorili v schematickom zobrazení. Program má možnosť automatického spustenia, ale nikdy ho nepoužívam. Rád ručne organizujem svoje pripojenia. V zobrazení DPS sú žlté spojenia v hornej vrstve, oranžové v spodnej vrstve. Opäť, ak kliknete na pripojenie, môžete si vybrať jeho vlastnosti.

Ak chcete vytvoriť skutočný PCB, musíte ho exportovať ako súbor Gerber. Predtým, ako to urobíte, na karte „smerovanie“môžete skontrolovať pravidlá návrhu. Ak sa všetko zobrazí, môžete kliknúť na „exportovať do DPS“. Väčšina výrobcov požiada o súbor gerber, takže vyberte export do gerberu.

Objednal som si svoju DPS z JLCPCB, páči sa mi, že vám okamžite citujú cenu. Existuje samozrejme mnoho ďalších možností.

O schéme: sú použité 2 napätia. LED a femtobuck sú napájané priamo napájaním 12V. Zvyšok je napájaný zosilňovačom s napätím 5 voltov.

Krok 6: Návrh + laserový rezač

Dizajn + laserový rezač
Dizajn + laserový rezač
Dizajn + laserový rezač
Dizajn + laserový rezač

Pri svojom prvom návrhu som skúsil použiť masívny dub (sledujem hodiny drevárstva), ale rýchlo sa ukázalo, že to nebolo ideálne. Drevo je príliš hrubé, takže je ťažké zmestiť vaše diely. 3 mm brezový multiplex umožňuje jednoduchšie upevnenie kodérov a displejov.

Našiel som online službu lasercut, snijlab.nl, dostupnú pre domácich majstrov so sídlom v Rotterdame (odosielajú do Belgicka, Holandska a Nemecka). Na ich webové stránky môžete nahrať svoje kresby a oni okamžite citujú vašu cenu. Použil som Autocad, ktorý mám v práci, ale na softvéri až tak nezáleží. Musí to byť vektorová kresba (Vectr, Illustrator, Inkscape …). Väčšina obchodov používa farby na určenie, či chcete rezať alebo gravírovať.

Niektoré veci, ktoré je potrebné mať na pamäti:

- Max. rozmery laserového rezača (okolo svojich častí som nakreslil rám)

- Min. vzdialenosť medzi rezmi

- Uistite sa, že nenakreslíte žiadne dvojité čiary, laser urobí ďalší prechod, čo vás bude stáť viac.

- Pri vykresľovaní do PDF dávajte pozor, aby ste vykreslili 1: 1. Nechcete zmenšovať alebo sa hodiť na papier.

Krok 7: Zostavenie

zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie

Hodiny som postavil okolo dreveného rámu, panely sú na svojom mieste zaistené skrutkami M3 a vložkami v ráme. Ak by som niekedy postavil verziu 2, na pripevnenie panelov by som použil hliníkové profily „L“. Presné vyvŕtanie otvorov pre mosadzné vložky bolo veľmi ťažké. Trvalo mi dlho, kým som dosiahol prijateľný výsledok. To by samozrejme znamenalo, že kresbu laserovým rezom je potrebné zrevidovať. Myslím si, že s hliníkovými profilmi a maticami a skrutkami dosiahnete lepší výsledok.

Aby som lepšie rozptýlil svetlo, nalepil som na vnútornú stranu perforácií pauzovací papier. To dodáva svetlu príjemnú žiaru.

Krok 8: Nezastavujte sa tu

Nezastavujte sa tu
Nezastavujte sa tu
Nezastavujte sa tu
Nezastavujte sa tu
Nezastavujte sa tu
Nezastavujte sa tu

Projekt sa točí okolo ESP32, sotva som ho používal. Svetlá do mojej spálne je momentálne možné diaľkovo ovládať pomocou blynku. Ich ovládanie hodinami je len malý krok ďalej. Chcete ďalšie displeje, ktoré vám ukazujú teplotu v okolí vášho domu? Alebo nejaké lokálne senzory (na tom multiplexeri sú ešte náhradné I2C pripojenia!). Je možné nastaviť čas/budík prostredníctvom aplikácie a bluetooth?

Dajte mi vedieť, čo ste zmenili, čo by ste zmenili, čo by som mal zmeniť …

Odporúča: