Съдържание:
- Консумативи
- Стъпка 1: Използване на Oled
- Стъпка 2: Множество OLED
- Стъпка 3: Създаване на превъртащо се меню с въртящ се енкодер
- Стъпка 4: Събиране на предишния код
- Стъпка 5: Персонализирана печатна платка с Fritzing + схема
- Стъпка 6: Дизайн + Лазерно рязане
- Стъпка 7: Монтаж
- Стъпка 8: Не спирайте тук
Видео: Будилник Oled: 8 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Има много часовници arduino/ESP32, но използват ли тези хубави и ясни OLED?
Експериментирах с arduinos и ESP32 от известно време, но така и не стигнах до готов продукт. Направих будилник с 4 1,3 -инчови монохромни OLED. Часовникът разполага и с нощна лампа с възможност за димиране и USB порт за зареждане (никой няма резервни контакти до леглото си). OLED -тата също могат да се затъмняват, това беше добавено в последната минута, след като проектът ми беше заплашен от приятелката ми. Ако дим не е - в приятелки глас - достатъчно приглушен, мога също да предоставя версия на кода, при който 3 дисплея се захранват между определени часове. Целта беше да се направи лесен за обслужване часовник, с поглед отвъд "прототипа". Докато правех часовника си, срещнах някои трудности, които трябваше да реша, поради което смятам, че тази инструкция си заслужава да бъде споделена. Часовникът може да бъде направен с малки инструменти, аз не харесвам уроците „и за следващата стъпка използвах моите уроци от 10 000 €/$ CNC фреза“.
Някои неща, които ще бъдат обяснени в тази инструкция (in-structable-ception):
- Как да използвам/свързвам I2C OLED дисплей с arduino/ESP32
- Как да използвате множество I2C обекти с един arduino/ESP32
- Как да направите меню с възможност за превъртане с помощта на въртящ се енкодер (+ как да използвате кодер с ESP32/arduino)
- Как да проектирате и поръчате персонализирана печатна платка с помощта на фризиране.
- Часовникът също така използва RTC (часовник в реално време), светодиоден драйвер, модул за напрежение надолу … Всъщност няма да влизам в тях, защото за тези модули има наистина много информация, която е лесно достъпна.
Искам да отбележа, че не съм професионален програмист. Целта на моите инструкции е да обясня точките, които споменах по -горе. Начинът, по който събрах всичко за крайния си продукт, може би не е най -чистият начин. Това е начинът, който ми позволи да следя всичко това.
Консумативи
Когато пазарувам консумативи, винаги се опитвам да преценя важността на качеството/документацията спрямо цената. Моите доставки са смесица от марки А и по-евтини китайски части. Mouser е страхотен доставчик, ако качеството е важно, поръчвам от Banggood/Aliexpress за по -евтините части.
- ЕСП платка, използвах Huzzah32 от adafruit, но има много други (по -евтини) опции. Избрах Huzzah32, защото е много добре документиран.
- 4 1,3 -инчови I2C OLED дисплея (128x64, с драйвера SH1106), 0,96 -инчовите са по -често срещани, но за този проект предпочитам 1,3 -инчовите
- Sparkfun femtobuck драйвер за задвижване на светодиода
- RTC часовник, използвах такъв с литиева клетка
- Arduino nano
-Женски USB 2.0 порт (използвах: SS-52200-002 от Stewart Connector)
- Женски DC жак (използвах: L722A от Switchcraft)
- 12V 3A DC адаптер (GST36E12-P1J от Mean Well)
- Персонализирана печатна платка, по избор, но това прави проекта много по -компактен и лесно обслужван, ако част умре + по -голяма надеждност, защото по -малко проводници (jlcpcb.com)
- M3 винтове и болтове
- Месингови вложки M3
- Модул за понижаване 12V до 5V от Pololu (DF24V22F5)
- 3 вата, захранвани с радиатор
- Джъмперни проводници
- Звуков сигнал
- I2C мултиплексор (TCA9548A от adafruit)
- 2 въртящи се енкодера (опитах някои, не всички работят с моя код. Този от "DFrobot" работи, както и този от кръглата платка от "DIYmore". Моят код не изглежда да работи за бутона от типа KY-040. Моят будилник използва този от DIYmore, защото те са много лесни за монтаж на панел (не са необходими допълнителни винтове/отвори).
- Асортимент от женски заглавки (по избор)
- Дърво за рамката: 18mmx18mmx2400mm
- Проследяваща хартия
Използвах и някои инструменти (поялник, трета ръка, трион …), но нищо наистина екзотично.
Стъпка 1: Използване на Oled
За да използвате OLED, трябва да инсталирате библиотека. Използвам U8G2lib от Oli Kraus, той е много разбираем и има справочно ръководство с ясни примери.
За да свържете дъската си (ESP или arduino), трябва да намерите SDA и SCL щифтове. Тези щифтове са комуникационните щифтове I2C. Потърсете в Google „разпечатката“на вашата конкретна дъска, ако не можете да ги намерите.
Добавих примерен код. Кодът работи както за arduino, така и за ESP32, но е по -малко вероятно ESP32 да остане без памет. Всички oleds, които опитах досега, работят както с 3.3v (ESP32), така и с 5V.
Стъпка 2: Множество OLED
Тук проектът ми започва да се различава от много други будилници. Повечето arduinos/ESP имат само един или два I2C пина. Този вид ограничава използването на I2C части. Ами ако имам 4 I2C сензора и искам да показвам техните показания на I2C дисплей? Въведете мултиплексора. Мултиплексърът ви позволява да адресирате 7 различни I2C части. Това позволява на моя ESP32 да използва часовник в реално време I2C и да показва времето, използвайки отново I2C на 4 -те дисплея (или повече, не ме оставяйте да ви спра).
Добавих примерен код за ESP32, от тук нататък не съм сигурен, че arduino може да се справи. Примерът използва само дисплеи, може да бъде и други неща като I2C сензори и т.н. Принципът винаги е един и същ, извиквате десния канал с "tcaselect (#);" функция, след това изпълнявате кода е необходим за вашия I2C обект.
Стъпка 3: Създаване на превъртащо се меню с въртящ се енкодер
Първо, първо, тествайте кодерите си. Добавих код, за да тествам вашите модули на енкодера. Както е посочено в консумативите: Успешно съм тествал моя код само с модулите на въртящ се енкодер от DF робот и модула с кръглата печатна платка от DIYmore. Вижте снимките по -горе за правилните енкодери.
Библиотеката, която използвах, е тази:
Надявам се, че добавеният PDF файл помага за структурата на менюто, която съм използвал за часовника си.
Да направя енкодера работещ, беше най -трудната част за мен в този проект. Има много различни енкодери и много различни библиотеки, които не винаги са съвместими с ESP32. Но мисля, че (работещ) въртящ се енкодер е елегантно решение, ако искате да въведете нещо. Ако бях използвал само бутони, щях да имам нужда от повече от 1 и настройката на времето ще отнеме много натискания.
Стъпка 4: Събиране на предишния код
Заглавието обобщава това, което направих. Опитах част отчасти и след това събрах всичко. Но тъй като нищо не е лесно, трябваше да променя някои неща. Серийната комуникация е бавен процес. Това пречи на правилното четене на енкодера. За да преодолея това, добавих прекъсвания към щифтовете на енкодера. След това кодът за четене на енкодера се извиква незабавно, ако натиснете или завъртите енкодера.
След като разберете как са изградени менютата, ще откриете, че е много лесно да добавяте или премахвате функции по ваш вкус. Може би бихте искали да изтеглите текущото време или време от интернет и да ги покажете?
Изоставих много такива идеи, защото исках преди всичко надежден мир. Този, който не прави нищо автоматично. Работя много странни часове в лятна зона. Всеки път, когато се сменя часът, аз съм нервен да спя. Дали телефонът ми автоматично ще промени часа? Ще ми гледа ли часовникът? Е, часовникът ми няма, освен ако сам не го сменя. Но може би искате да поставите часовника си в кухнята? Различен сценарий, добавете функции до изчерпване на паметта!
Стъпка 5: Персонализирана печатна платка с Fritzing + схема
Точка на внимание: Adafruit посочва, че докато можете да захранвате huzzah32 чрез USB щифт, трябва да внимавате да не използвате едновременно микро USB захранващия вход. Моята печатна платка се захранва от понижаващия долар, който след това захранва хузата чрез USB щифта. Така че винаги изключвайте външното захранване/премахвайте хуза от дъската, когато качвате.
Реших да запоя женски заглавки на печатната платка, защото това улеснява смяната на част или добавянето например на допълнителен I2C сензор. Това също ми позволява лесно да премахна nano или ESP32, за да заредя програмите.
Добавих файла Frizting, мога да напиша роман тук, но мисля, че примерът говори най -добре. Започнах със схемата на цялата настройка. Докато Fritzing има много части в контейнерите, не всичко е там. Понякога можете да намерите частта Fritzing в интернет, понякога не можете. Частите, които не можах да намеря, просто замених с женска част за заглавието. Ако щракнете с десния бутон върху него, можете да редактирате заглавката до желаното от вас количество щифтове и да й присвоите разпечатка. Направих това с всяка част, която не можах да намеря. Тъй като почти всички модули използват една и съща стъпка от 0,14 инча (2,54 мм), това ще ви даде правилното разстояние за частта.
След това превключвате към изгледа за печатни платки на приложението за фриттинг. Ще бъде поставена печатна платка, ако щракнете върху нея, можете да зададете нейния размер и да изберете еднослойна или двуслойна печатна платка. Моят използва 2 слоя. Fritzing ще предложи връзките, които сте направили в схематичния изглед. Програмата има опция за автоматично насочване, но никога не я използвам. Обичам ръчно да организирам връзките си. В изгледа на печатни платки жълтите връзки са в горния слой, оранжевите са в долния слой. Отново, ако щракнете върху връзката, можете да изберете нейните свойства.
За да направите действителната печатна платка, трябва да я експортирате като гербер файл. Преди да направите това, в раздела "маршрутизиране" можете да проверите правилата за проектиране. Ако всичко се провери, можете да кликнете върху "експортиране за печатни платки". Повечето производители ще поискат гербер файл, така че изберете експортиране в гербер.
Поръчах моята печатна платка от JLCPCB, харесва ми, че веднага ви цитират цена. Разбира се, има много други опции.
За схемата: използват се 2 напрежения. LED и femtobuck се захранват директно от 12V захранване. Останалата част се захранва чрез понижаваща се балка с 5 волта.
Стъпка 6: Дизайн + Лазерно рязане
За първия си дизайн се опитах да използвам масивен дъб (следвам класове по дървообработване), но бързо стана ясно, че това не е идеално. Дървесината е твърде дебела, което затруднява поставянето на частите ви. 3 мм брезов мултиплекс позволява по -лесни начини за закрепване на енкодерите и дисплеите.
Намерих онлайн услуга за лазерно изрязване, snijlab.nl, достъпна за любители, намиращи се в Ротердам (изпращат се до Белгия, Холандия и Германия). На уебсайта им можете да качите вашите рисунки и те веднага цитират цената ви. Използвах Autocad, който имам на работа, но софтуерът няма особено значение. Просто трябва да бъде векторна рисунка (Vectr, Illustrator, Inkscape …). Повечето магазини използват цветове, за да определят дали искате да изрежете или гравирате.
Някои неща, които трябва да имате предвид:
- Макс. размери на лазерния нож (нарисувах рамка около частите си)
- Мин. разстояние между разфасовките
- Уверете се, че не чертаете никакви двойни линии, лазерът ще направи допълнителен пас, което ще ви струва повече.
- Когато рисувате в PDF, не забравяйте да нанесете 1: 1. Не искате да намалите мащаба или да го поставите на хартия.
Стъпка 7: Монтаж
Изградих часовника около дървена рамка, панелите се държат на място с винтове М3 и вложки в рамката. Ако някога построя версия 2, бих използвал алуминиеви „L“профили, за да прикрепя панелите. Беше много трудно точно да се пробият отворите за месинговите вложки. Отне ми много време, само за приемлив резултат. Това би означавало, разбира се, че чертежът на лазерната резка трябва да бъде ревизиран. Мисля, че с алуминиеви профили и само гайки и болтове ще получите по -добър резултат.
За да разсея по -добре светлината, залепих проследяваща хартия от вътрешната страна на перфорациите. Това придава на светлината приятен блясък.
Стъпка 8: Не спирайте тук
Проектът се фокусира върху ESP32, едва го използвах. Осветлението на спалнята ми в момента може да се управлява дистанционно с помощта на blynk. Управлението им с часовника е само малка крачка напред. Може би искате някои допълнителни дисплеи, които да ви показват температурата около дома ви? Или някои локални сензори (все още има резервни I2C връзки на този мултиплексор!). Може би задайте часа/алармата чрез приложение и bluetooth?
Кажете ми какво сте променили, какво бихте променили, какво трябва да променя аз …
Препоръчано:
Будилник с две звънчета от консерви за сода: 7 стъпки (със снимки)
Будилник с двойна камбана от консерви за сода: Тази инструкция ви показва как да направите аларма с две камбани от сода. За да стане този будилник напълно функционален, беше интегриран модул за кварцов часовник „направи си сам“
Буферният будилник прави събуждането забавно (ish): 7 стъпки (със снимки)
Буферният будилник прави събуждането забавно (иш): Събуждането до бръмчене на будилника е гадно. Аз съм от хората, които не обичат да се събуждат преди слънцето да е излязло (или е излязло много часове). И така, какъв по -добър начин да направите събуждането забавно от това да правите парти с балончета в леглото! Използване на arduino и
Будилник за деня на Groundhog: 12 стъпки (със снимки)
Будилник за деня на бабака: Будилникът за деня на бабака се състои от флип часовник на Panasonic RC-6025, модифициран да възпроизвежда звука от филма Ден на бабака, когато алармата изгасне. и филм) притежава спецификации
Нощен будилник с будилник MP3: 6 стъпки (със снимки)
Нощен алармен будилник с букви за MP3: За този проект исках да направя удобен и напълно функционален часовник за нощна аларма. Моите лични предпоставки за нощен будилник са: Четене при всяка светлина, без да заслепява през нощта MP3 мелодии за аларма Привличане
Интелигентен будилник: интелигентен будилник, направен с Raspberry Pi: 10 стъпки (със снимки)
Интелигентен будилник: интелигентен будилник, направен с Raspberry Pi: Искали ли сте някога интелигентен часовник? Ако е така, това е решението за вас! Направих Smart Alarm Clock, това е часовник, който можете да промените часа на алармата според уебсайта. Когато алармата изгасне, ще се чуе звук (зумер) и 2 светлини ще