Innehållsförteckning:

ESP32 Scrolling WordClock on LED Matrix: 5 Steps (with Pictures)
ESP32 Scrolling WordClock on LED Matrix: 5 Steps (with Pictures)

Video: ESP32 Scrolling WordClock on LED Matrix: 5 Steps (with Pictures)

Video: ESP32 Scrolling WordClock on LED Matrix: 5 Steps (with Pictures)
Video: 2 Retro Clocks with an ESP32 (Couldn't be simpler!) 2024, November
Anonim
Image
Image

I detta projekt skapar jag en Scrolling WordClock med en ESP32, LED Matrix och en cigarrlåda.

En WordClock är en klocka som stavar tiden snarare än att bara skriva ut den på skärmen eller ha händer som du kan läsa. Den här klockan kommer att berätta att klockan är 10 minuter över 3 på eftermiddagen eller kl. Jag programmerade det till och med för att använda Prevening (från Big Bang Theory) namnet på den tvetydiga tiden mellan eftermiddag och kväll. Börjar 16:00.

ESP32 är fantastisk, de är så roliga och så billiga. Om du älskar att programmera Arduino's kommer du verkligen att bli förvånad över vad en ESP32 kan göra för under $ 10. De använder Arduino IDE och är lätta att programmera. Jag kommer att visa hur man gör det i denna instruerbara.

Tillbehör

  • ESP32 - cirka $ 10 på Amazon
  • LED Matrix (max7219) (och ledningar) - $ 9 Amazon
  • Cigarrlåda
  • USB -strömkabel
  • 3D -skrivare som tillval för esp32 -stativ

Steg 1: Konfigurera din Arduino IDE för att stödja ESP32

Skaffa Arduino IDE:

  • Gå till https://www.arduino.cc/ i en webbläsare
  • Klicka på Programvara och sedan Nedladdningar för att få ARDUINO 1.8.12
Bild
Bild

Lägg till ESP32 -stöd till din Arduino IDE:

  • Starta Arduino IDE
  • Klicka på Arkiv -menyn och sedan på Inställningar.

En gång i "Preferenser" lägger du till tillverkarens support genom att lägga till följande rad i "Extra Board Manager"

Bild
Bild

dl.espressif.com/dl/package_esp32_index.js

Detta ger oss tillgång till att lägga till styrelsen till IDE

Gå till Verktygsmenyn och sedan Styrelser och gå till styrelsechefen

Bild
Bild

Sök sedan efter "ESP" och lägg till paketet med Expressif.

Bild
Bild

Slutligen vill vi gå tillbaka till menyn "Verktyg", sedan "Board" igen och rulla ner för att hitta din ESP32 -enhet.

Min är en "ESP32 Wrover Module"

Bild
Bild

Steg 2: Anslut LED -matrisen till ESP32

Bild
Bild

LED -matrisen består av fyra 8x8 block av lysdioder och använder ett MAX7219 -chip. Det ger oss 8x32 lysdioder i matrisen eller 256 lysdioder !!!.

Esp32 sitter på ett håll som jag skapade i TinkerCad. Min hållare håller stiften uppåt så att du kan fästa ledningar.

LED -matrisen ansluter till ESP32 med SPI (Serial Peripheral Interface).

Använd hona/hona och anslut stiften enligt följande:

  • ESP32 - 5v till VCC på Matrix
  • ESP32 - GND till GND på Matrix
  • ESP32 - PIN5 (G5) till CS på Matrix
  • ESP32 - PIN23 (G23) till Din på Matrix
  • ESP32 - Pin 18 (G18) till CLK på Matrix

Det är möjligt att använda andra stift eller om din ESP32 har en annan pinout.

Steg 3: Sätta ihop det

Sätta ihop det
Sätta ihop det

Därefter klippte jag cigarrlådan för att ge mig en plats att sätta LED -displayen på. Lådan är mjuk och jag kunde använda en rakhyvelkniv. Sedan slipade jag för att släta ut det.

Jag klippte också en hel i ryggen för nätsladden. Jag har precis använt USB -ström. Jag hade till och med kunnat lägga till ett USB -laddare i cigarrlådan om jag hade velat att det skulle vara trådlöst.

Steg 4: Arduino IDE- och INO -filen

Arduino IDE- och INO -filen
Arduino IDE- och INO -filen

Den bästa delen är koden. Men först måste vi lägga till ett bibliotek för att programmet ska kunna använda skärmen på ett enklare sätt. Jag lade till biblioteket MD_MAX72xx.

För att lägga till biblioteket, klicka på "Sketch" -menyn, sedan "Inkludera bibliotek" och "Hantera bibliotek" laddas detta och låter dig söka efter MD_MAX72xx bibliotek. Klicka bara på installera så har du det.

Hämta sedan min Arduino INO -fil:

github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino

Ladda ino -filen i din Arduino IDE, Anslut USB från ESP32 till din dator.

Klicka på "Sketch" och sedan Ladda upp

Vid denna tidpunkt kommer klockan inte att fungera, ESP32 kommer inte att visa någonting. Varför? vi måste lägga till din WIFI i koden eftersom WordClock ansluter till internet för att få tid. Det stämmer … nästa steg ->.

Steg 5: Koden

Vi kom till slut till min favoritdel. Programmet. Jag täcker det uppifrån och ner om du är intresserad. För att få programmet att fungera med ditt heminternet behöver du bara ändra dessa rader.

// Lägg till din nätverksinformation

const char *ssid = "xxxxxx";

const char *lösenord = "xxxxxx";

Programmet är ganska komplext, men väldigt roligt.

För att inaktivera "Prevening" ändrar du bara värdet till false:

const boolean FÖRVARA = sant; //Big Bang teorin.

För att inaktivera visning av digital tid efter rullning, ändra detta till falskt.

const boolean DISPLAY_DIGITAL = true; // Slå på visning av digital tid efter rullning.

Rulla tiden:

Jag får tiden från en tidsserver på internet med NTP (Network Time Protocol). Tiden hålls i en variabel som kallas timeinfo och vi får timmen och minuten från den

int timme = timeinfo.tm_hour; /// 0-23

int minut = timeinfo.tm_min; // 0-59

Kontrollera nästa AM eller PM

Det är AM om timme <12

Jag skapar en sträng som heter "theTime" och börjar med:

theTime = "Det är";

För att få numret som ord skapade jag en rad ord för nummer upp till 30

const char *numbers = {

"0", "En", "Två", "Tre", "Fyra", "Fem", "Sex", "Sju", "Åtta", "Nio", "Tio", "Elva", "Tolv "," Tretton "," Fjorton "," Kvartal "," Sexton "," Sjutton "," Arton "," Nitton "," Tjugo "," Tjugoen "," Tjugotvå "," Tjugotre "," Tjugofyra "," Tjugofem "," Tjugosju "," Tjugosju "," Tjugoåtta "," Tjugonio "," Halvfem "};

Så när klockan är 12:05 eller fem minuter över tolv är det verkligen till Arduino

nummer [5] minuter efter siffror [12]

För att avgöra om det är "Minuter Past" eller "Minutes To" tittar vi bara på protokollet. Om minuter är <31 är det "Minuter förbi" om minuter är större än 31 använder vi "Minuter till" men använder siffror [60 minuter] så 12:50 skulle vara 60-50 minuter eller siffror [10] vilket skulle ge oss 10 minuter till klockan 12 0.

Självklart finns det andra regler som den 15, 30, 45 använder vi inte minuter, det är bara halv eller kvart till, och om minuten är 0 är tiden bara "Tio" eller Noon.

Så för att sätta ihop det, lägger jag till alla föremål i String theTime och visar det sedan på LED -matrisen. Jag använder en massa If -påståenden. Jag borde nog ha använt fall men det var bara lättare att fortsätta lägga till dem.

För vårt exempel 12:05

theTime = "Det är"

om minut <31 använder "Minuter Past" annars är det "Minute To"

theTime + = numbers [5] + "Minutes Past" + number [12] + "O'Clock" // Obs! Notationen + = läggs till.

Därefter tittar vi på timmen för att avgöra om det är morgon, eftermiddag eller kväll.

theTime+= "På kvällen"

Den sista strängen som går till matrisen är:

"Det är fem minuter över tolv på kvällen"

Det här projektet var väldigt roligt att skriva. Om du gillar det, vänligen klicka på Hjärta och rösta på mig.

Rekommenderad: