Tartalomjegyzék:
- Kellékek
- 1. lépés: Oled használata
- 2. lépés: Több OLED
- 3. lépés: Görgethető menü létrehozása forgó kódolóval
- 4. lépés: Az előző kód összeillesztése
- 5. lépés: Egyéni NYÁK Fritzing + Schematic segítségével
- 6. lépés: Tervezés + Lézervágó
- 7. lépés: Összeszerelés
- 8. lépés: Ne álljon meg itt
Videó: Oled ébresztőóra: 8 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
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
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
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
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
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
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ó
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
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
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:
Twin Bell ébresztőóra a szóda dobozokból: 7 lépés (képekkel)
Twin Bell ébresztőóra a szóda dobozokból: Ez az utasítás bemutatja, hogyan lehet ikerharangos ébresztőórát készíteni a szóda kannákból. A projekt szóda kannákat használ, ahol a tintát eltávolították (Link: Tinta eltávolítása a szóda dobozokból). Annak érdekében, hogy ez az ébresztőóra teljesen működőképes legyen, egy DIY kvarcóra modult integráltak
A buborék ébresztőóra szórakoztatóvá teszi az ébredést (izh): 7 lépés (képekkel)
A buborék ébresztőóra szórakoztatóvá teszi az ébredést (izh): A zümmögő ébresztőóra felébredés szar. Én azok közé tartozom, akik nem szeretnek felkelni, mielőtt lemegy a nap (vagy már több órája kint van). Tehát mi lehet jobb módja annak, hogy az ébredés szórakoztatóbb legyen, mint egy buborékparti az ágyban! Egy arduino és egy
Groundhog Day ébresztőóra: 12 lépés (képekkel)
Groundhog Day ébresztőóra: A Groundhog Day ébresztőóra egy Panasonic RC-6025 flip órából áll, amelyet úgy módosítottak, hogy lejátssza a Groundhog Day című film hangját, amikor a riasztás megszólal. Az eszköz azért jött létre, mert a Groundhog Day (mind a nap és film) tartott specifikációt
Újrahasznosított ébresztőóra intelligens fény: 8 lépés (képekkel)
Újrahasznosított ébresztőóra intelligens fény: Ebben a projektben egy teljesen elromlott ébresztőórát újrahasznosítok. Az óralapot 12 LED váltja fel, amelyeket az óra peremén lévő LED -szalag világít meg. A 12 LED jelzi az időt, és a LED -szalag úgy van programozva, hogy riasztóként működjön
Intelligens ébresztőóra: Raspberry Pi -vel készült intelligens ébresztőóra: 10 lépés (képekkel)
Intelligens ébresztőóra: Raspberry Pi -vel készült intelligens ébresztőóra: Szeretett volna valaha okos órát? Ha igen, akkor ez a megoldás az Ön számára! Készítettem intelligens ébresztőórát, ez egy óra, amellyel megváltoztathatja az ébresztési időt a webhely szerint. Amikor a riasztó megszólal, hangjelzés (csipogó) és 2 lámpa hallatszik