Spisu treści:

ESP32 Przewijanie WordClock na matrycy LED: 5 kroków (ze zdjęciami)
ESP32 Przewijanie WordClock na matrycy LED: 5 kroków (ze zdjęciami)

Wideo: ESP32 Przewijanie WordClock na matrycy LED: 5 kroków (ze zdjęciami)

Wideo: ESP32 Przewijanie WordClock na matrycy LED: 5 kroków (ze zdjęciami)
Wideo: TTGO T-Display ( ESP32 ) - Internet Weather Station and Clock (tutorial) 2024, Listopad
Anonim
Image
Image

W tym projekcie tworzę Scrolling WordClock z ESP32, matrycą LED i pudełkiem na cygara.

WordClock to zegar, który wskazuje godzinę, a nie tylko drukuje go na ekranie lub ma wskazówki, które można odczytać. Ten zegar poinformuje Cię, że jest 10 minut po trzeciej po południu lub w południe. Zaprogramowałem go nawet tak, aby używał nazwy Prevening (z teorii Wielkiego Wybuchu) dla niejednoznacznego okresu między popołudniem a wieczorem. Rozpoczyna się o 16:00.

ESP32 jest niesamowity, jest tak zabawny i tak niedrogi. Jeśli kochasz programowanie Arduino, naprawdę będziesz zaskoczony tym, co ESP32 może zrobić za mniej niż 10 USD. Wykorzystują środowisko Arduino IDE i są łatwe do zaprogramowania. Pokażę, jak to zrobić w tej instrukcji.

Kieszonkowe dzieci

  • ESP32 - około 10 USD na amazon
  • Matryca LED (max7219) (i przewody) - 9 USD amazon
  • Paczka papierosów
  • Kabel zasilający USB
  • Opcjonalna drukarka 3d do stojaka esp32

Krok 1: Skonfiguruj swoje Arduino IDE do obsługi ESP32

Pobierz IDE Arduino:

  • W przeglądarce przejdź do
  • Kliknij Oprogramowanie, a następnie Pobieranie, aby uzyskać ARDUINO 1.8.12
Obraz
Obraz

Dodaj obsługę ESP32 do swojego Arduino IDE:

  • Uruchom Arduino IDE
  • Kliknij menu Plik, a następnie Preferencje.

Będąc w „Preferencjach” dodaj obsługę producenta, dodając następującą linię do „Additional Board Manager”

Obraz
Obraz

dl.espressif.com/dl/package_esp32_index.js

To da nam dostęp do dodania tablicy do IDE

Przejdź do menu Narzędzia, a następnie Tablice i przejdź do menedżera tablicy

Obraz
Obraz

Następnie wyszukaj „ESP” i dodaj pakiet przez Expressif.

Obraz
Obraz

Na koniec chcemy wrócić do menu „Narzędzia”, a następnie ponownie „Płyta” i przewiń w dół, aby znaleźć swoje urządzenie ESP32.

Mój jest "Modułem Wrover ESP32"

Obraz
Obraz

Krok 2: Podłącz matrycę LED do ESP32

Obraz
Obraz

Matryca LED składa się z czterech bloków 8x8 diod LED i wykorzystuje układ MAX7219. To daje nam 8x32 diody w matrycy lub 256 diody!!!.

Esp32 siedzi w ładowni, którą stworzyłem w TinkerCad. Mój uchwyt trzyma szpilki skierowane do góry, dzięki czemu można przymocować przewody.

Matryca LED łączy się z ESP32 za pomocą SPI (Serial Peripheral Interface).

Użyj przewodów żeńskich / żeńskich i podłącz szpilki w następujący sposób:

  • ESP32 - 5v do VCC na Matrix
  • ESP32 - GND do GND na Matrix
  • ESP32-PIN5 (G5) do CS na Matrix
  • ESP32-PIN23 (G23) do Din na matrycy
  • ESP32 - Pin 18 (G18) do CLK na matrycy

Możliwe jest użycie innych pinów lub jeśli twój ESP32 ma inny pinout.

Krok 3: Łączenie w całość

Łączenie w całość
Łączenie w całość

Następnie wyciąłem pudełko z cygarami, aby dać mi miejsce na umieszczenie wyświetlacza LED. Pudełko jest miękkie i udało mi się użyć noża do golenia. Następnie szlifowałem, aby go wygładzić.

Wyciąłem też z tyłu całość na przewód zasilający. Właśnie użyłem zasilania USB. Mógłbym nawet dodać baterię do ładowarki USB do telefonu w pudełku z cygarami, gdybym chciał, aby była bezprzewodowa.

Krok 4: Arduino IDE i plik INO

Arduino IDE i plik INO
Arduino IDE i plik INO

Najlepszą częścią jest kod. Ale najpierw musimy dodać bibliotekę, aby umożliwić programowi korzystanie z wyświetlacza w prostszy sposób. Dodałem bibliotekę MD_MAX72xx.

Aby dodać bibliotekę, kliknij menu "Szkic", a następnie "Dołącz bibliotekę" i "Zarządzaj bibliotekami", które zostaną załadowane i umożliwią wyszukanie biblioteki MD_MAX72xx. Po prostu kliknij zainstaluj i masz to.

Następnie pobierz mój plik Arduino INO:

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

Załaduj plik ino do swojego Arduino IDE, Podłącz USB z ESP32 do komputera.

Kliknij „Szkic”, a następnie Prześlij

W tym momencie zegar nie będzie działał, ESP32 nic nie wyświetli. Czemu? musimy dodać twoją sieć WIFI do kodu, ponieważ WordClock łączy się z Internetem, aby uzyskać czas. Zgadza się… następny krok ->.

Krok 5: Kodeks

W końcu dotarliśmy do mojej ulubionej części. Program. Jeśli jesteś zainteresowany, omówię to od góry do dołu. Aby program działał z twoim domowym internetem, wystarczy zmienić te linie.

// Dodaj informacje o swojej sieci

const char *ssid = "xxxxxx";

const char *hasło = "xxxxxx";

Program jest dość złożony, ale bardzo zabawny.

Aby wyłączyć „Zapobieganie”, po prostu zmień wartość na false:

const boolean ZAPOBIEGANIE=prawda; //Teoria wielkiego podrywu.

Aby wyłączyć wyświetlanie czasu cyfrowego po przewinięciu, zmień to na false.

const wartość logiczna DISPLAY_DIGITAL=prawda; //włącz wyświetlanie czasu cyfrowego po przewinięciu.

Przewijanie czasu:

Otrzymuję czas z serwera czasu w Internecie za pomocą NTP (Network Time Protocol). Czas jest przechowywany w zmiennej o nazwie timeinfo i otrzymujemy z niej godzinę i minutę

int godzina = czasinfo.tm_godzina; ///0-23

int minuta = informacje o czasie.tm_min; //0-59

Następne sprawdzenie przed południem lub po południu

Jest AM, jeśli godzina <12

Tworzę ciąg o nazwie „theTime” i zaczynam go od:

theTime="To jest ";

Aby uzyskać liczbę jako słowa, utworzyłem tablicę słów dla liczb do 30

const char *liczby = {

„0”, „Jeden”, „Dwa”, „Trzy”, „Cztery”, „Pięć”, „Sześć”, „Siedem”, „Osiem”, „Dziewięć”, „Dziesięć”, „Jedenaście”, „Dwanaście ", "Trzynaście", "Czternaście", "Kwartał", "Szesnaście", "Siedemnaście", "Osiemnaście", "Dziewiętnaście", "Dwadzieścia", "Dwadzieścia jeden", "Dwadzieścia dwa", "Dwadzieścia trzy”, „Dwadzieścia cztery”, „Dwadzieścia pięć”, „Dwadzieścia sześć”, „Dwadzieścia siedem”, „Dwadzieścia osiem”, „Dwadzieścia dziewięć”, „W połowie”};

Więc kiedy jest 12:05 lub pięć minut po dwunastej, to naprawdę do Arduino

liczby[5] minuty po liczbach[12]

Aby określić, czy jest to „Minuty przeszłe” czy „Minuty do”, wystarczy spojrzeć na minuty. Jeśli minuty są < 31, jest to „Minuty po przejściu”, jeśli minuty są większe niż 31, używamy „Minuty do”, ale używamy liczb [60-minut], więc 12:50 będzie 60-50 minutą lub liczbami[10], które daj nam 10 minut do godziny 12:00.

Oczywiście są inne zasady, np. o 15, 30, 45 nie używamy minut, to jest tylko wpół do kwadransa, a jeśli minuta wynosi 0, to jest po prostu „dziesiąta” lub południe.

Aby to złożyć w całość, dodaję wszystkie elementy do String theTime, a następnie wyświetlam je na matrycy LED. Używam kilku instrukcji If. Prawdopodobnie powinienem był użyć case'a, ale po prostu łatwiej było je dodawać.

Dla naszego przykładu 12:05

theTime="To jest"

jeśli minuta < 31 użyj "Minuty przeszłe" w przeciwnym razie jest to "Minuta do"

theTime+= numbers[5] + „Minuty minione” + liczba [12] + „Godzina” //Uwaga: dołączana jest notacja +=.

Następnie patrzymy na godzinę, aby ustalić, czy jest to poranek, popołudnie czy wieczór.

theTime+= "Wieczorem"

Ostatni ciąg przechodzący do macierzy to:

„Jest pięć minut po dwunastej wieczorem”

Pisanie tego projektu było bardzo zabawne. Jeśli Ci się spodoba, kliknij Serce i Zagłosuj na mnie, proszę.

Zalecana: