Мазмуну:
- Жабдуулар
- 1 -кадам: Oled колдонуу
- 2 -кадам: Бир нече OLED
- 3 -кадам: Ротари Encoder менен жылдырылуучу менюну түзүү
- 4 -кадам: Мурунку кодду бирге коюу
- 5 -кадам: Fritzing + схемасы менен бажы PCB
- 6 -кадам: Дизайн + Ласеркуттер
- 7 -кадам: Ассамблея
- 8 -кадам: Бул жерде токтоп калбаңыз
Video: Олед ойготкуч: 8 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:38
Ардуино/ESP32 сааттары көп айланып жүрөт, бирок алар ошол сонун жана кычкыл OLEDдерди колдонушабы?
Мен бир аз убакыттан бери arduinos жана ESP32 менен эксперимент кылып жүрдүм, бирок мен аны эч качан даяр продуктка жеткире алган жокмун. Мен 4 1.3 дюймдук монохромдуу OLED менен ойготкуч саат жасадым. Саатта тумбочканын чырагы жана USB кубаттоочу порт да бар (эч кимдин керебетинин жанында запастык түйүндөрү жок). OLEDлер да бүдөмүк, бул менин сүйлөшкөн кызым коркуткандан кийин акыркы мүнөттө кошулган. Подругалар үнү жетиштүү караңгылашпаса, мен коддун версиясын бере алам, анда 3 дисплей белгилүү бир сааттардын ортосунда иштейт. Максаты "прототиптен" ары карап, оңой тейленүүчү саат жасоо болчу. Саатымды жасап жатканда, мен чечүүгө туура келген кээ бир кыйынчылыктарга туш болдум, ошондуктан мен бул үйрөткүч менен бөлүшүү керек деп ойлойм. Саатты кичинекей шаймандар менен жасаса болот, мага "жакпайт" жана кийинки кадам үчүн 10.000 €/$ CNC тегирмени "үйрөткүчтөрүмдү колдондум.
Бул үйрөтүлө турган (структуралаштырылбаган) айрым нерселер:
- Arduino/ESP32 менен I2C OLED дисплейин кантип колдонуу/зымдоо
- Бир arduino/ESP32 менен бир нече I2C объектилерин кантип колдонуу керек
- Ротари коддогучту колдонуп "жылдыра турган" менюну кантип жасоо керек (+ ESP32/arduino менен коддогучту кантип колдонуу керек)
- Фритзингди колдонуп жеке ПКБны кантип иштеп чыгуу жана заказ кылуу керек.
- Саат ошондой эле RTC (реалдуу убакыт сааты), жетектөөчү драйвер, чыңалуу модулун колдонот … Мен буларга кире албайм, анткени бул модулдар үчүн чынында көп маалымат бар.
Мен кесипкөй программист эмес экенимди белгилегим келет. Менин инструкторумдун максаты - мен жогоруда айткан пункттарды түшүндүрүү. Акыркы продуктум үчүн баарын кантип чогултканым эң таза жол эмес. Бул мага баарын көзөмөлдөөгө мүмкүнчүлүк берген жол.
Жабдуулар
Дүкөндөрдү сатып алууда мен сапаттын/документтин маанилүүлүгүн баага салыштырууга аракет кылам. Менин жабдыктарым А-бренддердин аралашмасы жана кытайдын арзаныраак бөлүктөрү. Эгер сапат маанилүү болсо, Mouser эң сонун жеткирүүчү, мен Banggood/Aliexpressтен арзаныраак бөлүктөргө заказ кылам.
- ESP32 тактасы, мен aduzzutтан Huzzah32 колдондум, бирок башка (арзан) варианттар көп. Мен Huzzah32ди тандадым, анткени ал абдан жакшы документтештирилген.
- 4 1.3 дюймдук I2C OLED дисплейлери (128x64, SH1106 драйвери менен), 0,96 дюймдары кеңири таралган, бирок бул долбоор үчүн мен 1.3 дюймду жактырам
- LED айдоо үчүн Sparkfun femtobuck айдоочусу
- RTC сааты, мен литий клеткасы бар бирөөнү колдондум
- Arduino nano
-Аял USB 2.0 порту (мен колдонгон: Stewart Connectorден SS-52200-002)
- Аялдын DC уячасы (мен колдондум: Switchcraftдан L722A)
- 12V 3A DC адаптери (Mean Wellдан GST36E12-P1J)
- Ыңгайлаштырылган ПХБ, милдеттүү эмес, бирок бул долбоорду бир топ компакттуу жана оңой тейлейт, эгерде анын бир бөлүгү өлүп калса + ишенимдүүлүгү көбүрөөк, анткени зымдар азыраак (jlcpcb.com)
- M3 бурамалар жана болттор
- М3 жезден салынган
- 12Vдан 5Vга чейин Pololu модулу (DF24V22F5)
- 3 ватт радиатор менен иштейт
- секирүүчү зымдар
- Коңгуроо
- I2C мультиплексор (adafruitтен TCA9548A)
- 2 Ротари коддоочу (Мен кээ бирлерин сынап көрдүм, баары эле менин кодум менен иштебейт. "DFrobot" догу бирөө иштейт, ошондой эле "DIYmore" догу тегерек ПКБ менен иштейт. Менин кодум баскыч үчүн иштебейт окшойт) KY-040 тибиндеги. Менин ойготкуч саат DIYmore менен иштейт, анткени алар панелге орнотууга абдан оңой (кошумча бурамалар/тешиктердин кереги жок).
- Аялдардын баш ассортименти (милдеттүү эмес)
- Рамка үчүн жыгач: 18mmx18mmx2400mm
- Издөө кагазы
Мен кээ бир шаймандарды (паяльник, 3 -колу, араа …) колдондум, бирок чынында экзотикалык эч нерсе жок.
1 -кадам: Oled колдонуу
OLEDди колдонуу үчүн китепкананы орнотушуңуз керек. Мен U8G2libди Оли Краустан колдоном, бул абдан түшүнүктүү жана ачык мисалдары бар маалымдама бар.
Тактаңызды туташтыруу үчүн (ESP же arduino) SDA жана SCL казыктарын табышыңыз керек. Бул казыктар I2C байланыш казыктары. Эгер таба албасаңыз, конкреттүү тактаңыздын "pinout" үчүн Google.
Мен кээ бир мисал кодун коштум. Код arduino үчүн да, ESP32 үчүн да иштейт, бирок ESP32 эс тутуму түгөнүп калуу ыктымалдуулугу аз. Мен буга чейин аракет кылган бардык оледдер 3.3v (ESP32) жана 5V менен иштейт.
2 -кадам: Бир нече OLED
Бул жерде менин долбоорум башка ойготкуч сааттардан айырмалана баштайт. Ардуино/ESPтин көпчүлүгүндө бир же эки I2C казыгы бар. Мындай түрү I2C бөлүктөрүн колдонууну чектейт. Эгерде менде I2C 4 сенсорлору бар болсо жана I2C дисплейде алардын көрсөткүчтөрүн көрсөтүүнү кааласамчы? Мультиплексорду киргизиңиз. Muliplexer 7 түрдүү I2C бөлүгүн чечүүгө мүмкүндүк берет. Бул менин ESP32ге I2C реалдуу убакыт саатын колдонууга жана I2Cди кайра колдонуу менен 4 дисплейде көрсөтүүгө мүмкүндүк берет (же андан көп, мени токтотууга жол бербе).
Мен ESP32 үчүн кээ бир мисал кодун коштум, бул жерден мен arduino уланта алаарына ишенбейм. Мисал дисплейлерди гана колдонот, бул I2C сенсорлору жана башка нерселер болушу мүмкүн. Принцип дайыма бирдей, сиз туура каналды "tcaselect (#);" менен чакырасыз; функциясы, анда сиз I2C объектиси үчүн керектүү болгон кодду аткарасыз.
3 -кадам: Ротари Encoder менен жылдырылуучу менюну түзүү
Биринчи кезекте, коддогучтарыңызды сынап көрүңүз. Мен коддогуч модулдарыңызды текшерүү үчүн кээ бир коддорду коштум. Берилиштерде айтылгандай: Мен кодду DF роботунун айлануучу коддогуч модулдары жана DIYmoreдун тегерек ПКБ менен модулу менен ийгиликтүү сынап көрдүм. Туура коддогучтар үчүн жогорудагы сүрөттөрдү караңыз.
Мен колдонгон китепкана бул:
Мен кошкон PDF менин саатыма колдонгон меню структурасына жардам берет деп үмүттөнөм.
Кодердин иштеши бул долбоордун мен үчүн эң кыйын бөлүгү болду. Ар кандай коддогучтар жана ESP32 менен дайыма эле шайкеш келе бербеген көптөгөн китепканалар бар. Бирок, мен ойлойм, (иштөөчү) ротационер - бул бир нерсе киргизгиңиз келсе, жарашыктуу чечим. Эгерде мен кнопкаларды гана колдонгон болсом, мага 1ден ашык керек болмок жана убакытты коюу көп басууну талап кылат.
4 -кадам: Мурунку кодду бирге коюу
Аталышы менин кылган иштеримди кыскача баяндайт. Мен жарым -жартылай аракет кылдым, анан баарын бириктирдим. Бирок эч нерсе оңой болбогондуктан, кээ бир нерселерди өзгөртүүгө туура келди. Сериялык байланыш жай процесс. Бул коддогучту туура окууга тоскоолдук кылат. Муну жеңүү үчүн, мен коддогучтун казыктарына үзгүлтүктөрдү коштум. Кодерди окуу коду, эгерде сиз коддогучту түртсөңүз же бурсаңыз, дароо чакырылат.
Менюнун кантип курулганын түшүнгөндөн кийин, өзгөчөлүктөрдү өзүңүз каалагандай кошуу же алып салуу абдан оңой экенин көрө аласыз. Балким, сиз учурдагы аба ырайын же убакытты интернеттен алып, көрсөтүүнү каалайсызбы?
Мен көптөгөн мындай ойлорду калтырдым, анткени мен баарынан мурда ишенимдүү убакыт-тынчтыкты кааладым. Автоматтык түрдө эч нерсе кылбаган адам. Мен күндүзгү үнөмдөө аймагында абдан так саат иштейм. Саат алмашкан сайын, мен ашыкча уктап калам. Телефонум саатты автоматтык түрдө алмаштырабы? Менин саатым болобу? Ооба, мен өзүм өзгөртпөсөм, саатым болбойт. Бирок, балким, саатыңызды ашканага салгыңыз келет? Ар кандай сценарий, эстутум өчкөнчө өзгөчөлүктөрдү кошуңуз!
5 -кадам: Fritzing + схемасы менен бажы PCB
Көңүл буруңуз: Adafruit huzzah32ди USB пин аркылуу иштете алсаңыз, микро USB кубаттуулукту бир убакта колдонбошуңуз керек экенин белгилейт. Менин ПКБым түшүүчү бак аркылуу иштейт, андан кийин USB пин аркылуу хуза иштейт. Ошентип, жүктөөдө дайыма тышкы электр кубатын өчүрүңүз/хузаны тактан алып салыңыз.
Мен аялзатынын баштарын ПХБда ширетүүнү чечтим, анткени анын бир бөлүгүн алмаштырууну же мисалга кошумча I2C сенсорун кошууну жеңилдетет. Бул ошондой эле программаларды жүктөө үчүн нанону же ESP32ди оңой алып салууга мүмкүндүк берет.
Мен Frizting файлын коштум, бул жерге роман тере алам, бирок мен мисал эң жакшы сүйлөйт деп ойлойм. Мен бүт орнотуунун схемасы менен баштадым. Фритзингдин урналарында көптөгөн бөлүктөрү бар болсо да, баары жок. Кээде интернеттен Fritzing бөлүгүн таба аласыз, кээде таба албайсыз. Мен таба албаган бөлүктөрдү жөн эле аялдын баш бөлүгү менен алмаштырдым. Эгер сиз аны оң бассаңыз, анда керектүү төөнөгүчтөрдүн башын түзөтүп, ага пинтутту дайындай аласыз. Мен муну таба албаган ар бир бөлүгүм менен жасадым. Дээрлик бардык модулдар 0.1ин (2.54мм) бирдей кадамды колдонушкандыктан, бул бөлүккө туура аралыкты берет.
Андан кийин сиз фритзинг колдонмосунун PCB көрүнүшүнө өтөсүз. ПКБ ордуна коюлат, эгер сиз аны бассаңыз, анын өлчөмүн коюп, бир же эки катмардуу ПХБны тандай аласыз. Меники 2 катмарды колдонот. Fritzing сиз схемалык түрдө жасаган байланыштарды сунуш кылат. Программанын autoroute варианты бар, бирок мен аны эч качан колдонбойм. Мен байланыштарды кол менен уюштурууну жакшы көрөм. ПХБ көрүнүшүндө сары туташуулар үстүңкү катмарда, апельсин астыңкы катмарда. Дагы, эгер сиз туташууну бассаңыз, анын касиеттерин тандай аласыз.
Чыныгы PCB жасоо үчүн, аны gerber файлы катары экспорттоо керек. Муну жасоодон мурун, "маршрут" өтмөгүнүн астында дизайн эрежелерин текшере аласыз. Эгерде баары текшерилсе, "ПХБ үчүн экспорттоону" чыкылдатыңыз. Көпчүлүк өндүрүүчүлөр gerber файлын сурашат, андыктан gerberге экспорттоону тандаңыз.
Мен ПКБны JLCPCBден заказ кылдым, мага алар дароо эле бааны айтышат. Албетте, башка көптөгөн варианттар бар.
Схема жөнүндө: 2 чыңалуу колдонулат. LED жана femtobuck түздөн -түз 12В менен камсыздалат. Калгандары 5 вольт менен түшүүчү бак аркылуу иштейт.
6 -кадам: Дизайн + Ласеркуттер
Биринчи дизайн үчүн мен катуу эменди колдонууга аракет кылдым (жыгаччылык боюнча сабактарды окуйм), бирок бул идеалдуу эмес экени бат эле билинди. Жыгач өтө коюу болгондуктан, тетиктериңизге туура келбейт. 3мм кайың мультиплекси кодерлерди жана дисплейлерди бекитүүнүн оңой жолдорун берет.
Мен Роттердамда жайгашкан хоббичилер үчүн жеткиликтүү snijlab.nl онлайн лазер кызматын таптым (алар Бельгия, Нидерландия жана Германияга жөнөтүшөт). Алардын веб -сайтында сиз чиймелериңизди жүктөй аласыз жана алар дароо сиздин бааңызды айтышат. Мен жумушта болгон Autocad колдондум, бирок программалык камсыздоонун мааниси жок. Бул жөн эле вектордук чийме болушу керек (Vectr, Illustrator, Inkscape …). Көпчүлүк дүкөндөр түстөрдү колдонуп, кесүүнү же оюп жазууну каалаарыңызды аныкташат.
Кээ бир нерселерди эстен чыгарбоо керек:
- Макс. лазердин өлчөмү (мен бөлүктөрүмдүн тегерегине чийме тарттым)
- Мин. кесүү ортосундагы аралык
- Кош сызыктарды тартпаганыңызды текшериңиз, лазер сизге кошумча чыгым алып келет жана сизге кымбатка түшөт.
- PDFке пландап жатканда, 1: 1 планын түзүңүз. Сиз масштабды төмөндөтүүнү же кагазга түшүүнү каалабайсыз.
7 -кадам: Ассамблея
Мен саатты жыгач алкактын тегерегинде курдум, панелдер M3 бурамалары жана рамкага салынган жерлери менен сакталат. Эгерде мен качандыр бир убакта 2 -версиясын курсам, панелдерди бекитүү үчүн алюминий "L" профилин колдонмокмун. Жез салынуучу тешиктерди так бургулоо абдан кыйын болду. Мага абдан көп убакыт кетти, болгону алгылыктуу жыйынтык. Бул албетте, лазердик сүрөттү кайра карап чыгуу керек дегенди билдирет. Мен ойлойм, алюминий профилдери жана жаңгактар менен болттор менен сиз жакшы натыйжага жетесиз.
Жарыкты жакшыраак таркатуу үчүн мен тешиктердин ичине калька чаптап койгом. Бул жарыкка жакшы жаркыроону берет.
8 -кадам: Бул жерде токтоп калбаңыз
Долбоор ESP32дин тегерегинде, мен аны дээрлик колдонгон жокмун. Менин уктоочу бөлмөмдүн жарыктары учурда blynkтин жардамы менен алыстан башкарылышы мүмкүн. Аларды саат менен көзөмөлдөө - бул кичинекей кадам. Балким, сиз үйүңүздүн айланасындагы температураны көрсөтүүчү кошумча дисплейлерди каалайсызбы? Же кээ бир жергиликтүү сенсорлор (бул мультиплексордо дагы эле запастык I2C туташуулары бар!). Балким, убакыт/ойготкучту колдонмо жана Bluetooth аркылуу коюңуз?
Мага эмнени өзгөрткөнүңдү, эмнени өзгөртөөрүңдү, мен эмнени өзгөртүшүм керектигин айт …
Сунушталууда:
LED Matrix Ойготкуч саат (MP3 ойноткучу менен): 6 кадам (Сүрөттөр менен)
LED Matrix Ойготкуч Сааты (MP3 ойноткучу бар): Бул Arduino негизделген ойготкуч сизде ойготкучтан күткөн нерселердин бардыгын камтыйт - сиз каалаган ыр менен ойготуу мүмкүнчүлүгү, тындыруу баскычы жана анын үч баскыч аркылуу башкарылышы оңой. Үч негизги блок бар - LED матрицасы, RTC модулу жана
Акылдуу ойготкуч саат: Raspberry Pi менен жасалган акылдуу ойготкуч саат: 10 кадам (сүрөттөр менен)
Smart Alarm Clock: Raspberry Pi менен жасалган акылдуу ойготкуч: Сиз качандыр бир убакта акылдуу саатты кааладыңыз беле? Андай болсо, бул сиз үчүн чечим! Мен Smart Alarm Clock жасадым, бул веб -сайтка ылайык ойготкуч убактысын өзгөртө турган саат. Ойготкуч өчкөндө, үн чыгат (зумбул) жана 2 жарык күйөт
Ардуино менен ойготкуч саат: 13 кадам (сүрөттөр менен)
Ойготкуч саат Arduino менен: Мен сен жөнүндө билбейм, бирок жөнөкөй будильник мени ойгото албайт. Ойгонуу үчүн мага жарык, үн жана ал тургай жумшак шапалак керек. Ойготкуч саат мага жакпайт, ошондуктан мен ойготууга татыктуу болууну чечтим
Ойготкуч саат менен DIY Smart Scale (Wi-Fi, ESP8266, Arduino IDE жана Adafruit.io менен): 10 кадам (Сүрөттөр менен)
Ойготкуч саат менен DIY Smart Scale (Wi-Fi, ESP8266, Arduino IDE жана Adafruit.io менен): Мурунку долбоорумда мен Wi-Fi менен акылдуу ванна таразасын иштеп чыккам. Ал колдонуучунун салмагын өлчөй алат, жергиликтүү түрдө көрсөтөт жана булутка жөнөтөт. Бул тууралуу кененирээк маалыматты төмөнкү шилтемеден ала аласыз: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Raspberry Pi Олед Сааты Аны угуп жана сезип туруңуз: 5 кадам (сүрөттөр менен)
Raspberry Pi Олед Сааты Уккула жана Сезгиле: Бул OLED дисплейинде убакытты көрсөтүүчү акылдуу саат, ошондой эле сиз ар кандай убакыт аралыгындагы убакытты уга аласыз, ал сокурлар үчүн толук жардам берет, ошондой эле жарыктын түсүн убакыттын өтүшү менен өзгөртөт күүгүмдөгү жарык кечинде жарык кызгылт сарыга жана т сыяктуу