INHOUDSOPGAWE:

Oled -wekker: 8 stappe (met foto's)
Oled -wekker: 8 stappe (met foto's)

Video: Oled -wekker: 8 stappe (met foto's)

Video: Oled -wekker: 8 stappe (met foto's)
Video: Joeke is 8 jaar en nu al een succesvol model 2024, Julie
Anonim
Oled Wekker
Oled Wekker

Daar gaan baie arduino/ESP32 -horlosies rond, maar gebruik hulle die mooi en skerp OLED's?

Ek eksperimenteer al 'n rukkie met arduino's en ESP32's, maar ek het nooit 'n voltooide produk bereik nie. Ek het 'n wekker gemaak met 4 1.3 duim monochroom OLED's. Die horlosie het ook 'n dimbare bedlamp en 'n USB -laaipoort (niemand het ekstra afsetpunte langs sy bed nie). Die OLED's is ook dimbaar; dit is die laaste minuut bygevoeg nadat my projek deur my vriendin bedreig is. Sou dim nie wees nie - in vriendinne se stem - moeg genoeg, kan ek ook 'n weergawe van die kode verskaf waarin drie skerms tussen sekere ure aangeskakel word. Die doel was om 'n maklike diens te maak, met 'n blik verder as die "prototipe". By die maak van my horlosie het ek probleme ondervind wat ek moes oplos, en daarom is dit die moeite werd om te deel. Die horlosie kan met min gereedskap gemaak word, ek hou nie van die "en vir die volgende stap het ek my 10.000 €/$ CNC meul" tutoriale gebruik.

'N Paar dinge wat in hierdie instruksies (in-struktureer-opvatting) verduidelik sal word:

- Hoe om 'n I2C OLED -skerm met arduino/ESP32 te gebruik/te bedraad

- Hoe om verskeie I2C -voorwerpe met een arduino/ESP32 te gebruik

- Hoe om 'n 'blaai-menu' te maak met behulp van 'n draaikodeerder (+ hoe om 'n encoder met 'n ESP32/arduino te gebruik)

- Hoe om 'n pasgemaakte PCB met fritzing te ontwerp en te bestel.

- Die horlosie gebruik ook 'n RTC (real time klok), geleide bestuurder, 'n afwaartse spanningsmodule … Ek sal nie regtig hierby ingaan nie, want daar is regtig baie inligting beskikbaar vir hierdie modules.

Ek wil daarop let dat ek nie 'n professionele programmeerder is nie. Die doel van my instruksies is om die punte wat ek hierbo genoem het, te verduidelik. Hoe ek dit alles bymekaargemaak het vir my finale produk, is miskien nie die skoonste manier nie. Dit is die manier waarop ek dit alles kon byhou.

Voorrade

As ek voorraad koop, probeer ek altyd die belangrikheid van kwaliteit/dokumentasie teenoor prys weeg. My voorraad is 'n mengsel van A-handelsmerke en goedkoper Chinese onderdele. Mouser is 'n uitstekende verskaffer as kwaliteit belangrik is, ek bestel by Banggood/Aliexpress vir die goedkoper onderdele.

- 'n ESP32 -bord, ek het die Huzzah32 van adafruit gebruik, maar daar is baie ander (goedkoper) opsies. Ek het die Huzzah32 gekies omdat dit baie goed gedokumenteer is.

- 4 1,3 duim I2C OLED -skerms (128x64, met die SH1106 -bestuurder), die 0,96 "is meer algemeen, maar vir hierdie projek verkies ek die 1,3"

- Sparkfun femtobuck bestuurder om die LED te bestuur

- RTC -horlosie, ek het een met 'n litiumsel gebruik

- Arduino nano

-Vroulike USB 2.0-poort (ek gebruik: SS-52200-002 van Stewart Connector)

- Vroulike DC -aansluiting (ek gebruik: L722A van Switchcraft)

- 12V 3A DC-adapter (GST36E12-P1J van Mean Well)

- Pasgemaakte PCB, opsioneel, maar dit maak die projek baie kompakter en makliker om te onderhou as 'n onderdeel sterf + meer betroubaarheid omdat minder drade (jlcpcb.com)

- M3 skroewe en boute

- M3 koper inserts

- 12V tot 5V step down module van Pololu (DF24V22F5)

- 3 watt aangedryf met 'n heatsink

- Springdrade

- Gonser

- I2C multiplexer (TCA9548A van adafruit)

- 2 Rotary encoders (ek het al probeer, sommige werk nie met my kode nie. Die een van "DFrobot" werk, en die een met die ronde PCB van "DIYmore"). Dit lyk nie asof my kode vir die drukknop werk nie van die KY-040-tipe. My wekker gebruik die een van DIYmore, want dit is baie maklik om te monteer (geen ekstra skroewe/gate nodig nie).

- Verskeidenheid vroulike opskrifte (opsioneel)

- Hout vir die raam: 18mmx18mmx2400mm

- Natrekpapier

Ek het ook 'n paar gereedskap (soldeerbout, 3de hand, saag …) gebruik, maar niks eksoties nie.

Stap 1: Gebruik 'n Oled

Met behulp van 'n Oled
Met behulp van 'n Oled
Met behulp van 'n Oled
Met behulp van 'n Oled
Gebruik 'n Oled
Gebruik 'n Oled

Om die OLED's te gebruik, moet u 'n biblioteek installeer. Ek gebruik die U8G2lib van Oli Kraus, dit is baie begryplik en het 'n verwysingsgids met duidelike voorbeelde.

Om u bord (ESP of arduino) aan te sluit, moet u SDA- en SCL -penne vind. Hierdie penne is die I2C -kommunikasiepenne. Google vir die "pinout" van u spesifieke bord as u dit nie kan vind nie.

Ek het 'n voorbeeldkode bygevoeg. Die kode werk vir beide arduino en ESP32, maar die geheue van die ESP32 is minder geneig. Al die oleds wat ek tot dusver probeer het, werk met beide 3.3v (ESP32) en 5V.

Stap 2: Veelvuldige OLED's

Verskeie OLED's
Verskeie OLED's

Dit is waar my projek begin verskil van baie ander wekkers. Die meeste arduino's/ESP's het slegs een of twee I2C -penne. Hierdie soort beperk die gebruik van I2C -onderdele. Wat as ek 4 I2C -sensors het en hul lesings op 'n I2C -skerm wil vertoon? Voer die multiplexer in. Met die multiplexer kan u 7 verskillende I2C -dele aanspreek. Dit stel my ESP32 in staat om 'n I2C -reële -tydklok te gebruik, en om die tyd weer met I2C oor die 4 skerms te wys (of laat my nie stop nie).

Ek het 'n voorbeeldkode vir die ESP32 bygevoeg, van hier af is ek nie seker of die arduino kan byhou nie. Die voorbeeld gebruik slegs skerms, dit kan ook ander dinge wees, soos I2C -sensors, ens. Die beginsel is altyd dieselfde; u noem die regte kanaal met die "tcaselect (#);" funksie, voer u die nodige kode uit vir u I2C -voorwerp.

Stap 3: Skep 'n blaai -kieslys met 'n roterende enkodeerder

Skep 'n blaai -kieslys met 'n roterende enkodeerder
Skep 'n blaai -kieslys met 'n roterende enkodeerder
Skep 'n blaai -kieslys met 'n roterende enkodeerder
Skep 'n blaai -kieslys met 'n roterende enkodeerder
Skep 'n blaai -kieslys met 'n roterende enkodeerder
Skep 'n blaai -kieslys met 'n roterende enkodeerder

Eerstens, toets u enkoders. Ek het 'n paar kode bygevoeg om u encoder -modules te toets. Soos in die voorraad aangegee: Ek het my kode slegs met sukses getoets met die roterende encoder modules van DF robot en die module met die ronde PCB van DIYmore. Sien die foto's hierbo vir die regte encoders.

Die biblioteek wat ek gebruik het, is hierdie:

Die PDF wat ek bygevoeg het, help hopelik met die spyskaartstruktuur wat ek vir my horlosie gebruik het.

Dit was vir my die moeilikste deel in hierdie projek om die encoder te laat werk. Daar is baie verskillende encoders en baie verskillende biblioteke wat nie altyd versoenbaar is met die ESP32 nie. Maar ek dink 'n (werkende) roterende encoder is 'n elegante oplossing as u iets wil invoer. As ek slegs knoppies sou gebruik het, sou ek meer as 1 nodig gehad het, en ek sou baie tyd nodig hê om die tyd in te stel.

Stap 4: Plaas die vorige kode Togetther

Plaas die vorige kode Togetther
Plaas die vorige kode Togetther

Die titel gee 'n opsomming van wat ek gedoen het. Ek het deel vir stuk probeer en toe het ek alles saamgevoeg. Maar omdat niks ooit maklik is nie, moes ek 'n paar dinge verander. Die reekskommunikasie is 'n stadige proses. Dit belemmer die encoder behoorlik. Om dit te oorkom, het ek onderbrekings by die penne van die encoder gevoeg. Die kode om die encoder te lees, word dan onmiddellik gebel as u die encoder druk of draai.

As u eers verstaan hoe die spyskaarte gebou is, sal u agterkom dat dit baie maklik is om funksies na u eie smaak by te voeg of te verwyder. Miskien wil u die huidige weer of tyd van die internet af haal en dit vertoon?

Ek het baie sulke idees uitgelaat omdat ek veral 'n betroubare tydsvrede wou hê. Een wat niks outomaties doen nie. Ek werk baie vreemde ure in 'n dagligbesparingsone. Elke keer as die uur verander word, is ek senuweeagtig om te slaap. Sal my telefoon die uur outomaties verander? Sal my horlosie? My horlosie sal nie, tensy ek dit self verander. Maar miskien wil u u horlosie in die kombuis sit? Ander scenario's, voeg funksies by totdat die geheue op is!

Stap 5: pasgemaakte PCB met Fritzing + skematiese

Pasgemaakte PCB met Fritzing + skematiese
Pasgemaakte PCB met Fritzing + skematiese
Pasgemaakte PCB met Fritzing + skematiese
Pasgemaakte PCB met Fritzing + skematiese
Pasgemaakte PCB met Fritzing + skematiese
Pasgemaakte PCB met Fritzing + skematiese

Aandag: Adafruit wys daarop dat u, hoewel u die huzzah32 via die USB -pen kan voed, moet oppas dat u nie die mikro -USB -ingang tegelyk gebruik nie. My PCB word aangedryf via die step down -boks, wat die huzzah dan via die USB -pen dryf. Ontkoppel dus altyd die eksterne krag/verwyder die huzzah van die bord tydens die oplaai.

Ek het besluit om vroulike kopstukke op die PCB te soldeer omdat dit dit makliker maak om 'n onderdeel uit te ruil, of byvoorbeeld 'n ekstra I2C -sensor by te voeg. Dit stel my ook in staat om die nano of die ESP32 maklik te verwyder om die programme te laai.

Ek het die Frizting -lêer bygevoeg; ek kan 'n roman hier tik, maar ek dink die voorbeeld spreek die beste. Ek het begin met die skema van die hele opstelling. Alhoewel Fritzing baie dele in die asblikke het, is nie alles daar nie. Soms kan u die Fritzing -gedeelte op die internet vind, soms nie. Die dele wat ek nie kon vind nie, het ek eenvoudig vervang deur 'n vroulike kopstuk. As u met die rechtermuisknop daarop klik, kan u die koptekst wysig volgens die hoeveelheid penne wat u wil hê en 'n pinout daaraan toewys. Ek het dit gedoen met elke deel wat ek nie kon vind nie. Aangesien byna alle modules dieselfde toonhoogte van 2,54 mm (0,1 duim) gebruik, gee dit u die korrekte afstand tussen die dele.

Vervolgens skakel u oor na die PCB -aansig van die fritzing -app. 'N PCB word aangebring, as u daarop klik, kan u die grootte daarvan instel en 'n enkel- of dubbellaag -PCB kies. Myne gebruik 2 lae. Fritzing dui die verbindings aan wat u in die skematiese aansig gemaak het. Die program het 'n outoroute -opsie, maar ek gebruik dit nooit. Ek hou daarvan om my verbindings handmatig te organiseer. In die PCB -aansig is die geel verbindings in die boonste laag, die oranje in die onderste laag. As u weer op die verbinding klik, kan u die eienskappe daarvan kies.

Om die werklike PCB te maak, moet u dit as 'n gerber -lêer uitvoer. Voordat u dit doen, kan u die ontwerpreëls onder die oortjie "routing" nagaan. As alles reg is, kan u op "uitvoer vir PCB" klik. Die meeste vervaardigers vra gerber -lêers, dus kies uitvoer na gerber.

Ek het my PCB by JLCPCB bestel, ek hou daarvan dat hulle u dadelik 'n prys gee. Daar is natuurlik baie ander opsies.

Oor die skematiese: daar word 2 spannings gebruik. Die LED en femtobuck word direk aangedryf deur die 12V -toevoer. Die res word aangedryf via die trap-down-bok met 5 volt.

Stap 6: Ontwerp + lasersnyer

Ontwerp + lasersnyer
Ontwerp + lasersnyer
Ontwerp + lasersnyer
Ontwerp + lasersnyer

Vir my eerste ontwerp het ek probeer om soliede eikebome te gebruik (ek volg houtbewerkingsklasse), maar dit het vinnig duidelik geword dat dit nie ideaal was nie. Die hout is te dik, wat dit moeilik maak om by u onderdele te pas. Die 3 mm berk -multiplex maak dit makliker om die encoders en skerms vas te maak.

Ek het 'n aanlyn lasercut -diens, snijlab.nl, gevind vir stokperdjies in Rotterdam (hulle stuur na België, Nederland en Duitsland). Op hul webwerf kan u u tekeninge oplaai en u prys onmiddellik. Ek het Autocad gebruik, wat ek by die werk het, maar die sagteware maak nie regtig saak nie. Dit moet net 'n vektortekening wees (Vectr, Illustrator, Inkscape …). Die meeste winkels gebruik kleure om te bepaal of u wil sny of graveer.

'N Paar dinge om in gedagte te hou:

- Maks. afmetings van die lasersnyer (ek het 'n raam om my dele getrek)

- Min. afstand tussen snitte

- Maak seker dat u geen dubbele lyne trek nie; die laser doen 'n ekstra pas, wat u meer kos.

- As u na PDF skets, moet u 1: 1 plot. U wil nie afskaal of op papier pas nie.

Stap 7: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering

Ek het die klok om 'n houtraam gebou, die panele word op hul plek gehou met M3 -skroewe en insetsels in die raam. Sou ek ooit 'n weergawe 2 bou, sou ek aluminium "L" -profiele gebruik om die panele aan te heg. Dit was baie moeilik om die gate vir die koper -insetsels presies te boor. Dit het my baie lank geneem, net vir 'n aanvaarbare resultaat. Dit beteken natuurlik dat die lasersnittekening hersien moet word. Ek dink met aluminiumprofiele en net moere en boute kry u 'n beter resultaat.

Om die lig beter te versprei, het ek spoorpapier aan die binnekant van die gate geplak. Dit gee die lig 'n mooi gloed.

Stap 8: Moenie hier stop nie

Moenie hier stop nie
Moenie hier stop nie
Moenie hier stop nie
Moenie hier stop nie
Moenie hier stop nie
Moenie hier stop nie

Die projek is rondom 'n ESP32, ek het dit skaars gebruik. My slaapkamerligte kan tans met blynk op afstand beheer word. Dit is slegs 'n klein stap verder om hulle met die klok te beheer. Miskien wil u 'n paar ekstra uitstallings hê wat u die temperatuur in u huis wys? Of 'n paar plaaslike sensors (daar is nog I2C -verbindings op die multiplexer beskikbaar!). Stel miskien die tyd/alarm via 'n app en bluetooth in?

Laat weet my wat u verander het, wat u sou verander, wat ek moes verander …

Aanbeveel: