Sisällysluettelo:

Oled -herätyskello: 8 vaihetta (kuvilla)
Oled -herätyskello: 8 vaihetta (kuvilla)

Video: Oled -herätyskello: 8 vaihetta (kuvilla)

Video: Oled -herätyskello: 8 vaihetta (kuvilla)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Joulukuu
Anonim
Oled -herätyskello
Oled -herätyskello

Siellä on paljon arduino-/ESP32 -kelloja, mutta käyttävätkö ne hienoja ja teräviä OLED -näyttöjä?

Olen kokeillut arduinoja ja ESP32 -laitteita jo jonkin aikaa, mutta en ole koskaan tehnyt niistä lopullista tuotetta. Olen tehnyt herätyskellon, jossa on 4 1,3 tuuman yksiväristä OLED -näyttöä. Kellossa on myös himmennettävä yölamppu ja USB -latausportti (kenelläkään ei ole varapistorasioita sängyn vieressä). OLEDit ovat myös himmennettäviä, tämä lisättiin viime hetkellä sen jälkeen, kun tyttöystäväni uhkaili projektiani. Jos himmennys ei ole tyttöystävien äänessä tarpeeksi hämärää, voin myös toimittaa koodiversion, jossa 3 näyttöä on kytketty tiettyjen tuntien väliin. Tavoitteena oli tehdä helppokäyttöinen kello, joka näyttää "prototyypin" ulkopuolelta. Kelloa valmistellessani kohtasin joitain vaikeuksia, jotka minun oli ratkaistava, minkä vuoksi tämä ohje on mielestäni jakamisen arvoinen. Kello voidaan tehdä pienillä työkaluilla, en pidä "ja seuraavassa vaiheessa käytin 10.000 €/$ CNC -mylly" -oppaita.

Jotkut asiat, jotka selitetään tässä ohjeessa (jäsentämätön käyttö):

- Kuinka käyttää/kytkeä I2C OLED -näyttö arduino/ESP32 -laitteella

- Kuinka käyttää useita I2C -objekteja yhden arduino/ESP32: n kanssa

- Kuinka tehdä "vierityskelpoinen" valikko kiertokooderilla (+ kuinka käyttää kooderia ESP32/arduino-laitteen kanssa)

- Kuinka suunnitella ja tilata mukautettu piirilevy friteerauksella.

- Kello käyttää myös RTC (reaaliaikainen kello), led -ohjainta, aseta jännitemoduuli… En todellakaan pääse näihin, koska näille moduuleille on todella saatavilla paljon tietoa.

Haluan huomata, että en ole ammattimainen ohjelmoija. Ohjeistani tavoitteena on selittää edellä mainitsemani kohdat. Se, miten kokoan kaiken lopputuotteeseeni, ei ehkä ole puhtain tapa. Se on tapa, joka salli minun seurata kaikkea.

Tarvikkeet

Kun ostan tarvikkeita, yritän aina punnita laadun/dokumentaation ja hinnan merkityksen. Tarvikkeeni ovat sekoitus A-merkkejä ja halvempia kiinalaisia osia. Mouser on loistava toimittaja, jos laatu on tärkeää, tilaan Banggood/Aliexpressiltä halvempia osia.

- ESP32 -levy, käytin adafruutin Huzzah32: ta, mutta on monia muita (halvempia) vaihtoehtoja. Valitsin Huzzah32: n, koska se on hyvin dokumentoitu.

- 4 1,3 tuuman I2C OLED -näyttöä (128 x 64, SH1106 -ohjaimella), 0,96 tuumaa ovat yleisempiä, mutta tässä projektissa mieluummin 1,3 tuumaa

- Sparkfun femtobuck -ohjain LED -valon ajamiseen

- RTC -kello, käytin litium -kennoa

- Arduino nano

-Naaras USB 2.0 -portti (käytin: SS-52200-002 Stewart-liittimestä)

- Naaras DC -liitin (käytin: L722A Switchcraftista)

- 12V 3A DC-sovitin (GST36E12-P1J Mean Wellistä)

- Mukautettu piirilevy, valinnainen, mutta tämä tekee projektista paljon pienemmän ja helpommin huollettavan, jos osa kuolee + enemmän luotettavuutta, koska vähemmän johtoja (jlcpcb.com)

- M3 ruuvit ja pultit

- M3 -messinkiset terät

- 12V - 5V askelmoduuli Pololusta (DF24V22F5)

- 3 wattia teholla jäähdytyselementillä

- Hyppyjohdot

- summeri

- I2C -multiplekseri (TCA9548A, adafruit)

- 2 pyörivää enkooderia (olen kokeillut joitakin, kaikki eivät toimi koodillani. DFrobot -versio toimii ja samoin DIYmore -pyöreän PCB: n koodi. Koodini ei näytä toimivan painikkeen kanssa Herätyskelloni käyttää DIYmoren herätyskelloa, koska ne on helppo asentaa paneeliin (ei tarvita ylimääräisiä ruuveja/reikiä).

- Valikoima naaraspuolisia otsikoita (valinnainen)

- Puu runkoon: 18mmx18mmx2400mm

- Kuultopaperi

Käytin myös joitain työkaluja (juotosrauta, kolmas käsi, saha …), mutta mitään todella eksoottista.

Vaihe 1: Oledin käyttö

Oledin käyttö
Oledin käyttö
Oledin käyttö
Oledin käyttö
Oledin käyttö
Oledin käyttö

Jotta voit käyttää OLED -valaisimia, sinun on asennettava kirjasto. Käytän Oli Krausin U8G2libia, se on erittäin ymmärrettävä ja sisältää viiteoppaan, jossa on selkeitä esimerkkejä.

Liittääksesi levyn (ESP tai arduino) sinun on löydettävä SDA- ja SCL -nastat. Nämä nastat ovat I2C -tiedonsiirtonastat. Googlaamalla tietyn taulusi "pinout", jos et löydä niitä.

Lisäsin esimerkkikoodin. Koodi toimii sekä arduino- että ESP32 -laitteissa, mutta ESP32: n muisti loppuu epätodennäköisemmin. Kaikki tähän mennessä kokeillut oletit toimivat sekä 3.3v (ESP32) että 5V kanssa.

Vaihe 2: Useita OLED -näyttöjä

Useita OLED -näyttöjä
Useita OLED -näyttöjä

Tässä projektini alkaa poiketa monista muista herätyskelloista. Useimmissa arduinoissa/ESP -laitteissa on vain yksi tai kaksi I2C -nastaa. Tämä rajoittaa I2C -osien käyttöä. Entä jos minulla on 4 I2C -anturia ja haluan näyttää niiden lukemat I2C -näytöllä? Syötä multiplekseri. Moniplekserin avulla voit käsitellä 7 erilaista I2C -osaa. Tämä sallii ESP32: n käyttää I2C -reaaliaikaista kelloa ja näyttää ajan uudelleen käyttämällä I2C: tä neljän näytön yli (tai enemmän, älä anna minun pysäyttää sinua).

Olen lisännyt esimerkkikoodin ESP32: lle, tästä lähtien en ole varma, pystyykö arduino pysymään perässä. Esimerkki käyttää vain näyttöjä, se voi olla myös muita asioita, kuten I2C -antureita jne. Periaate on aina sama, soitat oikealle kanavalle "tcaselect (#);" -toiminto, suoritat minkä tahansa tarvittavan koodin I2C -objektille.

Vaihe 3: Vieritettävän valikon luominen kiertokooderilla

Vieritettävän valikon luominen kiertokooderilla
Vieritettävän valikon luominen kiertokooderilla
Vieritettävän valikon luominen kiertokooderilla
Vieritettävän valikon luominen kiertokooderilla
Vieritettävän valikon luominen kiertokooderilla
Vieritettävän valikon luominen kiertokooderilla

Testaa ensin anturit. Olen lisännyt koodia koodausmoduulien testaamiseen. Kuten tarvikkeissa todetaan: Olen testannut koodini onnistuneesti vain DF -robotin pyörivillä anturimoduuleilla ja moduulin DIYmoren pyöreällä piirilevyllä. Katso oikeat anturit yllä olevista kuvista.

Kirjasto, jota käytin, on tämä:

Lisätty PDF -tiedosto auttaa toivottavasti kelloon käyttämäni valikkorakenteen kanssa.

Enkooderin toimiminen oli minulle hankalinta tässä projektissa. Siellä on paljon erilaisia koodereita ja paljon erilaisia kirjastoja, jotka eivät aina ole yhteensopivia ESP32: n kanssa. Mutta mielestäni (toimiva) pyörivä anturi on tyylikäs ratkaisu, jos haluat syöttää jotain. Jos olisin käyttänyt vain painikkeita, olisin tarvinnut enemmän kuin yhden ja ajan asettaminen vie paljon painalluksia.

Vaihe 4: Edellisen koodin yhdistäminen

Edellisen koodin yhdistäminen
Edellisen koodin yhdistäminen

Otsikko tiivistää mitä tein. Yritin osaa osittain ja sitten laitoin kaiken yhteen. Mutta koska mikään ei ole koskaan helppoa, minun piti muuttaa joitain asioita. Sarjaliikenne on hidas prosessi. Tämä estää kooderin lukemisen oikein. Tämän voittamiseksi lisäsin keskeytyksiä kooderin nastoihin. Enkooderin lukukoodia kutsutaan heti, jos painat tai käännät anturia.

Kun ymmärrät valikon rakenteen, huomaat, että ominaisuuksia on helppo lisätä tai poistaa omien mieltymystesi mukaan. Ehkä haluat hakea nykyisen sään tai ajan Internetistä ja näyttää sen?

Olen jättänyt pois monia tällaisia ideoita, koska halusin ennen kaikkea luotettavaa aikarauhaa. Sellainen, joka ei tee mitään automaattisesti. Teen erittäin outoja tunteja kesäaikaan. Joka kerta, kun tunti vaihtuu, olen hermostunut nukkumaan. Muuttaako puhelimeni kellonajan automaattisesti? Tuleeko kelloni? No, kelloni ei toimi, ellet vaihda sitä itse. Mutta ehkä haluat laittaa kellosi keittiöön? Eri skenaario, lisää ominaisuuksia, kunnes muisti loppuu!

Vaihe 5: Mukautettu piirilevy, jossa on Fritzing + Schematic

Mukautettu piirilevy, jossa on Fritzing + kaavio
Mukautettu piirilevy, jossa on Fritzing + kaavio
Mukautettu piirilevy, jossa on Fritzing + kaavio
Mukautettu piirilevy, jossa on Fritzing + kaavio
Mukautettu piirilevy, jossa on Fritzing + kaavio
Mukautettu piirilevy, jossa on Fritzing + kaavio

Huomio: Adafruit huomauttaa, että vaikka voit käyttää huzzah32 -laitetta USB -nastan kautta, sinun on oltava varovainen, ettet käytä samanaikaisesti mikro -USB -virtaliitäntää. Piirilevyni saa virtaa askelpullon kautta, joka sitten syöttää huzzahin USB -nastan kautta. Irrota siis aina ulkoinen virtajohto/poista huzzah levyltä ladattaessa.

Päätin juottaa naaraspuoliset otsikot piirilevylle, koska se helpottaa osan vaihtamista tai lisää esimerkiksi ylimääräistä I2C -anturia. Tämän avulla voin myös helposti poistaa nanon tai ESP32: n ohjelmien lataamiseksi.

Olen lisännyt Frizting -tiedoston, voin kirjoittaa romaanin tähän, mutta mielestäni esimerkki puhuu parhaiten. Aloitin koko kokoonpanon kaaviosta. Vaikka Fritzingin säiliöissä on paljon osia, kaikki ei ole siellä. Joskus löydät Fritzing -osan Internetistä, joskus et. Osat, joita en löytänyt, korvasin yksinkertaisesti naaraspuolisen otsikon osan. Jos napsautat sitä hiiren kakkospainikkeella, voit muokata otsikkoa haluamasi nastamäärän mukaan ja määrittää sille pinoutin. Tein tämän jokaisen osan kanssa, jota en löytänyt. Koska melkein kaikki moduulit käyttävät samaa 2,54 mm: n (0,1 tuuman) nousua, tämä antaa osalle oikean etäisyyden.

Seuraavaksi vaihdat fritzing -sovelluksen PCB -näkymään. Piirilevy asetetaan paikalleen, jos napsautat sitä, voit määrittää sen koon ja valita yhden tai kaksikerroksisen piirilevyn. Minulla on 2 kerrosta. Fritzing ehdottaa kaavionäkymässä tekemiäsi yhteyksiä. Ohjelmassa on automaattinen reititysvaihtoehto, mutta en koskaan käytä sitä. Haluan järjestää yhteydet manuaalisesti. PCB -näkymässä keltaiset liitännät ovat yläkerroksessa ja oranssit ovat alemmassa kerroksessa. Jälleen, jos napsautat yhteyttä, voit valita sen ominaisuudet.

Todellisen PCB: n luomiseksi sinun on vietävä se gerber -tiedostona. Ennen kuin teet tämän, voit tarkastella suunnittelusääntöjä välilehdellä "reititys". Jos kaikki näkyy, voit napsauttaa "vie PCB: lle". Useimmat valmistajat pyytävät gerber -tiedostoa, joten valitse vienti gerberiin.

Tilasin piirilevyn JLCPCB: ltä, pidän siitä, että he heti lainaavat sinulle hinnan. Tietysti on monia muita vaihtoehtoja.

Tietoja kaavamaisesta: käytetään 2 jännitettä. LED- ja femtobuck -virtalähteet ovat suoraan 12 V: n jännitteellä. Loput saavat virtaa 5 voltin alennuspukin kautta.

Vaihe 6: Suunnittelu + laserleikkuri

Suunnittelu + laserleikkuri
Suunnittelu + laserleikkuri
Suunnittelu + laserleikkuri
Suunnittelu + laserleikkuri

Ensimmäisessä mallissani yritin käyttää massiivitammea (seuraan puuntyöstöluokkia), mutta nopeasti tuli selväksi, että tämä ei ollut ihanteellinen. Puu on liian paksu, mikä vaikeuttaa osien asentamista. 3 mm: n koivukanavointi mahdollistaa helpomman tavan kiinnittää anturit ja näytöt.

Löysin online -lasercut -palvelun snijlab.nl, joka on saatavana harrastajille Rotterdamissa (ne toimittavat Belgiaan, Alankomaihin ja Saksaan). Heidän verkkosivustollaan voit ladata piirustuksesi ja he lainaavat heti hintasi. Käytin Autocadia, jota minulla on töissä, mutta ohjelmistolla ei ole oikeastaan väliä. Sen on oltava vain vektoripiirros (Vectr, Illustrator, Inkscape…). Useimmat kaupat käyttävät värejä päättääkseen, haluatko leikata vai kaivertaa.

Jotkut asiat pitää mielessä:

- Max. Laserleikkurin mitat (piirsin kehyksen osieni ympärille)

- Min. leikkausten välinen etäisyys

- Varmista, ettet vedä kaksoisviivoja, laser tekee ylimääräisen passin, joka maksaa sinulle enemmän.

- Kun piirrät PDF -muotoon, varmista, että piirrät 1: 1. Et halua pienentää tai sovittaa paperille.

Vaihe 7: Kokoonpano

Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano

Rakensin kellon puurungon ympärille, paneelit pidetään paikallaan M3 -ruuveilla ja kehyksillä. Jos koskaan rakentaisin version 2, kiinnittäisin paneelit alumiinisiin "L" -profiileihin. Messinkisten terien reikien poraaminen oli erittäin vaikeaa. Minulla kesti hyvin kauan, vain hyväksyttävä tulos. Tämä tarkoittaisi tietysti, että laserleikkauspiirustus on tarkistettava. Uskon, että alumiiniprofiileilla ja vain muttereilla ja pulteilla saat paremman tuloksen.

Valon levittämiseksi paremmin olen liimautunut rei'itysten sisäpuolelle jäljityspaperilla. Tämä antaa valolle kauniin hehkun.

Vaihe 8: Älä pysähdy tähän

Älä lopeta tähän
Älä lopeta tähän
Älä lopeta tähän
Älä lopeta tähän
Älä lopeta tähän
Älä lopeta tähän

Projekti keskittyy ESP32: een, en ole juuri käyttänyt sitä. Makuuhuoneeni valoja voidaan tällä hetkellä kauko -ohjata blynk -toiminnolla. Niiden ohjaaminen kellolla on vain pieni askel pidemmälle. Ehkä haluat lisänäyttöjä, jotka näyttävät talosi lämpötilan? Tai joitain paikallisia antureita (tuossa multiplekserissä on vielä ylimääräisiä I2C -yhteyksiä!). Ehkä asetat kellonajan/hälytyksen sovelluksen ja Bluetoothin kautta?

Kerro minulle, mitä olet muuttanut, mitä muuttaisit, mitä minun pitäisi muuttaa…

Suositeltava: