Мазмұны:

DFRobot FireBeetle ESP32 және жарықдиодты матрицалық мұқабаны қолданатын 4 жобаның бірі: 11 қадам (суреттермен)
DFRobot FireBeetle ESP32 және жарықдиодты матрицалық мұқабаны қолданатын 4 жобаның бірі: 11 қадам (суреттермен)

Бейне: DFRobot FireBeetle ESP32 және жарықдиодты матрицалық мұқабаны қолданатын 4 жобаның бірі: 11 қадам (суреттермен)

Бейне: DFRobot FireBeetle ESP32 және жарықдиодты матрицалық мұқабаны қолданатын 4 жобаның бірі: 11 қадам (суреттермен)
Бейне: FireBeetle 2 ESP32 S3 WROOM-1 getting started tutorial 2024, Қараша
Anonim
Image
Image
Жобаларға ортақ кітапханаларды орнатыңыз
Жобаларға ортақ кітапханаларды орнатыңыз

Мен осы жобалардың әрқайсысына нұсқаулық беруді ойладым, бірақ соңында мен ең үлкен айырмашылық - әр жобаның бағдарламалық жасақтамасы деп ойладым, мен бір үлкен нұсқаулықты жасаған дұрыс деп ойладым!

Аппараттық құрал әр жоба үшін бірдей, біз ESP32 құрылғысын бағдарламалау үшін Arduino IDE қолданамыз.

Аппараттық құрал дегеніміз не: Барлық жабдықты DFRobot -тағы достарым ұсынды, оларда өте жақсы оқулықтар бар және бұл үшін негізгі тақталарды орнату оңай. Сондай -ақ жақсы қолдау жүйесі бар және АҚШ -қа өте жылдам жеткізілім.

Firebeetle ESP32 тақтасы мен жарықдиодты матрицаны DF Robot ұсынды, ұсынылған және бейнеклиптердегі жобалар менікі.

Бұл жобалардың барлығы DFRobot FireBeetle ESP32 IOT микроконтроллерін қолданады

www.dfrobot.com/product-1590.html

Қолдау вики - тақтаның негізгі орнату нұсқауларын мына жерден табуға болады:

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

Бізге сондай -ақ FireBeetle қақпақтары 24х8 жарықдиодты матрицаны қажет етеді (КӨК)

www.dfrobot.com/product-1595.html

КӨК жарықдиодты ұнатпаңыз - олардың түстері де әр түрлі.

ЖАСЫЛ -

ҚЫЗЫЛ -

АҚ -

САРЫ -

Сізге тек бір жарықдиодты матрица қажет - түс сіздің таңдауыңыз, олардың барлығы бірдей жұмыс істейді.

Жарықдиодты матрицаны қолдау викиін мына жерден табуға болады:

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 -жоба: Әскери уақыт дисплейі немесе AMPM уақыт дисплейі бар қарапайым LED матрицалық NTP сағаты, Бұл сағат NTP (уақыт серверіне) қосылып, уақытты алады және жергілікті уақытты алу үшін өшіру жиынтығын қолданады. Ол LED матрицасында уақытты көрсетеді. - Бұл өте қарапайым сағат және өте қарапайым бірінші жоба.

2 -жоба: ISS Pass болжау дисплейі, бұл жоба процессордың 2 -ші ядросын қолданады. Ол ХҒС қаншалықты жақын (мильде) орналасқанын, сіздің орналасқан жеріңізде келесі ХҒС қашан өтетінін (UTC уақытында) және ғарышта қанша адам болатынын көрсетеді. Бұл ақпараттың көп бөлігі жиі өзгермейтіндіктен, біз 2 -ші ядро арқылы тек 15 минут сайын қанша адам ғарышта болатынын болжаудың жаңартылуын тексереміз. Біз осылайша серверге тым көп API қоңырауларының алдын аламыз. Бұл жоба әлдеқайда күрделі, бірақ әлі де оңай.

3 -жоба: MQTT көмегімен қарапайым жылжымалы хабарлама белгісі, мен ESP8266 D1 шағын тақтасы үшін жасалған жобаны қайта қарадым, және бұл 8x8 жарықдиодты матрица - Идея MQTT брокеріне қосылу, құрылғы тақырыбына хабарлама жіберу. тыңдау - және сол хабарды көрсету. Барлығы орнатылғаннан кейін мұны істеу өте оңай және өте қарапайым. Жұмыс үстеліндегі компьютерде MQTT клиенттік бағдарламалық жасақтамасын орнатудың бірнеше қадамдары бар. MQTT орнатылғаннан кейін көптеген IoT құрылғыларында хабарламаларды жіберу және қабылдау үшін қолданылатын өте қуатты хабар алмасу протоколы.

4 -жоба: ауа райы станциясының дисплейі - Squix78 және ThingPulse шығарған ESP8266 D1 шағын ауа райы станциясына негізделген. Біз Wunderground -дан өз деректерімізді алып, Фаренгейт градусындағы ағымдағы жағдайлар мен температураны көрсетеміз. Біз ESP32 -дің екінші ядросын қолданамыз, әр 10 минут сайын өз деректерімізді жаңартып отырамыз. Сондай -ақ, оны орнату оңай.

BOUNS MINI МЫСАЛДАРЫ: Кітапханада (және эскиздерде) 8x4 қаріп қолданылады, кітапханада 5x4 қаріп бар, мен оны BOUNS шағын мысалдарының көпшілігінде қолдандым. Кішкене шрифтпен ескертуге болатын бірнеше проблемалар бар, олардың бірі құрылғының WIFI -ді пайдалануда қиындық тудырады. Бұл мен көбірек зерттегім келеді, бірақ уақыт болды. Басқа мәселе - ол айналмайды, тек үлкен қаріп айналдыра алады. Бұл мысалдардың ешқайсысы WIFI -ді пайдаланбайды - олар тек дисплейді жаңартады, және бұл туралы толығырақ кейінірек болады.

Бастайық ….

2 -қадам: DFRobot FireBeetle ESP32 тақтасын Arduino IDE -ге орнатыңыз

Сонымен, мен сізге Arduino IDE тақтасының ядросын орнату туралы DF Robot Wiki сілтемесін беремін.

Қазіргі заманғы IDE -мен (1.8.x немесе одан жақсы) жұмыс жасау өте оңай.

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

Мен Arduino IDE -де орнатылған WiFi кітапханасы ақаулар туғызатынын білдім (PS кітапхана каталогында орнатылған кез келген басқа WiFi кітапханасы PS ақаулық тудыруы мүмкін немесе тудырмауы мүмкін). Мәселені шешудің жалғыз әдісі (немесе, ең болмағанда, оңай) - WiFi кітапханасын IDE каталогынан жою. Өкінішке орай, оны қай жерде орнатуға болатынын айтудың жақсы жолы жоқ - бұл IDE қалай орнатылғанына және сіз қандай ОЖ қолданатындығыңызға байланысты.

Мен жасаған нәрсе - бұл мәселе туғызатын WiFi кітапханасы, және WiFi каталогын жұмыс үстеліне жылжытыңыз … IDE қайта іске қосыңыз. Осылайша сіз Arduino WIFI тақталарына қажет болған жағдайда кітапхананы сақтай аласыз.

Мен көрген мәселелердің 90% -ы жоғарыдағы мәселеге қатысты болды. Егер сіз Arduino IDE каталогынан немесе Arduino кітапханасы каталогынан WiFi пайдаланумен байланысты көптеген компиляция қателерін алсаңыз, бұл сізде бар мәселе.

Менің екінші мәселе - кейде эскиз жүктеу жүктелмейді - бұл жағдайда мен жүктеу түймесін қайтадан басуым керек, ол жұмыс істейді.

Ақырында, егер сізде сериялық консоль ашық болса, оны жабыңыз - FireBeetle қатып қалады.

Мен DF Robot тақта ядросында белсенді жұмыс істейтінін білемін, ал мен тақтаны алғаннан кейін олар жаңа ядро шығарды. Өкінішке орай, бұл WiFi мәселесін шеше алмады, бұл менің ең үлкен мәселе.

* Espressif -те орнатуға болатын «жалпы» негізгі менеджер бар, оның ядросында FireBeetle ESP32 тақтасы бар, бірақ менде түйреуіштердің нөмірленуі туралы мәселе болды. Бір қызығы, WiFi кітапханасы кіріктірілген WiFi кітапханасымен жұмыс істейді, сондықтан бұл мәселенің шешімі жақын жерде екенін білемін.

Егер сіз Espressif ядроларын қолданып көргіңіз келсе, қосымша ақпаратты мына жерден біле аласыз:

github.com/espressif/arduino-esp32

Маған DF-Robot ядросы қалай жұмыс істейтіні ұнайды, тіпті менде бірнеше мәселелер болса да.

** ЕСКЕРТПЕ: Мен Ubuntu 16.04 негізіндегі LinuxMint 18 -ді қолданамын, менің ойымша, мен мұны басқа машинада қолданған емеспін, бірақ менің ойымша, бұл мәселе кейбір интернеттегі іздеулерге негізделген барлық ОЖ -лерде бар. **

3 -қадам: Жобаларға ортақ кітапханаларды орнатыңыз

Жобаларға ортақ кітапханаларды орнатыңыз
Жобаларға ортақ кітапханаларды орнатыңыз

Бұл жобалардың барлығында бірнеше жалпы кітапханалар пайдаланылады, сондықтан қазір бұл қадамды орындау оңайырақ.

Кітапханаға байланысты сіз оны кітапхана менеджерінен таба аласыз - бұл кітапхананы орнатудың ең оңай жолы.

Тағы бір қарапайым әдіс - zip файлы арқылы орнату, ол бірдей жұмыс істейді. Бірақ мен қолмен орнату әдісін қолданамын. Arduino веб -сайтында үш әдіс бойынша жақсы оқулық бар.

www.arduino.cc/kz/guide/libraries

Бұл кітапханалар үшін мен қолмен әдістемені ұсынар едім, себебі кітапхана менеджерінің көмегімен аттас бірнеше кітапханалар бар, олар қате болып қалуы мүмкін.

Бұл жобалардың барлығында WiFi менеджерінің көмегімен Wi -Fi желісіне қосылуды жеңілдету үшін WiFi менеджері қолданылады - мен осылай шештім, егер сізге жобаңызды жылжыту қажет болса, тақтаны қайта бағдарламалаудың қажеті жоқ. Бұл мен ESP8266 тақталары үшін қолданатын нәрсе, және ол жақсы жұмыс істейді - бұл мінсіз емес. Кітапхананы пайдалану сәттілігі bbx10 деп аталатын github пайдаланушысымен ESP32 пайдалану үшін жіберілді. (Бұл менеджер ESP8266 тақталарымен де жұмыс істеуі керек)

Бұл жұмыс үшін бізге үш кітапхананы орнату қажет.

WiFiManager -

WebServer -

Ақырында DNSServer -

Сонымен қатар барлық эскиздерге DF Robot DFRobot_HT1632C жарық диодты матрицаның кітапханасы ортақ болып табылады.

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

Кітапхананы мына жерден табуға болады (тағы да қолмен орнату әдісін ұсынар едім)

github.com/Chocho2017/FireBeetleLEDMatrix

Ерекше ескерту: менің github репозиторийімде - менде сәл өзгертілген DFRobot_HT1632C кітапханасы бар

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

Модификация кіші қаріпке арналған және тек кейбір бонустық мысалдар үшін қолданылады. Сіз өзгертілген кітапхананы пайдалана аласыз және ол ешқандай қиындық туғызбауы керек. Сондай -ақ, нүктелік кескіндерді жасай алатын сәл өзгертілген кітапхана бар (кейбір эскиздерге қосымша ретінде).

Егер сіз сәл өзгертілген нұсқаны қолдануды шешсеңіз, «өзгертілген кітапхана» каталогының атын FireBeetleLEDMatrix деп өзгертуіңіз керек және сол қалтаны Arduino кітапхана каталогына жылжытуыңыз қажет. Бұл жобалар үшін бұл нұсқаны пайдаланудың қажеті жоқ, егер сіз бонустық мысалдардан кіші қаріптерді қолданғыңыз келсе, бұл қажет.

Бұл жалпы кітапханалар - біз әр жоба үшін арнайы кітапханаларды орнатамыз.

Жарық диодты матрицасына көшейік …

4 -қадам: 24х8 жарықдиодты матрицалық қақпақ

24х8 жарықдиодты матрицалық қақпақ
24х8 жарықдиодты матрицалық қақпақ
24х8 жарықдиодты матрицалық қақпақ
24х8 жарықдиодты матрицалық қақпақ
24х8 жарықдиодты матрицалық қақпақ
24х8 жарықдиодты матрицалық қақпақ

Себебі біз LED матрицасына арналған DF роботтық оқулығымен бірге жүреміз

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

Кіріспе: Бұл 24 × 8 LED Matrix дисплейі FireBeetle сериялары үшін арнайы жасалған. Ол төмен қуатты тұтыну режимін және айналдыру дисплейін қолдайды. HT1632C жоғары жарықдиодты драйвер микросхемасымен әр светодиодтың жеке тізілімі болады, бұл бөлек жүргізуді жеңілдетеді. Ол 256 кГц RC сағатын біріктіреді, төмен қуатты режимде тек 5uA, 16 масштабты PWM жарықтығын реттеуді қолдайды. Бұл өнім Arduino UNO сияқты басқа Arduino микроконтроллерімен жұмыс істейді.

Ерекшелігі:

  • Жұмыс кернеуі: 3.3 ~ 5VLED
  • Түсі: бір түсті (ақ/көк/сары/қызыл/жасыл)
  • Жетек чипі: HT1632C
  • Жұмыс тогы: 6 ~ 100мА
  • Аз қуатты тұтыну: 5uARC
  • жиілігі: 256 кГц
  • Chip Select (CS): D2, D3, D4, D5 таңдалады
  • Айналдыру дисплейін қолдау

Әдепкі PIN кодтары:

  1. DATAD6
  2. WRD7 (әдетте қолданылмайды)
  3. CSD2, D3, D4, D5 таңдалады (D2 әдепкі)
  4. RDD8
  5. VCC 5VUSB; 3.7VLipo батареясы

(Бұл жобалардың барлығы таңдау түйреуіші үшін D2 пайдаланады, оны қажет болған жағдайда оңай өзгертуге болады.)

Жарықдиодты матрицаның артқы жағында сіз 4 кішкене қосқышты көресіз, тек CS түйреуішінің біреуін ғана таңдаңыз. Бұл кішкене қосқыштар сіздің CS PIN кодын қалай таңдауға болады және әдепкі бойынша D2.

DF Robot WIKI -де кейбір үлгі коды бар, бұл код кітапхана мысалдарында да бар. (Мен сенемін)

Тағы бір ескерту: түйреуіштер үшін Dx сандарын қолданыңыз - әйтпесе түйреуіштер IO пин нөмірлері/атаулары болады

Және бұл сізге кейбір мәселелерді тудыруы мүмкін.

Нүктені орнату:

X - 0 -ден 23 -ке дейін (немесе егер сіз оны электрондық кесте деп ойласаңыз, бұл бағандар).

Y - 0 -ден 7 -ге дейін (немесе егер сіз бұл кесте ретінде ойласаңыз, бұл жолдар).

Кітапхана белгіленген нүкте функциясын ұсынады.

display.setPoint (x, y) бұл курсорды сол жерге орнатады, онда сіз енді хабарды басып шығара аласыз.

display.print («Сәлем әлемі», 40); // бұл дисплейде x, y нүктесінен бастап экраннан жылжып шығатын «Сәлем әлемі» көрсетіледі.

Сонымен қатар setPixel (x, y) және clrPixel (x, y) бар - setPixel x, y орнында бір жарық диодты қосады, ал clrPixel x, y орнында жарық диодты өшіреді.

Бұл кітапхана жасай алатын басқа да нәрселер бар және олардың көпшілігі мысалдарға енгізілген.

(Мен не істей алатынын білу үшін мысалдарды іске қосуды және өзгертуді ұсынар едім).

* Бір нәрсе жетіспейтін сияқты - нүктелік суреттерді салу - кітапхана мұны шынымен жасай алады, бірақ қандай да бір себептермен бұл кітапхананың жеке қызметі. Кітапхананың сәл өзгертілген нұсқасы үшін менің бонустық мысалдарымды қараңыз

** Тағы бір нәрсе 5х4 қаріп жиынтығын қамтиды, ол кіші қаріпке ие - кітапханада қалай болғанын түсіндіреді. Мен оны түсіндірмедім және жұмыс істедім, бірақ онымен бірнеше мәселелерді байқадым - ең үлкені ол айналмайды. Мен бұл Wi -Fi -да немесе мен қолданғым келетін басқа кітапханада қиындық тудыратын сияқты екенін байқадым.

Мен енгізген өзгертілген кітапханалардың бірі 5x4 қаріпті қолданады.

Жобаларға көшейік ….

5 -қадам: 1 -жоба: әскери уақыт дисплейі немесе AMPM дисплейі бар қарапайым LED матрицалық NTP сағаты

1 -жоба: әскери уақыт дисплейі немесе AMPM дисплейі бар қарапайым LED матрицалық NTP сағаты
1 -жоба: әскери уақыт дисплейі немесе AMPM дисплейі бар қарапайым LED матрицалық NTP сағаты
1 -жоба: әскери уақыт дисплейі немесе AMPM дисплейі бар қарапайым LED матрицалық NTP сағаты
1 -жоба: әскери уақыт дисплейі немесе AMPM дисплейі бар қарапайым LED матрицалық NTP сағаты
1 -жоба: әскери уақыт дисплейі немесе AMPM дисплейі бар қарапайым жарықдиодты матрицалық NTP сағаты
1 -жоба: әскери уақыт дисплейі немесе AMPM дисплейі бар қарапайым жарықдиодты матрицалық NTP сағаты

1 -жоба: Әскери уақыт дисплейі немесе AMPM уақыт дисплейі бар қарапайым LED матрицалық NTP сағаты, Бұл сағат NTP (уақыт серверіне) қосылып, уақытты қабылдайды және жергілікті уақытты алу үшін өшіру жиынтығын қолданады. Ол LED матрицасында уақытты көрсетеді. - Бұл өте қарапайым сағат және өте қарапайым бірінші жоба.

Бұл қарапайым жобаны бастамас бұрын, NTP деген не екенін білу жақсы болар еді -

NTP - бұл компьютерлердің сағаттарын белгілі бір уақытқа синхрондау үшін қолданылатын интернет -хаттама. Бұл стандартты хаттама. NTP желілік уақыт протоколы дегенді білдіреді.

NTP сілтеме уақыты ретінде UTC пайдаланады (UTC - Universal Time Coordinated), ол GMT (Гринвич уақыты) бойынша дамыған, ал кейбір шеңберлерде ол Зулу уақыты (Әскери) деп аталады. UTC цезий атомының кванттық резонансына негізделген.

NTP ақауларға төзімді және масштабталуы жоғары, протокол наносекундтан аз ажыратымдылықты қолдана отырып, өте дәл.

*

UTC сағаты көптеген адамдар үшін өте пайдалы емес, сондықтан біз сағатты жергілікті уақытқа бейімдеуіміз керек. Бақытымызға орай, біз мұны оңай жасай аламыз. Сонымен, қарапайым NTP сағатын бастайық ….

Біріншіден, біз NTP серверлерімен сөйлесуді жеңілдететін кітапхананы орнатуымыз керек.

github.com/arduino-libraries/NTPClient (бұл кітапхана кітапхана менеджерінде болуы мүмкін)

Сіз 3 -қадамды өткізіп жібердіңіз бе және кітапханаларды қалай орнатуға болатынын білмейсіз бе (?) Артқа қайтып, 3 -қадамды оқыңыз:-)

Сіз бұл веб -сайтқа кіріп, өзіңізге ең жақын қаланы қоюыңыз керек, ол сіздің уақыт белдеуіңізде.

www.epochconverter.com/timezones

Enter пернесін басқан кезде сіз «Конверсия нәтижелерін» көресіз, ал нәтижеде секунд ішінде сіздің есепке алуыңызды аласыз (GMT/UTC айырмашылығы) (мен үшін -14400)

66 -жолдағы dfrobot_firebeetle_led_matrix_ntp_clock эскизінде сіз мынаны көресіз:

#define TIMEOFFSET -14400 // Уақыт белдеуін өшіруді осында орнатыңыз https://www.epochconverter.com/timezones OFF секундтарда орнатыңыз#AMPM 1 // 1 = PM PM уақытын анықтаңыз, 0 = ӘСкери/24 сағ.

-14400 ауыстырыңыз. Келесі жолда сіз AMPM 1 көресіз - бұл сағатты AM/PM уақытында көрсетеді - егер сіз оны 24 сағат ішінде көргіңіз келсе, біреуін нөлге айналдырыңыз.

Содан кейін эскизді тақтаға жүктеңіз, кіру нүктесіне (wifi менеджері) қосылыңыз және Wi -Fi туралы мәліметтерді енгізіңіз. Егер сіз мұны бұрын жасаған болсаңыз, сіз экранда «қосылған» айналдыруды көресіз және бірнеше секундтан кейін уақытты көресіз.

Бұл жоба үшін бұл - қарапайым және қолдануға оңай ….

(Мүмкін болатын жақсартулар: айды, күнді және жылды көрсетіңіз, дыбыстық сигнал мен дабылдарды орнатыңыз - әдетте веб -бет арқылы көріп отырғаныңызды басқарыңыз. Бұл идея ағымдағы қарапайым эскизді қайта жазуды қажет етеді)

Басқа қарапайым жобаға дайынбыз - ХҒС қай жерде орналасқанын көрсетіңіз - Болжамдарды жіберіңіз және ғарышта қанша адам бар! (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 болжау дисплейі, бұл жоба процессордың 2 -ші ядросын қолданады. Ол ХҒС қаншалықты жақын (мильде) орналасқанын, сіздің орналасқан жеріңізде келесі ХҒС қашан өтетінін (UTC уақытында) және ғарышта қанша адам болатынын көрсетеді. Бұл ақпараттың көп бөлігі жиі өзгермейтіндіктен, біз 2 -ші ядро арқылы тек 15 минут сайын қанша адам ғарышта болатынын болжаудың жаңартылуын тексереміз. Біз осылайша серверге тым көп API қоңырауларының алдын аламыз. Бұл жоба әлдеқайда күрделі, бірақ әлі де оңай.

Бұл жоба менің осы жерден табуға болатын бұрынғы жобаларымның біріне негізделген:

(ISS хабарландыруларының қарапайым жүйесі) Мен бортында OLED экраны бар ESP8266 қолдандым (D-Duino). Бұл жобаның көп бөлігінде басқа дисплей жүйесі пайдаланылады, мен оны кеңейттім, осылайша сіз көргіңіз келетін нәрсені веб -бет арқылы өзгерте аласыз. Ендеше, бастайық ….

Қолдануға ыңғайлы несиенің көп бөлігі https://open-notify.org сайтында орналасқан, оның ішінде өте қарапайым және қарапайым API бар. Open-notify API-де көрсетуге болатын үш нәрсе бар: ХҒС-тың ендік пен бойлықта орналасуы, берілген ендік пен бойлыққа негізделген болжамды жіберу. Ақырында ғарышта қанша адам (және олардың есімдері) бар.

Бізге басқа кітапхана - ArduinoJson кітапханасын орнату қажет болады.

github.com/bblanchon/ArduinoJson

Бізге TimeLib.h қажет, бірақ мен оны қайдан алғанымды немесе IDE -ге қосылғанын білмеймін (кешіріңіз).

ХҒС қай жерде болатынын болжаудың қажеті жоқ - ХҒС -те әр түрлі әуесқойлық радиоаппаратурасы бар, ал «басынан жоғары» кезде ветчина операторы ХҒС -пен өте қарапайым (және арзан) радиостанциялардың көмегімен байланыс орната алады. Мен мұны ұялы телефонмен де жүргіздім (көлікте). Бұл жұмысты орындау үшін сізге көп нәрсе қажет емес. Сізге қажет нәрсе - оның қайда екенін білу. Антеннаны жалпы бағытқа бағыттау көмектеседі.

57, 58, 59 -жолдар дисплейдің кейбір айнымалылары - егер олар 1 -ге қойылса, сіз дисплейді көресіз, егер олар 0 (нөлге) орнатылса, сіз дисплейді көрмейсіз. (Бұл айнымалыларды эскизде орнатуға болады немесе өрт сөндіруші жасаған веб -беттен жаңартуға болады - бұл туралы толығырақ кейінірек).

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; float mylon = -84.58558;

Өзгерту керек нәрсенің бәрі осы болуы керек. Эскизді жүктеп, Firebeetle -ді интернетке қосыңыз - сонда сіз ХҒС -тың орналасқан жерін және оның қанша миль қашықтықта орналасқанын көресіз (бұл шамамен қашықтық болатынын есте сақтаңыз. ХҒС өте жылдам қозғалады және дисплей аяқталғанға дейін ХҒС орнынан көптеген шақырымға жылжып кетті). Сіз ғарыштағы адамдарды да көруіңіз керек. (Егер сіз жоғарыдағы айнымалы мәнді өзгертпесеңіз).

Біз веб-сайтты іске қосу үшін ESP32 екінші ядросын қолданамыз, сайтты пайдалану бізге LED-матрицада көрсетілетін нәрсені бақылауға мүмкіндік береді. Бұл қалай жұмыс істейтіні туралы интуитивті болуы керек, бір бөлімде дисплейде не қосылғанын көрсетеді, басқа бөлімде «иә», «жоқ» түймелері бар - «иә» түймесін басу оны көргіңіз келетінін білдіреді, «жоқ» дегенді білдірмейді көрсетпе. Жоғарғы бөлім түймелер негізінде өзгеретінін көруіңіз керек.

Бұл жерде кептірілмеген жалғыз нәрсе - бұл Firebeetle -дің IP -адресін қалай табу керек - өкінішке орай, мен оны табудың жақсы әдісін таба алмадым - сондықтан мен IDE -дің сериялық консолін көрсету үшін қолдандым. бұл (9600 бауд).

Консольді ашыңыз, сонда сіз IP мекенжайын көресіз. (қосылған хабарды алғанға дейін оны ашыңыз) - менің басқа таңдауым - оны LED матрицасында бірден іске қосу кезінде - мен бұған қарсы шешім қабылдадым, себебі сіз уақытты қарамайсыз және оны жіберіп аласыз. Мен смс -хабарлама немесе басқа нәрсе жіберуді ойладым, бірақ ақыр соңында мен оны қарапайым ұстаймын. (Мен сондай -ақ статикалық IP/шлюз/т.б тағайындауға тырыстым, мен оны Wi -Fi менеджерімен дұрыс жұмыс жасай алмадым - код әлі де эскизде, сондықтан біреу түсінсе, маған хабарлаңыз)

Эскиз сонымен қатар ESP32 ядросына FreeRTOS құруды қосады - Бізде әр 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 -ті жалпыға ортақ функцияға айналдырдым.

Бұл жолы мен өзгертілген кітапхананы эскиздер каталогына қойдым, сондықтан сізге кітапхананы қайта орнатудың қажеті жоқ, эскиз алдымен өзіне қарайды, содан кейін ол кітапхана каталогында көрінеді, сондықтан біз жақсы!

*** Мен бұл өзгерісті DFRobot -ке жіберуді жоспарлап отырмын, себебі бұл эскиздерді жасай алу өте керемет және ұқыпты ***

LED Matrix Images эскизі, мұнда мен алдымен кітапхананың нені қалайтынын және ненің жұмыс істейтінін және болмайтынын анықтауға тырыстым - әр түрлі дәрежеде. Мен 8x8 кескіндері ең жақсы жұмыс істейтінін білдім, бірақ сіз басқаларды да жұмыс істей аласыз. Мен бірнеше онлайн -матрицалық редакторларды таптым, олардың кейбіреулері басқаларға қарағанда жақсы жұмыс істейді.

xantorohara.github.io/led-matrix-editor/-жақсы жұмыс істейді, 8х8 кескін жасайды және сіз оларды байт массивтері ретінде алғыңыз келеді.

www.riyas.org/2013/12/online-led-matrix-fo… бұл жақсы жұмыс істейді және 8х8-ден үлкен дисплей жасауға мүмкіндігі бар, дисплей осы дисплейдің бүйірінде қосылған сияқты дегенмен Байт массивтері мұнда жақсы жұмыс істейтін сияқты. Мен оны жоғарыдағы видеода көрген «ғарыштық басқыншыларды» жасау үшін қолдандым.

Сонымен, бұл қалай жұмыс істейді, drawImage (const байт * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);

image байт массивінің айнымалысы, кескіннің ені (8), кескіннің биіктігі (8), экрандағы бастапқы позиция x (0), y (0) әдетте және мен емес офсеттік нөмір Не істейтініне 100% сенімдімін, сондықтан мен оны нөлге қалдырдым.

LED Matrix Images эскизінде - 8 түрлі байт массивтері бар - олардың үш түрлі әдісі бар.

- отшашу - бұл бірінші массив, шынымды айтсам, мен оның қалай жұмыс істейтінін білмеймін - бірақ ол жұмыс істейді.

келесіде аузы бар - бұл дұрыс жұмыс істемейді, аузы біреу үшін дұрыс емес жол жасайды, және кез келген өзгерістер жасауға тырысу оны нашарлатады. (ненің жұмыс істейтінін, не істемейтінін білу - көңілділіктің жартысы)

Бірінші marioImg келді - бұл дисплей үшін тым үлкен, және менің ойымша, бұл жерде өшіру жиынтығы пайда болады - мен оны осында қолдандым, егер сіз офсетті 1 -ге ауыстырсаңыз, сіз Марионың алдыңғы жағын көре аласыз. Мен оның артқы жағын көремін. (сіз не себепті немесе не істеу керектігін нақты айта алмаймын. Суретті басқа жаққа бұрып жіберетін сияқты, бірақ неге оның алдын көре аласыз және неге 1 басқа бағытты ауыстырады, мен сізге айта алмаймын)

КЕСІРІМДЕР - байт массиві - бұл мен жасаған @ белгісі - бұл құралды https://xantorohara.github.io/led-matrix-editor мекен -жайы бойынша жасағанға ұқсайды.

pic1 байт массиві мен жасағым келетін нәрсеге ұқсайды, тек мен тырысқаннан кіші - мен айта алмаймын, бірақ мен айта аламын, бұл редакторда не істеген сияқты.

mario2Img - бұл 8x8 экран өлшеміне арналған үлкен Марионың менің жеке нұсқасы - және сіз бір немесе екі пиксельді орнындасыз (менің кінәм дисплейлер емес), ол кішкентай Мариоға ұқсайды.

invader1 және invader2 - менің ғарыштық басқыншы туралы ойым. олар өте жақсы болып шықты және суреттерді бір -бірінің үстіне қою арқылы мен аяқтың қозғалу әсерін жасай аламын.

Анықтамалықта екі отшашу эскизі бар, олардың әрқайсысы сәл өзгеше және сынап көруге тұрарлық.

Біреуінде экранда фейерверк қозғалады, сондықтан сәл басқа/басқа анимация… екіншісінде бір мезгілде екі отшашу көрсетіледі.

Сондай -ақ, үш «басқыншылардың» эскиздері бар, олардың әрқайсысы біршама ерекшеленеді, басқыншының экранда қозғалысы бар, және сіз менің мұны қалай істегенімді қарай аласыз - (мұны істеудің жақсы жолдары бар, мен білмеймін)

Тағы да: Репозиторийдің тестілеу каталогында бірнеше эскиздер бар - олардың көпшілігі мен қалағандай жұмыс істемеді немесе мен жасағым келетін идеялар болды, бірақ мен қалағандай болмады. Мен оларды тастап кеттім, себебі менің ойымда біреу бар *(мен ISS дисплейінде пайдалану үшін WS2812 пиксельі бар кішкентай «қалқан» жасадым, бірақ мен оны 3в желісіне қостым, менде жеткіліксіз болды. жарық диодты матрицамен жұмыс істегенде, пиксель жақсы жұмыс істеді, светодиод матрицасы жоқ, сондықтан мен әлі де онымен жасай алатын нәрсе бар)*

Сондай -ақ, «Басқа мысалдар» деп аталатын каталог бар - бұл жобаның кейбір эскиздерінің нұсқалары, мен бірдеңе қостым немесе алып тастадым немесе қандай да бір жолмен өзгердім. Бұл үшін олар жұмыс істейді - олар соңғы жоба емес. Сондықтан мен оларды қайтадан тастап кеттім, біреу оларға пайдалы нәрсе ала алады. (Мүмкін)

Сізге бұл жобалар маған ұнағандай ұнады деп үміттенемін:-)

11 -қадам: Сілтемелер …

Бұл жобаға DF Robot демеушілік және қолдау көрсетті. Өнімдер үшін төмендегі сілтемелерді қолданыңыз:

Firebeetle ESP32 -

Firebeetle қақпағы 24x8 жарықдиодты матрица -

Менің код репозиторийім:

Егер сізге осы немесе кез келген менің жобаларым пайдалы немесе ұнайтын болса, мені қолдаңыз. Мен алатын барлық нәрсе бөлшектерді сатып алуға және жобаларды жақсартуға бағытталған.

www.patreon.com/kd8bxp

NTPClient кітапханасы

ArduinoJson.h

ESP8266 ауа райы кітапханасы

Json-Streaming-Parser кітапханасы

Ұсынылған: