Përmbajtje:

Ora me alarm Oled: 8 hapa (me fotografi)
Ora me alarm Oled: 8 hapa (me fotografi)

Video: Ora me alarm Oled: 8 hapa (me fotografi)

Video: Ora me alarm Oled: 8 hapa (me fotografi)
Video: ПОБЕГ из НАСТОЯЩЕЙ ФАБРИКИ ЗЛОГО МОРОЖЕНЩИКА - 4! Кого ПЕРВЫМ НАКАЖЕТ РОБОТ Злого Мороженщика? 2024, Korrik
Anonim
Ora e alarmit Oled
Ora e alarmit Oled

Ka shumë orë arduino/ESP32 që qarkullojnë, por a i përdorin ato OLED të këndshme dhe të qarta?

Unë kam qenë duke eksperimentuar me arduinos dhe ESP32 për një kohë tani, por kurrë nuk kam arritur në një produkt të përfunduar. Kam bërë një orë alarmi me 4 OLED monokromë 1.3 inç. Ora gjithashtu përmban një llambë të shtrirë të shtratit dhe një port karikimi USB (askush nuk ka priza rezervë pranë shtratit të tij). OLED -të janë gjithashtu të zbehtë, kjo u shtua minutën e fundit pasi projekti im u kërcënua nga e dashura ime. Nëse zhurma nuk duhet të jetë - me zërat e të dashurave - mjaft e zbehtë, unë gjithashtu mund të ofroj një version të kodit ku 3 ekrane janë të ndezur midis orëve të caktuara. Qëllimi ishte të bënte një orë të lehtë të përdorshme, me një vështrim përtej "prototipit". Ndërsa bëja orën time, hasa në disa vështirësi që duhej të zgjidhja, prandaj mendoj se kjo e udhëzueshme ia vlen të ndahet. Ora mund të bëhet me mjete të vogla, nuk më pëlqejnë mësimet "dhe për hapin tjetër kam përdorur mësimet e mia 10.000 €/$ CNC".

Disa gjëra që do të shpjegohen në këtë udhëzim të udhëzueshëm (të strukturueshëm):

- Si të përdorni/lidhni një ekran OLED I2C me arduino/ESP32

- Si të përdorni objekte të shumta I2C me një arduino/ESP32

- Si të bëni një menu "të lëvizshme" duke përdorur një kodues rrotullues (+ si të përdorni një kodues me një ESP32/arduino)

- Si të hartoni dhe porositni një PCB të personalizuar duke përdorur fritzing.

- Ora gjithashtu përdor një RTC (orë në kohë reale), drejtues drejtues, modul tensioni poshtë … Unë nuk do të hyj vërtet në këto sepse ka vërtet shumë informacion të gatshëm për këto module.

Dua të vërej se nuk jam programues profesionist. Qëllimi i udhëzimit tim është të shpjegoj pikat që përmenda më lart. Mënyra se si i bashkova të gjitha për produktin tim përfundimtar nuk është mënyra më e pastër. Shtë mënyra që më lejoi të mbaja shënime për të gjitha.

Furnizimet

Kur blej furnizime, gjithmonë përpiqem të peshoj për rëndësinë e cilësisë/dokumentacionit kundrejt çmimit. Furnizimet e mia janë një përzierje e markave A dhe pjesëve më të lira kineze. Mouser është një furnizues i shkëlqyeshëm nëse cilësia është e rëndësishme, porosis nga Banggood/Aliexpress për pjesët më të lira.

- Një bord ESP32, kam përdorur Huzzah32 nga adafruit, por ka shumë mundësi të tjera (më të lira). Zgjodha Huzzah32 sepse është shumë mirë i dokumentuar.

- 4 ekrane 1.3 inç I2C OLED (128x64, me drejtuesin SH1106), ato 0.96 "janë më të zakonshme, por për këtë projekt preferoj ato 1.3"

- Sparkfun femtobuck shofer për të drejtuar LED

- Ora RTC, kam përdorur një me një qelizë litiumi

- Arduino nano

-Porta femërore USB 2.0 (kam përdorur: SS-52200-002 nga lidhësi Stewart)

- Foleja femër DC (kam përdorur: L722A nga Switchcraft)

- Përshtatës DC 12V 3A DC (GST36E12-P1J nga Pusi Mesatar)

- PCB e personalizuar, opsionale por kjo e bën projektin shumë më kompakt dhe lehtësisht të përdorshëm nëse një pjesë vdes + më shumë besueshmëri sepse më pak tela (jlcpcb.com)

- Vida dhe bulona M3

- Futje prej bronzi M3

- Moduli i uljes 12V deri në 5V nga Pololu (DF24V22F5)

- 3 vat të fuqizuar me ngrohës

- Telat e kërcyesit

- Buzzer

- Multiplekser I2C (TCA9548A nga adafruit)

- 2 kodues rrotullues (kam provuar disa, jo të gjithë punojnë me kodin tim. Ai nga "DFrobot" funksionon dhe po ashtu edhe ai me PCB të rrumbullakët nga "DIYmore". Kodi im nuk duket se funksionon për butonin të tipit KY-040. Ora ime e alarmit përdor atë nga DIY më shumë sepse ato janë shumë të lehta për tu montuar në panel (nuk nevojiten vida/vrima shtesë).

- Asortimenti i titujve femra (opsionale)

- Druri për kornizën: 18mmx18mmx2400mm

- Letër gjurmuese

Kam përdorur disa mjete (hekur bashkues, dora e tretë, sharrë…) gjithashtu, por asgjë vërtet ekzotike.

Hapi 1: Përdorimi i një Oled

Duke përdorur një Oled
Duke përdorur një Oled
Duke përdorur një Oled
Duke përdorur një Oled
Duke përdorur një Oled
Duke përdorur një Oled

Për të përdorur OLED -të duhet të instaloni një bibliotekë. Unë përdor U8G2lib nga Oli Kraus, është shumë i kuptueshëm dhe ka një udhëzues referimi me shembuj të qartë.

Për të lidhur bordin tuaj (ESP ose arduino) duhet të gjeni kunjat SDA dhe SCL. Këto kunja janë kunjat e komunikimit I2C. Google për "pinout" të bordit tuaj specifik nëse nuk mund t'i gjeni.

Kam shtuar një shembull shembull. Kodi funksionon si për arduino ashtu edhe për ESP32, por ESP32 ka më pak gjasa të mbarojë memorie. Të gjitha pajisjet që kam provuar deri më tani punojnë me 3.3v (ESP32) dhe 5V.

Hapi 2: OLED të shumëfishta

OLED të shumtë
OLED të shumtë

Këtu projekti im fillon të ndryshojë nga shumë orë të tjera alarmi. Shumica e arduinos/ESP kanë vetëm një ose dy kunja I2C. Ky lloj kufizon përdorimin e pjesëve I2C. Po sikur të kem 4 sensorë I2C dhe dua të shfaq leximet e tyre në një ekran I2C? Futni multiplexerin. Muliplekseri ju lejon të adresoni 7 pjesë të ndryshme I2C. Kjo i lejon ESP32 -t tim të përdorë një orë I2C në kohë reale dhe të shfaqë kohën duke përdorur përsëri I2C mbi 4 ekranet (ose më shumë, mos më lejoni t'ju ndaloj).

Unë kam shtuar një shembull të kodit për ESP32, nga këtu e tutje nuk jam i sigurt që arduino mund të vazhdojë. Shembulli përdor vetëm ekranet, mund të jenë gjëra të tjera si sensorë I2C etj. Parimi është gjithmonë i njëjtë, ju e quani kanalin e duhur me "tcaselect (#);" funksion, atëherë ju ekzekutoni cilindo kod të nevojshëm për objektin tuaj I2C.

Hapi 3: Krijimi i një menuje të lëvizshme me një kodues rrotullues

Krijimi i një menuje të lëvizshme me një kodues rrotullues
Krijimi i një menuje të lëvizshme me një kodues rrotullues
Krijimi i një menuje të lëvizshme me një kodues rrotullues
Krijimi i një menuje të lëvizshme me një kodues rrotullues
Krijimi i një menuje të lëvizshme me një kodues rrotullues
Krijimi i një menuje të lëvizshme me një kodues rrotullues

Së pari, së pari, provoni koduesit tuaj. Kam shtuar disa kod për të testuar modulet e koduesit tuaj. Siç thuhet në furnizimet: Unë vetëm e kam testuar me sukses kodin tim me modulet kodues rrotullues nga roboti DF dhe modulin me PCB të rrumbullakët nga DIYmore. Shikoni fotot e mësipërme për kodifikuesit e duhur.

Biblioteka që kam përdorur është kjo:

PDF -ja që kam shtuar shpresoj se ndihmon me strukturën e menysë që kam përdorur për orën time.

Bërja e funksionimit të kodifikuesit, ishte pjesa më e vështirë për mua në këtë projekt. Ka shumë kodues të ndryshëm dhe shumë biblioteka të ndryshme që nuk janë gjithmonë të pajtueshme me ESP32. Por unë mendoj se një kodues rrotullues (i punës) është një zgjidhje elegante nëse doni të futni diçka. Nëse do të kisha përdorur vetëm butona, do të më duheshin më shumë se 1 dhe vendosja e kohës do të merrte shumë shtypje.

Hapi 4: Vendosja e kodit të mëparshëm në Togetther

Vendosja e kodit të mëparshëm Togetther
Vendosja e kodit të mëparshëm Togetther

Titulli përmbledh atë që kam bërë. Provova pjesë për pjesë dhe pastaj i bashkova të gjitha. Por për shkak se asgjë nuk është kurrë e lehtë, më duhej të ndryshoja disa gjëra. Komunikimi serik është një proces i ngadalshëm. Kjo pengon leximin e duhur të kodifikuesit. Për të kapërcyer këtë, shtova ndërprerje në kunjat e koduesit. Kodi për të lexuar koduesin thirret menjëherë nëse e shtypni ose e ktheni koduesin.

Pasi të keni kuptuar se si janë ndërtuar menutë, do të zbuloni se është shumë e lehtë të shtoni ose hiqni veçoritë sipas dëshirës tuaj. Ndoshta ju dëshironi të merrni motin ose kohën aktuale nga interneti dhe ta shfaqni atë?

Kam lënë jashtë shumë ide të tilla sepse doja mbi të gjitha një paqe të besueshme kohore. Ai që nuk bën asgjë automatikisht. Unë punoj orë shumë të çuditshme në një zonë të kursimit të ditës. Sa herë që ndryshon ora unë jam nervoz për të fjetur shumë. A do ta ndryshojë telefoni automatikisht orën? Do ta shikoj orën time? Epo, ora ime nuk do, nëse nuk e ndryshoj vetë. Por ndoshta doni të vendosni orën tuaj në kuzhinë? Skenar i ndryshëm, shtoni veçori derisa kujtesa të jetë jashtë!

Hapi 5: PCB e personalizuar me Fritzing + Skematik

PCB e personalizuar me Fritzing + Skematik
PCB e personalizuar me Fritzing + Skematik
PCB e personalizuar me Fritzing + Skematik
PCB e personalizuar me Fritzing + Skematik
PCB e personalizuar me Fritzing + Skematik
PCB e personalizuar me Fritzing + Skematik

Pika e vëmendjes: Adafruit thekson se ndërsa mund ta aktivizoni huzzah32 përmes pin USB, duhet të jeni të kujdesshëm që të mos përdorni njëkohësisht hyrjen e rrymës mikro USB. PCB -ja ime mundësohet përmes dollarit hap pas hapi, i cili më pas fuqizon huzzah -in përmes pinit USB. Pra, gjithmonë shkëputni fuqinë e jashtme/hiqni huzahun nga bordi kur ngarkoni.

Vendosa të bashkoj titujt femra në PCB sepse e bën më të lehtë shkëmbimin e një pjese, ose shtimin për shembull të një sensori shtesë I2C. Kjo gjithashtu më lejon të heq lehtësisht nano ose ESP32 për të ngarkuar programet.

Kam shtuar skedarin Frizting, mund të shkruaj një roman këtu, por mendoj se shembulli flet më së miri. Fillova me skemën e të gjithë konfigurimit. Ndërsa Fritzing ka shumë pjesë në kazanët e tij, jo gjithçka është atje. Ndonjëherë mund të gjeni pjesën Fritzing në internet, ndonjëherë jo. Pjesët që nuk i gjeta, thjesht i zëvendësova me një pjesë të kokës femërore. Nëse klikoni me të djathtën mbi të, mund të redaktoni titullin në sasinë e kunjave që dëshironi dhe t'i caktoni një pinout. E bëra këtë me çdo pjesë që nuk mund ta gjeja. Meqenëse pothuajse të gjitha modulet përdorin të njëjtën lartësi prej 0.1 inç (2.54 mm) kjo do t'ju japë hapësirën e duhur për pjesën.

Tjetra kaloni në pamjen PCB të aplikacionit fritzing. Një PCB do të vendoset, nëse e klikoni atë, mund të vendosni madhësinë e tij dhe të zgjidhni një PCB të vetme ose të dyfishtë. I imi përdor 2 shtresa. Fritzing do të sugjerojë lidhjet që keni bërë në pamjen skematike. Programi ka një opsion autoroute, por unë kurrë nuk e përdor atë. Më pëlqen të organizoj manualisht lidhjet e mia. Në pamjen PCB lidhjet e verdha janë në shtresën e sipërme, portokalli janë në shtresën e poshtme. Përsëri nëse klikoni në lidhjen mund të zgjidhni vetitë e saj.

Për të bërë PCB -në aktuale, duhet ta eksportoni atë si një skedar gerber. Para se ta bëni këtë, nën skedën "kurs" mund të kontrolloni rregullat e projektimit. Nëse gjithçka kontrollon, mund të klikoni në "eksport për PCB". Shumica e prodhuesve do të kërkojnë skedar gerber, kështu që zgjidhni eksportin në gerber.

Kam porositur PCB -në time nga JLCPCB, më pëlqen që ata menjëherë ju japin një çmim. Ka sigurisht shumë mundësi të tjera.

Rreth skemës: ka 2 tensione që përdoren. LED dhe femtobuck mundësohen drejtpërdrejt nga furnizimi me 12V. Pjesa tjetër mundësohet përmes kapakut të ulur me 5 volt.

Hapi 6: Dizajni + Lasercutter

Dizajn + Lasercutter
Dizajn + Lasercutter
Dizajn + Lasercutter
Dizajn + Lasercutter

Për modelin tim të parë u përpoqa të përdor lis të fortë (po ndjek klasat e përpunimit të drurit), por shpejt u bë e qartë se kjo nuk ishte ideale. Druri është shumë i trashë, duke e bërë të vështirë përshtatjen e pjesëve tuaja. Multipleksi i thuprës 3 mm lejon mënyra më të lehta për të fiksuar koduesit dhe ekranet.

Gjeta një shërbim të prerjes me lazer në internet, snijlab.nl, i disponueshëm për hobiistët e vendosur në Roterdam (ata dërgohen në Belgjikë, Holandë dhe Gjermani). Në faqen e tyre të internetit ju mund të ngarkoni vizatimet tuaja dhe ato citojnë menjëherë çmimin tuaj. Kam përdorur Autocad, të cilin e kam në punë, por softveri nuk ka rëndësi. Thjesht duhet të jetë një vizatim vektor (Vectr, Illustrator, Inkscape…). Shumica e dyqaneve përdorin ngjyra për të përcaktuar nëse doni të shkurtoni ose gdhendni.

Disa gjëra për tu mbajtur në mend:

- Maks. dimensionet e lazerprerësit (vizatova një kornizë rreth pjesëve të mia)

- Min. distanca midis prerjeve

- Sigurohuni që të mos vizatoni asnjë vijë të dyfishtë, lazeri do të bëjë një kalim shtesë, duke ju kushtuar më shumë.

- Kur komplotoni në PDF, sigurohuni që të vizatoni 1: 1. Ju nuk doni të zvogëloni ose përshtateni në letër.

Hapi 7: Montimi

Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi

Kam ndërtuar orën rreth një kornize druri, panelet mbahen në vend me vida M3 dhe futje në kornizë. Nëse do të ndërtoja ndonjëherë një version 2, do të përdorja profile alumini "L" për t'i bashkuar panelet. Ishte shumë e vështirë të shponin me saktësi vrimat për futjet prej bronzi. M’u desh shumë kohë, vetëm për një rezultat të pranueshëm. Kjo do të thotë natyrisht që vizatimi i prerë me lazer duhet të rishikohet. Unë mendoj se me profile alumini dhe vetëm arra dhe bulona do të kishit një rezultat më të mirë.

Për të shpërndarë më mirë dritën, kam ngjitur letër gjurmuese në pjesën e brendshme të vrimave. Kjo i jep dritës një shkëlqim të këndshëm.

Hapi 8: Mos u ndal këtu

Mos u ndal këtu
Mos u ndal këtu
Mos u ndal këtu
Mos u ndal këtu
Mos u ndal këtu
Mos u ndal këtu

Projekti përqendrohet rreth një ESP32, mezi e kam përdorur atë. Dritat e dhomës sime të gjumit aktualisht mund të kontrollohen nga distanca duke përdorur blynk. Kontrolli i tyre me orën është vetëm një hap i vogël më tej. Ndoshta doni disa ekrane shtesë që ju tregojnë temperaturën rreth shtëpisë tuaj? Ose disa sensorë lokalë (ka ende lidhje rezervë I2C në atë multiplexer!). Ndoshta vendosni kohën/alarmin përmes një aplikacioni dhe bluetooth?

Më tregoni se çfarë ndryshuat, çfarë do të ndryshonit, çfarë duhet të ndryshoja unë…

Recommended: