Բովանդակություն:

ESP32 Ոլորելով WordClock- ը LED մատրիցի վրա. 5 քայլ (նկարներով)
ESP32 Ոլորելով WordClock- ը LED մատրիցի վրա. 5 քայլ (նկարներով)

Video: ESP32 Ոլորելով WordClock- ը LED մատրիցի վրա. 5 քայլ (նկարներով)

Video: ESP32 Ոլորելով WordClock- ը LED մատրիցի վրա. 5 քայլ (նկարներով)
Video: How to setup and use ESP32 Cam with Micro USB WiFi Camera 2024, Նոյեմբեր
Anonim
Image
Image

Այս նախագծում ես ստեղծում եմ ոլորող WordClock ՝ ESP32, LED մատրիցով և սիգարի տուփով:

WordClock- ը ժամացույց է, որը տալիս է ժամանակը, այլ ոչ թե պարզապես տպում այն էկրանին կամ ձեռքեր ունեք, որոնք կարող եք կարդալ: Այս ժամացույցը ձեզ կասի, որ կեսօրվա 3 -ից 10 րոպե է կամ կեսօր: Ես նույնիսկ ծրագրեցի, որ այն օգտագործի Prevening (Մեծ պայթյունի տեսությունից) անունը ՝ կեսօրից երեկո ընկած ժամանակահատվածի երկիմաստ ժամանակահատվածի համար: Սկիզբը ՝ 16: 00 -ին:

ESP32- ը հիանալի է, դրանք այնքան զվարճալի են և այնքան էժան: Եթե դուք սիրում եք Arduino- ի ծրագրավորումը, իսկապես կզարմանաք, թե ինչ կարող է անել ESP32- ը 10 դոլարից ցածր գնով: Նրանք օգտագործում են Arduino IDE- ն և հեշտ է ծրագրավորել: Ես ցույց կտամ, թե ինչպես դա անել, այս խրատականում:

Պարագաներ

  • ESP32 - մոտ $ 10 Amazon- ում
  • LED մատրիցա (max7219) (և լարեր) - $ 9 ամազոն
  • Cխախոտի տուփ
  • USB հոսանքի մալուխ
  • Լրացուցիչ 3d տպիչ esp32 տակդիրի համար

Քայլ 1. Կարգավորեք ձեր Arduino IDE- ն ՝ ESP32- ին աջակցելու համար

Ստացեք Arduino IDE:

  • Բրաուզերում գնացեք
  • Կտտացրեք Softwareրագրային ապահովում, այնուհետև Ներբեռնումներ ՝ ARDUINO 1.8.12 ստանալու համար
Պատկեր
Պատկեր

Ավելացրեք ESP32 աջակցություն ձեր Arduino IDE- ին.

  • Սկսեք Arduino IDE- ն
  • Կտտացրեք Ֆայլի ընտրացանկին, այնուհետև Նախապատվություններ:

Մի անգամ «Նախապատվություններ» բաժնում ավելացրեք արտադրողի աջակցությունը ՝ ավելացնելով հետևյալ տողը «Լրացուցիչ խորհրդի կառավարիչին»

Պատկեր
Պատկեր

dl.espressif.com/dl/package_esp32_index.js

Սա մեզ թույլ կտա տախտակը IDE- ին ավելացնել

Գնացեք Գործիքների ցանկ, այնուհետև ՝ Տախտակներ և գնացեք տախտակի կառավարիչ

Պատկեր
Պատկեր

Հաջորդը փնտրեք «ESP» և փաթեթը ավելացրեք Expressif- ով:

Պատկեր
Պատկեր

Վերջապես, մենք ցանկանում ենք վերադառնալ «Գործիքներ» ընտրացանկին, այնուհետև կրկին «Տախտակ» և ոլորել ներքև ՝ ձեր ESP32 սարքը գտնելու համար:

Իմը «ESP32 Wrover մոդուլ» է

Պատկեր
Պատկեր

Քայլ 2. Միացրեք LED մատրիցը ESP32- ին

Պատկեր
Պատկեր

LED մատրիցը բաղկացած է չորս LED- ների 8x8 բլոկից և օգտագործում է MAX7219 չիպ: Դա մեզ տալիս է 8x32 լուսադիոդներ Matrix- ում կամ 256 LED !!!:

The esp32- ը նստած է TinkerCad- ում իմ ստեղծած պահոցում: Իմ բռնիչը պահում է քորոցները դեպի վեր, որպեսզի կարողանաք լարեր ամրացնել:

LED մատրիցը միանում է ESP32- ին ՝ օգտագործելով SPI (սերիական ծայրամասային միջերես):

Օգտագործեք իգական/իգական լարերը և միացրեք կապում հետևյալ կերպ.

  • ESP32 - 5v դեպի VCC Matrix- ում
  • ESP32 - GND- ից GND մատրիցով
  • ESP32 - PIN5 (G5) CS- ին Matrix- ում
  • ESP32 - PIN23 (G23) դեպի Din մատրիցով
  • ESP32 - կապում 18 (G18) CLK- ին Matrix- ում

Հնարավոր է օգտագործել այլ կապում կամ եթե ձեր 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- ում, Միացրեք USB- ը ESP32- ից ձեր համակարգչին:

Կտտացրեք «Էսքիզ», այնուհետև Վերբեռնեք

Այս պահին ժամացույցը չի աշխատի, ESP32- ը ոչինչ չի ցուցադրի: Ինչո՞ւ: մենք պետք է ձեր WIFI- ն ավելացնենք ծածկագրին, քանի որ WordClock- ը միանում է ինտերնետին ՝ ժամանակ ստանալու համար: Rightիշտ է… հաջորդ քայլը ->:

Քայլ 5: Կոդ

Վերջապես հասանք իմ ամենասիրելի հատվածին: Ծրագիրը: Եթե ձեզ հետաքրքրում է, ես այն կներկայացնեմ վերևից ներքև: Որպեսզի ծրագիրը աշխատի ձեր տան ինտերնետով, պարզապես անհրաժեշտ է փոխել այս տողերը:

// Ավելացրեք ձեր ցանցի տվյալները

const char *ssid = "xxxxxx";

const char *գաղտնաբառ = "xxxxxx";

Programրագիրը մի փոքր բարդ է, բայց շատ զվարճալի:

«Կանխարգելումը» անջատելու համար պարզապես արժեքը փոխեք կեղծի.

const boolean PREVENING = ճշմարիտ; // Մեծ պայթյունի տեսություն:

Պտտվելուց հետո թվային ժամանակը ցուցադրելն անջատելու համար փոխեք այն կեղծ:

const բուլյան DISPLAY_DIGITAL = ճշմարիտ; // միացնել ոլորելուց հետո թվային ժամանակի ցուցադրումը:

Scամանակի ոլորում

Ես ժամանակ եմ ստանում ինտերնետում գործող ժամանակի սերվերից `օգտագործելով NTP (Timeանցի ժամանակի արձանագրություն): Ամանակը պահվում է timeinfo կոչվող փոփոխականի մեջ, և մենք դրանից ստանում ենք ժամը և րոպեն:

int ժամ = timeinfo.tm_hour; /// 0-23

int րոպե = timeinfo.tm_min; // 0-59

Հաջորդը ստուգեք AM կամ PM

Դա AM է, եթե ժամ <12

Ես ստեղծում եմ «TheTime» կոչվող տող և սկսում այն հետևյալով

theTime = "Դա է";

Թիվը որպես բառեր ստանալու համար ես ստեղծեցի բառերի զանգված մինչև 30 թվերի համար:

const char *թվեր = {

«0», «Մեկ», «Երկու», «երեք», «չորս», «հինգ», «վեց», «յոթ», «ութ», «ինը», «տասը», «տասնմեկ», «տասներկու »,« Տասներեք »,« Տասնչորս »,« Քառորդ »,« Տասնվեց »,« Տասնյոթ »,« Տասնութ »,« Տասնինը »,« Քսան »,« Քսանմեկ »,« Քսաներկու »,« Քսան երեք "," Քսանչորս "," քսանհինգ "," քսան վեց "," քսանյոթ "," քսան ութ "," քսան ինը "," կես անցյալ "};

Այսպիսով, երբ դրա ժամը 12:05 կամ տասներկուսն անցնում է հինգ րոպեն, դա իսկապես Արդուինոյին է

թվեր [5] րոպե թվերից [12]

Որոշելու համար, թե արդյոք այն «րոպեներն անցել են» կամ «րոպեներ դեպի», մենք պարզապես նայում ենք րոպեներին: Եթե րոպեները <31 են, դա «Անցյալ րոպե» է, եթե րոպեները 31-ից մեծ են, մենք օգտագործում ենք «Minutes To»-ն, բայց օգտագործում ենք թվեր [60 րոպե], այնպես որ 12:50- ը կլինի 60-50 րոպե կամ թվեր [10], որոնք տվեք մեզ 10 րոպեից մինչև ժամը 12 -ը:

Իհարկե, կան նաև այլ կանոններ, ինչպես օրինակ ՝ 15, 30, 45 -ում, մենք չենք օգտագործում րոպեները դրա կես կամ քառորդի համար, և եթե րոպեն 0 է, ժամանակը պարզապես «Տասը ժամ» է կամ կեսօր:

Այսպիսով, միասին հավաքելու համար ես բոլոր տարրերը կցում եմ String theTime- ին, այնուհետև ցուցադրում այն LED մատրիցով: Ես օգտագործում եմ մի փունջ If հայտարարություններ: Հավանաբար, ես պետք է օգտագործեի գործը, բայց դրանք ավելացնելն ավելի հեշտ էր:

Մեր օրինակի համար 12:05

theTime = "Դա է"

եթե րոպե <31 օգտագործումը «Րոպեներ անցած է» հակառակ դեպքում դրա «Րոպե դեպի»

theTime + = թվեր [5] + «Րոպեներ անց» + համար [12] + «'ամացույց» // Նշում. Նշումը + = կցվում է:

Հաջորդը մենք նայում ենք ժամին `որոշելու` առավոտ է, կեսօր, թե երեկո:

theTime+= "Երեկոյան"

Մատրիցային անցնող վերջնական տողը հետևյալն է.

«Երեկոյան ժամը տասներկուսից հինգ րոպե է անցել»

Այս նախագիծը գրելը շատ զվարճալի էր: Եթե ձեզ դուր եկավ, խնդրում ենք սեղմել «Սիրտը և քվեարկիր ինձ համար»:

Խորհուրդ ենք տալիս: