Tartalomjegyzék:

Oled ébresztőóra: 8 lépés (képekkel)
Oled ébresztőóra: 8 lépés (képekkel)

Videó: Oled ébresztőóra: 8 lépés (képekkel)

Videó: Oled ébresztőóra: 8 lépés (képekkel)
Videó: Как зашить ДЫРКУ на куртке, джинсах, штанах, носке, футболке, чтобы не было видно 2024, Július
Anonim
Oled ébresztőóra
Oled ébresztőóra

Sok arduino/ESP32 óra jár körül, de használják ezeket a szép és éles OLED -eket?

Már egy ideje kísérletezek arduinókkal és ESP32 -kkel, de soha nem sikerült kész termékké válnom. Készítettem ébresztőórát 4 db 1,3 hüvelykes monokróm OLED -del. Az órában van egy szabályozható éjjeli lámpa és egy USB töltőport is (senkinek nincs tartalék aljzata az ágya mellett). Az OLED -ek is szabályozhatók, ezt az utolsó pillanatban tették hozzá, miután a barátnőm megfenyegette a projektemet. Ha a tompítás nem lesz elég hangos a barátnőinél, akkor a kódnak azt a verzióját is megadhatom, ahol 3 kijelző be van kapcsolva bizonyos órák között. A cél az volt, hogy könnyen karbantartható órát készítsenek, a "prototípuson" kívül. Az óra készítése során néhány nehézségbe ütköztem, amelyeket meg kellett oldanom, ezért úgy gondolom, hogy ezt az oktathatót érdemes megosztani. Az óra kis eszközökkel elkészíthető, nem szeretem a "és a következő lépésben a 10.000 €/$ CNC malom" oktatóanyagomat használtam.

Néhány dolog, amit ebben az utasításban elmagyarázunk (strukturálható):

- Az I2C OLED kijelző használata/vezetékezése arduino/ESP32 használatával

- Több I2C objektum használata egy arduino/ESP32 -vel

- Hogyan készítsünk "görgethető" menüt egy forgó kódoló segítségével (+ hogyan használjunk kódolót ESP32/arduino-val)

- Hogyan tervezzen és rendeljen egyedi NYÁK -t fritzezéssel.

- Az óra RTC -t (valós idejű óra), led meghajtót, feszültségmodult is használ … Ezekbe nem igazán fogok belemenni, mert valóban sok információ áll rendelkezésre ezekről a modulokról.

Szeretném megjegyezni, hogy nem vagyok profi programozó. Az utasításom célja az, hogy elmagyarázzam a fent említett pontokat. Lehet, hogy nem a legegyszerűbb módja annak, hogy összeszedjem a végtermékemet. Ez az út tette lehetővé számomra, hogy nyomon kövessem az egészet.

Kellékek

Kellékvásárláskor mindig a minőség/dokumentáció és az ár fontosságát próbálom mérlegelni. A kínálatom A-márkák és olcsóbb kínai alkatrészek keveréke. A Mouser nagyszerű szállító, ha fontos a minőség, a Banggood/Aliexpress -től rendelek az olcsóbb alkatrészekért.

- ESP32 tábla, a Huzzah32 -t használtam az adafruitból, de sok más (olcsóbb) lehetőség is van. A Huzzah32 -t választottam, mert nagyon jól dokumentált.

- 4 db 1,3 hüvelykes I2C OLED kijelző (128x64, SH1106 illesztőprogrammal), a 0,96 hüvelykesek gyakoribbak, de ennél a projektnél az 1,3 hüvelykeseket részesítem előnyben

- Sparkfun femtobuck meghajtó a LED meghajtásához

- RTC óra, én lítiumcellásat használtam

- Arduino nano

-Női USB 2.0 port (én használtam: SS-52200-002 a Stewart csatlakozóból)

- Női DC jack (én használtam: L722A a Switchcraft -tól)

- 12V 3A DC adapter (GST36E12-P1J a Mean Welltől)

- Egyedi PCB, opcionális, de ez sokkal kompaktabbá és könnyebben szervizelhetővé teszi a projektet, ha egy alkatrész meghal, + nagyobb megbízhatóságot, mert kevesebb vezeték van (jlcpcb.com)

- M3 csavarok és csavarok

- M3 sárgaréz betétek

- 12V -5V leállítási modul a Pololu -tól (DF24V22F5)

- 3 watt hűtőbordával

- Jumper vezetékek

- Zümmögő

- I2C multiplexer (TCA9548A az adafruitból)

- 2 forgó kódoló (néhányat kipróbáltam, nem mindegyik működik a kódommal. A "DFrobot" -ból származó és a "DIYmore" kerek NYÁK -ból származó is működik. A kódom nem működik a nyomógombhoz a KY-040 típusból. Az ébresztőórám a DIYmore egyikét használja, mert nagyon könnyen felszerelhetők a panelre (nincs szükség további csavarokra/lyukakra).

- Női fejlécek választéka (opcionális)

- Fa a kerethez: 18mmx18mmx2400mm

- Pauszpapír

Néhány eszközt (forrasztópáka, harmadik kéz, fűrész…) is használtam, de semmi igazán egzotikus.

1. lépés: Oled használata

Oled használata
Oled használata
Oled használata
Oled használata
Oled használata
Oled használata

Az OLED -ek használatához telepítenie kell egy könyvtárat. Az Oli Kraus U8G2lib -jét használom, nagyon érthető, és tartalmaz egy referencia -útmutatót világos példákkal.

A tábla csatlakoztatásához (ESP vagy arduino) meg kell találnia az SDA és az SCL csapokat. Ezek a csapok az I2C kommunikációs csapok. Ha nem találja, keressen rá Google -ra az adott tábla "pinout -jára".

Adtam hozzá néhány példakódot. A kód mind az arduino, mind az ESP32 esetén működik, de az ESP32 memóriája kevésbé valószínű. Az összes általam kipróbált eddig működik 3.3V (ESP32) és 5V -os feszültséggel.

2. lépés: Több OLED

Több OLED
Több OLED

Ez az a pont, ahol a projektem kezd eltérni sok más ébresztőórától. A legtöbb arduino/ESP csak egy vagy két I2C tűvel rendelkezik. Ez korlátozza az I2C alkatrészek használatát. Mi a teendő, ha 4 I2C érzékelőm van, és az értékeket I2C kijelzőn szeretném megjeleníteni? Adja meg a multiplexert. A muliplexer lehetővé teszi 7 különböző I2C alkatrész címzését. Ez lehetővé teszi, hogy az ESP32 készülékem I2C valós idejű órát használjon, és az időt ismét I2C használatával jelenítse meg a 4 kijelzőn (vagy több, ne hagyja abba).

Hozzáadtam néhány példakódot az ESP32 -hez, innentől kezdve nem biztos, hogy az arduino képes lépést tartani. A példa csak kijelzőket használ, lehet más is, például I2C érzékelők stb. Az elv mindig ugyanaz, a megfelelő csatornát a "tcaselect (#);" funkciót, akkor végrehajtja az I2C objektumhoz szükséges kódot.

3. lépés: Görgethető menü létrehozása forgó kódolóval

Görgethető menü létrehozása forgó kódolóval
Görgethető menü létrehozása forgó kódolóval
Görgethető menü létrehozása forgó kódolóval
Görgethető menü létrehozása forgó kódolóval
Görgethető menü létrehozása forgó kódolóval
Görgethető menü létrehozása forgó kódolóval

Először is tesztelje a kódolókat. Hozzáadtam néhány kódot a kódolómodulok teszteléséhez. Amint azt a kellékek is tartalmazzák: A kódomat csak a DF robot forgó kódoló moduljaival és a DIYmore kerek NYÁK moduljával teszteltem sikeresen. A megfelelő kódolókat lásd a fenti képeken.

Ezt a könyvtárat használtam:

A hozzáadott PDF remélhetőleg segít az órámhoz használt menüstruktúrában.

A kódoló működése volt a legnehezebb részem ebben a projektben. Sok különböző kódoló létezik, és sok különböző könyvtár, amelyek nem mindig kompatibilisek az ESP32 -vel. De szerintem egy (működő) forgó kódoló elegáns megoldás, ha valamit be szeretne írni. Ha csak gombokat használtam volna, 1 -nél többre lett volna szükségem, és az idő beállítása sok nyomást igényel.

4. lépés: Az előző kód összeillesztése

Az előző kód összeillesztése
Az előző kód összeillesztése

A cím valahogy összefoglalja, amit tettem. Próbáltam részben, majd mindent összeraktam. De mivel semmi sem könnyű, néhány dolgon változtatnom kellett. A soros kommunikáció lassú folyamat. Ez akadályozza a kódoló helyes olvasását. Ennek kiküszöbölésére megszakításokat adtam a kódoló csapjaihoz. A kódoló leolvasásához szükséges kód azonnal hívásra kerül, ha megnyomja vagy elfordítja a kódolót.

Miután megértette, hogyan épül fel a menü, rájön, hogy nagyon könnyen hozzáadhat vagy eltávolíthat funkciókat saját ízlése szerint. Talán szeretné lekérni az aktuális időjárást vagy időt az internetről, és megjeleníteni?

Sok ilyen ötletet kihagytam, mert mindenekelőtt megbízható időbékét akartam. Olyat, amely automatikusan nem csinál semmit. Nagyon furcsa órákat dolgozom egy nyári időszámítási zónában. Minden alkalommal, amikor az óra változik, ideges vagyok, hogy túlalszom. A telefonom automatikusan megváltoztatja az órát? Vajon az órám? Nos, az órám nem, hacsak nem változtatom meg magam. De talán a konyhába szeretné helyezni az óráját? Más forgatókönyv, adjon hozzá funkciókat, amíg a memória el nem fogy!

5. lépés: Egyéni NYÁK Fritzing + Schematic segítségével

Egyéni NYÁK Fritzing + Sémával
Egyéni NYÁK Fritzing + Sémával
Egyéni NYÁK Fritzing + Sémával
Egyéni NYÁK Fritzing + Sémával
Egyéni NYÁK Fritzing + Sémával
Egyéni NYÁK Fritzing + Sémával

Figyelem: Az Adafruit felhívja a figyelmet arra, hogy bár a huzzah32 tápellátását USB -n keresztül is elvégezheti, ügyeljen arra, hogy ne használja egyidejűleg a mikro -USB tápellátást. A NYÁK -om a lefelé irányuló bakon keresztül kap áramot, amely az USB -n keresztül táplálja a huzzah -t. Tehát feltöltéskor mindig húzza ki a tápkábelt a konnektorból/távolítsa el a huzza -t a tábláról.

Úgy döntöttem, hogy a női fejléceket forrasztom a NYÁK -ra, mert megkönnyíti az alkatrész cseréjét, vagy például egy extra I2C érzékelőt. Ez lehetővé teszi számomra a nano vagy az ESP32 könnyű eltávolítását a programok betöltéséhez.

Hozzáadtam a Frizting fájlt, ide be tudok írni egy regényt, de szerintem a példa beszél a legjobban. Az egész beállítás sémájával kezdtem. Míg a Fritzing sok alkatrészt tartalmaz a tartályokban, nem minden van ott. Néha megtalálhatja a Fritzing részt az interneten, néha nem. Azokat a részeket, amelyeket nem találtam, egyszerűen lecseréltem egy női fejrészre. Ha a jobb gombbal rákattint, szerkesztheti a fejlécet a kívánt csapok számához, és hozzárendelhet hozzá egy pinoutot. Ezt tettem minden olyan résznél, amit nem találtam. Mivel szinte minden modul ugyanazt a 0,1 hüvelyk (2,54 mm) osztást használja, ez biztosítja a megfelelő távolságot az alkatrész számára.

Ezután a fritzáló alkalmazás NYÁK nézetére vált. Egy NYÁK kerül a helyére, ha rákattint, beállíthatja a méretét, és választhat egy vagy kétrétegű NYÁK -t. Az enyém 2 réteget használ. A Fritzing javasolni fogja a kapcsolásokat a sematikus nézetben. A program rendelkezik automatikus útválasztási lehetőséggel, de soha nem használom. Szeretem manuálisan rendezni a kapcsolataimat. A NYÁK nézetben a sárga csatlakozások a felső rétegben, a narancssárgák az alsó rétegben vannak. Ismét, ha rákattint a kapcsolatra, kiválaszthatja annak tulajdonságait.

A tényleges PCB létrehozásához gerber fájlként kell exportálnia. Mielőtt ezt megtenné, az "útválasztás" lapon ellenőrizheti a tervezési szabályokat. Ha minden ellenőriz, kattintson az "export for PCB" gombra. A legtöbb gyártó gerber fájlt fog kérni, ezért válassza az exportálás gerberbe lehetőséget.

Megrendeltem a PCB -t a JLCPCB -től, tetszik, hogy azonnal árajánlatot adnak. Természetesen sok más lehetőség is van.

A vázlatról: 2 feszültséget használnak. A LED -et és a femtobuck -ot közvetlenül a 12 V -os tápellátás táplálja. A többi tápellátása a lecsukható bakon keresztül történik, 5 voltos feszültséggel.

6. lépés: Tervezés + Lézervágó

Tervezés + Lézervágó
Tervezés + Lézervágó
Tervezés + Lézervágó
Tervezés + Lézervágó

Az első tervezésnél tömör tölgyfát próbáltam használni (famegmunkálási órákat követek), de hamar kiderült, hogy ez nem ideális. A fa túl vastag, ami megnehezíti az alkatrészek illesztését. A 3 mm -es nyír multiplex lehetővé teszi a kódolók és kijelzők egyszerű rögzítését.

Találtam egy online lézervágó szolgáltatást, a snijlab.nl -t, amely elérhető a hobbisták számára Rotterdamban (Belgiumba, Hollandiába és Németországba szállítanak). Weboldalukon feltöltheti a rajzait, és azonnal megírják az árát. Az Autocadot használtam, ami a munkahelyemen van, de a szoftver nem igazán számít. Csak vektorrajznak kell lennie (Vectr, Illustrator, Inkscape…). A legtöbb üzlet színekkel határozza meg, hogy vágni vagy gravírozni szeretne.

Néhány dolog, amit szem előtt kell tartani:

- Max. a lézervágó méretei (keretet rajzoltam az alkatrészeim köré)

- Min. vágások közötti távolság

- Ügyeljen arra, hogy ne húzzon dupla vonalakat, a lézer extra passzt végez, ami többe kerül.

- Amikor PDF -be nyomtat, akkor győződjön meg róla, hogy 1: 1 arányban ábrázolja. Nem szeretné kicsinyíteni vagy papírra illeszteni.

7. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

Az órát egy fakeret köré építettem, a paneleket a helyükön tartják M3 csavarokkal és betétekkel a keretben. Ha valaha is 2 -es verziót építenék, a paneleket alumínium "L" profilokkal használnám. Nagyon nehéz volt pontosan fúrni a lyukakat a sárgaréz betétekhez. Nagyon sokáig tartott, csak elfogadható eredményre. Ez természetesen azt jelentené, hogy a lézervágás rajzát felül kell vizsgálni. Azt gondolom, hogy ha alumínium profilokkal és anyákkal és csavarokkal jobb eredményt ér el.

A fény jobb eloszlatása érdekében nyomópapírt ragasztottam a perforációk belső oldalára. Ez szép fényt ad a fénynek.

8. lépés: Ne álljon meg itt

Ne álljon meg itt
Ne álljon meg itt
Ne álljon meg itt
Ne álljon meg itt
Ne álljon meg itt
Ne álljon meg itt

A projekt egy ESP32 köré összpontosul, alig használtam. A hálószobám világítása jelenleg távirányítható a blynk segítségével. Ezek irányítása az órával csak egy kis lépés. Talán további kijelzőket szeretne, amelyek megmutatják a ház körüli hőmérsékletet? Vagy néhány helyi érzékelő (ezen a multiplexeren még vannak tartalék I2C kapcsolatok!). Esetleg állítsa be az időt/ébresztést egy alkalmazáson és bluetoothon keresztül?

Mondd el, mit változtattál, mit változtatnál, min kellene változtatnom…

Ajánlott: