Мазмуну:

DFRobot FireBeetle ESP32 жана LED Matrix Cover колдонуу менен 4 долбоор: 11 кадам (Сүрөттөр менен)
DFRobot FireBeetle ESP32 жана LED Matrix Cover колдонуу менен 4 долбоор: 11 кадам (Сүрөттөр менен)

Video: DFRobot FireBeetle ESP32 жана LED Matrix Cover колдонуу менен 4 долбоор: 11 кадам (Сүрөттөр менен)

Video: DFRobot FireBeetle ESP32 жана LED Matrix Cover колдонуу менен 4 долбоор: 11 кадам (Сүрөттөр менен)
Video: FireBeetle 2 ESP32 S3 WROOM-1 getting started tutorial 2024, Июль
Anonim
Image
Image
Долбоорлор үчүн жалпы китепканаларды орнотуу
Долбоорлор үчүн жалпы китепканаларды орнотуу

Мен бул долбоорлордун ар бирине инструктивдүү нерсе кылууну ойлодум - бирок аягында мен эң чоң айырмачылык - бул ар бир долбоордун программалык камсыздоосу деп ойлодум, мен жөн эле бир чоң көрсөтмө берүү жакшы деп ойлодум!

Аппаратура ар бир долбоор үчүн бирдей жана биз ESP32 түзмөгүн программалоо үчүн Arduino IDE колдонуп жатабыз.

Аппаратура деген эмне: Бардык жабдыктар DFRobotтогу досторум тарабынан берилген, аларда абдан жакшы окуу куралдары бар жана бул үчүн негизги такталарды орнотуу оңой. Ошондой эле жакшы колдоо системасы бар жана АКШга абдан тез жеткирүү.

Firebeetle ESP32 тактасын жана LED Matrixти толук ачып берүү DF Robot тарабынан берилген, сунушталган жана видеолордо меники.

Бул долбоорлордун бардыгы DFRobot FireBeetle ESP32 IOT микроконтроллерин колдонушат

www.dfrobot.com/product-1590.html

Колдоо вики - тактайдын негизги орнотуу көрсөтмөлөрү менен бул жерден тапса болот:

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

Ошондой эле бизге FireBeetle 24x8 LED матрицасын жабуу керек (КӨК)

www.dfrobot.com/product-1595.html

КӨК леддерди жактырбаңыз - Алардын түсү да ар түрдүү.

ЖАШЫЛ -

КЫЗЫЛ -

АК -

САРЫ -

Сизге бир гана LED Matrix керек - түс сиз каалагандай, баары бирдей иштейт.

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: Аскердик убакыт дисплейи же AMPM убакыт дисплейи бар жөнөкөй LED Matrix NTP сааты, Бул саат NTPге (убакыт серверине) туташып, убакытты алат жана өчүрүү топтомун колдонот, ошондо сиз жергиликтүү убакытты аласыз. Бул LED матрицасында убакытты көрсөтөт. - Бул абдан жөнөкөй саат жана абдан жөнөкөй 1 -долбоор.

Долбоор 2: ISS Pass Prediction Display, бул долбоор процессордун 2 -ядросун колдонот. Бул ISS канчалык жакын (миля менен) экенин көрсөтөт, качан кийинки ISS сиздин ордуңузда өтөт (UTC убактысы боюнча) жана космосто канча адам бар. Бул маалыматтын көбү тез -тез өзгөрбөгөндүктөн, биз 2 -ядрону 15 мүнөт сайын космосто канча адам бар экенин алдын ала билүү үчүн гана колдонобуз. Биз серверге өтө көп API чалуулардын алдын алабыз. Бул долбоор бир аз татаалыраак, бирок ошентсе да аткарууга оңой.

3 -долбоор: MQTTди колдонуу менен жөнөкөй кыймылдуу билдирүү белгиси, мен ESP8266 D1 мини тактасы үчүн жасалган долбоорду кайра карап чыктым, ал 8x8 LED Matrix - Идея MQTT брокерине туташуу, түзмөк болгон темага билдирүү жөнөтүү. угуу - жана бул билдирүүнү көрсөтүү. Баары жөндөлгөндөн кийин жасоо абдан оңой жана абдан жөнөкөй. Жана стол компьютеринде MQTT кардар программасын орнотуу үчүн бир нече кадамдар бар. MQTT орнотулгандан кийин, билдирүүлөрдү жөнөтүү жана алуу үчүн көптөгөн IoT түзмөктөрү тарабынан колдонулган абдан күчтүү билдирүү протоколу.

Долбоор 4: Аба ырайы станциясынын дисплейи - Squix78 жана ThingPulse тарабынан жасалган ESP8266 D1 мини аба ырайынын станциясына негизделген. Биз Wundergroundдан маалыматтарды алып, учурдагы шарттарды жана температураны Фаренгейт градусунда көрсөтөбүз. Биз ESP32нин 2 -ядросун колдонобуз, биздин маалыматтарды ар бир 10 мүнөт сайын жаңыртып турат. Бул жөндөө үчүн да жөнөкөй.

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

Кел, баштайлы ….

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

Ошентип, мен сизди Arduino IDE үчүн тактанын өзөгүн орнотуу боюнча DF Robot Wikiге шилтемекчимин.

Заманбап IDE (1.8.x же андан жакшыраак) менен жасоо абдан оңой.

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

Мен Arduino IDEге орнотулган WiFi китепканасы көйгөйлөрдү жаратарын таптым (PS китепканаңыздын каталогуна орнотулган башка WiFi китепканасы көйгөйлөрдү жаратышы мүмкүн). Маселени чечүүнүн бирден бир жолу (же жок дегенде эң оңой жолу) - WiFi китепканасын IDE каталогунан алып салуу. Тилекке каршы, ал кайда орнотулганын айтуунун жакшы жолу жок - бул IDE кандай орнотулганына жана кайсы OS колдонуп жатканыңызга байланыштуу.

Мен эмне кылдым, көйгөйлөрдү жаратып жаткан WiFi китепканасы табылды, жана WiFi каталогунун каталогун столго жылдырыңыз … жана IDEди кайра иштетиңиз. Ошентип, сиз китепкананы Arduino WIFI такталарына муктаж болсоңуз сактай аласыз.

Мен көргөн көйгөйлөрдүн 90% жогорудагы маселеге байланыштуу болгон. Эгерде сиз Arduino IDE каталогунан же Arduino Китепкана каталогунан WiFi колдонууга байланыштуу көптөгөн компиляция каталарын алсаңыз, бул сизде болгон көйгөй.

Менин 2 -маселем, кээде эскиз жүктөө жүктөлбөй калат - Мындай учурда мен жөн гана жүктөө баскычын басуум керек, ал иштейт.

Акырында, эгер сизде сериялык консол ачык болсо, анан аны жаап коюңуз - 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 менеджери аркылуу Wi -Fi тармагыңызга туташууну жеңилдетет - мен муну чечтим, эгер сиз долбооруңузду жылдырышыңыз керек болсо, тактайды кайра программалоонун кажети жок. Бул мен ESP8266 такталары үчүн колдонгон нерсе жана ал жакшы иштейт - бул идеалдуу эмес. Китепкананы колдонуу бактысы bbx10 аттуу github колдонуучусу тарабынан ESP32ди колдонууга берилди. (Бул менеджер ESP8266 такталары менен да иштеши керек)

Бул үчүн үч китепкананы орнотушубуз керек.

WiFiManager -

WebServer -

Жана акыры DNSServer -

LED эсеби үчүн 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 китепкана каталогуна жылдырышыңыз керек. Бул долбоорлор үчүн бул версияны колдонуунун кажети жок, эгер сиз бонустук мисалдардан кичине тамгаларды сынап көргүңүз келсе, бул керек.

Бул жалпы китепканалар - биз ар бир долбоор үчүн белгилүү бир китепканаларды орнотобуз.

LED матрицасына өтөлү ….

4 -кадам: 24x8 LED Matrix Cover

24x8 LED Matrix капкагы
24x8 LED Matrix капкагы
24x8 LED Matrix капкагы
24x8 LED Matrix капкагы
24x8 LED Matrix капкагы
24x8 LED Matrix капкагы

Анткени биз LED матрицасы үчүн DF робот үйрөткүчү менен бирге барабыз

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

Киришүү: Бул 24 × 8 LED Matrix дисплейи FireBeetle сериясы үчүн атайын иштелип чыккан. Бул аз энергия керектөө режимин жана жылдыруучу дисплейди колдойт. HT1632C жогорку сапаттагы LED драйвер чипи менен, ар бир леддин көз карандысыз реестри бар, бул өзүнчө башкарууну жеңилдетет. Бул 256KHz RC саатын, аз кубаттуу режимде 5uA гана бириктирет, 16 масштабдуу PWM жарыктыгын жөнгө салууну колдойт. Бул продукт Arduino UNO сыяктуу башка Arduino микроконтроллери менен да иштейт.

Мүнөздөмөсү:

  • Иштөө чыңалуусу: 3.3 ~ 5VLED
  • Түсү: Бир түс (Ак/Көк/Сары/Кызыл/Жашыл)
  • Drive Chip: HT1632C
  • Иштөө ток: 6 ~ 100mA
  • Аз кубат керектөө: 5uARC
  • саат: 256KHz
  • Чип тандоо (CS): D2, D3, D4, D5 тандалма
  • Жылдыруучу дисплейди колдоо

Демейки PIN коддор:

  1. DATAD6
  2. WRD7 (Көбүнчө колдонулбайт)
  3. CSD2, D3, D4, D5 тандалма (D2 демейки)
  4. RDD8
  5. VCC 5VUSB; 3.7VLipo батареясы

(Бул долбоорлордун бардыгы тандалган пин үчүн D2ди колдонушат, муну керектүү учурда оңой эле өзгөртүүгө болот.)

LED Matrixтин артында 4 кичине өчүргүчтү көрөсүз, CS казыктарынын бирин гана тандап алыңыз. Бул кичинекей өчүргүчтөр, сиз CS пиниңизди кантип тандайсыз жана демейки 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 жеринде бир LEDди күйгүзөт, ал эми clrPixel x, y жайгашкан жердеги LEDди өчүрөт.

Бул китепкана кыла ала турган дагы башка нерселер бар - жана көбү мисалдарга киргизилген.

(Мен эмне кыла аларын билиш үчүн мисалдарды иштетүүнү жана өзгөртүүнү сунуштаар элем).

* Бир нерсе жетишпейт окшойт - битмаптарды тартуу - китепкана чындыгында муну жасай алат, бирок эмнегедир бул китепкананын жеке функциясы. Китепкананын бир аз өзгөртүлгөн версиясы үчүн менин бонустук мисалдарымды караңыз

** Дагы бир нерсе, 5х4 шрифт топтомун камтыйт, бул кичине шрифтке ээ болуу жакшы - бул китепканада качандыр бир кезде жазылган. Мен аны комментарийсиз кылып, иштедим, бирок аны менен бир нече маселени байкадым - эң чоңу ал жылбайт. Мен байкадым, бул Wi -Fi менен көйгөйлөрдү жаратат окшойт, же мен колдонууну каалаган башка китепкана.

Мен киргизген өзгөртүлгөн китепканалардын бири, бирок 5x4 шрифтин колдонот.

Долбоорлорго өтөлү ….

5 -кадам: Долбоор 1: Аскердик убакыт дисплейи же AMPM дисплейи бар жөнөкөй LED Matrix NTP сааты

Долбоор 1: Аскердик убакыт дисплейи же AMPM дисплейи бар жөнөкөй LED Matrix NTP сааты
Долбоор 1: Аскердик убакыт дисплейи же AMPM дисплейи бар жөнөкөй LED Matrix NTP сааты
Долбоор 1: Аскердик убакыт дисплейи же AMPM дисплейи бар жөнөкөй LED Matrix NTP сааты
Долбоор 1: Аскердик убакыт дисплейи же AMPM дисплейи бар жөнөкөй LED Matrix NTP сааты
Долбоор 1: Аскердик убакыт дисплейи же AMPM дисплейи бар жөнөкөй LED Matrix NTP сааты
Долбоор 1: Аскердик убакыт дисплейи же AMPM дисплейи бар жөнөкөй LED Matrix NTP сааты

Долбоор 1: Аскердик убакыт дисплейи же AMPM убакыт дисплейи бар жөнөкөй LED Matrix NTP сааты, Бул саат NTPге (убакыт серверине) туташып, убакытты алат жана өчүрүү топтомун колдонот, ошондо сиз жергиликтүү убакытты аласыз. Бул LED матрицасында убакытты көрсөтөт. - Бул абдан жөнөкөй саат жана абдан жөнөкөй 1 -долбоор.

Бул жөнөкөй долбоорду баштаардан мурун, NTP деген эмне экенин билүү жакшы болмок -

NTP - бул компьютерлердин сааттарын мезгилдештирүү үчүн колдонулган интернет протоколу. Бул стандарттуу протокол. NTP Network Time Protocol дегенди билдирет.

NTP маалымдама убактысы катары UTC колдонот (UTC универсалдуу убакыт координацияланган), ал 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 = AM PM убактысы, 0 = АСКЕР/24 HR убактысы

алмаштыруу менен -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 Prediction Display, бул долбоор процессордун 2 -ядросун колдонот. Ал ISS канчалык жакын экенин көрсөтөт, качан ISS кийинки жерде өтөт деп күтөсүз (UTC убагында) жана космосто канча адам бар. Бул маалыматтын көбү тез -тез өзгөрбөгөндүктөн, биз 2 -ядрону 15 мүнөт сайын космосто канча адам бар экенин алдын ала билүү үчүн гана колдонобуз. Биз серверге өтө көп API чалуулардын алдын алабыз. Бул долбоор бир аз татаалыраак, бирок ошентсе да аткарууга оңой.

Бул долбоор мурунку долбоорлорумдун бирине негизделген, бул жерден табууга болот:

(Жөнөкөй ISS эскертме тутуму) Мен OLED экраны (D-Duino) бар ESP8266 колдондум. Көпчүлүк учурда, бул проект башка дисплей системасын колдонот, мен аны кеңейттим, ошондо сиз веб баракча аркылуу каалаган нерсеңизди өзгөртө аласыз. Андыктан баштайлы ….

Колдонууга оңой болгон кредиттин көбү https://open-notify.org сайтына кирет, анда API абдан жөнөкөй жана колдонууга оңой. Ачык кабарлоочу APIде чагылдырылышы мүмкүн болгон үч нерсе бар: ЭКУнун кеңдикте жана узундукта жайгашуусу, берилген кеңдикке жана узундукка негизделген божомолдорду өткөрүү. Акырында космосто канча адам (жана алардын аттары) бар.

Биз башка китепкананы орнотушубуз керек - ArduinoJson китепканасы.

github.com/bblanchon/ArduinoJson

Бизге дагы TimeLib.h керек, бирок мен аны кайдан алганымды же IDEге киргенин билбейм (кечиресиз) …

ISS кайда болорун алдын ала айтуунун эмне кереги бар - ЭКСте ар кандай ышкыбоздук радио жабдуулары камтылган, ал эми "баштын үстүндө" болгондо ветчина оператору ISS менен кээ бир жөнөкөй (жана арзан) радиолорду колдонуп байланыш түзө алат. Мен муну мобилдик (машинада айдап) жүргөндө деле жасадым. Бул иштөө үчүн сизге чынында көп нерсенин кереги жок. Сизге керек болгон бир нерсе - анын кайда экенин билүү. Жана антеннаны жалпы багытта көрсөтүү жардам берет.

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

int locDis = 1; // ISSint pasDisтин жайгашкан жерин көрсөтүү = 0; // Дисплейдин болжолдоолорун көрсөтүү int pplDis = 1; // Космостогу адамдарды көрсөтүү

Ошентип, locDis ISSтин жайгашкан жерин кеңдикте жана узундукта көрсөтөт - ал канча чакырым алыстыкты көрсөтөт.

pasDis open-notify.org аркылуу өтүү божомолун алат жана аларды көрсөтөт.

жана акырында, pplDis фамилияларын жана космосто канча адам бар экенин көрсөтөт - бул абдан узакка созулушу мүмкүн, андай эмес

же тез -тез өзгөрөт. (буларды өзгөртсөңүз же калтырсаңыз болот, бул толугу менен милдеттүү эмес)

Биз ошондой эле биздин кеңдикти жана узундукту билип, аны эскизге салышыбыз керек.

Бул так/узун болушу керек эмес, бул сиздин шаардын борбору же бир аз эле болушу мүмкүн. ISSтин бутунун басылышы кең, ал эми жүздөгөн (же миңдеген) чакырымдарды басып өтүүгө болот, андыктан бир аз убакытка өчүрүү келишимди бузуучу болбойт (көпчүлүк учурда), 500 милден ашык байланыш абдан таралган.

Эгерде сиз өзүңүздүн кеңдикти жана узундукту билбесеңиз, бул вебсайт сизге жардам берет.

www.latlong.net Эскиздин 84 -сабынын жанында сиз мындай нерсени көрөсүз:

// Бул жерден Узундук жана Узундукту табыңыз // https://www.latlong.net/ float mylat = 39.360095; float mylon = -84.58558;

Мунун баарын өзгөртүү керек. Эскизди жүктөп, Firebeetleди интернетке туташтырыңыз - ошондо сиз ISSтин жайгашуусун лат/узун жана канча чакырым алыстыкта экенин көрүшүңүз керек (бул болжолдуу аралыкты эстен чыгарбаңыз. ISS абдан тез кыймылдайт жана дисплей аяктаганга чейин ЭКС болгон жеринен көп чакырым алыстап кеткен). Сиз ошондой эле космостогу адамдарды көрүшүңүз керек. (Эгерде сиз жогорудагы өзгөрмөнү өзгөртпөсөңүз).

Биз ESP32нин экинчи өзөгүн веб-сайтты иштетүү үчүн колдонуп жатабыз, бул сайтты колдонуу LED матрицасында көрсөтүлгөн нерселерди көзөмөлдөөгө мүмкүнчүлүк берет. Бул кандайча иштээри абдан интуитивдүү болушу керек, бир бөлүм дисплейде эмне күйгүзүлгөнүн көрсөтөт, башка бөлүмдө "ооба" "жок" баскычтары бар - "ооба" чыкылдатып, аны көргүңүз келет, "жок" деген мааниси жок көрсөтпө. Ошондой эле, баскычтардын негизинде жогорку бөлүмдүн өзгөргөнүн көрүшүңүз керек.

Бул жерде кесилген жана кургак болбогон жалгыз нерсе - Firebeetleдин IP дарегин кантип табуу - тилекке каршы мен аны табуунун жакшы жолун таба алган жокмун - ошондуктан мен IDEдин сериялык консолун көрсөтүү үчүн жөн эле колдондум. ал (9600 байт).

Консолун ачыңыз, жана сиз IP дарегин көрүшүңүз керек. (Байланышкан билдирүүнү ала электе ачыңыз) - менин башка чечимим, аны LED матрицасында бир жолу баштоодо көрсөтүү болчу - мен буга каршы чечим кабыл алдым, анткени сиз убакытты карабайсыз жана аны сагынасыз. Мен смс же башка нерсе жөнөтүүнү ойлонуп көрдүм, бирок аягында мен жөн эле сактайм. (Мен дагы статикалык 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 = "жалкоо"

Bonus Part 2 - Сүрөттөрдү көрсөтүү
Bonus Part 2 - Сүрөттөрдү көрсөтүү
Bonus Part 2 - Сүрөттөрдү көрсөтүү
Bonus Part 2 - Сүрөттөрдү көрсөтүү
Bonus Part 2 - Сүрөттөрдү көрсөтүү
Bonus Part 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ге алмаштырсаңыз, Марионун алдыңкы бөлүгүн көрө аласыз ' анын арт жагын көрөм. (сен мен чындап эле эмне үчүн же эмне офсет кылганын айта албайм. Бул сүрөттү башка жакка буруп жиберет окшойт, бирок эмне үчүн 2 аны жылдырат, ошон үчүн анын маңдайын көрө аласың жана эмне үчүн 1 башка жакка жылат, мен сага айта албайм)

СҮРӨТТӨР - байт массиви - бул мен жасаган @ белги - https://xantorohara.github.io/led-matrix-editor дареги боюнча мен жасаган нерсеге окшош

pic1 байт массиви мен жасагысы келген нерсеге окшош, болгону мен аракет кылгандан кичине - мен муну айта албайм, бирок жалпысынан алганда редактордо эмне кылып жатканым окшойт деп айта алам.

mario2Img - бул менин чоңураак Марионун 8х8 экраны үчүн чыгарган өзүмдүн версиям - жана сиз бир же эки пикселдин ордунан чыкпайсыз (менин күнөөм, дисплейлер эмес), ал кичинекей Марио окшойт.

invader1 жана invader2 - менин космостук баскынчы үчүн менин оюм. алар абдан жакшы болуп чыкты, жана сүрөттөрдү бири -биринин үстүнө коюп, мен буттардын кыймылынын эффектин түзө алам.

Каталогдо эки фейерверк эскизи бар, ар бири бир аз башкача жана сынап көрүүгө арзыйт.

Биринде фейерверк экранда жылып турат, андыктан бир аз көбүрөөк/башка анимация… экинчисинде бир убакта эки фейерверк көрсөтүлөт

Ошондой эле үч "баскынчылардын" эскиздери бар, алардын ар бири бир аз башкача, баскынчы экранда жылып жатат жана сиз менин муну кантип кылганымды карасаңыз болот (муну кылуунун жакшы жолдору бар, мен билбейм)

Дагы: Репозиторийдин тестирлөө каталогунда кээ бир эскиздер бар - булардын көбү мен каалагандай иштеген жок, же мен каалагандай болгон, бирок мен каалагандай болгон жок. Мен аларды таштап кеттим, анткени кимдир бирөө кээ бир идеяларга ээ *(мен ISS дисплейинде колдонуу үчүн WS2812 пикселдүү кичинекей "калкан" жасадым, бирок мен аны 3v линиясына туташтырдым, жана жетишсиз эле) LED матрицасы менен иштегенде, пиксел жакшы иштеди, сизде LED Matrix жок, андыктан дагы деле мен кыла турган нерсе бар)*

"Дагы мисалдар" деп аталган каталог дагы бар - бул кээ бир долбоордун эскиздериндеги вариациялар, же мен бир нерсе коштум же алып салдым, же кандайдыр бир жол менен өзгөрттүм. Бул үчүн алар иштешет - алар акыркы долбоор эмес. Ошентип, мен аларды кайра таштадым, кимдир бирөө пайдалуу нерселерди алышы мүмкүн. (Болушу мүмкүн)

Сизге бул проектилерди жасоо мага абдан жакты деп ишенем:-)

11 -кадам: Линкс…

Бул долбоор DF Robot тарабынан каржыланган жана колдоого алынган. Сураныч, өнүмдөр үчүн төмөнкү шилтемелерди колдонуңуз:

Firebeetle ESP32 -

Firebeetle капкагы 24x8 LED матрицасы -

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

Эгерде сиз бул же менин долбоорлорумдун бирин пайдалуу же жагымдуу деп тапсаңыз, мени колдоп коюңуз. Мен алган нерсенин баары көбүрөөк тетиктерди сатып алууга жана көбүрөөк/жакшы долбоорлорду жасоого кетет.

www.patreon.com/kd8bxp

NTPClient китепканасы

ArduinoJson.h

ESP8266 Аба ырайы китепканасы

Json-Streaming-Parser китепканасы

Сунушталууда: