Мазмуну:
- Жабдуулар
- 1 -кадам: ESP32ди колдоо үчүн Arduino IDE орнотуңуз
- 2 -кадам: LED матрицасын ESP32ге туташтырыңыз
- 3 -кадам: Аны бириктирүү
- 4 -кадам: Arduino IDE жана INO файлы
- 5 -кадам: Кодекс
Video: LED Matrix боюнча ESP32 Scrolling WordClock: 5 кадам (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:37
Бул долбоордо мен ESP32, LED Matrix жана сигара кутусу менен Scrolling WordClock түзөм.
WordClock - бул экранда басып чыгаруунун же окуй турган колуңуздун ордуна убакытты жазуучу саат. Бул саат сизге түшкү саат 3төн 10 мүнөт өткөнүн же түштө экенин айтып берет. Мен аны Prevenning (Big Bang Theory'ден) түштөн кийин жана кечиндеги белгисиз убакытка карата колдонууну программаладым. 16:00 башталат.
ESP32 укмуш, алар абдан кызыктуу жана ушунчалык арзан, эгер сиз Arduino программалоону жакшы көрсөңүз, анда ESP32 10 долларга чейин эмне кыла аларына таң каласыз. Алар Arduino IDE колдонушат жана аларды программалоо оңой. Мен муну кантип жасоону көрсөтмө берем.
Жабдуулар
- ESP32 - Amazon боюнча болжол менен $ 10
- LED Matrix (max7219) (жана зымдар) - $ 9 амазонка
- Сигара кутусу
- USB кубат кабели
- Esp32 стенд үчүн кошумча 3d принтер
1 -кадам: ESP32ди колдоо үчүн Arduino IDE орнотуңуз
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 Module"
2 -кадам: LED матрицасын ESP32ге туташтырыңыз
LED матрицасы 8x8 диоддуу төрт блоктон турат жана MAX7219 чипин колдонот. Бул бизге Matrix 8x32 LED же 256 LED берет !!!.
Esp32 мен TinkerCadда түзүлгөн кармагычта отурат. Менин кармагычым төөнөгүчтөрдү өйдө карагандыктан сиз зымдарды тиркей аласыз.
LED Matrix ESP32 менен SPI (Serial Perifheral Interface) аркылуу туташат.
Аял/Аял зымдарын колдонуңуз жана пиндерди төмөнкүдөй туташтырыңыз:
- ESP32 - 5V матрицада VCCге
- ESP32 - Matrix боюнча GNDден GNDге чейин
- ESP32 - PIN5 (G5) Matrix боюнча CSге
- ESP32 - PIN23 (G23) боюнча Matrix боюнча Din
- ESP32 - Pin 18 (G18) Матрицада CLKге
Башка казыктарды колдонсоңуз болот же сиздин 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ге жүктөңүз, USBди ESP32ден компьютериңизге туташтырыңыз.
"Эскизди" чыкылдатыңыз, анан Жүктөө
Бул учурда саат иштебейт, ESP32 эч нерсени көрсөтпөйт. Неге? WordClock убакытты алуу үчүн интернетке туташкандыктан, биз сиздин WIFIди кодго кошушубуз керек. Туура… кийинки кадам ->.
5 -кадам: Кодекс
Акыры сүйүктүү бөлүгүмө жеттим. Программа. Эгер сизди кызыктырса, мен аны жогорудан төмөн карай карайм, Программаны үй интернети менен иштөө үчүн бул линияларды өзгөртүү керек.
// Тармак маалыматыңызды кошуңуз
const char *ssid = "xxxxxx";
const char *password = "xxxxxx";
Программа татаал, бирок абдан кызыктуу.
"Алдын ала" өчүрүү үчүн жөн гана маанини false деп өзгөртүңүз:
const boolean PREVENING = true; // Чоң жарылуу теориясы.
Жылдыргандан кийин санарип убакытты көрсөтүүнү өчүрүү үчүн муну жалганга өзгөртүңүз.
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 билдирүүлөрүнүн тобун колдоном. Мен, балким, case колдонушум керек болчу, бирок аларды кошууну улантуу оңой эле.
Биздин мисал үчүн 12:05
theTime = "Бул"
if <31 мүнөт "Minutes Past" колдонулсун, болбосо анын "Minute To"
theTime + = сандар [5] + "Өткөн мүнөттөр" + сан [12] + "Саат" // Эскертүү: + = белгиси тиркелет.
Андан кийин анын эртең менен, түштөн кийин же кечинде экенин аныктоо үчүн саатты карайбыз.
theTime+= "Кечинде"
Матрицага бара турган акыркы сап:
"Кечки саат он экиден беш мүнөт өттү"
Бул долбоорду жазуу абдан кызыктуу болду. Эгер сизге жакса, Жүрөктү басып, мага добуш бериңиз.
Сунушталууда:
Shoestring боюнча программалык камсыздоо менен аныкталган радио: 9 кадам (сүрөттөр менен)
Shoestringде программалык камсыздоого ылайыкталган радио: Башында кристалл топтому болгон - биринчи практикалык радио уктуруучу. Бирок ага узун антенна керек болчу жана жергиликтүү станцияларды гана кабыл ала алган. Клапандар пайда болгондо (түтүктөр, биздин америкалык досторубуз үчүн) алар дагы көп нерселерди курууга мүмкүндүк беришти
Коронавирус менен күрөшүү: Кол жуу боюнча жөнөкөй таймер: 8 кадам (сүрөттөр менен)
Коронавирус менен күрөшүү: Жөнөкөй кол жуу таймери: Дүйнөдө учурдагы пандемия менен абал абдан коркунучтуу көрүнөт. Корона вирус бардык жерде болушу мүмкүн. Биз билгендей, кимдир бирөө вирусту эч кандай белгилери жок эле бир нече күн алып жүрүшү мүмкүн. Чынында коркунучтуу.Бирок, өтө коркпогула
Ротациялык Ок менен Объект Көз салуу Камерасынын Слайдери. 3D Printed & RoboClaw DC Motor Controller & Arduino боюнча курулган: 5 кадам (Сүрөттөр менен)
Ротациялык Ок менен Объект Көз салуу Камерасынын Слайдери. 3D Printed & RoboClaw DC Motor Controller & Arduino боюнча курулган: Бул долбоор менин DIY менен видео тартууга болгон кызыгуумду айкалыштыра баштагандан бери менин эң жакшы көргөн долбоорлорумдун бири болуп калды. Мен ар дайым карап турчумун жана камераны экранды көздөй жылдыруу үчүн кинолорго окшоштургум келет
ESP8266 боюнча MicroPython менен баштоо: 10 кадам (Сүрөттөр менен)
ESP8266дагы MicroPython менен иштөөнү баштоо: C/C ++ программалоо тили менен бирге Arduino IDEди колдонуунун жалпы методуна эмес, ESP8266га негизделген такталарды программалоонун башка жолун каалайсызбы? MicroPython.BUIL колдонулган такта
SONOFF менен керебеттин бар экендиги боюнча сенсор: 8 кадам (сүрөттөр менен)
SONOFF менен Bed Presence Sensor: Бул үйрөткүчкө кош келиңиз! Эгерде сиз эч качан тасмота менен иштебеген болсоңуз, анда алгач муну үйрөнүшүңүз керек, андан кийин аны сиз гана кура аласыз