Мазмұны:
- Жабдықтар
- 1 -қадам: Arduino IDE -ді ESP32 қолдауына орнатыңыз
- 2 -қадам: LED матрицасын ESP32 -ге қосыңыз
- 3 -қадам: оны біріктіру
- 4 -қадам: Arduino IDE және INO файлы
- 5 -қадам: Кодекс
Бейне: LED матрицасында ESP32 айналдыру WordClock: 5 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бұл жобада мен ESP32, LED Matrix және темекі қорабы бар айналдыратын WordClock жасаймын.
WordClock - бұл экранға басып шығаруға немесе оқуға болатын қолмен емес, уақытты көрсететін сағат. Бұл сағат сізге күндізгі сағат 3 -тен 10 минут өткенін немесе түске дейінгі уақытты көрсетеді. Мен оны тіпті түстен кешке дейінгі анық емес уақыт үшін Prevening (Үлкен жарылыс теориясынан) атауын қолдануға бағдарламаладым. 16:00 басталады.
ESP32 керемет, олар өте қызықты және арзан, егер сіз Arduino бағдарламалауды жақсы көретін болсаңыз, ESP32 10 долларға дейін не істей алатынына таң қаласыз. Олар Arduino IDE пайдаланады және бағдарламалауға оңай. Мен мұны қалай жасау керектігін осы нұсқаулықта көрсетемін.
Жабдықтар
- ESP32 - Amazon -да шамамен 10 доллар
- LED Matrix (max7219) (және сымдар) - $ 9 амазонка
- Сигар қорабы
- USB қуат кабелі
- Esp32 тірегі үшін қосымша 3d принтер
1 -қадам: Arduino IDE -ді ESP32 қолдауына орнатыңыз
Arduino IDE алыңыз:
- Браузерде https://www.arduino.cc/ өтіңіз.
- ARDUINO 1.8.12 нұсқасын алу үшін Бағдарламалық қамтамасыз етуді, содан кейін Жүктеулерді басыңыз
Arduino IDE -ге ESP32 қолдауын қосыңыз:
- Arduino IDE іске қосыңыз
- Файл мәзірін, содан кейін Параметрлер түймесін басыңыз.
«Параметрлерде» бір рет «Қосымша тақта менеджеріне» келесі жолды қосу арқылы өндіруші қолдауын қосыңыз.
dl.espressif.com/dl/package_esp32_index.js
Бұл бізге IDE -ге тақтаны қосуға мүмкіндік береді
Құралдар мәзіріне, содан кейін тақталарға өтіп, тақта менеджеріне өтіңіз
Келесіде «ESP» іздеңіз және Expressif пакетін қосыңыз.
Ақырында, біз «Құралдар» мәзіріне, содан кейін «Тақтаға» қайта оралғымыз келеді және ESP32 құрылғысын табу үшін төмен қарай жылжыңыз.
Менікі - «ESP32 Wrover модулі»
2 -қадам: LED матрицасын ESP32 -ге қосыңыз
Жарық диодты матрица 8x8 жарықдиодты төрт блоктан тұрады және MAX7219 чипін қолданады. Бұл бізге матрицада 8x32 жарықдиодты немесе 256 жарықдиодты береді !!!.
Esp32 мен TinkerCad -те жасаған тіректе орналасқан. Менің ұстағышым түйреуіштерді жоғары қаратып ұстайды, осылайша сіз сымдарды қоса аласыз.
Жарықдиодты матрица ESP32 -ге SPI (сериялық перифериялық интерфейс) көмегімен қосылады.
Әйел/Әйел сымдарын және қосқыш түйреуіштерді келесідей қолданыңыз:
- ESP32 - 5V матрицадағы VCC -ге дейін
- ESP32 - матрица бойынша GND - GND
- ESP32 - PIN матрицасында CS5 -ге PIN5 (G5)
- Matrix on ESP32 - PIN23 (G23)
- ESP32 - 18 (G18) түйреуішін CLR матрицасында
Басқа түйреуіштерді қолдануға болады немесе егер сіздің ESP32 -де басқа түйреуіш болса.
3 -қадам: оны біріктіру
Содан кейін мен LED дисплейді қоюға орын беру үшін темекі қорабын кесіп алдым. Қорап жұмсақ, мен ұстара пышағын қолдана алдым. Содан кейін мен тегістеу үшін тегістедім.
Мен сондай -ақ электр сымы үшін артқы бөлігін кесіп алдым. Мен USB қуатын қолдандым. Егер мен сымсыз болуын қаласам, темекі қорабының ішіне USB телефон зарядтау батареясын қосуға болар еді.
4 -қадам: Arduino IDE және INO файлы
Ең жақсы бөлігі - бұл код. Бірақ алдымен бағдарламаға дисплейді қарапайым түрде пайдалануға мүмкіндік беретін кітапхананы қосу керек. Мен MD_MAX72xx кітапханасын қостым.
Кітапхананы қосу үшін «Эскиз» мәзірін шертіңіз, содан кейін «Кітапхананы қосу» және «Кітапханаларды басқару» жүктеледі және MD_MAX72xx кітапханасын іздеуге мүмкіндік береді. Орнатуды нұқыңыз, сонда сізде бар.
Содан кейін менің Arduino INO файлын алыңыз:
github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino
Ino файлын Arduino IDE -ге жүктеңіз, ESP32 компьютерін USB -ге қосыңыз.
«Эскиз» түймесін, содан кейін жүктеуді нұқыңыз
Бұл кезде сағат жұмыс істемейді, ESP32 ештеңе көрсетпейді. Неге? сізге WIFI кодын қосу керек, себебі WordClock уақытты алу үшін интернетке қосылады. Дұрыс … келесі қадам ->.
5 -қадам: Кодекс
Ақыры мен сүйікті бөліміме жеттім. Бағдарлама. Егер мен сізді қызықтыратын болсаңыз, мен оны жоғарыдан төмен қарай қараймын, бағдарламаны үй интернетімен жұмыс жасау үшін сізге тек осы жолдарды өзгерту қажет.
// Желі туралы ақпаратты қосыңыз
const char *ssid = «xxxxxx»;
const char *password = «xxxxxx»;
Бағдарлама өте күрделі, бірақ өте қызықты.
«Алдын алуды» өшіру үшін мәнді жалғанға өзгертіңіз:
const логикалық PREVENING = ақиқат; // Үлкен жарылыс теориясы.
Айналғаннан кейін сандық уақытты көрсетуді өшіру үшін оны жалған етіп өзгертіңіз.
const логикалық DISPLAY_DIGITAL = ақиқат; // айналдырғаннан кейін сандық уақытты көрсетуді қосыңыз.
Уақытты айналдыру:
Мен уақытты NTP (Network Time Protocol) арқылы интернеттегі уақыт серверінен аламын. Уақыт timeinfo деп аталатын айнымалыда сақталады және біз одан сағат пен минут аламыз
int hour = timeinfo.tm_hour; /// 0-23
int минут = timeinfo.tm_min; // 0-59
Келесіде AM немесе PM тексеріңіз
Сағат AM <12
Мен «theTime» деп аталатын жолды құрамын және оны мынадан бастаймын:
theTime = «Бұл»;
Нөмірді сөз ретінде алу үшін мен 30 -ға дейінгі сандарға арналған сөздер жиынын құрдым
const char *сандары = {
«0», «Бір», «Екі», «Үш», «Төрт», «Бес», «Алты», «Жеті», «Сегіз», «Тоғыз», «Он», «Он бір», «Он екі» «,» Он үш «,» Он төрт «,» Ширек «,» Он алты «,» Он жеті «,» Он сегіз «,» Он тоғыз «,» Жиырма «,» Жиырма бір «,» Жиырма екі «,» Жиырма үш «,» Жиырма төрт «,» Жиырма бес «,» Жиырма алты «,» Жиырма жеті «,» Жиырма сегіз «,» Жиырма тоғыз «,» Жарты өткен «};
Сағат 12: 05 -те немесе он екіден бес минут өткенде, ол шынымен Arduino -ға келеді
сандар [5] сандар өткен минуттар [12]
Оның «Өткен минуттар» немесе «минуттар» екенін анықтау үшін біз тек минуттарға қараймыз. Егер минуттар <31 болса, бұл «Өткен минуттар», егер минуттар 31-ден үлкен болса, біз «Минуттарға» қолданамыз, бірақ сандарды [60 минут] қолданамыз, сондықтан 12:50 60-50 минут немесе сандар [10] болады бізге сағат 12 -ден 10 минутқа дейін уақыт беріңіз.
Әрине, 15, 30, 45 сияқты басқа да ережелер бар, біз олардың жартысын немесе төрттен бір минутты пайдаланбаймыз, ал егер минут 0 болса, уақыт «Сағат он» немесе Түс.
Біріктіру үшін мен барлық элементтерді String theTime -ге қосамын, содан кейін оны LED матрицасында көрсетеді. Мен If операторларының топтамасын қолданамын. Мүмкін, мен корпусты қолдануым керек еді, бірақ оларды қосуды жалғастыру оңай болды.
Біздің мысал үшін 12:05
theTime = «Бұл»
егер <31 минутта «Өткен минуттар» пайдаланылады, әйтпесе оның «Минутқа дейін»
theTime + = сандар [5] + «Өткен минуттар» + сан [12] + «Сағат» // Ескертпе: + = белгісі қосылады.
Содан кейін біз оның таңертең, түстен кейін немесе кеш екенін анықтау үшін сағатты қарастырамыз.
theTime+= «Кешке»
Матрицаға өтетін соңғы жол:
«Кешкі сағат он екіден бес минут өткенде»
Бұл жоба жазу өте қызықты болды. Егер сізге ұнаса, «Жүрек» түймесін басып, маған дауыс беріңіз.
Ұсынылған:
Жалғыз СКД желісін айналдыру: 4 қадам (суреттермен)
Жалғыз СКД желісін айналдыру: Сұйық кристалды кітапханада scrollDisplayLeft () және scrollDisplayRight () екі пайдалы функциясы бар. Бұл функциялар бүкіл дисплейді айналдырады. Яғни, олар 1602 СКД -да екі жолды да, 2004 жылғы СКД барлық төрт жолды айналдырады. Бізге жиі қажет нәрсе - бұл аби
Дәнекерлеуге арналған пинцетті конверсияға айналдыру: 3 қадам (суреттермен)
Дәнекерлеу үтігін пинцетті конверсияға айналдыру: Сәлем. Қазіргі уақытта көптеген электроника SMD компоненттерін қолданады, мұндай бөлшектерді арнайы жабдықсыз жөндеу қиын. Егер сізге SMD жарық диодты ауыстыру қажет болса да, жылу желдеткішсіз немесе дәнекерлеу қондырғысыз дәнекерлеу мен түсіру қиын болуы мүмкін
Кескінді штанга мүсініне айналдыру: 7 қадам (суреттермен)
Кескінді штангалық мүсінге айналдыру: Бұл жобада мен әуе шарының бейнесін штангалық мүсінге айналдырдым. Соңғы құрылым - фотода сақталған сандық ақпаратты 3D физикалық объектісіне айналдыру. Мен мүсінді елестетуді елестету үшін жасадым
Жобаның идеясын шындыққа айналдыру бойынша кеңестер: 6 қадам (суреттермен)
Жобаның идеясын шындыққа айналдыруға арналған кеңестер: Табысты жобаның ең маңызды бөлігі - бұл керемет идея, бірақ кейде бұл идея - бұл оңай бөлігі! Осыдан кейін кездейсоқ данышпандық жарқылдығын адамдар " оо " және " ах " ов
Тітіркендіргіш айналдыру дөңгелегі Элиминаторды басыңыз (тегіс айналдыру): 5 қадам
Тітіркендіргіш айналдыру дөңгелегі Элиминаторды басыңыз (тегіс айналдыру): сіз айналдыру дөңгелегінің дыбысына ашуланасыз ба? міне, бұл шиыршықтан сол шертуді алып тастауға сіздің мүмкіндігіңіз! Егер сіз тышқанды сындырсаңыз, бұл менің кінәм емес. Мен бұл режимді logitech тінтуірімен жасаймын. Мен оның басқа тінтуірде жұмыс істейтініне сенімді емеспін