Talaan ng mga Nilalaman:

4 na Mga Proyekto sa 1 Paggamit ng DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 Mga Hakbang (na may Mga Larawan)
4 na Mga Proyekto sa 1 Paggamit ng DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 Mga Hakbang (na may Mga Larawan)

Video: 4 na Mga Proyekto sa 1 Paggamit ng DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 Mga Hakbang (na may Mga Larawan)

Video: 4 na Mga Proyekto sa 1 Paggamit ng DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 Mga Hakbang (na may Mga Larawan)
Video: ANG GANDA NG MISIS NI RIGOR!😍#johnestrada #prescillameirelles 2024, Hulyo
Anonim
Image
Image
Mag-install ng Mga Karaniwang Aklatan para sa Mga Proyekto
Mag-install ng Mga Karaniwang Aklatan para sa Mga Proyekto

Naisip ko ang tungkol sa paggawa ng isang itinuturo para sa bawat isa sa mga proyektong ito - ngunit sa huli napagpasyahan ko na talaga ang pinakamalaking pagkakaiba ay ang software para sa bawat proyekto naisip kong mas mahusay na gumawa lamang ng isang malaking turuan!

Ang hardware ay pareho para sa bawat proyekto, at ginagamit namin ang Arduino IDE upang i-program ang aparato ng ESP32.

Kaya kung ano ang hardware: Ang lahat ng hardware ay ibinigay ng aking mga kaibigan sa DFRobot, mayroon silang napakahusay na mga tutorial, at madaling mai-install ang mga pangunahing board para dito. Magkaroon din ng isang mahusay na sistema ng suporta sa lugar, at medyo mabilis na pagpapadala sa U. S.

Buong pagsisiwalat ng board ng Firebeetle ESP32, at ang LED Matrix ay ibinigay ng DF Robot, ang mga proyekto na ipinakita at sa mga video ay aking sarili.

Ang mga proyektong ito ay gumagamit ng lahat ng DFRobot FireBeetle ESP32 IOT MicroController

www.dfrobot.com/product-1590.html

Ang wiki ng suporta - na may mga tagubilin sa pangunahing pag-install ng board ay matatagpuan dito:

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

Kailangan din namin ng isang FireBeetle Covers 24x8 LED Matrix (BLUE)

www.dfrobot.com/product-1595.html

Ayaw ng BLUE leds - Mayroon din silang magkakaibang kulay.

GREEN -

PULA -

PUTI -

DILAW -

Kailangan mo lamang ng isang LED Matrix - ang kulay ang iyong pinili, pareho silang gumagana.

Ang wiki ng suporta ng LED Matrix ay matatagpuan dito:

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

Nahanap namin ang isang link sa Arduino Library.

github.com/Chocho2017/FireBeetleLEDMatrix

Higit pa sa mga ito nang kaunti mamaya sa….

Ang isang bagay na opsyonal, ngunit maaaring madaling gamitin ay isang MicroUSB 3xAA Battery Holder.

www.dfrobot.com/product-1130.html

Kaya't iyon ang kailangan ng hardware - Ano ang 4 na proyekto -

Hakbang 1: Ang Mga Proyekto

Image
Image

Project 1: Ay isang simpleng LED Matrix NTP Clock na may alinman sa pagpapakita ng Oras ng Militar o pagpapakita ng oras ng AMPM, Ang orasan na ito ay kumokonekta sa isang NTP (time server) na kunin ang oras, at maglalapat ng isang off set upang makakuha ka ng lokal na oras. Ipapakita nito ang oras sa LED Matrix. - Ito ay isang napaka-simpleng orasan, at napaka-simpleng proyekto.

Project 2: Ipakita ang ISS Pass Prediction, ang proyektong ito ay gumagamit ng ika-2 core ng processor. Ipapakita nito kung gaano kalapit (sa milya) ang ISS, kailan asahan ang susunod na ISS na pumasa sa iyong lokasyon (Sa oras ng UTC), at opsyonal kung gaano karaming mga tao ang nasa kalawakan. Dahil ang maraming impormasyon na ito ay hindi madalas na nagbabago, ginagamit namin ang ika-2 core upang suriin lamang ang mga pag-update ng mga hula sa pass, o kung gaano karaming mga tao ang nasa puwang tuwing 15 minuto. Maaari naming maiwasan ang masyadong maraming mga tawag sa API sa server sa ganitong paraan. Ang proyektong ito ay medyo mas kumplikado, ngunit medyo madaling gawin.

Project 3: Isang Simpleng Pag-sign ng Paglipat ng Mensahe gamit ang MQTT, binisita ko muli ang isang proyekto na ginawa para sa ESP8266 D1 mini board, at ito ay 8x8 LED Matrix - Ang ideya ay upang kumonekta sa isang broker ng MQTT, magpadala ng isang mensahe sa isang paksa ang aparato ay pakikinig sa - at ipakita ang mensahe na iyon. Ito ay medyo madali, at napakasimpleng gawin nang ang lahat ay naka-setup. At may ilang mga hakbang upang mai-set up ang MQTT client software sa isang desktop computer. Kapag ang pag-setup ng MQTT ay napakalakas na protokol ng pagmemensahe na ginagamit ng maraming mga aparato ng IoT upang magpadala at tumanggap ng mga mensahe.

Project 4: Weather Station Display - batay sa ESP8266 D1 mini istasyon ng panahon na ginawa ng Squix78 at ThingPulse. Kinukuha namin ang aming data mula sa Wunderground, at ipinapakita ang kasalukuyang mga kundisyon, at ang tempature sa degree Fahrenheit. Ginagamit namin ang ika-2 core ng ESP32, upang mai-update ang aming data bawat 10 minuto. Ito rin ay simpleng i-setup.

BOUNS MINI EXAMPLES: Ang silid-aklatan (at mga sketch sa itaas) ay gumagamit ng isang 8x4 font, naglalaman din ang library ng isang 5x4 font, na ginamit ko para sa karamihan sa mga mini na halimbawa ng BOUNS. Mayroong isang pares ng mga problema na maaari kong tandaan sa maliit na font, isa na tila nagiging sanhi ng mga problema kapag ginamit mo ang WIFI ng aparato. Ito ay isang bagay na nais kong galugarin ang higit pa, ngunit may oras. Ang iba pang problema ay hindi ito mag-scroll, ang mas malaking font lamang ang maaaring mag-scroll. Kaya wala sa mga halimbawang ito ang gumagamit ng WIFI - ina-update lamang nila ang display, at higit pa tungkol sa mga ito ay mamaya.

Magsimula na tayo…..

Hakbang 2: I-install ang DFRobot FireBeetle ESP32 Board Sa Arduino IDE

Kaya, isasangguni kita sa DF Robot Wiki sa pag-install ng board core para sa Arduino IDE.

Ito ay medyo madaling gawin sa modernong IDE (1.8.x o mas mahusay).

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

Nalaman ko na ang WiFi library na nakapaloob sa Arduino IDE ay nagdudulot ng mga problema (PS anumang iba pang WiFi Library na maaaring na-install sa iyong direktoryo ng library ay maaaring o hindi maaaring maging sanhi ng mga problema). Ang tanging paraan (o hindi bababa sa pinakamadaling paraan) na nahanap ko upang malutas ang isyu ay alisin ang library ng WiFi mula sa direktoryo ng IDE. Sa kasamaang palad walang magandang paraan upang sabihin sa iyo kung saan ito maaaring naka-install - depende ito sa kung paano naka-install ang IDE, at sa kung anong OS ang iyong ginagamit.

Ang nagawa ko ay natagpuan ang WiFi library na nagdudulot ng mga problema, at ilipat lamang ang direktoryo ng WiFi sa iyong desktop … at i-restart ang IDE. Sa ganoong paraan mapapanatili mo ang library kung sakaling kailanganin mo ito para sa mga board ng Arduino WIFI.

90% ng mga problemang nakita ko na nauugnay sa isyu sa itaas. Kung nakakuha ka ng maraming mga error sa pag-ipon, na nauugnay sa paggamit ng WiFi mula sa direktoryo ng Arduino IDE o ang direktoryo ng Arduino Library, ito ang problema na mayroon ka.

Ang aking pang-2 na isyu kung minsan ay nabigo ang pag-upload ng sketch na mag-upload - Sa anumang kaso kailangan ko lamang muling pindutin ang pindutan ng pag-upload, at ito ay gumagana.

At panghuli, kung mayroon kang bukas na serial console, at pagkatapos ay isara ito - nag-freeze ang FireBeetle.

Alam ko na ang DF Robot ay aktibong nagtatrabaho sa core ng board, at sa maikling panahon lamang na nagkaroon ako ng board ay naglabas sila ng isang bagong core. Sa kasamaang palad hindi nito nalutas ang isyu ng WiFi na kung saan ay ang aking pinakamalaking isyu.

* Ang Espressif ay may isang 'generic' na pangunahing manager na maaaring mai-install, isama sa core ang board ng FireBeetle ESP32, ngunit nagkakaroon ako ng isang isyu sa kung paano ito may bilang ng mga pin. Ang kagiliw-giliw na bagay dito ay gumagana ang library ng WiFi kasama ang built-in na WiFi library - kaya alam ko na may solusyon sa isyung iyon malapit na lang.

Kung nais mong subukan ang mga core ng Espressif maaari mong malaman ang karagdagang impormasyon dito:

github.com/espressif/arduino-esp32

Personal kong gusto kung paano gumagana ang core ng DF-Robot, kahit na may ilang mga isyu na mayroon ako.

** TANDAAN: Gumagamit ako ng LinuxMint 18 na nakabatay sa Ubuntu 16.04 sa palagay ko, hindi ko ito nasubukan sa anumang iba pang makina, ngunit naniniwala ako na ang isyu ay naroroon para sa lahat ng mga OSes batay sa ilang mga paghahanap sa internet na ginawa ko. **

Hakbang 3: Mag-install ng Mga Karaniwang Aklatan para sa Mga Proyekto

Mag-install ng Mga Karaniwang Aklatan para sa Mga Proyekto
Mag-install ng Mga Karaniwang Aklatan para sa Mga Proyekto

Ang lahat ng mga proyektong ito ay gumagamit ng ilang mga karaniwang library, kaya mas madaling gawin ang hakbang na ito ngayon.

Depende sa library maaari mo itong makita sa manager ng library - na kung saan ay ang pinakamadaling paraan upang mag-install ng isang library.

Ang isa pang karaniwang paraan ay ang pag-install sa pamamagitan ng isang zip file, na gumagana ring pantay din. Ngunit sa pangkalahatan ay gumagamit ako ng manu-manong pamamaraan ng pag-install. Mayroong isang mahusay na tutorial sa tatlong mga pamamaraan sa Arduino Website.

www.arduino.cc/en/guide/libraries

Para sa mga silid-aklatan na ito, inirerekumenda ko ang manu-manong pamamaraan - dahil mayroong ilang iba't ibang mga aklatan na may parehong pangalan, gamit ang tagapamahala ng library na maaari kang magkaroon ng maling isa.

Ang lahat ng mga proyektong ito ay gumagamit ng isang WiFi Manager upang gawing mas madaling kumonekta sa iyong wifi - Napagpasyahan kong gawin ito kaya kung kailangan mong ilipat ang iyong proyekto, hindi mo kailangang muling magprogram ng board. Ito ay isang bagay na ginagamit ko para sa mga board ng ESP8266, at gumagana ito ng maayos - hindi ito perpekto. Ang swerte para sa paggamit ng library ay nai-port upang magamit ang ESP32 ng isang gumagamit ng github na nagngangalang bbx10. (Ang manager na ito ay dapat ding gumana sa mga board ng ESP8266)

Kailangan naming mag-install ng tatlong mga aklatan para sa gawaing ito.

Ang WiFiManager -

Ang WebServer -

At sa wakas ang DNSServer -

Karaniwan din sa lahat ng mga sketch ay ang DF Robot DFRobot_HT1632C library para sa LED Matrix.

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

Ang library ay matatagpuan dito (Muli ay inirerekumenda ko ang manu-manong pamamaraan ng pag-install)

github.com/Chocho2017/FireBeetleLEDMatrix

Isang Espesyal na tala: sa aking imbakan ng github - Mayroon akong isang pares ng bahagyang binago na mga library ng DFRobot_HT1632C

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

Ang pagbabago ay para sa isang mas maliit na font, at ginagamit lamang para sa ilan sa mga halimbawa ng bonus. Maaari mong gamitin ang binagong library at hindi ito dapat maging sanhi ng anumang mga problema. Mayroon ding isang bahagyang binago na library (Nakalakip sa ilan sa mga sketch bilang mga tab) na maaaring gumawa ng mga imahe ng bitmap.

Kung pinili mong gamitin ang bahagyang nabago na bersyon, kailangan mong palitan ang pangalan ng direksyong "binago-library" sa FireBeetleLEDMatrix at ilipat ang folder na iyon sa iyong direktoryo ng library ng Arduino. Hindi mo kailangang gamitin ang bersyon na ito para sa mga proyektong ito, kinakailangan kung nais mong subukan ang ilan sa mga mas maliit na mga font mula sa mga halimbawa ng bonus.

Iyon ang mga karaniwang silid aklatan - mag-i-install kami ng ilang mga tukoy na aklatan para sa bawat proyekto.

Lumipat tayo sa LED Matrix ….

Hakbang 4: Ang 24x8 LED Matrix Cover

Ang 24x8 LED Matrix Cover
Ang 24x8 LED Matrix Cover
Ang 24x8 LED Matrix Cover
Ang 24x8 LED Matrix Cover
Ang 24x8 LED Matrix Cover
Ang 24x8 LED Matrix Cover

Para susundan namin kasama ang DF Robot Tutorial para sa LED Matrix

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

Panimula: Ang display na 24 × 8 LED Matrix na ito ay espesyal na idinisenyo para sa seryeng FireBeetle. Sinusuportahan nito ang mode ng pagkonsumo ng mababang lakas at pag-scroll display. Sa mataas na pagganap ng HT1632C LED driver chip, ang bawat led ay may independiyenteng rehistro, na ginagawang madali ang paghimok nang hiwalay. Isinasama nito ang isang 256KHz RC na orasan, 5uA lamang sa ilalim ng mode na low-power, sinusuportahan ang pag-aayos ng 16 scale PWM na ilaw. Gumagana rin ang produktong ito sa iba pang Arduino micrcontroller tulad ng Arduino UNO.

Pagtutukoy:

  • Operating Boltahe: 3.3 ~ 5VLED
  • Kulay: Isang kulay (Puti / Asul / Dilaw / Pula / berde)
  • Chip sa Pagmamaneho: HT1632C
  • Kasalukuyang Nagtatrabaho: 6 ~ 100mA
  • Mababang-lakas na Pagkonsumo: 5uARC
  • orasan: 256KHz
  • Piliin ang Chip (CS): Mapipili ang D2, D3, D4, D5
  • Suporta sa pag-scroll sa display

Mga default na PIN:

  1. DATAD6
  2. WRD7 (Pangkalahatang Hindi Ginamit)
  3. Mapipili ang CSD2, D3, D4, D5 (default na D2)
  4. RDD8
  5. VCC 5VUSB; 3.7VLipo na Baterya

(Ang lahat ng mga proyektong ito ay gumagamit ng D2 para sa mapiling pin, madali itong mababago kung kinakailangan.)

Sa likuran ng LED Matrix makikita mo ang 4 na maliit na switch, siguraduhin na pumili lamang ng isa sa mga CS pin. Ang mga maliit na switch na ito ay kung paano mo pipiliin ang iyong CS Pin, at ang default ay D2.

Ang DF Robot WIKI ay may ilang sample code, ang code na ito ay nasa mga halimbawa rin para sa library. (Naniniwala ako)

Isa pang tala: gamitin ang mga numero ng Dx para sa iyong mga pin - kung hindi man ang mga numero ng pin ay ang mga numero ng pin / pangalan ng IO

At maaaring maging sanhi ka ng ilang mga problema.

Pagtatakda ng isang punto:

Ang X ay 0 hanggang 23 (o kung iniisip mo ito bilang isang spreadsheet ito ang mga haligi).

Ang Y ay 0 hanggang 7 (o kung iniisip mo ito bilang isang spreadsheet ito ang mga hilera).

Nagbibigay ang library ng isang set point function.

display.setPoint (x, y) itatakda nito ang cursor sa lokasyon na iyon, kung saan maaari ka nang mag-print ng isang mensahe.

display.print ("Hello World", 40); // magiging sanhi ito ng display upang ipakita ang "Hello World" na nagsisimula sa x, y point at pag-scroll sa screen.

Mayroon ding isang setPixel (x, y) at clrPixel (x, y) - i-on ng setPixel ang isang LED sa lokasyon ng x, y, at papatayin ng clrPixel ang isang LED sa lokasyon ng x, y.

Mayroong ilang iba pang mga bagay na maaaring magawa ng silid-aklatan na ito - at ang karamihan ay kasama sa mga halimbawa.

(Inirerekumenda kong patakbuhin at binago ang mga halimbawa upang makita kung ano ang magagawa nito).

* Ang isang bagay na tila kulang ay ang pagguhit ng mga bitmap - ang aklatan ay talagang maaaring gawin ito ngunit sa ilang kadahilanan ito ay isang pribadong pag-andar ng silid-aklatan. Tingnan ang ilan sa aking mga halimbawa ng bonus para sa isang bahagyang nabago na bersyon ng library

** Isa pang bagay na kasama dito ang isang 5x4 font set, na kung saan ay masarap na magkaroon ng isang mas maliit na font - ito ay nagkomento kung paano sa library. Ginawa ko ito ng puna, at gumagana ito, ngunit napansin ang ilang mga isyu dito - ang pinakamalaking hindi ito nag-scroll. At napansin ko na tila nagdudulot ito ng mga problema alinman sa wifi o marahil isang ibang silid-aklatan na nais kong gamitin.

Ang isa sa mga binagong aklatan na isinasama ko gayunpaman ay gumagamit ng 5x4 font.

Lumipat tayo sa mga proyekto …..

Hakbang 5: Project 1: isang Simpleng LED Matrix NTP Clock Na Alinman sa Military Time Display o AMPM Display

Project 1: isang Simpleng LED Matrix NTP Clock Na May Alinman sa Orasan ng Militar o Display ng AMPM
Project 1: isang Simpleng LED Matrix NTP Clock Na May Alinman sa Orasan ng Militar o Display ng AMPM
Project 1: isang Simpleng LED Matrix NTP Clock Na May Alinman sa Orasan ng Militar o Display ng AMPM
Project 1: isang Simpleng LED Matrix NTP Clock Na May Alinman sa Orasan ng Militar o Display ng AMPM
Project 1: isang Simpleng LED Matrix NTP Clock Na May Alinman sa Orasan ng Militar o Display ng AMPM
Project 1: isang Simpleng LED Matrix NTP Clock Na May Alinman sa Orasan ng Militar o Display ng AMPM

Project 1: Ay isang simpleng LED Matrix NTP Clock na may alinman sa pagpapakita ng Oras ng Militar o pagpapakita ng oras ng AMPM, Ang orasan na ito ay kumokonekta sa isang NTP (time server) na kunin ang oras, at maglalapat ng isang off set upang makakuha ka ng lokal na oras. Ipapakita nito ang oras sa LED Matrix. - Ito ay isang napaka-simpleng orasan, at napaka-simpleng proyekto.

Bago kami magsimula sa simpleng proyektong ito, maaaring magandang ideya na malaman kung ano ang NTP -

Ang NTP ay isang protokol na internet na ginamit upang maiugnay ang mga orasan ng mga computer sa ilang sanggunian ng oras. Ito ay isang karaniwang protocol. Ang NTP ay nangangahulugang Network Time Protocol.

Gumagamit ang NTP ng UTC bilang isang oras ng sanggunian (UTC ay Universal Time Coordinated) ay umunlad mula sa GMT (Greenwich Mean Time), at sa ilang mga bilog ay tinatawag itong Zulu Time (Militar). Ang UTC ay batay sa isang dami ng resonance ng isang cesium atom.

Ang NTP ay mapagparaya sa kasalanan, at lubos na nasusukat, ang protokol ay lubos na tumpak, na gumagamit ng isang resolusyon na mas mababa sa isang nanosecond.

*

Ang isang orasan ng UTC ay hindi gaanong ginagamit sa karamihan ng mga tao, kaya kailangan nating ayusin ang aming orasan sa lokal na oras. Sa kabutihang palad magagawa natin ito nang medyo madali. Kaya't magsimula tayo sa simpleng NTP Clock na ito ….

Ika-1 kailangan naming mag-install ng isang silid-aklatan na ginagawang madali ang pakikipag-usap sa mga server ng NTP.

github.com/arduino-libraries/NTPClient (ang library na ito ay maaaring nasa manager ng library)

Nilaktawan mo ba ang hakbang 3 - at hindi sigurado kung paano mag-install ng mga aklatan (?) Mas mahusay na bumalik at basahin ang hakbang 3:-)

Kailangan mong pumunta sa website na ito, at ilagay sa pinakamalapit na lungsod sa iyo na nasa iyong timezone.

www.epochconverter.com/timezones

Kapag na-hit ang enter, makikita mo ang "Mga resulta ng conversion", at sa mga resulta makukuha mo ang iyong offset (pagkakaiba sa GMT / UTC) sa mga segundo (Para sa akin iyon ay -14400)

Sa dfrobot_firebeetle_led_matrix_ntp_clock sketch sa linya 66 makikita mo:

#define TIMEOFFSET -14400 // Hanapin ang iyong Oras ng oras na itinakda Dito https://www.epochconverter.com/timezones OFF Itakda sa Segundo # tukuyin ang AMPM 1 // 1 = AM PM oras, 0 = MILITARY / 24 HR Time

palitan ang -14400 sa iyong offset. Ang susunod na linya na makikita mo ang AMPM 1 - magiging sanhi ito ng oras upang ipakita ang oras sa AM / PM - kung mas gugustuhin mong makita ito sa oras na 24 oras gawing zero ang isa.

Susunod na i-upload ang sketch sa iyong board, kumonekta sa Access point (wifi manager) at ipasok ang mga detalye para sa iyong wifi. KUNG nagawa mo na ito, dapat mong makita ang "konektado" na pag-scroll sa buong screen at makalipas ang ilang segundo dapat mong makita ang oras.

Iyon lang para sa proyektong ito - simple at madaling gamitin …..

(Mga posibleng pagpapabuti: Ipakita ang Buwan, Araw at Taon, pag-set up ng isang buzzer at mga alarma - karaniwang kontrolin kung ano ang nakikita mo sa pamamagitan ng isang web page. Ang ideyang ito ay kukuha ng isang malaking muling pagsulat ng kasalukuyang simpleng sketch)

Handa para sa isa pang simpleng proyekto - Ipakita kung nasaan ang ISS - Ipasa ang mga hula, at kung gaano karaming mga tao ang nasa Space! (PS sketch na ito ay gumagamit ng isang web page upang makontrol kung ano ang ipinapakita)…..

Hakbang 6: Project 2: Ipakita ang Prediksiyon ng ISS,

Project 2: Ipakita ang ISS Pass Prediction,
Project 2: Ipakita ang ISS Pass Prediction,
Project 2: Ipakita ang ISS Pass Prediction,
Project 2: Ipakita ang ISS Pass Prediction,
Project 2: Ipakita ang ISS Pass Prediction,
Project 2: Ipakita ang ISS Pass Prediction,

Project 2: Ipakita ang ISS Pass Prediction, ang proyektong ito ay gumagamit ng ika-2 core ng processor. Ipapakita nito kung gaano kalapit (sa milya) ang ISS, kailan asahan ang susunod na ISS na pumasa sa iyong lokasyon (Sa oras ng UTC), at opsyonal kung gaano karaming mga tao ang nasa kalawakan. Dahil ang maraming impormasyon na ito ay hindi madalas na nagbabago, ginagamit namin ang ika-2 core upang suriin lamang ang mga pag-update ng mga hula sa pass, o kung gaano karaming mga tao ang nasa puwang tuwing 15 minuto. Maaari naming maiwasan ang masyadong maraming mga tawag sa API sa server sa ganitong paraan. Ang proyektong ito ay medyo mas kumplikado, ngunit medyo madaling gawin.

Ang proyektong ito ay batay sa isa sa aking mga naunang proyekto na maaaring matagpuan dito:

(Isang Simpleng Sistema ng Notipikasyon ng ISS) Sa Iyon ay gumamit ako ng isang ESP8266 na may isang sakay na OLED screen (D-Duino). Para sa karamihan ng bahagi ang proyektong ito ay gumagamit lamang ng ibang display system, pinalawak ko ito upang mabago mo ang nais mong makita sa mabilisang pamamagitan ng isang web page. Kaya't magsimula tayo ….

Karamihan sa kredito para sa madaling paggamit ay napupunta sa https://open-notify.org na may isang napaka-simple at madaling gamitin na API. Ang open-notify API ay may tatlong mga bagay na maaaring ipakita, lokasyon ng ISS sa latitude at longitude, pumasa sa mga hula batay sa isang naibigay na latitude at longitude. At sa wakas kung gaano karaming mga tao (At ang kanilang mga pangalan) ay nasa kalawakan.

Kakailanganin naming mag-install ng isa pang silid-aklatan - Ang ArduinoJson library.

github.com/bblanchon/ArduinoJson

Kailangan din namin ng TimeLib.h ngunit hindi ako sigurado kung saan ko nakuha ang isang iyon o kung kasama ito sa IDE (paumanhin)….

Kaya't bakit hulaan kung nasaan ang ISS - Naglalaman ang ISS ng iba't ibang mga kagamitan sa radyo ng amateur, at kung ito ay "over head" ang isang ham radio operator ay maaaring makipag-ugnay sa ISS gamit ang ilang napaka-simple (at murang) mga radyo. Nagawa ko pa ito habang mobile (nagmamaneho sa kotse). Hindi mo talaga kakailanganin upang magawa ito. Ang isang bagay na kailangan mo ay malaman kung nasaan ito. At ang pagturo ng antena sa pangkalahatang direksyon na ito ay nakakatulong.

Ang linya 57, 58, 59 ay ilang mga variable ng pagpapakita - kung ang mga ito ay nakatakda sa 1 makikita mo ang isang display, kung nakatakda sila sa 0 (zero) hindi mo makikita ang isang display. (Ang mga variable na ito ay maaaring itakda sa sketch, o mai-update mula sa isang web page na nilikha ng firebeetle - higit pa sa paglaon).

int locDis = 1; // Display Location of ISSint pasDis = 0; // Display Pass Predictions int pplDis = 1; // Display People in Space

sa gayon makikita ng locDis ang lokasyon ng ISS sa latitude at longitude - ipinapakita rin nito kung gaano kalayo ang distansya nito.

Makukuha ng pasDis ang mga hula sa pass mula sa open-notify.org at ipapakita ang mga ito.

at sa wakas, ipapakita ng pplDis ang mga pangalan at kung gaano karaming mga tao ang nasa kalawakan - maaari itong masyadong mahaba, hindi

palitan din ng madalas. (Maaari mong baguhin ang mga ito o iwanan ang mga ito, ito ay ganap na opsyonal)

Kailangan din nating malaman ang ating latitude at longitude at ilagay ito sa sketch.

Hindi ito kailangang maging isang tumpak na lat / haba, maaari itong maging sentro ng iyong lungsod, o off lamang ng kaunti. Ang pag-print ng paa ng ISS ay malawak habang nasa ulo ito, at daan-daang (o libu-libo) na mga milya ang maaaring sakupin, kaya't ang pag-off ng kaunti sa iyong lat / haba ay hindi magiging isang breaker ng deal (karamihan sa oras), komunikasyon higit sa 500 milya ay medyo pangkaraniwan.

Kung hindi mo alam ang iyong latitude at longitude ang website na ito ay makakatulong sa iyo.

www.latlong.net Malapit sa linya 84 ng sketch makakakita ka ng tulad nito:

// Hanapin ang iyong Latitude at Longitude dito // https://www.latlong.net/ float mylat = 39.360095; float mylon = -84.58558;

Iyon lang dapat ang dapat baguhin. I-upload ang sketch, at ikonekta ang Firebeetle sa internet - at dapat mong makita, ang lokasyon ng ISS na ibinigay sa lat / haba at kung gaano kalayo ang layo nito (tandaan na ito ay magiging isang tinatayang distansya. Ang ISS ay napakabilis kumilos, at sa oras na matapos ang display ang ISS ay lumipat ng maraming mga milya mula sa kung nasaan ito). Dapat mo ring makita ang mga tao sa kalawakan. (KUNG hindi mo binago ang variable sa itaas).

Ginagamit namin ang pangalawang core ng ESP32 upang magpatakbo ng isang web-site, ang paggamit sa site ay nagbibigay sa amin ng kontrol sa kung ano ang ipinapakita sa LED matrix. Dapat itong maging medyo intuitive sa kung paano ito gumagana, ipinapakita ng isang seksyon kung ano ang naka-on para sa pagpapakita, ang isa pang seksyon ay may "oo" "hindi" na mga pindutan - na-click ang "oo" nangangahulugang nais mong makita ito, ang "hindi" nangangahulugang don ' ipakita ito Dapat mo ring makita na ang tuktok na seksyon ay nagbabago batay sa mga pindutan.

Ang tanging bagay na hindi gaanong gupit at tuyo dito ay kung paano makahanap ng IP address ng Firebeetle - sa kasamaang palad hindi ako nakagawa ng mahusay na paraan upang hanapin ito - kaya ginamit ko lang ang serial console ng IDE upang ipakita ito (9600 baud).

Buksan ang console, at dapat mong makita ang IP address. (buksan ito bago mo makuha ang nakakonektang mensahe) - ang aking iba pang pagpipilian ay upang ipakita ito sa LED Matrix nang sabay-sabay sa pagsisimula - napagpasyahan kong labanan iyon dahil baka hindi mo tinitingnan ang oras at mamimiss mo ito. Isinasaalang-alang ko ang pagpapadala ng isang mensahe ng sms, o isang bagay ngunit, sa huli ay ginagawa ko lamang itong simple. (Sinubukan ko ring magtalaga ng isang static IP / gateway / atbp, hindi ko ito magawang gumana nang tama sa wifi manager - ang code ay nasa sketch pa rin, kaya't kung may malaman ito ipaalam sa akin)

Kinakailangan din ng sketch ang pagbuo ng FreeRTOS sa core ng ESP32 - Mayroon kaming isang gawain na tumatakbo bawat 15 minuto o higit pa, kung ano ang ginagawa nito ay i-update ang mga hula sa pass, pati na rin ang mga tao sa kalawakan. Tulad ng sinabi ko sa mga naunang tao sa kalawakan ay hindi nagbabago ng gaanong, kaya't maaaring mailipat ito sa isa pang gawain at maaaring tumakbo nang isang beses bawat 12 na oras (o 6 na oras) - ngunit gumagana ito, at pinapanatili nitong simple ang mga bagay.

Para sa mga hindi alam ang FreeRTOS ay isang paraan upang hayaan ang isang solong pangunahing micro-controller na magpatakbo ng maraming gawain

Karaniwan kailangan mong isama ang ilang mga silid-aklatan at iba pang mga bagay upang magawa itong gumana - subalit nagtatayo ito sa pangunahing bahagi ng ESP32 - na ginagawang isang napakalakas na aparato ang ESP32. para sa karagdagang impormasyon tungkol sa FreeRTOS

freertos.org/

Mga Pagpapabuti: maraming mga bagay na maaaring mapabuti para sa proyektong ito, at halos araw-araw naisip ko ang isang bagay na maaaring magawa ng kaunting pagkakaiba, o binago, o idinagdag.

At sa higit pang mga halimbawa ng direktoryo ng imbakan maaari mong makita ang ilan sa mga naunang / iba't ibang mga bagay na naisip ko- ang ilan sa mga ito ay hindi gumana, ang ilan ay nagbago lamang, at ang ilan kung saan kasama sa kasalukuyang sketch.

* Sa isang punto sinubukan kong magdagdag ng isang neopixel sa display upang maging mas katulad ng dati kong proyekto - Hindi ko ito nagtrabaho nang tama (Nakita kong ito ay isang isyu sa kuryente na hindi ko pa isinasaalang-alang) nagtatrabaho sa isang paraan upang mapabuti ang ideyang ito *

Habang sinusulat ang hakbang na ito, naisip ko, marahil ay maaari akong magdagdag ng isang paraan upang ma-update ang iyong latitude at longitude sa website - sa ganoong paraan ang sketch ay hindi na kailangang baguhin - Pag-iisipan ko rin ang tungkol sa isang ito.

Ang isang pinabuting paraan upang makuha ang IP address ay ibang bagay na nais kong gawin (iniisip ko rin ang tungkol sa isang iyon)

Lumipat tayo sa susunod nating proyekto…..

Hakbang 7: Project 3: isang Simpleng Pag-sign ng Paglipat ng Mensahe Gamit ang MQTT

Project 3: isang Simpleng Pag-sign ng Paglipat ng Mensahe Gamit ang MQTT
Project 3: isang Simpleng Pag-sign ng Paglipat ng Mensahe Gamit ang MQTT
Project 3: isang Simpleng Pag-sign ng Paglipat ng Mensahe Gamit ang MQTT
Project 3: isang Simpleng Pag-sign ng Paglipat ng Mensahe Gamit ang MQTT
Project 3: isang Simpleng Pag-sign ng Paglipat ng Mensahe Gamit ang MQTT
Project 3: isang Simpleng Pag-sign ng Paglipat ng Mensahe Gamit ang MQTT

"loading =" tamad "" loading = "tamad"

Bonus Bahagi 2 - Ipakita ang Mga Larawan
Bonus Bahagi 2 - Ipakita ang Mga Larawan
Bonus Bahagi 2 - Ipakita ang Mga Larawan
Bonus Bahagi 2 - Ipakita ang Mga Larawan
Bonus Bahagi 2 - Ipakita ang Mga Larawan
Bonus Bahagi 2 - Ipakita ang Mga Larawan

Kaya't lumabas, na ang library ay maaaring magpakita ng mga imahe - ikaw sa ilang kadahilanan na ang paggana ay tila "pribado" - na rin, para sa mga susunod na sketch na binago ko muli ang silid aklatan at ginawang isang pampublikong pagpapaandar ang drawImage.

Sa oras na ito, inilagay ko ang binagong aklatan sa direktoryo ng mga sketch, kaya hindi mo kailangang muling i-install ang library, ang sketch ay tumingin muna sa kanyang sarili, pagkatapos ay titingnan nito ang direktoryo ng library, kaya mahusay kami!

*** Plano ko sa pagsusumite ng pagbabagong ito sa DFRobot, dahil ito ay talagang napaka cool, at uri ng maayos upang magawa ang mga ganitong uri ng sketch ***

Sketch ng LED Matrix Images, dito ko unang sinubukan upang malaman kung ano ang nais ng library, at kung ano ang gagana at hindi gagana - na may iba't ibang antas ng tagumpay. Nalaman ko na ang mga larawang 8x8 ay pinakamahusay na gumagana, ngunit maaari mo ring makatrabaho ang iba. Natagpuan ko ang ilang mga online led led matrix editor din, ang ilan ay mas mahusay kaysa sa iba.

xantorohara.github.io/led-matrix-editor/ - tila gumagana nang ok, gumagawa ng 8x8 na mga imahe, at nais mo sila bilang byte arrays.

www.riyas.org/2013/12/online-led-matrix-fo… ang isang ito ay gumagana nang maayos, at may kakayahang gumawa ng mas malaki sa 8x8 na ipinapakita, ang display ay lilitaw na nakabukas sa gilid nito sa display na ito subalit Ang mga byte arrays ay tila pinakamahusay na gumagana dito. Ginamit ko ito upang makita ang "mga space invaders" na nakikita sa video sa itaas.

Kaya paano ito gumagana, drawImage (const byte * img, uint8_t width_t, uint8_t taas_t, int8_t x, int8_t y, int img_offset);

variable ng byte ng array ng imahe, ang lapad ng imahe (8), ang taas ng imahe (8), ang panimulang posisyon sa screen x (0), y (0) karaniwang, at isang offset na numero, na hindi ako 100% sigurado kung ano ang ginagawa nito, kaya't madalas na iniwan ko ito sa zero.

Sa sketch LED Matrix Images - mayroong 8 magkakaibang byte arrays - na may tatlong magkakaibang pamamaraan din sa kanila.

- ang mga paputok ay ang unang mga array, sa totoo lang hindi ako sigurado kung paano ito gumagana - ngunit gumagana ito.

sa susunod ay may bibig - hindi talaga ito gumagana nang tama, ang bibig ay naglalagay ng maling paraan para sa isa, at ang pagsubok na gumawa ng anumang mga pagbabago ay nagpapalala lamang nito. (natutunan kung ano ang gumagana at kung ano ang hindi kalahati ng kasiyahan)

Sinundan ng unang marioImg - ito ay masyadong malaki para sa display, at sa palagay ko dito maglaro ang off set - Ginamit ko ito dito, at makikita mo ang harap ng mario, kung binago mo ang offset sa 1 ka ' makikita ko ang likuran niya. (Ikaw ay hindi ko talaga masabi sa iyo kung bakit o kung ano ang ginagawa ng offset. Lumilitaw upang ilipat ang imahe ngunit kung bakit 2 inililipat ito upang makita mo ang harap niya at kung bakit 1 binabago ang iba pang direksyon na hindi ko masabi sa iyo)

Mga IMAGES - byte array ay isang @ sign na ginawa ko - mukhang ang ginawa ko gamit ang tool sa

Ang pic1 byte array ay katulad din ng sinusubukan kong gawin, mas maliit lamang ito kaysa sa sinusubukan ko - kung ano ito ay hindi ko masabi, ngunit masasabi ko sa pangkalahatan na parang ang ginagawa ko sa editor.

mario2Img - ito ang aking sariling bersyon ng mas malaking Mario na ginawa para sa isang laki ng 8x8 na screen - at doon ka isa o dalawang mga pixel na wala sa lugar (ang aking kasalanan, hindi ang ipinapakita) ito ay mukhang isang maliit na Mario (sorta).

invader1 at invader2 - pareho ang aking ideya para sa isang space invader. naging maganda sila, at sa pamamagitan ng paglalagay ng mga imahe sa bawat isa, nagagawa ko ang epekto ng paggalaw ng mga paa.

Mayroong dalawang mga sketch ng paputok sa direktoryo, ang bawat isa ay medyo naiiba, at nagkakahalaga ng pagsubok.

Ang isa ay mayroong mga paputok na gumagalaw sa buong screen, kaya't kaunti pa / magkakaibang animation … ang isa pa ay may dalawang paputok na ipinapakita nang sabay-sabay

Mayroon ding tatlong mga "mananakop" na sketch, ang bawat isa ay medyo magkakaiba, ang isa ay may invader na gumagalaw sa buong screen, at maaari mong tingnan kung paano ko nagawa iyon - (maaaring may mas mahusay na mga paraan upang gawin ito, hindi ko alam)

Kahit Higit Pa: Mayroong ilang mga sketch sa direktoryo ng pagsubok ng imbakan - karamihan sa mga ito ay hindi gumana sa paraang gusto ko, o mga ideya na nais kong gawin, ngunit hindi gumana sa gusto ko. Iniwan ko sila dahil ang isang tao na nakakuha ako ng ilang mga ideya * (gumawa ako ng isang maliit na "kalasag" na may isang WS2812 pixel dito upang magamit sa pagpapakita ng ISS, ngunit konektado ko ito sa linya ng 3v, at wala lamang sapat kapangyarihan sa LED Matrix na tumatakbo din, ang pixel ay gumana nang maayos, nang walang LED Matrix ikaw, kaya mayroon pa ring isang bagay na maaari kong gawin dito) *

Mayroon ding isang direktoryo na tinatawag na "Higit pang Mga Halimbawa" - ito ang mga pagkakaiba-iba sa ilan sa mga sketch ng proyekto, alinman sa ako ay may naidagdag o inalis, o binago sa ilang paraan. Para sa mga ito, gumagana ang mga ito - hindi lamang sila ang pangwakas na proyekto. Kaya't iniwan ko ulit sila ay maaaring may makakuha ng isang bagay na kapaki-pakinabang sa kanila. (Siguro)

Inaasahan kong nasiyahan ka sa pagtuturo na ito tulad ng nasisiyahan ako sa paggawa ng mga proyektong ito:-)

Hakbang 11: LInks …

Ang proyektong ito ay na-sponsor at suportado ng DF Robot. Mangyaring gamitin ang mga link sa ibaba para sa mga produkto:

Firebeetle ESP32 -

Cover ng Firebeetle 24x8 LED Matrix -

Ang Aking Repository ng Code:

Kung nakita mong kapaki-pakinabang o kasiya-siya ito o anuman sa aking mga proyekto mangyaring suportahan ako. Anumang makuha ko ay napupunta upang bumili ng maraming mga bahagi at gumawa ng higit / mas mahusay na mga proyekto.

www.patreon.com/kd8bxp

NTPClient Library

ArduinoJson.h

ESP8266 Weather Library

Json-Streaming-Parser Library

Inirerekumendang: