Мазмұны:

LED матрицасында ESP32 айналдыру WordClock: 5 қадам (суреттермен)
LED матрицасында ESP32 айналдыру WordClock: 5 қадам (суреттермен)

Бейне: LED матрицасында ESP32 айналдыру WordClock: 5 қадам (суреттермен)

Бейне: LED матрицасында ESP32 айналдыру WordClock: 5 қадам (суреттермен)
Бейне: LED матрица на одежду 2024, Қараша
Anonim
Image
Image

Бұл жобада мен 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 файлы

Arduino IDE және INO файлы
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+= «Кешке»

Матрицаға өтетін соңғы жол:

«Кешкі сағат он екіден бес минут өткенде»

Бұл жоба жазу өте қызықты болды. Егер сізге ұнаса, «Жүрек» түймесін басып, маған дауыс беріңіз.

Ұсынылған: