Съдържание:

4 проекта в 1 с помощта на DFRobot FireBeetle ESP32 и LED матричен капак: 11 стъпки (със снимки)
4 проекта в 1 с помощта на DFRobot FireBeetle ESP32 и LED матричен капак: 11 стъпки (със снимки)

Видео: 4 проекта в 1 с помощта на DFRobot FireBeetle ESP32 и LED матричен капак: 11 стъпки (със снимки)

Видео: 4 проекта в 1 с помощта на DFRobot FireBeetle ESP32 и LED матричен капак: 11 стъпки (със снимки)
Видео: Многофункциональный шилд Ардуино. Пример 4. Циферблат 2024, Юли
Anonim
Image
Image
Инсталирайте общи библиотеки за проектите
Инсталирайте общи библиотеки за проектите

Мислех да направя инструктаж за всеки от тези проекти - но в крайна сметка реших, че наистина най -голямата разлика е софтуерът за всеки проект, смятах, че е по -добре просто да направя един голям инструктаж!

Хардуерът е един и същ за всеки проект и ние използваме Arduino IDE за програмиране на ESP32 устройството.

И така, какъв е хардуерът: Целият хардуер е предоставен от моите приятели от DFRobot, те имат много добри уроци и лесни за инсталиране основни платки за това. Също така има добра система за поддръжка и доста бърза доставка до САЩ

Пълното разкриване на платката Firebeetle ESP32 и LED матрицата са предоставени от DF Robot, представените проекти и във видеоклиповете са мои.

Всички тези проекти използват DFRobot FireBeetle ESP32 IOT микроконтролер

www.dfrobot.com/product-1590.html

Поддръжката wiki - с инструкции за инсталиране на ядрото на борда можете да намерите тук:

www.dfrobot.com/wiki/index.php/FireBeetle_…

Нуждаем се и от FireBeetle покриваща 24x8 LED матрица (СИНА)

www.dfrobot.com/product-1595.html

Не харесвате СИНИ светодиоди - Те също имат различни цветове.

ЗЕЛЕН -

ЧЕРВЕНО -

БЯЛ -

ЖЪЛТ -

Имате нужда само от една LED матрица - цветът е ваш избор, всички те работят еднакво.

Уики за поддръжка на LED Matrix можете да намерите тук:

www.dfrobot.com/wiki/index.php/FireBeetle_…

Тук откриваме връзка към библиотеката Arduino.

github.com/Chocho2017/FireBeetleLEDMatrix

Повече за това малко по -късно….

Нещо, което не е задължително, но може би е удобно да притежавате MicroUSB 3xAA държач за батерия.

www.dfrobot.com/product-1130.html

Така че това е необходимия хардуер - Какви са 4 -те проекта -

Стъпка 1: Проектите

Image
Image

Проект 1: Прост LED матричен NTP часовник с дисплей за военно време или AMPM време, Този часовник ще се свърже с NTP (сървър за време), вземете времето и ще приложите изключен набор, така че да получите местно време. Той ще покаже часа на LED матрицата. - Това е много прост часовник и много прост първи проект.

Проект 2: Дисплей за предсказване на ISS Pass, този проект използва второ ядро на процесора. Той ще покаже колко близо (в мили) е МКС, кога да очаквате следващото преминаване на МКС на вашето местоположение (в UTC време) и по избор колко хора са в космоса. Тъй като голяма част от тази информация не се променя често, използваме второто ядро, за да проверяваме само за актуализации на прогнозите за преминаване или колко хора са в космоса на всеки 15 минути. По този начин можем да предотвратим твърде много API обаждания към сървъра. Този проект е малко по -сложен, но все пак доста лесен за изпълнение.

Проект 3: Прост подвижен знак за съобщение, използващ MQTT, прегледах проект, който е направен за мини платката ESP8266 D1 и това е 8x8 LED матрица - Идеята е да се свържете с брокер MQTT, да изпратите съобщение до тема, която устройството е слушане - и показване на това съобщение. Това е доста лесно и много лесно да се направи, след като всичко е настроено. И има няколко стъпки за настройка на клиентския софтуер MQTT на настолен компютър. След настройка MQTT е много мощен протокол за съобщения, използван от много IoT устройства за изпращане и получаване на съобщения.

Проект 4: Дисплей на метеорологичната станция - базиран на мини метеорологичната станция ESP8266 D1, направена от Squix78 и ThingPulse. Ние вземаме нашите данни от Wunderground и показваме текущите условия и температурата в градуси по Фаренхайт. Използваме второто ядро на ESP32, за да актуализираме данните си на всеки 10 минути. Също така е лесна за настройка.

МИНИ ПРИМЕРИ НА BOUNS: Библиотеката (и скиците по -горе) използват шрифт 8x4, библиотеката съдържа и шрифт 5x4, който използвах за повечето от тези мини примери на BOUNS. Има няколко проблема, които мога да отбележа с малкия шрифт, един изглежда да създава проблеми, когато използвате WIFI на устройството. Това е нещо, което искам да проуча повече, но имах време. Другият проблем е, че не се превърта, само по -големият шрифт може да превърта. Така че нито един от тези примери не използва WIFI - те просто актуализират дисплея и повече за тях ще бъдат по -късно.

Да започваме…..

Стъпка 2: Инсталирайте платката DFRobot FireBeetle ESP32 в Arduino IDE

Така че, ще ви насоча към DF Robot Wiki за инсталиране на ядрото на платката за Arduino IDE.

Това е доста лесно да се направи със съвременната IDE (1.8.x или по -добра).

www.dfrobot.com/wiki/index.php/FireBeetle_…

Открих, че WiFi библиотеката, вградена в Arduino IDE, причинява проблеми (PS всяка друга WiFi библиотека, която може да е инсталирана във вашата директория на библиотеката, може или не може да причини проблеми). Единственият начин (или поне най -лесният начин), който открих за решаване на проблема, е да премахна WiFi библиотеката от директорията IDE. За съжаление няма добър начин да ви кажем къде може да е инсталиран - зависи от това как е инсталирана IDE и от това каква операционна система използвате.

Това, което направих, е да намеря WiFi библиотеката, която причинява проблеми, и просто преместете директорията WiFi директорията на вашия работен плот … и рестартирайте IDE. По този начин можете да запазите библиотеката, в случай че имате нужда от нея за дъските на Arduino WIFI.

90% от проблемите, които съм виждал, са свързани с горния проблем. Ако получите много грешки при компилиране, свързани с използването на WiFi от директорията IDE на Arduino или директорията Arduino Library, това е проблемът, който имате.

Вторият ми проблем понякога е, че качването на скици не успява да се качи - в този случай просто трябва да натисна отново бутона за качване и той работи.

И накрая, ако имате отворена серийна конзола и след това я затворете - FireBeetle замръзва.

Знам, че DF Robot активно работи върху ядрото на платката и само за краткото време, което имах на борда, те пуснаха ново ядро. За съжаление това не реши проблема с WiFi, което е най -големият ми проблем.

* Espressif има „общ“основен мениджър, който може да бъде инсталиран, ядрото включва платката FireBeetle ESP32, но имах проблем с това как номерира щифтовете. Интересното тук е, че WiFi библиотеката работи с вградената WiFi библиотека - така че знам, че има решение на този проблем точно зад ъгъла.

Ако искате да изпробвате ядрата на Espressif, можете да научите повече информация тук:

github.com/espressif/arduino-esp32

Аз лично харесвам как работи ядрото на DF-Robot, дори и с малкото проблеми, които имам.

** ЗАБЕЛЕЖКА: Използвам LinuxMint 18, който е базиран на Ubuntu 16.04 Мисля, че не съм опитвал това на никоя друга машина, но вярвам, че проблемът е налице за всички операционни системи въз основа на някои търсения в интернет, които направих. **

Стъпка 3: Инсталирайте общи библиотеки за проектите

Инсталирайте общи библиотеки за проектите
Инсталирайте общи библиотеки за проектите

Всички тези проекти използват няколко общи библиотеки, така че сега е по -лесно да направите тази стъпка.

В зависимост от библиотеката може да я намерите в мениджъра на библиотеката - което е най -лесният начин за инсталиране на библиотека.

Друг често срещан начин е да инсталирате чрез zip файл, който работи също толкова добре. Но обикновено използвам метода за ръчно инсталиране. На уебсайта на Arduino има добър урок за трите метода.

www.arduino.cc/en/guide/libraries

За тези библиотеки бих препоръчал ръчния метод - тъй като има няколко различни библиотеки със същото име, с помощта на мениджъра на библиотеките може да се окажете с грешен.

Всички тези проекти използват WiFi Manager, за да улеснят свързването с вашия wifi - реших да направя това, така че ако трябва да преместите проекта си, не е необходимо да препрограмирате дъската. Това е нещо, което използвам за платките ESP8266 и работи добре - не е перфектно. Късметът за използване на библиотеката е пренесен за използване на ESP32 от потребител на github на име bbx10. (Този мениджър трябва да работи и с платките ESP8266)

Трябва да инсталираме три библиотеки за тази работа.

WiFiManager -

Уеб сървърът -

И накрая DNSServer -

Също така обща за всички скици е библиотеката DF Robot DFRobot_HT1632C за LED матрицата.

www.dfrobot.com/wiki/index.php/FireBeetle_…

Библиотеката може да бъде намерена тук (отново бих препоръчал метода за ръчно инсталиране)

github.com/Chocho2017/FireBeetleLEDMatrix

Специална бележка: в моето хранилище на github - имам няколко леко модифицирани библиотеки DFRobot_HT1632C

github.com/kd8bxp/DFRobot-FireBeetle-ESP32…

Промяната е за по -малък шрифт и се използва само за някои от примерите за бонус. Можете да използвате модифицираната библиотека и тя не трябва да създава проблеми. Има и леко модифицирана библиотека (прикрепена към някои от скиците като раздели), която може да прави растерни изображения.

Ако решите да използвате леко модифицираната версия, трябва да преименувате директорията "modified-library" на FireBeetleLEDMatrix и да преместите тази папка в директорията на вашата библиотека Arduino. Не е нужно да използвате тази версия за тези проекти, тя е необходима, ако искате да изпробвате някои от по -малките шрифтове от примерите за бонус.

Това са общите библиотеки - ще инсталираме някои специфични библиотеки за всеки проект.

Нека преминем към LED матрицата …

Стъпка 4: 24x8 LED матричен капак

24x8 LED матричен капак
24x8 LED матричен капак
24x8 LED матричен капак
24x8 LED матричен капак
24x8 LED матричен капак
24x8 LED матричен капак

Защото ние ще следваме заедно с DF Robot Tutorial за LED матрицата

www.dfrobot.com/wiki/index.php/FireBeetle_…

Въведение: Този 24 × 8 LED матричен дисплей е специално проектиран за серия FireBeetle. Той поддържа режим на ниска консумация на енергия и превъртащ се дисплей. С високопроизводителния LED драйвер HT1632C всеки светодиод има независим регистър, което улеснява шофирането поотделно. Той интегрира 256KHz RC часовник, само 5uA в режим на ниска мощност, поддържа 16 мащабна ШИМ регулиране на яркостта. Този продукт работи и с други микроконтролери Arduino като Arduino UNO.

Спецификация:

  • Работно напрежение: 3.3 ~ 5VLED
  • Цвят: Едноцветен (бял/син/жълт/червен/зелен)
  • Задвижващ чип: HT1632C
  • Работен ток: 6 ~ 100mA
  • Ниска консумация на енергия: 5uARC
  • такт: 256KHz
  • Избор на чип (CS): Избира се D2, D3, D4, D5
  • Поддръжка на превъртащ се дисплей

ПИН кодове по подразбиране:

  1. DATAD6
  2. WRD7 (обикновено не се използва)
  3. CSD2, D3, D4, D5 по избор (D2 по подразбиране)
  4. RDD8
  5. VCC 5VUSB; 3.7V Lipo батерия

(Всички тези проекти използват D2 за избора на щифт, това може лесно да се промени, ако е необходимо.)

На гърба на LED Matrix ще видите 4 малки превключвателя, не забравяйте да изберете само един от CS щифтовете. Тези малки превключватели са начинът, по който избирате своя CS Pin, а по подразбиране е D2.

DF Robot WIKI има примерен код, този код също е в примерите за библиотеката. (Аз вярвам)

Друга забележка: използвайте Dx номерата за своите щифтове - в противен случай номерата на пиновете ще бъдат номерата/имената на IO пиновете

И това може да ви причини някои проблеми.

Задаване на точка:

X е от 0 до 23 (или ако мислите за това като електронна таблица, това са колони).

Y е от 0 до 7 (или ако мислите за това като електронна таблица, това са редове).

Библиотеката предоставя функция за зададена точка.

display.setPoint (x, y) това ще постави курсора на това място, където вече можете да отпечатате съобщение.

display.print ("Hello World", 40); // това ще накара дисплея да покаже „Hello World“, започвайки от точката x, y и превъртайки се от екрана.

Има и setPixel (x, y) и clrPixel (x, y) - setPixel ще включи един светодиод на мястото x, y, а clrPixel ще изключи светодиода на мястото x, y.

Има някои други неща, които тази библиотека може да направи - и повечето са включени в примерите.

(Бих препоръчал да стартирате и промените примерите, за да видите какво може да направи).

* Едно нещо, което изглежда липсва, е рисуването на растерни изображения - библиотеката всъщност може да направи това, но по някаква причина това е частна функция на библиотеката. Вижте някои от моите примери за бонус за леко модифицирана версия на библиотеката

** Друго нещо, което включва набор от шрифтове 5x4, което е хубаво да има по -малък шрифт - коментирано е в библиотеката. Разкоментирах го и работех, но забелязах няколко проблема с него - най -големият, който не се превърта. И забелязах, че изглежда причинява проблеми или с wifi, или може би с друга библиотека, която исках да използвам.

Една от модифицираните библиотеки, които включвам, обаче използва шрифт 5x4.

Нека преминем към проектите ….

Стъпка 5: Проект 1: Прост LED матричен NTP часовник с военен дисплей за време или AMPM дисплей

Проект 1: Прост LED матричен NTP часовник с военен дисплей или AMPM дисплей
Проект 1: Прост LED матричен NTP часовник с военен дисплей или AMPM дисплей
Проект 1: Прост LED матричен NTP часовник с военен дисплей или AMPM дисплей
Проект 1: Прост LED матричен NTP часовник с военен дисплей или AMPM дисплей
Проект 1: Прост LED матричен NTP часовник с военен дисплей или AMPM дисплей
Проект 1: Прост LED матричен NTP часовник с военен дисплей или AMPM дисплей

Проект 1: Прост LED матричен NTP часовник с дисплей за военно време или AMPM време, Този часовник ще се свърже с NTP (сървър за време), вземете времето и ще приложите изключен набор, така че да получите местно време. Той ще покаже часа на LED матрицата. - Това е много прост часовник и много прост първи проект.

Преди да започнем с този прост проект, може да е добра идея да знаете какво е NTP -

NTP е интернет протокол, използван за синхронизиране на часовниците на компютрите с известно време. Това е стандартен протокол. NTP означава Network Time Protocol.

NTP използва UTC като референтно време (UTC е универсално координирано време), то еволюира от GMT (Greenwich Mean Time), а в някои кръгове се нарича Zulu Time (Military). UTC се основава на квантов резонанс на цезиев атом.

NTP е отказоустойчив и силно мащабируем, протоколът е много точен, използвайки разделителна способност по-малка от наносекунда.

*

Часовникът UTC не е от голяма полза за повечето хора, затова трябва да настроим часовника си за местно време. За щастие можем да направим това доста лесно. Така че нека започнем с този прост NTP часовник….

Първо, трябва да инсталираме библиотека, която улеснява разговора с NTP сървърите.

github.com/arduino-libraries/NTPClient (тази библиотека вероятно е в мениджъра на библиотеката)

Пропуснахте ли стъпка 3 - и не сте сигурни как да инсталирате библиотеки (?) По -добре се върнете и прочетете стъпка 3:-)

Трябва да отидете на този уебсайт и да поставите най -близкия до вас град, който е във вашата часова зона.

www.epochconverter.com/timezones

Когато натиснете Enter, ще видите „Резултати от реализациите“, а в резултатите ще получите изместването си (разлика до GMT/UTC) за секунди (За мен това е -14400)

В скицата на dfrobot_firebeetle_led_matrix_ntp_clock на ред 66 ще видите:

#define TIMEOFFSET -14400 // Намерете настройката за изключване на часовата зона Тук https://www.epochconverter.com/timezones OFF Задайте в секунди#дефинирайте AMPM 1 // 1 = AM PM часа, 0 = ВОЕННО/24 HR време

заменете -14400 с вашето отместване. На следващия ред ще видите AMPM 1 - това ще накара часовника да показва времето в AM/PM - ако предпочитате да го видите след 24 часа, направете единицата нула.

След това качете скицата на дъската си, свържете се с точката за достъп (wifi мениджър) и въведете подробностите за вашия wifi. АКО вече сте направили това, трябва да видите „свързано“превъртане по екрана и няколко секунди по -късно ще видите часа.

Това е всичко за този проект - прост и лесен за използване … …

(Възможни подобрения: Показване на месеца, деня и годината, настройване на зумер и аларми - като цяло контролирайте това, което виждате чрез уеб страница. Тази идея ще отнеме голямо пренаписване на текущата проста скица)

Готови за друг прост проект - Покажете къде е МКС - Предайте прогнози и колко хора са в Космоса! (PS Тази скица използва уеб страница за контрол на това, което се показва)…..

Стъпка 6: Проект 2: Дисплей за предсказване на ISS Pass,

Проект 2: Дисплей за предсказване на ISS Pass,
Проект 2: Дисплей за предсказване на ISS Pass,
Проект 2: Дисплей за предсказване на ISS Pass,
Проект 2: Дисплей за предсказване на ISS Pass,
Проект 2: Дисплей за предсказване на ISS Pass,
Проект 2: Дисплей за предсказване на ISS Pass,

Проект 2: Дисплей за предсказване на ISS Pass, този проект използва второ ядро на процесора. Той ще покаже колко близо (в мили) е МКС, кога да очаквате следващото преминаване на МКС на вашето местоположение (в UTC време) и по избор колко хора са в космоса. Тъй като голяма част от тази информация не се променя често, използваме второто ядро, за да проверяваме само за актуализации на прогнозите за преминаване или колко хора са в космоса на всеки 15 минути. По този начин можем да предотвратим твърде много API обаждания към сървъра. Този проект е малко по -сложен, но все пак доста лесен за изпълнение.

Този проект се основава на един от по-ранните ми проекти, които можете да намерите тук:

(Проста система за уведомяване на МКС) В това използвах ESP8266 с вграден OLED екран (D-Duino). В по -голямата си част този проект просто използва различна система за показване, разширих я, за да можете да промените това, което искате да видите в движение чрез уеб страница. Така че нека започнем ….

По-голямата част от заслугата за лесна употреба е на https://open-notify.org, който има много прост и лесен за използване API. API за отворено известие има три неща, които могат да бъдат показани, местоположение на МКС по географска ширина и дължина, пропускане на прогнози въз основа на дадена ширина и дължина. И накрая колко хора (И техните имена) са в космоса.

Ще трябва да инсталираме друга библиотека - библиотеката ArduinoJson.

github.com/bblanchon/ArduinoJson

Нуждаем се и от TimeLib.h, но не съм сигурен откъде го взех или дали е включен в IDE (съжалявам)….

И така, защо да предвиждаме къде ще бъде МКС - МКС съдържа различно радиолюбителско оборудване, а когато е „над главата“, радиооператор с шунка може да осъществи контакт с МКС, използвайки някои много прости (и евтини) радиостанции. Дори съм го правил докато съм мобилен (шофирам в колата). Наистина не се нуждаете от много, за да успеете. Единственото нещо, от което се нуждаете, е да знаете къде се намира. И насочването на антената в нейната обща посока помага.

Редове 57, 58, 59 са някои променливи на дисплея - ако са зададени на 1, ще видите дисплей, ако са зададени на 0 (нула), няма да видите дисплей. (Тези променливи могат да бъдат зададени в скицата или актуализирани от уеб страница, която firebeetle създава - повече за това по -късно).

int locDis = 1; // Показване на местоположението на ISSint pasDis = 0; // Показване на предвижданията за преминаване int pplDis = 1; // Показване на хора в космоса

така locDis ще показва местоположението на МКС по географска ширина и дължина - показва също и на колко мили е.

pasDis ще получи прогнозите за преминаване от open-notify.org и ще ги покаже.

и накрая, pplDis ще покаже имената и колко хора са в космоса - това може да стане много дълго, не

също се променят често. (можете да ги промените или да ги оставите, това е напълно незадължително)

Ние също трябва да знаем нашата географска ширина и дължина и да ги поставим в скицата.

Това не трябва да е точна ширина/дължина, може да е центърът на вашия град или само малко. Отпечатъкът на МКС е широк, докато е над главата, и стотици (или хиляди) мили могат да бъдат изминати, така че това, че сте малко на разстояние от ширина/дължина, няма да наруши сделката (през повечето време), комуникацията над 500 мили е доста често срещана.

Ако не знаете географската си ширина и дължина, този уебсайт може да ви помогне.

www.latlong.net Близо до ред 84 на скицата ще видите нещо подобно:

// Намерете вашата географска ширина и дължина тук // https://www.latlong.net/ float mylat = 39.360095; поплавък милон = -84,58558;

Това трябва да бъде всичко, което трябва да се промени. Качете скицата и свържете Firebeetle с интернет - и трябва да видите местоположението на МКС, дадено в широчина/дължина и на колко мили е (не забравяйте, че това ще бъде приблизително разстояние. МКС се движи много бързо и по времето, когато дисплеят приключи, МКС се е преместил на много мили от мястото, където е бил). Трябва също да видите хората в космоса. (АКО не сте променили променливата по -горе).

Използваме второто ядро на ESP32 за стартиране на уеб сайт, като използването на сайта ни дава контрол върху това, което се показва на LED матрицата. Трябва да е доста интуитивно за това как работи, една секция показва какво е включено за показване, друга секция има бутони "да" "не" - щракването върху "да" означава, че искате да го видите, "не" означава не не го показвайте. Трябва също да видите, че горната част се променя въз основа на бутоните.

Единственото нещо, което не е толкова изрязано и сухо, е как да намеря IP адреса на Firebeetle - за съжаление не можах да намеря добър начин да го намеря - затова просто използвах серийната конзола на IDE за показване то (9600 бода).

Отворете конзолата и трябва да видите IP адреса. (отворете го, преди да получите свързаното съобщение) - другият ми избор беше да го покажа на LED матрицата веднъж веднага при стартиране - реших против това, защото може да не гледате часа и ще го пропуснете. Мислех да изпратя sms съобщение или нещо такова, но в крайна сметка просто го опростявам. (Аз също се опитах да задам статичен IP/шлюз/и т.н., не можах да го накарам да работи правилно с wifi мениджъра - кодът все още е в скицата, така че ако някой го разбере, нека ме уведоми)

Скицата също така напредва в изграждането на FreeRTOS в ядрото на ESP32 - Имаме задача, която се изпълнява на всеки 15 минути, това, което прави, е да актуализира прогнозите за преминаване, както и хората в космоса. Както казах по -рано хората в космоса не се променят толкова много, така че това вероятно може да бъде преместено на още една задача и може би да се изпълнява веднъж на всеки 12 часа (или 6 часа) - но това работи и поддържа нещата прости.

За тези, които не знаят FreeRTOS е начин да разрешите на едноядрен микроконтролер да изпълнява множество задачи

Обикновено трябва да включите някои библиотеки и други неща, за да работи тя - въпреки това е вградена в ядрото на ESP32 - което прави ESP32 много мощно устройство. за повече информация относно FreeRTOS

freertos.org/

ПОДОБРЕНИЯ: Има редица неща, които могат да бъдат подобрени за този проект и почти всеки ден се сещам за нещо, което би могло да бъде направено малко по -различно, или променено, или добавено.

И в директорията с повече примери на хранилището можете да видите някои от по-ранните/различни неща, за които съм мислил- някои от тях не работят, някои просто се променят, а някои са включени в текущата скица.

* В един момент се опитах да добавя неопиксел към дисплея, така че да прилича малко повече на предишния ми проект - никога не го накарах да работи напълно правилно (установих, че това е проблем с захранването, който не бях обмислил) работи по начин за подобряване на тази идея *

Докато пишех тази стъпка, си помислих, може би мога да добавя начин да актуализирате вашата географска ширина и дължина към уебсайта - по този начин скицата никога няма да се нуждае от промяна - ще помисля и за това малко повече.

Подобрен начин за получаване на IP адрес е нещо друго, което бих искал да направя (все още мисля за това)

Нека преминем към следващия ни проект … …

Стъпка 7: Проект 3: Прост подвижен знак за съобщение, използващ MQTT

Проект 3: Прост подвижен знак за съобщение, използващ MQTT
Проект 3: Прост подвижен знак за съобщение, използващ MQTT
Проект 3: Прост подвижен знак за съобщение, използващ MQTT
Проект 3: Прост подвижен знак за съобщение, използващ MQTT
Проект 3: Прост подвижен знак за съобщение, използващ MQTT
Проект 3: Прост подвижен знак за съобщение, използващ MQTT

"loading =" мързелив "" loading = "мързелив"

Бонус Част 2 - Показване на изображения
Бонус Част 2 - Показване на изображения
Бонус Част 2 - Показване на изображения
Бонус Част 2 - Показване на изображения
Бонус Част 2 - Показване на изображения
Бонус Част 2 - Показване на изображения

Така че се оказва, че библиотеката може да показва изображения - вие по някаква причина тази функция изглежда е „частна“- добре, за тези следващи скици отново модифицирах библиотеката и направих drawImage публична функция.

Този път сложих модифицираната библиотека в директорията sketches, така че няма нужда да преинсталирате библиотеката, скицата първо разглежда себе си, след това ще изглежда в директорията на библиотеката, така че сме добри!

*** Планирам да изпратя тази промяна на DFRobot, тъй като наистина е много готино и доста добре, за да мога да правя такива скици ***

Скица на LED Matrix Images, тук първо се опитвах да разбера какво иска библиотеката и какво би работило и какво не би работило - с различна степен на успех. Открих, че изображенията 8x8 работят най -добре, но можете да накарате и други да работят. Открих и няколко онлайн редактори за водещи матрици, някои работят по -добре от други.

xantorohara.github.io/led-matrix-editor/-изглежда работи добре, прави 8x8 изображения и ги искате като байтови масиви.

www.riyas.org/2013/12/online-led-matrix-fo… този работи добре и има възможност да прави по-големи от 8x8 дисплеи, дисплеят изглежда е обърнат настрани от този дисплей въпреки това. Байтовите масиви изглежда работят най -добре тук. Използвах го, за да направя „космическите нашественици“, видяни във видеото по -горе.

И така, как работи това, drawImage (const байт * img, uint8_t ширина_t, uint8_t височина_t, int8_t x, int8_t y, int img_offset);

променлива на масив от байт на изображението, ширината на изображението (8), височината на изображението (8), началната позиция на екрана x (0), y (0) обикновено и номер на отместване, което не съм 100% сигурен какво прави, така че през повечето време го оставях на нула.

В скицата LED Matrix Images - има 8 различни байтови масива - с три различни метода също.

- фойерверките са първите масиви, честно казано не съм сигурен как работи този - но работи.

след това има уста - това всъщност не работи съвсем правилно, устата е погрешен път за един и опитът да се направят някакви промени просто го влошава. (научаването какво работи и кое не е половината забавление)

Последвано от първия marioImg - това е твърде голямо за дисплея и мисля, че тук се появява офсетът - използвах го тук и можете да видите предната част на mario, ако промените отместването на 1 ще му видя гърба. (ти не мога да ти кажа защо или какво прави отместването. Изглежда, че измества изображението, но защо 2 го премества, за да можеш да видиш предната част на него и защо 1 измества другата посока, не мога да ти кажа)

IMAGES - байтовият масив е знак @, който направих - изглежда като това, което направих с помощта на инструмента на

pic1 байтовият масив също прилича на това, което се опитвах да направя, само че е по -малък, отколкото се опитвах - това, което е, не мога да кажа, но мога да кажа, че като цяло изглежда като това, което правех в редактора.

mario2Img - това е моята собствена версия на по -големия Mario, направен за 8x8 размер на екрана - и ти там един или два пиксела на място (моя вина, не дисплеите), той изглежда като малък Mario (нещо като).

invader1 и invader2 - и двете ми са идеята за космически нашественик. станаха доста добри и като поставям изображенията едно върху друго, мога да създам ефекта на движението на краката.

В директорията има две скици за фойерверки, всяка е малко по -различна и си заслужава да се изпробва.

На единия фойерверките се движат по екрана, така че малко повече/различна анимация … на другия се показват две фойерверки едновременно

Има и три скици на „нашественици“, всяка от които е малко по -различна, едната има нашественика, който се движи по екрана и можете да погледнете как направих това - (може би има по -добри начини да го направя, не знам)

Още повече: Има някои скици в директорията за тестване на хранилището - повечето от тях не работеха точно така, както аз исках, или бяха идеи, които искам да направя, но не работеха по начина, по който исках. Оставих ги, защото някой може да получи някои идеи *(направих малък "щит" с пиксел WS2812 върху него за използване с дисплея на МКС, но го свързах с 3v линия и просто нямах достатъчно захранване с LED Matrix също работи, пикселът работи добре, без LED Matrix ти, така че все още има нещо, което мога да направя с него)*

Има и директория, наречена „Още примери“- това са варианти на някои от скиците на проекта, или аз съм добавил или премахнал, или съм променил по някакъв начин. За тях те работят - те просто не са окончателният проект. Затова ги оставих отново някой може да извлече нещо полезно от тях. (Може би)

Надявам се да ви хареса тази инструкция, както и аз да направя тези проекти:-)

Стъпка 11: Връзки…

Този проект беше спонсориран и подкрепен от DF Robot. Моля, използвайте връзките по -долу за продуктите:

Firebeetle ESP32 -

Firebeetle Cover 24x8 LED Matrix -

Моето хранилище на кодове:

Ако намирате този или някой от моите проекти за полезен или приятен, моля, подкрепете ме. Всичко, което получа, отива да купувам повече части и да правя повече/по -добри проекти.

www.patreon.com/kd8bxp

Библиотека NTPClient

ArduinoJson.h

ESP8266 Библиотека за времето

Библиотека Json-Streaming-Parser

Препоръчано: