Mundarija:
- 1 -qadam: Loyihalar
- 2 -qadam: DFRobot FireBeetle ESP32 kartasini Arduino IDE -ga o'rnating
- 3 -qadam: Loyihalar uchun umumiy kutubxonalarni o'rnating
- 4 -qadam: 24x8 LED matritsali qopqoq
- 5 -qadam: 1 -loyiha: Harbiy vaqt displeyi yoki AMPM displeyli oddiy LED matritsali NTP soati
- 6 -qadam: 2 -loyiha: ISS Pass bashoratini ko'rsatish,
- 7 -qadam: 3 -loyiha: MQTT yordamida oddiy harakatlanuvchi xabar belgisi
- 11 -qadam: Links …
Video: DFRobot FireBeetle ESP32 va LED matritsali qopqog'idan foydalangan holda 4 ta loyiha: 11 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Men bu loyihalarning har biri uchun ko'rsatma berish haqida o'yladim - lekin oxirida men qaror qildimki, eng katta farq - har bir loyiha uchun dasturiy ta'minot, menimcha, bitta katta ko'rsatma berish yaxshiroq!
Uskuna har bir loyiha uchun bir xil va biz ESP32 qurilmasini dasturlash uchun Arduino IDE dan foydalanmoqdamiz.
Xo'sh, qanday apparat: DFRobot -dagi do'stlarim tomonidan taqdim etilgan barcha jihozlar, ular juda yaxshi darsliklarga ega va buning uchun asosiy taxtalarni o'rnatish oson. Shuningdek, yaxshi qo'llab -quvvatlash tizimi mavjud va AQShga juda tez etkazib berish.
Firebeetle ESP32 taxtasi va LED matritsasini to'liq ochish DF Robot tomonidan taqdim etilgan, taqdim etilgan va videodagi loyihalar meniki.
Ushbu loyihalarning barchasi DFRobot FireBeetle ESP32 IOT MicroController -dan foydalanadi
www.dfrobot.com/product-1590.html
Qo'llab -quvvatlash vikini - yadro yadrosi bilan o'rnatish ko'rsatmalarini bu erda topishingiz mumkin:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Shuningdek, bizga FireBeetle qopqoqlari 24x8 LED matritsasi kerak bo'ladi (KO'K)
www.dfrobot.com/product-1595.html
Moviy LEDlarni yoqtirmang - ularning ranglari ham har xil.
Yashil -
RED -
OQ -
SARI -
Sizga faqat bitta LED matritsasi kerak - rang sizning tanlovingiz, ularning barchasi bir xil ishlaydi.
LED Matrix qo'llab -quvvatlash vikini bu erda topishingiz mumkin:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Bu erda biz Arduino kutubxonasiga havolani topamiz.
github.com/Chocho2017/FireBeetleLEDMatrix
Bular haqida birozdan keyin ….
Majburiy bo'lmagan narsa, lekin, ehtimol, MicroUSB 3xAA batareya ushlagichi.
www.dfrobot.com/product-1130.html
Shunday qilib, bu kerakli uskunalar - 4 ta loyiha nima -
1 -qadam: Loyihalar
Loyiha 1: Harbiy vaqtli displey yoki AMPM vaqtli displeyli oddiy LED matritsali NTP soati, Bu soat NTP (vaqt serveri) ga ulanadi, vaqtni oladi va o'chirish to'plamini qo'llaydi, shunda siz mahalliy vaqtni olasiz. U LED matritsasida vaqtni ko'rsatadi. - Bu juda oddiy soat va juda oddiy birinchi loyiha.
2 -loyiha: ISS Pass bashorat qilish displeyi, bu loyiha protsessorning 2 -yadrosidan foydalanadi. U ISS qanchalik yaqin (milya) yaqinligini, sizning manzilingizda keyingi ISS qachon o'tishini (UTC vaqtida) va ixtiyoriy ravishda kosmosda qancha odam bo'lishini ko'rsatadi. Bu ma'lumotlarning ko'pi tez -tez o'zgarmasligi sababli, biz 2 -yadrodan faqat o'tish bashoratlari yoki har 15 daqiqada qancha odam borligini tekshirish uchun foydalanamiz. Biz serverga juda ko'p API qo'ng'iroqlarini oldini olamiz. Bu loyiha biroz murakkabroq, lekin baribir bajarish juda oson.
3 -loyiha: MQTT yordamida oddiy harakatlanuvchi xabar belgisi, men ESP8266 D1 mini -taxtasi uchun yaratilgan loyihani qayta ko'rib chiqdim va bu 8x8 LED matritsasi - MQTT brokeriga ulanish, qurilma mavzusiga xabar yuborish. tinglash - va bu xabarni ko'rsatish. Hammasi sozlangandan keyin qilish juda oson va juda oddiy. Stol kompyuterida MQTT mijoz dasturini o'rnatish uchun bir necha qadamlar mavjud. MQTT -ni o'rnatgandan so'ng, ko'plab IoT qurilmalari xabarlarni yuborish va qabul qilish uchun foydalanadigan juda kuchli xabarlar protokoli.
4 -loyiha: Ob -havo stantsiyasining displeyi - Squix78 va ThingPulse tomonidan ishlab chiqarilgan ESP8266 D1 mini ob -havo stantsiyasiga asoslangan. Biz Wunderground -dan ma'lumotlarni olamiz va hozirgi sharoit va haroratni Farengeyt darajasida ko'rsatamiz. Biz har 10 daqiqada ma'lumotlarni yangilash uchun ESP32 ning 2 -yadrosidan foydalanamiz. Bundan tashqari, sozlash oson.
BOUNS MINI MASALALARI: Kutubxona (va eskizlar) 8x4 shriftdan foydalanadi, kutubxonada 5x4 shrift ham bor, men bu BOUNS mini -misollarining ko'pchiligi uchun ishlatganman. Kichkina shrift bilan bir nechta muammolarni qayd etishim mumkin, ulardan biri qurilmaning WIFI -dan foydalanganda muammo tug'diradi. Bu men ko'proq o'rganmoqchi bo'lgan narsadir, lekin vaqtim bor edi. Boshqa muammo shundaki, u aylanmaydi, faqat katta shriftni aylantira oladi. Shunday qilib, bu misollarning hech biri WIFI -dan foydalanmaydi - ular faqat displeyni yangilaydilar va ular haqida keyinroq bo'ladi.
Qani boshladik…..
2 -qadam: DFRobot FireBeetle ESP32 kartasini Arduino IDE -ga o'rnating
Shunday qilib, men sizni DF Robot Wiki -ga Arduino IDE uchun taxta yadrosini o'rnatishga taklif qilmoqchiman.
Zamonaviy IDE (1.8.x yoki undan yuqori) bilan ishlash juda oson.
www.dfrobot.com/wiki/index.php/FireBeetle_…
Men Arduino IDE -ga o'rnatilgan WiFi kutubxonasi muammolarga olib kelishini aniqladim (PS kutubxonangiz katalogiga o'rnatilgan boshqa WiFi kutubxonasi muammolarga olib kelishi mumkin yoki bo'lmasligi mumkin). Muammoni hal qilishning yagona yo'li (yoki hech bo'lmaganda eng oson yo'li) - WiFi kutubxonasini IDE katalogidan olib tashlash. Afsuski, qaerda o'rnatilganligini aytishning yaxshi usuli yo'q - bu IDE qanday o'rnatilganiga va qaysi OS ishlatayotganingizga bog'liq.
Men nima qildim, muammolarga olib keladigan WiFi kutubxonasi topildi va WiFi katalogini ish stoliga ko'chiring va IDE -ni qayta ishga tushiring. Shunday qilib, agar kerak bo'lsa, kutubxonani Arduino WIFI kartalari uchun saqlashingiz mumkin.
Men ko'rgan muammolarning 90% yuqoridagi muammo bilan bog'liq. Agar siz Arduino IDE katalogidan yoki Arduino kutubxonasi katalogidan Wi -Fi -dan foydalanish bilan bog'liq ko'plab kompilyatsiya xatolarini olsangiz, bu sizning muammoingiz.
Mening ikkinchi muammom, ba'zida eskiz yuklanmagan bo'lsa - bu holda men yuklash tugmachasini yana bosishim kerak va u ishlaydi.
Va nihoyat, agar sizda seriyali konsol ochiq bo'lsa va keyin uni yopib qo'ysangiz - FireBeetle muzlab qoladi.
Bilaman, DF Robot karta yadrosi ustida faol ishlamoqda va men taxtaga ega bo'lganimdan qisqa vaqt ichida ular yangi yadroni chiqarishdi. Afsuski, u WiFi muammosini hal qilmadi, bu mening eng katta muammom.
* Espressif -da "umumiy" yadro menejeri o'rnatilishi mumkin, uning yadrosi FireBeetle ESP32 kartasini o'z ichiga oladi, lekin menda pinlar qanday raqamlanganligi bilan bog'liq muammo bor edi. Bu erda qiziq narsa shundaki, WiFi kutubxonasi o'rnatilgan WiFi kutubxonasi bilan ishlaydi, shuning uchun men bilaman, bu muammoni hal qilish uchun burchak yaqinida.
Agar siz Espressif yadrolarini sinab ko'rmoqchi bo'lsangiz, qo'shimcha ma'lumotni bu erda topishingiz mumkin:
github.com/espressif/arduino-esp32
Menga DF-Robot yadrosi qanday ishlashini yoqtiradi, hatto menda mavjud bo'lmagan muammolar ham.
** QAYD: Men Ubuntu 16.04 asosidagi LinuxMint 18 -dan foydalanayapman, menimcha, men buni boshqa mashinada sinab ko'rmaganman, lekin menimcha, bu muammo men qilgan ba'zi internet qidiruvlariga asoslanib, barcha operatsion tizimlar uchun mavjud. **
3 -qadam: Loyihalar uchun umumiy kutubxonalarni o'rnating
Bu loyihalarning barchasi bir nechta umumiy kutubxonalardan foydalanadi, shuning uchun hozir bu qadamni bajarish osonroq.
Kutubxonaga qarab, uni kutubxona menejeridan topishingiz mumkin - bu kutubxonani o'rnatishning eng oson yo'li.
Yana bir keng tarqalgan usul - zip fayli orqali o'rnatish, u ham bir xil ishlaydi. Lekin men odatda qo'lda o'rnatish usulini ishlataman. Arduino veb -saytida uchta usul bo'yicha yaxshi qo'llanma mavjud.
www.arduino.cc/en/guide/libraries
Bu kutubxonalar uchun men qo'lda usulni tavsiya qilardim - chunki bir xil nomdagi bir nechta kutubxonalar mavjud, chunki kutubxona menejeridan foydalanib, siz noto'g'ri yo'l tutishingiz mumkin.
Bu loyihalarning hammasi Wi -Fi menejeridan foydalanib, Wi -Fi tarmog'iga ulanishni osonlashtiradi - men shunday qaror qildim, agar siz loyihangizni boshqa joyga ko'chirishingiz kerak bo'lsa, taxtani qayta dasturlashingiz shart emas. Bu men ESP8266 taxtasi uchun ishlatadigan narsa va u yaxshi ishlaydi - bu mukammal emas. Kutubxonadan foydalanish omadini bbx10 ismli github foydalanuvchisi ESP32 -dan foydalanishga topshirdi. (Bu menejer ESP8266 platalari bilan ham ishlashi kerak)
Buning uchun biz uchta kutubxonani o'rnatishimiz kerak.
WiFiManager -
Veb -server -
Va nihoyat, DNSServer -
LED matritsasi uchun DF Robot DFRobot_HT1632C kutubxonasi ham barcha eskizlar uchun umumiydir.
www.dfrobot.com/wiki/index.php/FireBeetle_…
Kutubxonani bu erda topishingiz mumkin (Yana qo'lda o'rnatish usulini tavsiya qilaman)
github.com/Chocho2017/FireBeetleLEDMatrix
Maxsus eslatma: mening github omborida - menda biroz o'zgartirilgan DFRobot_HT1632C kutubxonalari bor
github.com/kd8bxp/DFRobot-FireBeetle-ESP32…
O'zgartirish kichik shrift uchun mo'ljallangan va faqat bonusli misollar uchun ishlatiladi. Siz o'zgartirilgan kutubxonadan foydalanishingiz mumkin va u hech qanday muammo tug'dirmasligi kerak. Bitmap tasvirlarni qila oladigan biroz o'zgartirilgan kutubxona ham bor (ba'zi eskizlarga yorliq sifatida biriktirilgan).
Agar siz biroz o'zgartirilgan versiyadan foydalanishni tanlasangiz, "o'zgartirilgan kutubxona" katalogini FireBeetleLEDMatrix deb o'zgartirishingiz va bu papkani Arduino kutubxonasi katalogiga ko'chirishingiz kerak. Ushbu loyihalar uchun ushbu versiyadan foydalanish shart emas, agar siz bonus misollaridan kichikroq shriftlarni sinab ko'rmoqchi bo'lsangiz.
Bu umumiy kutubxonalar - biz har bir loyiha uchun maxsus kutubxonalarni o'rnatamiz.
LED matritsasiga o'tamiz.
4 -qadam: 24x8 LED matritsali qopqoq
Chunki biz LED matritsasi uchun DF robot qo'llanmasini kuzatib boramiz
www.dfrobot.com/wiki/index.php/FireBeetle_…
Kirish: Bu 24 × 8 LED matritsali displey FireBeetle seriyasi uchun maxsus mo'ljallangan. U kam quvvat sarflash rejimini va ekranni aylantirishni qo'llab-quvvatlaydi. HT1632C yuqori samarali LED haydovchi chipi bilan har bir LEDda alohida registr mavjud, bu esa alohida haydashni osonlashtiradi. U 256 kGts chastotali RC soatini birlashtiradi, kam quvvatli rejimda faqat 5uA, 16 o'lchovli PWM yorqinligini sozlashni qo'llab-quvvatlaydi. Ushbu mahsulot, shuningdek, Arduino UNO kabi boshqa Arduino mikrokontrollerlari bilan ishlaydi.
Xususiyat:
- Ishlash kuchlanishi: 3.3 ~ 5VLED
- Rang: bitta rang (oq/ko'k/sariq/qizil/yashil)
- Drayv chipi: HT1632C
- Ish oqimi: 6 ~ 100mA
- Kam quvvat sarfi: 5uARC
- soat chastotasi: 256 kHz
- Chip tanlash (CS): D2, D3, D4, D5 tanlanishi mumkin
- Ekranni aylantirishni qo'llab -quvvatlash
Standart PIN kodlar:
- DATAD6
- WRD7 (Odatda ishlatilmaydi)
- CSD2, D3, D4, D5 tanlanishi mumkin (D2 sukut bo'yicha)
- RDD8
- VCC 5VUSB; 3.7VLipo batareyasi
(Bu loyihalarning barchasi tanlangan pin uchun D2 dan foydalanadi, kerak bo'lganda uni o'zgartirish mumkin.)
LED matritsaning orqa tomonida siz 4 ta kichik kalitni ko'rasiz, faqat CS pinlaridan birini tanlang. Bu kichik kalitlar sizning CS Pin -ni qanday tanlashingiz va sukut bo'yicha D2.
DF Robot WIKI -da ba'zi namunaviy kodlar mavjud, bu kod kutubxona uchun misollarda ham mavjud. (Men ishonaman)
Yana bir eslatma: pinlar uchun Dx raqamlaridan foydalaning, aks holda pin raqamlari IO pin raqamlari/nomlari bo'ladi
Va bu sizga ba'zi muammolarni keltirib chiqarishi mumkin.
Nuqtani o'rnatish:
X - 0 dan 23 gacha (yoki siz elektron jadval sifatida o'ylayotgan bo'lsangiz, bu ustunlar).
Y - 0 dan 7 gacha (yoki agar siz elektron jadval deb o'ylasangiz, bu qatorlar).
Kutubxona belgilangan nuqta funktsiyasini ta'minlaydi.
display.setPoint (x, y) bu kursorni o'sha joyga o'rnatadi, u erda siz hozir xabarni chop etishingiz mumkin.
display.print ("Salom dunyo", 40); // bu displeyda x, y nuqtasidan boshlab va ekranni siljitish orqali "Salom dunyo" ko'rsatilishiga olib keladi.
Bundan tashqari, setPixel (x, y) va clrPixel (x, y) ham bor - setPixel x, y joyida bitta LEDni yoqadi va clrPixel x, y joyidagi LEDni o'chiradi.
Bu kutubxonaning qila oladigan boshqa ishlari ham bor va ularning aksariyati misollarga kiritilgan.
(Men nima qila olishini bilish uchun misollarni ishga tushirishni va o'zgartirishni tavsiya qilaman).
* Bitmaplarni chizish etishmayotganga o'xshaydi - kutubxona aslida buni qila oladi, lekin negadir bu kutubxonaning shaxsiy vazifasi. Kutubxonaning biroz o'zgartirilgan versiyasi uchun mening bonusli misollarimni ko'ring
** Yana bir narsa 5x4 shrift to'plamini o'z ichiga oladi, bu kichikroq shriftga ega bo'lish - bu kutubxonada qanday yozilganligi haqida sharhlar. Men uni izohlamadim va u ishlay boshladi, lekin u bilan bir nechta muammolarni payqadim - eng kattai aylanmaydi. Men shuni payqadimki, bu Wi -Fi bilan bog'liq muammolarga olib kelishi mumkin yoki men foydalanmoqchi bo'lgan boshqa kutubxona.
O'zgartirilgan kutubxonalardan biri 5x4 shriftidan foydalanadi.
Loyihalarga o'tamiz ….
5 -qadam: 1 -loyiha: Harbiy vaqt displeyi yoki AMPM displeyli oddiy LED matritsali NTP soati
Loyiha 1: Harbiy vaqtli displey yoki AMPM vaqtli displeyli oddiy LED matritsali NTP soati, Bu soat NTP (vaqt serveri) ga ulanadi, vaqtni oladi va o'chirish to'plamini qo'llaydi, shunda siz mahalliy vaqtni olasiz. U LED matritsasida vaqtni ko'rsatadi. - Bu juda oddiy soat va juda oddiy birinchi loyiha.
Ushbu oddiy loyihani boshlashdan oldin, NTP nima ekanligini bilish yaxshi bo'lar edi -
NTP - bu kompyuter soatlarini ma'lum vaqtga moslashtirish uchun ishlatiladigan Internet protokoli. Bu standart protokol. NTP tarmoq vaqt protokoli degan ma'noni anglatadi.
NTP mos yozuvlar vaqti sifatida UTCdan foydalanadi (UTC Universal Time Coordinated), u GMT (Grinvich vaqti) dan kelib chiqqan va ba'zi davralarda u Zulu vaqti (Harbiy) deb nomlangan. UTC sezyum atomining kvant rezonansiga asoslangan.
NTP xatolarga bardoshli va juda keng miqyosli, protokoli nanosaniyadan kamroq aniqlikdan foydalangan holda juda aniq.
*
UTC soati ko'pchilik uchun unchalik foydali emas, shuning uchun biz soatimizni mahalliy vaqtga moslashtirishimiz kerak. Yaxshiyamki, biz buni juda oson qilamiz. Shunday qilib, keling, oddiy NTP soatlaridan boshlaylik ….
Birinchidan, biz NTP serverlari bilan gaplashishni osonlashtiradigan kutubxonani o'rnatishimiz kerak.
github.com/arduino-libraries/NTPClient (bu kutubxona kutubxona menejerida bo'lishi mumkin)
Siz 3 -qadamni o'tkazib yubordingizmi va kutubxonalarni qanday o'rnatishni bilmayapsizmi (?) Orqaga qayting va 3 -qadamni o'qing:-)
Siz ushbu veb -saytga kirishingiz va o'zingizga eng yaqin bo'lgan shaharni belgilashingiz kerak.
www.epochconverter.com/timezones
Enter tugmachasini bosganingizda siz "Konversiya natijalari" ni ko'rasiz va natijada siz bir necha soniyalarda sizning ofsetingizni (GMT/UTC farqini) olasiz (men uchun -14400)
66 -satrda dfrobot_firebeetle_led_matrix_ntp_clock eskizida quyidagilarni ko'rasiz:
#define TIMEOFFSET -14400 // Vaqt mintaqangizni o'chirib qo'ying Bu erda https://www.epochconverter.com/timezones O'chirilgan soniyalarda belgilang#AMPM 1 ni belgilang // 1 = AM vaqti, 0 = HARBI/24 HR vaqti
-14400 -ni ofset bilan almashtiring. Keyingi qatorda siz AMPM 1 ni ko'rasiz - bu soatni AM/PMda ko'rsatishga olib keladi - agar siz uni 24 soat ichida ko'rishni xohlasangiz, uni nolga aylantiring.
Keyin eskizni taxtaga yuklang, kirish nuqtasiga (wifi menejeri) ulaning va Wi -Fi ma'lumotlarini kiriting. Agar siz buni allaqachon qilgan bo'lsangiz, ekran bo'ylab "ulangan" aylanishni ko'rasiz va bir necha soniyadan so'ng siz vaqtni ko'rasiz.
Bu loyiha uchun - bu oddiy va ulardan foydalanish oson ….
(Mumkin bo'lgan yaxshilanishlar: Oy, kun va yilni ko'rsatish, ovozli signal va signallarni o'rnatish - odatda veb -sahifa orqali ko'rganingizni boshqaring. Bu fikr hozirgi eskizni qayta yozishni talab qiladi)
Boshqa oddiy loyihaga tayyormiz - ISS qayerda ekanligini ko'rsating - bashoratlarni o'tkazing va kosmosda qancha odam bor! (PS bu eskizda ko'rsatiladigan narsalarni boshqarish uchun veb -sahifadan foydalaniladi) ….
6 -qadam: 2 -loyiha: ISS Pass bashoratini ko'rsatish,
2 -loyiha: ISS Pass bashorat qilish displeyi, bu loyiha protsessorning 2 -yadrosidan foydalanadi. U ISS qanchalik yaqin (milya) ekanligini, sizning manzilingizda keyingi ISS qachon o'tishini (UTC vaqti bilan) va ixtiyoriy ravishda qancha odam kosmosda bo'lishini ko'rsatadi. Bu ma'lumotlarning ko'pi tez -tez o'zgarmasligi sababli, biz 2 -yadrodan faqat o'tish bashoratlarini yoki har 15 daqiqada qancha odam kosmosda bo'lishini tekshirish uchun foydalanamiz. Biz serverga juda ko'p API qo'ng'iroqlarini oldini olamiz. Bu loyiha biroz murakkabroq, lekin baribir bajarish juda oson.
Bu loyiha mening oldingi loyihalarimdan biriga asoslangan bo'lib, uni bu erda topish mumkin:
(Oddiy ISS xabarnomalari tizimi) Men bortda OLED (D-Duino) displeyli ESP8266 ishlatardim. Ko'pincha bu loyiha boshqa displey tizimidan foydalanadi, men uni kengaytirdim, shunda siz xohlagan narsani veb -sahifa orqali o'zgartirishingiz mumkin. Xo'sh, boshlaylik ….
Kreditning katta qismi https://open-notify.org saytida joylashgan bo'lib, u juda sodda va ishlatish uchun qulay API-ga ega. Open-notify API-da uchta narsa ko'rsatilishi mumkin: ISSning kenglik va uzunlikdagi joylashuvi, berilgan kenglik va uzunlik bo'yicha bashoratlarni o'tkazish. Va nihoyat, qancha odamlar (va ularning ismlari) kosmosda.
Bizga boshqa kutubxona - ArduinoJson kutubxonasini o'rnatish kerak bo'ladi.
github.com/bblanchon/ArduinoJson
Bizga TimeLib.h ham kerak, lekin men buni qaerdan olganimni bilmayman yoki u IDEga kiritilganmi (uzr).
Xo'sh, ISS qaerda bo'lishini oldindan taxmin qilishning hojati yo'q - ISS turli havaskor radio uskunalarini o'z ichiga oladi va agar u "boshi baland" bo'lsa, xam radio operatori ISS bilan juda oddiy (va arzon) radiolar yordamida aloqa o'rnatishi mumkin. Men buni hatto mobil (mashinada haydash) paytida ham qilganman. Bu ishni bajarish uchun sizga ko'p narsa kerak emas. Sizga kerak bo'lgan yagona narsa - bu qaerdaligini bilish. Va antennani umumiy yo'nalishga yo'naltirish yordam beradi.
57, 58, 59 -qatorlar ba'zi displey o'zgaruvchilari - agar ular 1 ga o'rnatilgan bo'lsa, siz displeyni ko'rasiz, agar ular 0 (nol) ga o'rnatilgan bo'lsa, siz displeyni ko'rmaysiz. (Bu o'zgaruvchilar eskizda o'rnatilishi mumkin yoki o't o'chiruvchi yaratadigan veb -sahifadan yangilanishi mumkin - bu haqda keyinroq).
int locDis = 1; // ISSint pasDis joylashuvini ko'rsatish = 0; // O'tish bashoratini ko'rsatish int pplDis = 1; // Odamlarni kosmosda ko'rsatish
shuning uchun locDis XKS joylashuvini kenglik va uzunlik bo'yicha ko'rsatadi - shuningdek, u necha mil uzoqlikda ekanligini ko'rsatadi.
pasDis open-notify.org saytidan o'tish bashoratlarini oladi va ularni ko'rsatadi.
Va nihoyat, pplDis kosmosda qancha odamlarning ismlarini va qancha odamni ko'rsatib beradi - bu juda uzoq davom etishi mumkin, ham tez -tez o'zgarib turadi. (siz ularni o'zgartirishingiz yoki qoldirishingiz mumkin, bu ixtiyoriy)
Shuningdek, biz kenglik va uzunlikni bilishimiz va eskizga qo'yishimiz kerak.
Bu aniq lat/uzun bo'lishi shart emas, u sizning shahringizning markazi bo'lishi mumkin, yoki biroz uzoqda. ISS -ning oyoq izi boshi kengligida va yuzlab (yoki minglab) milni bosib o'tish mumkin, shuning uchun uzoq vaqt davomida biroz to'xtab turish shartnoma buzmaydi (ko'pincha)., 500 kilometrdan oshiq aloqa juda keng tarqalgan.
Agar siz kenglik va uzunlikni bilmasangiz, bu sayt sizga yordam berishi mumkin.
www.latlong.net eskizning 84 -chizig'i yonida siz shunday narsani ko'rasiz:
// Bu erda kenglik va uzunlikni toping // https://www.latlong.net/ float mylat = 39.360095; float mylon = -84.58558;
O'zgartirish kerak bo'lgan hamma narsa shu bo'lishi kerak. Eskizni yuklang va Firebeetle -ni Internetga ulang - shunda ko'rishingiz kerakki, ISS -ning joylashuvi uzoq va uzoq masofada ko'rsatilgan (esda tutingki, bu taxminiy masofa. ISS juda tez harakat qiladi va displey tugagandan so'ng, ISS o'zi turgan joydan ancha uzoqlashdi). Siz kosmosdagi odamlarni ham ko'rishingiz kerak. (Agar siz yuqoridagi o'zgaruvchini o'zgartirmagan bo'lsangiz).
Biz veb-saytni ishga tushirish uchun ESP32-ning ikkinchi yadrosidan foydalanmoqdamiz, bu sayt yordamida LED matritsasida nima ko'rsatilishini nazorat qilish mumkin. Bu qanday ishlashi juda intuitiv bo'lishi kerak, bir bo'limda ko'rsatish uchun nima yoqilganligi ko'rsatilgan, boshqa bo'limda "ha" "yo'q" tugmachalari bor - "ha" tugmasini bosganingizda, siz ko'rishni xohlaysiz, "yo'q" degan ma'noni anglatmaydi ko'rsatma. Bundan tashqari, tugmalar asosida yuqori qism o'zgarishini ko'rishingiz kerak.
Bu erda kesilmagan va qurib bo'lmaydigan yagona narsa bu Firebeetle -ning IP -manzilini qanday topishdir - afsuski, men uni topishning yaxshi usulini topa olmadim - shuning uchun men faqat IDE -ning ketma -ket konsolidan foydalanardim. bu (9600 bod).
Konsolni oching va siz IP -manzilni ko'rasiz. (bog'langan xabarni olishdan oldin uni oching) - mening boshqa tanlovim uni LED matritsasida bir marta ishga tushirish paytida ko'rsatish edi - men bunga qarshi qaror qildim, chunki siz vaqtni ko'rmaysiz va uni o'tkazib yuborasiz. Men sms yoki boshqa biror narsa yuborishni o'ylardim, lekin oxir -oqibat men buni oddiy qilib qo'yaman. (Men ham statik IP/shluzi va boshqalarni belgilashga harakat qildim, men uni Wi -Fi menejeri bilan to'g'ri ishlay olmadim - kod hali ham eskizda, shuning uchun kimdir buni tushunsa, menga xabar bering)
Eskiz, shuningdek, FreeRTOS -ni ESP32 yadrosiga kiritishni ham o'z ichiga oladi - Bizning vazifamiz har 15 daqiqada bir marta bajariladi, bu esa, o'tish bashoratlarini, shuningdek, kosmosdagi odamlarni yangilaydi. Yuqorida aytganimdek, kosmosdagi odamlar unchalik o'zgarmaydi, shuning uchun uni boshqa vazifaga o'tkazish mumkin va har 12 soatda (yoki 6 soatda) bir marta yugurish mumkin - lekin bu ishlaydi va hamma narsa oddiy bo'lib qoladi.
FreeRTOS-ni bilmaydiganlar uchun bitta yadroli mikrokontrolderga ko'p vazifalarni bajarish imkonini beradi
Odatda uni ishlashi uchun siz ba'zi kutubxonalar va boshqa narsalarni kiritishingiz kerak bo'ladi, biroq u ESP32 yadrosiga o'rnatilgan bo'lib, bu ESP32 ni juda kuchli qurilmaga aylantiradi. FreeRTOS haqida ko'proq ma'lumot olish uchun
freertos.org/
Yaxshilashlar: bu loyihani takomillashtirish mumkin bo'lgan bir qancha narsalar bor va deyarli har kuni men biroz boshqacha bo'lishi, o'zgartirilishi yoki qo'shilishi mumkin bo'lgan narsa haqida o'ylayman.
Va yana ko'p misollar omborining katalogida siz ilgari o'ylagan ba'zi narsalarni ko'rishingiz mumkin- bularning ba'zilari ishlamagan, ba'zilari shunchaki o'zgargan, ba'zilari esa hozirgi eskizga kiritilgan.
* Bir paytlar men ekranga neopixel qo'shishga harakat qildim, bu avvalgi loyihamga o'xshab ketadi - men uni hech qachon to'g'ri ishlay olmaganman (men buni elektr quvvati muammosi deb hisoblamaganman) bu g'oyani takomillashtirish yo'lida ishlayapman *
Bu qadamni yozayotganda, men o'ylaymanki, ehtimol men sizning veb -saytingizga kenglik va uzunlikni yangilash usulini qo'sha olaman, shuning uchun eskizni hech qachon o'zgartirish kerak bo'lmaydi - men bu haqda biroz ko'proq o'ylayman.
IP -manzilni olishning takomillashtirilgan usuli - men qilmoqchi bo'lgan boshqa narsa (hali ham bu haqda o'ylayman)
Keling, keyingi loyihamizga o'taylik ….
7 -qadam: 3 -loyiha: MQTT yordamida oddiy harakatlanuvchi xabar belgisi
"loading =" dangasa "" loading = "dangasa"
Ma'lum bo'lishicha, kutubxona rasmlarni ko'rsatishi mumkin - negadir siz bu funktsiyani "xususiy" deb hisoblaysiz - men keyingi eskizlar uchun kutubxonani yana bir bor o'zgartirdim va drawImage -ni ommaviy funktsiyaga aylantirdim.
Bu safar men o'zgartirilgan kutubxonani eskizlar katalogiga joylashtirdim, shuning uchun siz kutubxonani qayta o'rnatishingiz shart emas, eskiz birinchi navbatda o'ziga qaraydi, keyin kutubxona katalogida ko'rinadi, shuning uchun biz yaxshimiz!
*** Men bu o'zgarishni DFRobot -ga topshirishni rejalashtirmoqdaman, chunki bu turdagi eskizlarni bajarish juda zo'r va juda zo'r ***
LED matritsali tasvirlar eskizi, bu erda men birinchi navbatda kutubxona nimani xohlayotganini va nima ishlamasligini - har xil darajadagi muvaffaqiyat bilan tushunishga harakat qilardim. Men 8x8 tasvirlar eng yaxshi ishlashini aniqladim, lekin siz boshqalarni ham ishlashga jalb qilishingiz mumkin. Men bir nechta onlayn matritsali muharrirlarni topdim, ba'zilari boshqalarga qaraganda yaxshiroq ishlaydi.
xantorohara.github.io/led-matrix-editor/-yaxshi ishlayotganga o'xshaydi, 8x8 tasvirni yaratadi va siz ularni bayt massivlari sifatida xohlaysiz.
www.riyas.org/2013/12/online-led-matrix-fo… bu yaxshi ishlaydi va 8x8 dan kattaroq displeylarni yasash imkoniyatiga ega, displey shu displey bilan yon tomonga burilgan ko'rinadi. ammo Bu erda bayt massivlari eng yaxshi ishlaydi. Men buni yuqoridagi videoda ko'rilgan "kosmik bosqinchilar" qilish uchun ishlatganman.
Xo'sh, bu qanday ishlaydi, drawImage (const bayt * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);
tasvir bayt massivining o'zgaruvchisi, tasvirning kengligi (8), tasvirning balandligi (8), ekrandagi boshlang'ich pozitsiyasi x (0), y (0) odatda va ofset raqami, men emas Nima qilishiga 100% ishonchim komil, shuning uchun ko'pincha men uni nolga qo'ydim.
LED matritsali tasvirlar eskizida - 8 xil baytli massivlar - uch xil usulda.
- fişənglar - bu birinchi qatorlar, rostini aytsam, bu qanday ishlashini bilmayman - lekin u ishlaydi.
keyin og'iz bor - bu unchalik to'g'ri ishlamaydi, og'iz birovga noto'g'ri yo'l qo'yadi va har qanday o'zgartirish kiritishga urinish uni yomonlashtiradi. (nima ishlashini va nima ishlamasligini bilish - bu yarmi)
Birinchi marioImg ta'qib qildi - bu displey uchun juda katta, va menimcha, bu erda o'yin o'chiriladi - men bu erda ishlatganman va agar siz ofsetni 1 ga o'zgartirsangiz, siz marioning old qismini ko'rasiz. Men uning orqa qismini ko'raman. (men sizga nima uchun yoki nima ofset qilishini ayta olmayman. Rasmni o'zgartirganga o'xshaydi, lekin nima uchun uni 2 siljitadi, shunda siz uning old qismini ko'rasiz va nega 1 boshqa tomonga siljiydi, men sizga aytolmayman)
Rasmlar - baytlar qatori - bu men yaratgan @ belgisidir - https://xantorohara.github.io/led-matrix-editor manzilidagi asbob yordamida men yaratganga o'xshaydi.
pic1 bayt qatori men qilmoqchi bo'lgan narsaga o'xshaydi, faqat men harakat qilayotganimdan kichikroq - men aytolmayman, lekin umuman aytishim mumkinki, men muharrirda nima qilyapman.
mario2Img - bu mening katta Mario -ning 8x8 o'lchamli ekran versiyasi - va siz u erda bitta yoki ikkita piksel bo'lmagan (mening aybim, displeylar emas) u kichkina Marioga o'xshaydi.
invader1 va invader2 - mening kosmik bosqinchi haqidagi fikrim. ular juda yaxshi chiqdi va tasvirlarni bir -birining ustiga qo'yib, men oyoqlarning harakatlanish effektini yaratishga muvaffaq bo'ldim.
Katalogda ikkita otashin eskiz bor, ularning har biri biroz boshqacha va sinab ko'rishga arziydi.
Ulardan birida ekran bo'ylab o't o'chirgichlar harakatlanadi, shuning uchun biroz ko'proq/boshqacha animatsiya … ikkinchisida bir vaqtning o'zida ikkita fişek ko'rsatiladi.
Bundan tashqari, uchta "bosqinchilar" eskizlari bor, ularning har biri biroz boshqacha, birining bosqinchisi ekran bo'ylab harakatlanmoqda va siz buni qanday qilganimni ko'rishingiz mumkin - (buni qilishning yaxshiroq usullari bor, bilmayman)
Hatto ko'proq: omborning test katalogida ba'zi eskizlar bor - ularning aksariyati men xohlagan tarzda ishlamadi yoki men xohlagan fikrlar edi, lekin men xohlagan tarzda ishlamadi. Men ularni tashlab ketdim, chunki kimdir mening fikrlarimga ega *(men ISS displeyida ishlatish uchun WS2812 pikselli kichik "qalqon" yasadim, lekin uni 3v liniyasiga uladim va etarli emas edi) LED matritsasi bilan ishlaydigan quvvat, LED matritsasiz piksel yaxshi ishladi, shuning uchun men hali ham qila oladigan narsa bor)*
"Yana misollar" deb nomlangan katalog ham bor - bu ba'zi loyiha eskizlarining o'zgarishi, yoki men nimadir qo'shganman, olib tashlaganman yoki biron -bir tarzda o'zgartirganman. Buning uchun ular ishlaydi - ular oxirgi loyiha emas. Men ularni yana tashlab ketdim, kimdir ulardan foydali narsalarni olishi mumkin. (Balki)
Umid qilamanki, siz menga bu loyihalarni tayyorlashni yoqtirgandek, bu ko'rsatma ham yoqdi:-)
11 -qadam: Links …
Ushbu loyiha DF Robot tomonidan homiylik qilingan va qo'llab -quvvatlangan. Mahsulotlar uchun quyidagi havolalardan foydalaning:
Firebeetle ESP32 -
Firebeetle qopqog'i 24x8 LED matritsasi -
Mening kodlar ombori:
Agar sizga bu yoki mening biron bir loyiham foydali yoki zavqli bo'lsa, meni qo'llab -quvvatlang. Men qo'lga kiritgan har bir narsa ko'proq qismlarni sotib olish va ko'proq/yaxshi loyihalarni amalga oshirish uchun ketadi.
www.patreon.com/kd8bxp
NTPClient kutubxonasi
ArduinoJson.h
ESP8266 ob-havo kutubxonasi
Json-Streaming-Parser kutubxonasi
Tavsiya:
O'yin maydonchasi ekspresidan foydalangan holda harakatlanuvchi Cosplay qanotlari - 1 -qism: 7 qadam (rasmlar bilan)
O'yin maydonchasi ekspresidan foydalangan holda harakatlanuvchi faollashtirilgan kosplay qanotlari - 1 -qism: Bu ikki qismli loyihaning birinchi qismi, men sizga avtomatlashtirilgan peri qanotlarini ishlab chiqarish jarayonini ko'rsataman. Loyihaning birinchi qismi - bu qanotlarning mexanikasi, ikkinchi qismi esa uni kiyiladigan qilib qo'yish va qanotlarni qo'shish
Ajoyib analog sintezator/organ faqat alohida komponentlardan foydalangan holda: 10 qadam (rasmlar bilan)
Ajoyib analog sintezatori/organi faqat alohida komponentlardan foydalangan holda: Analog sintezatorlar juda zo'r, lekin ularni tayyorlash juda qiyin, shuning uchun men uni iloji boricha soddalashtirmoqchi edim, shuning uchun uning ishlashi oson tushuniladi. bir nechta asosiy kichik sxemalar kerak: rezistorli oddiy osilator
Zarrachalar elektronidan foydalangan holda energiya monitor qurilmasini yarating: 5 qadam (rasmlar bilan)
Zarrachalar elektronidan foydalangan holda energiya monitor qurilmasini yarating: Aksariyat korxonalarda biz energiyani biznes xarajatlari deb hisoblaymiz. Hisob bizning pochtamizda yoki elektron pochtamizda ko'rinadi va biz uni bekor qilingan sanadan oldin to'laymiz. IoT va aqlli qurilmalarning paydo bo'lishi bilan Energy biznes balasida yangi o'rinni egallay boshladi
Arduino va WS2812b LED -laridan foydalangan holda DIY shaxsiy muhit yoritgichi: 6 qadam (rasmlar bilan)
Arduino va WS2812b LED -laridan foydalangan holda DIY -ning atrof -muhit yoritgichi: O'yin/film ko'rish tajribam uchun ko'proq chuqurlik kerak edi, shuning uchun men atrof -muhit yoritgichlarini qanday o'rnatganman. Ishni boshlashdan oldin, bu loyiha siz lehimlantiruvchi dazmolni va boshqa asosiy elementlardan qanday foydalanishni bilishingizni talab qiladi. asboblar. Agar sizga qulay lehim bo'lmasa
O'z matritsali matritsali klaviaturani yarating (va Arduino -ga ulang): 7 qadam (rasmlar bilan)
O'z matritsali matritsali klaviaturani yarating (va uni Arduino -ga ulang): Demak, siz o'zingiz membranali klaviatura yaratmoqchimisiz? Nima uchun? O'zingizning klaviaturangizni yaratish ko'p sabablarga ko'ra foydali bo'lishi mumkin. Bu arzon va oson, uni vandalizatsiya qilish yoki o'g'irlash mumkin bo'lgan holatlarga qo'yish mumkin