Sisukord:

Oled äratuskell: 8 sammu (piltidega)
Oled äratuskell: 8 sammu (piltidega)

Video: Oled äratuskell: 8 sammu (piltidega)

Video: Oled äratuskell: 8 sammu (piltidega)
Video: ЮЛЯ ФИНЕСС: Как я вышла с 8 этажа! Групповое изнасилование под мефедроном, психиатрическая больница 2024, Juuli
Anonim
Oled äratuskell
Oled äratuskell

Ümberringi liigub palju arduino/ESP32 kellasid, kuid kas nad kasutavad neid toredaid ja kargeid OLED -e?

Olen juba mõnda aega katsetanud arduinosid ja ESP32 -sid, kuid pole kunagi valmistooteni jõudnud. Olen teinud äratuskella 4 1,3 -tollise ühevärvilise OLED -iga. Kellal on ka hämardatav öölamp ja USB -laadimisport (kellelgi pole tema voodi kõrval varuvõimalusi). OLED -id on samuti hämardatavad, see lisati viimasel minutil pärast seda, kui mu sõbranna ähvardas minu projekti. Kui sõbrannade hääl ei peaks hämarduma piisavalt hämaraks, võin ma pakkuda ka koodi versiooni, kus 3 kuvarit on teatud tundide vahel sisse lülitatud. Eesmärk oli teha hõlpsasti kasutatav kell, mille välimus ei hõlmaks "prototüüpi". Kella valmistades puutusin kokku raskustega, mis tuli lahendada, mistõttu leian, et see juhend on jagamist väärt. Kella saab teha väikeste tööriistadega, mulle ei meeldi "ja järgmiseks sammuks kasutasin oma 10.000 €/$ CNC freesi" õpetust.

Mõned asjad, mida selles juhendis selgitatakse (struktureeritav):

- Kuidas kasutada/ühendada I2C OLED -ekraani arduino/ESP32 -ga

- Kuidas kasutada mitut I2C objekti ühe arduino/ESP32 -ga

- Kuidas teha pöördnupuga kodeerimismenüü (+ kuidas kasutada kodeerijat ESP32/arduinoga)

- Kuidas kujundada ja tellida kohandatud trükkplaate fritzeerimise abil.

- Kell kasutab ka RTC -d (reaalajas kella), led -draiverit, vähendage pinge moodulit … Ma ei hakka nendesse eriti sisse, sest nende moodulite kohta on tõesti palju teavet.

Tahaksin märkida, et ma pole professionaalne programmeerija. Minu juhendatava eesmärk on selgitada ülalmainitud punkte. See, kuidas ma oma lõpptoote jaoks kõik kokku panen, ei pruugi olla kõige puhtam viis. See on viis, mis võimaldas mul seda kõike jälgida.

Tarvikud

Tarvikuid ostes püüan alati kaaluda kvaliteedi/dokumentatsiooni ja hinna tähtsust. Minu varud on segu A-kaubamärkidest ja odavamatest Hiina varuosadest. Mouser on suurepärane tarnija, kui kvaliteet on oluline, tellin odavamate osade jaoks Banggoodilt/Aliexpressilt.

- ESP32 plaat, kasutasin Adafruitist pärit Huzzah32, kuid seal on palju muid (odavamaid) võimalusi. Valisin Huzzah32, sest see on väga hästi dokumenteeritud.

- 4 1,3 -tollist I2C OLED -ekraani (128x64, draiveriga SH1106), 0,96 -tollised on tavalisemad, kuid selle projekti jaoks eelistan 1,3 -tolliseid

- LED -i juhtimiseks Sparkfun femtobuck draiver

- RTC kell, kasutasin liitiumelemendiga kella

- Arduino nano

-Naissoost USB 2.0 port (kasutasin: SS-52200-002 Stewart Connectorist)

- Naissoost alalisvoolu pistik (ma kasutasin: Switchcraft L722A)

- 12V 3A alalisvooluadapter (GST36E12-P1J keskmisest kaevust)

- Kohandatud trükkplaat, valikuline, kuid see muudab projekti palju kompaktsemaks ja hõlpsamini hooldatavaks, kui osa sureb, + rohkem usaldusväärsust, kuna vähem juhtmeid (jlcpcb.com)

- M3 kruvid ja poldid

- M3 messingist lisad

- 12V kuni 5V vähendamismoodul Pololu (DF24V22F5)

- 3 vatti jahutusradiaatoriga

- Jumper juhtmed

- helisignaal

- I2C multiplekser (TCA9548A alates adafruit)

- 2 pöörlevat kodeerijat (olen proovinud mõnda, mitte kõik ei tööta minu koodiga. Üks "DFrobot" -st töötab ja nii ka see, mis pärineb "DIYmore" ümara PCB -st. Minu kood ei tundu töötavat nupule tüüpi KY-040. Minu äratuskell kasutab DIYmore'i äratuskella, kuna neid on väga lihtne paneelile kinnitada (lisakruvisid/auke pole vaja).

- Naissoost päiste valik (valikuline)

- puit raami jaoks: 18mmx18mmx2400mm

- Jälgpaber

Ma kasutasin ka mõningaid tööriistu (jootekolb, kolmas käsi, saag…), kuid mitte midagi eksootilist.

Samm: Oledi kasutamine

Oledi kasutamine
Oledi kasutamine
Oledi kasutamine
Oledi kasutamine
Oledi kasutamine
Oledi kasutamine

OLED -i kasutamiseks peate installima kogu. Kasutan Oli Krausi U8G2libi, see on väga arusaadav ja sisaldab selgete näidetega teatmikku.

Tahvli ühendamiseks (ESP või arduino) peate leidma SDA ja SCL tihvtid. Need tihvtid on I2C sidetihvtid. Googeldage oma konkreetse tahvli "pinout", kui te neid ei leia.

Lisasin näite koodi. Kood töötab nii arduino kui ka ESP32 puhul, kuid ESP32 mälu saab otsa vähem. Kõik need, mida olen seni proovinud, töötavad nii 3.3v (ESP32) kui ka 5V toitega.

Samm: mitu OLED -i

Mitu OLED -i
Mitu OLED -i

Siin hakkab minu projekt erinema paljudest teistest äratuskelladest. Enamikul arduinos/ESP -del on ainult üks või kaks I2C tihvti. See piirab I2C osade kasutamist. Mis siis, kui mul on 4 I2C andurit ja ma tahan nende näitu kuvada I2C ekraanil? Sisestage multiplekser. Muliplekser võimaldab teil adresseerida 7 erinevat I2C osa. See võimaldab minu ESP32 -l kasutada I2C reaalajas kella ja kuvada aega uuesti, kasutades I2C nelja ekraani kohal (või rohkem, ärge laske mind peatada).

Olen lisanud ESP32 näidiskoodi, siit alates pole ma kindel, kas arduino suudab sammu pidada. Näites kasutatakse ainult kuvareid, need võivad olla ka muud asjad, näiteks I2C andurid jne. Põhimõte on alati sama, helistate õigele kanalile "tcaselect (#);" funktsiooni, siis käivitate mis tahes koodi, mis on teie I2C objekti jaoks vajalik.

3. samm: keritava menüü loomine pöörleva kodeerijaga

Kerimismenüü loomine pöörleva kodeerijaga
Kerimismenüü loomine pöörleva kodeerijaga
Kerimismenüü loomine pöörleva kodeerijaga
Kerimismenüü loomine pöörleva kodeerijaga
Kerimismenüü loomine pöörleva kodeerijaga
Kerimismenüü loomine pöörleva kodeerijaga

Kõigepealt kontrollige oma kodeerijaid. Lisasin teie kodeerimismoodulite testimiseks koodi. Nagu tarnetes öeldud: olen oma koodi edukalt testinud ainult DF -roboti pöördkodeermoodulitega ja DIYmore'i ümmarguse trükkplaadiga moodulit. Vaadake ülaltoodud piltidelt õigeid kodeerijaid.

Raamatukogu, mida kasutasin, on see:

Lisatud PDF aitab loodetavasti minu kella jaoks kasutatud menüüstruktuuri.

Kodeerija tööle panemine oli minu jaoks selle projekti kõige raskem osa. Seal on palju erinevaid kodeerijaid ja palju erinevaid teeke, mis ei ühildu alati ESP32 -ga. Kuid ma arvan, et (töötav) pöörlev kodeerija on elegantne lahendus, kui soovite midagi sisestada. Kui oleksin pidanud kasutama ainult nuppe, oleks mul vaja olnud rohkem kui 1 ja aja seadmine võtaks palju vajutusi.

Samm: eelmise koodi ühendamine

Eelmise koodi ühendamine
Eelmise koodi ühendamine

Pealkiri võtab kokku minu tegemised. Proovisin osaliselt ja siis panin kõik kokku. Aga kuna miski pole kunagi lihtne, pidin ma mõnda asja muutma. Jadaühendus on aeglane protsess. See takistab kodeerija õiget lugemist. Selle ületamiseks lisasin kodeerija tihvtidele katkestused. Koodri lugemise kood helistatakse kohe, kui kodeerijat vajutate või keerate.

Kui olete aru saanud, kuidas menüüd koostatakse, leiate, et funktsioone on väga lihtne oma maitse järgi lisada või eemaldada. Võib -olla soovite Internetist praeguse ilma või aja tuua ja selle kuvada?

Olen paljud sellised ideed välja jätnud, sest soovisin eelkõige usaldusväärset ajarahu. Üks, mis ei tee automaatselt midagi. Töötan suveaja tsoonis väga veidratel tundidel. Iga kord, kui tundi muudetakse, on mul närv üle uinuda. Kas mu telefon muudab tunde automaatselt? Kas mu kell vaatab? Mu kell seda ei tee, kui ma seda ise ei vaheta. Aga võib -olla soovite oma kella kööki panna? Erinev stsenaarium, lisage funktsioone, kuni mälu on otsas!

Samm: kohandatud trükkplaat koos Fritzing + skeemiga

Kohandatud trükkplaat koos Fritzing + skeemiga
Kohandatud trükkplaat koos Fritzing + skeemiga
Kohandatud trükkplaat koos Fritzing + skeemiga
Kohandatud trükkplaat koos Fritzing + skeemiga
Kohandatud trükkplaat koos Fritzing + skeemiga
Kohandatud trükkplaat koos Fritzing + skeemiga

Tähelepanu: Adafruit juhib tähelepanu sellele, et kuigi saate huzzah32 toita USB -pistiku kaudu, peate olema ettevaatlik, et te ei kasutaks samaaegselt mikro -USB toitepesa. Minu trükkplaadi toiteallikaks on alandatud pistikupesa, mis seejärel toidab huzzah USB -pistiku kaudu. Nii et alati laadimisel eemaldage väline toide vooluvõrgust/eemaldage huzzah laualt.

Otsustasin jootma PCB -le naissoost päised, kuna see hõlbustab osa väljavahetamist või lisab näiteks täiendava I2C anduri. See võimaldab mul ka programmide laadimiseks nano või ESP32 hõlpsalt eemaldada.

Olen lisanud Friztingi faili, võin siia romaani trükkida, kuid minu arvates räägib näide kõige paremini. Alustasin kogu seadistuse skeemiga. Kuigi Fritzingi prügikastides on palju osi, pole kõike seal. Mõnikord leiate Fritzingu osa Internetist, mõnikord mitte. Osad, mida ma ei leidnud, asendasin lihtsalt naissoost päiseosaga. Kui paremklõpsate seda, saate päist muuta soovitud nööpnõelte arvu järgi ja määrata sellele pinout. Ma tegin seda iga osaga, mida ma ei leidnud. Kuna peaaegu kõik moodulid kasutavad sama sammu 0,1 tolli (2,54 mm), saate selle osa jaoks õige vahekauguse.

Järgmisena lülitate friteerimisrakenduse PCB -vaatele. PCB pannakse paika, kui klõpsate sellel, saate määrata selle suuruse ja valida ühe- või kahekihilise PCB. Minu oma kasutab 2 kihti. Fritzing soovitab skemaatilises vaates tehtud ühendusi. Programmil on autoroute võimalus, kuid ma ei kasuta seda kunagi. Mulle meeldib ühendusi käsitsi korraldada. PCB vaates on kollased ühendused ülemises kihis, oranžid alumises kihis. Jällegi, kui klõpsate ühendusel, saate valida selle atribuudid.

Tegeliku PCB tegemiseks peate selle eksportima gerberifailina. Enne seda saate vahekaardil "marsruutimine" kontrollida disainieeskirju. Kui kõik on kontrollitud, võite klõpsata nupul "PCB jaoks eksportimine". Enamik tootjaid küsib Gerberi faili, seega valige eksportimine Gerberisse.

Tellisin oma PCB JLCPCB -st, mulle meeldib, et nad pakkusid teile kohe hinna. Muidugi on palju muid võimalusi.

Skeemi kohta: kasutatakse kahte pinget. LED -i ja femtobucki toiteallikaks on 12 V toide. Ülejäänud saab toidet 5-voldise astmepistiku kaudu.

6. samm: disain + laserlõikur

Disain + laserlõikur
Disain + laserlõikur
Disain + laserlõikur
Disain + laserlõikur

Esimese kujunduse jaoks proovisin kasutada tammepuitu (jälgin puidutöö tunde), kuid kiiresti selgus, et see pole ideaalne. Puit on liiga paks, mistõttu on teie osade paigaldamine keeruline. 3 mm kask multipleks võimaldab lihtsamaid viise kodeerijate ja kuvarite kinnitamiseks.

Leidsin Rotterdamis asuvatele harrastajatele veebipõhise lasercut -teenuse snijlab.nl (need saadetakse Belgiasse, Hollandisse ja Saksamaale). Nende veebisaidil saate oma joonised üles laadida ja nad esitavad kohe teie hinna. Kasutasin Autocadi, mis mul tööl on, kuid tarkvara pole tegelikult oluline. See peab lihtsalt olema vektorjoonis (Vectr, Illustrator, Inkscape …). Enamik kauplusi kasutab värve, et teha kindlaks, kas soovite lõigata või graveerida.

Mõned asjad, mida meeles pidada:

- Max laserlõikuri mõõtmed (joonistasin oma osade ümber raami)

- Min. lõikude vaheline kaugus

- Veenduge, et te ei joonistaks topeltjooni, laser teeb lisapassi, mis maksab teile rohkem.

- PDF -i joonistades veenduge, et joonistate 1: 1. Te ei soovi vähendada või paberile sobitada.

7. samm: kokkupanek

Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek

Ehitasin kella puitraami ümber, paneele hoitakse paigas M3 kruvide ja raami sisetükkidega. Kui peaksin kunagi ehitama versiooni 2, kasutaksin paneelide kinnitamiseks alumiiniumist "L" profiile. Messingist sisetükkide aukude puurimine oli väga raske. See võttis mul väga kaua aega, lihtsalt vastuvõetava tulemuse saavutamiseks. See tähendaks muidugi, et laserlõike joonis tuleb üle vaadata. Ma arvan, et alumiiniumprofiilide ja lihtsalt mutrite ja poltidega saaksite parema tulemuse.

Valguse paremaks hajutamiseks olen perforeeringute siseküljele liiminud jäljepaberi. See annab valgusele kena sära.

8. samm: ärge lõpetage siin

Ära peatu siin
Ära peatu siin
Ära peatu siin
Ära peatu siin
Ära peatu siin
Ära peatu siin

Projekt keskendub ESP32 ümber, ma pole seda peaaegu kasutanud. Minu magamistoa tulesid saab praegu blynk abil kaugjuhtida. Nende juhtimine kellaga on vaid väike samm edasi. Võib -olla soovite lisakuvaid, mis näitavad teie maja ümbritsevat temperatuuri? Või mõned kohalikud andurid (sellel multiplekseril on veel varu I2C ühendusi!). Võib -olla määrata aeg/äratus äpi ja bluetoothi kaudu?

Anna mulle teada, mida sa muutsid, mida sa muudaksid, mida ma peaksin muutma …

Soovitan: