Orodha ya maudhui:

Kuondoa Takwimu na ESP8266 / ESP32: Hatua 7
Kuondoa Takwimu na ESP8266 / ESP32: Hatua 7

Video: Kuondoa Takwimu na ESP8266 / ESP32: Hatua 7

Video: Kuondoa Takwimu na ESP8266 / ESP32: Hatua 7
Video: How to use SSD1306 128x32 OLED Display I2C with Arduino code 2024, Novemba
Anonim
Kuondoa Takwimu na ESP8266 / ESP32
Kuondoa Takwimu na ESP8266 / ESP32
Kuondoa Takwimu na ESP8266 / ESP32
Kuondoa Takwimu na ESP8266 / ESP32

Je! Umewahi kutaka kupata data ya miradi yako ya Arduino, lakini hakuna API ya umma kwa hiyo? Au katika hali kama Instagram API ambapo mchakato wa usanidi wa sio rahisi sana?

Katika Agizo hili tutatazama chaguo mbili tofauti za kufuta data kutoka kwa wavuti kwa miradi yako ya ESP8266 au ESP32.

Hatua ya 1: Angalia Video

Image
Image

Nimefanya video ambayo inashughulikia kitu sawa na hii inayoweza kufundishwa, kwa hivyo ikiwa una nia, tafadhali angalia!

Hatua ya 2: Kabla ya kuanza

Kabla Hatujaanza
Kabla Hatujaanza
Kabla Hatujaanza
Kabla Hatujaanza

Vichwa tu kwamba data ambayo nitazungumza juu ya kufuta ni data inayokabiliwa na umma na haiitaji uthibitishaji wowote. Kwa hivyo sema kwa mfano, hesabu yangu halisi ya mteja wa YouTube inapatikana kwangu tu ndani ya studio ya waundaji, kwa hivyo kifaa kitalazimika kutoa ombi ambalo lilithibitishwa kama mimi kuipakia. Aina hizi za maombi zitakuwa nje ya wigo wa video hii. Jaribio la haraka la kuangalia ikiwa litafunikwa ni kujaribu kupakia ukurasa huo kwenye dirisha la hali fiche kwani hiyo haitakuingiza kiotomatiki kwenye tovuti zozote.

Kwa mbinu zilizofunikwa katika Agizo hili tutalazimika kutumia zana zingine za msanidi programu ambazo zinapatikana kwenye vivinjari. Nitawaonyesha na Firefox, lakini najua kwa Chrome fulani ina zana sawa na nina hakika vivinjari vingine vinavyo pia.

Hatua ya 3: API zisizo za Umma (Spoiler: Maagizo Ina Moja!)

Njia ya kwanza tutakayoangalia ni kutumia API isiyo ya umma. Hii haitapatikana kila wakati, lakini ikiwa ni hii ndiyo njia ambayo unapaswa kulenga kutumia. Kile ninachokiita "API isiyo ya umma" kimsingi ni mahali ambapo tovuti hutumia API isiyotangazwa kwenye wavuti yao nyuma ya pazia kuchukua data tunayotafuta kupata.

Kuna sababu chache kwa nini hii itakuwa chaguo unayopendelea kutumia.

  1. Faida kubwa ni kwamba haiwezekani kubadilika mara nyingi kama ukurasa wa wavuti, ikiwa unafuta data moja kwa moja kutoka kwa ukurasa wa wavuti HTML, kila wakati wanapofanya mabadiliko kwenye wavuti, kuchambua kwako kunaweza kuvunjika.
  2. Kwa kawaida ni ufanisi zaidi wa data. Unapokuwa unafuta ukurasa wa wavuti kimsingi unapakua ukurasa wote wa HTML ili kutoa vipande vya maelezo kutoka kwao, APIs zitarudisha tu nukta za data kwa hivyo kwa kawaida itakuwa maombi madogo sana.
  3. Kawaida ni rahisi kuchanganua. Kawaida API hurejesha data katika muundo wa JSON ambayo ni moja kwa moja kuchanganua, hii ni kweli haswa ikiwa unatoa data nyingi.

Kwanza lazima tujue ikiwa ukurasa wa wavuti unatumia usanidi kama huu. Kidokezo kikubwa ni ikiwa tovuti inasasisha thamani kwa wakati halisi kama inavyofanya kwenye Kickstarter, lakini hata ikiwa haipo bado kuna matumaini kwamba inaweza kutumia usanidi huu. Maagizo hutumia API isiyo ya umma kwa kuchota data kwa wavuti yao ingawa haionyeshi kwa wakati halisi.

Kuangalia ikiwa wavuti inatumia usanidi huu, ingiza hali ya msanidi programu ya kivinjari chako, naona njia rahisi ya kufanya hivyo ni bonyeza kulia kwenye ukurasa na uchague "kukagua kipengee".

Kisha utataka kwenda kwenye kichupo cha mtandao, hii itaonyesha maombi ambayo ukurasa wa wavuti hufanya nyuma, kumbuka kuwa unaweza kuhitaji kupakia tena ukurasa baada ya kufungua kichupo hiki kwa sababu itaonyesha tu maombi yaliyotolewa kuanzia sasa.

Kawaida unataka kutafuta zile zilizo na aina ya "json". Kunaweza kuwa na maombi mengi hapa, kwa hivyo inaweza kusaidia kupanga kwa aina. Unaweza kuona ni dhahiri kwenye ukurasa wa kampeni ya kickstarter kwamba inatumia usanidi huu kwani unaweza kuona maombi ya kila wakati yakitolewa kwa mwisho wa "stats.json". Kwenye ukurasa wa waandishi wa Maagizo (kwa mfano yangu ni "https://www.instructables.com/member/witnessmenow/"), hawaombi maombi mara kwa mara, lakini unaweza kuona ombi lililofichwa kati ya wengine ombi la kuonyesha "mwishoAuthorStats".

Ili kupata habari zaidi juu ya ombi hili, unaweza kubofya. Unapaswa kuwa na uwezo wa kupata habari zote unazohitaji kutoka hapa ili kuiga ombi. Lakini kabla ya kufanya hivyo unataka kwanza kuangalia mara mbili kuwa ina data unayotaka. Bonyeza, kwenye kichupo cha majibu na uone ikiwa data iko.

Ikiwa ina data unayohitaji, mmekaa wote! Basi unaweza kutumia njia zile zile zilizojadiliwa kwenye video yangu ya awali juu ya kuungana na APIs. Toleo fupi la hiyo ni kuhakikisha kuwa ombi linafanya kazi kama inavyotarajiwa kwenye zana kama Postman kwanza na kisha utumie mradi huu wa mfano kujaribu kuwa inafanya kazi kwenye kifaa chako.

Kwa kuchanganua data ya JSON ningependekeza utumie ArudinoJSON katika hali nyingi, ikiwa hii ni jambo ambalo ungependa kuelimishwa juu, nijulishe tu!

Hatua ya 4: Kufuta Takwimu moja kwa moja

Kufuta Data Moja kwa Moja
Kufuta Data Moja kwa Moja
Kufuta Data Moja kwa Moja
Kufuta Data Moja kwa Moja
Kufuta Data Moja kwa Moja
Kufuta Data Moja kwa Moja

Ifuatayo tutaangalia kufuta data moja kwa moja kutoka kwa wavuti, hii inaomba ukurasa kamili wa wavuti kwenye kifaa na kuchanganua data tunayotaka kutoka. Nilishasema faida za API isiyo ya umma ina njia hii, lakini wakati mwingine mahitaji lazima!

Jambo moja ambalo ni muhimu kutambua hapa, ikiwa unajua maendeleo ya wavuti unaweza kutumiwa kutumia kipengee cha kukagua kipengee kupata habari juu ya kitu fulani na jinsi imeundwa. Hii inapaswa kuepukwa kwa njia hii, kwa sababu kurasa za wavuti kawaida hubadilishwa kwa nguvu kwa kutumia Javascript, ambayo haitatokea kwenye kifaa chako. Nambari ya HTML ambayo inapatikana kwenye kifaa chako itakuwa ukurasa wa wavuti halisi ambao unapakuliwa. Mfano mzuri wa hii ni ukurasa wa Miti ya Timu, hesabu ya sasa ya michango huanza kama 0 na kupakiwa kwenye ukurasa baadaye na uhuishaji huu, lakini tofauti na mifano miwili ambayo tumeona hapo awali, haipakia data nyuma, kwa hivyo data sahihi lazima iwe mahali pengine.

Ili kuona nambari asili ya ukurasa wa wavuti unaweza kubofya kulia kwenye ukurasa na uchague "Tazama Chanzo". Halafu unataka kutafuta data fulani unayotaka, kwa hivyo katika mfano wa Timu ya miti tunapotafuta hesabu ya sasa ya michango, tunaweza kuona hesabu halisi imehifadhiwa katika mali ya hesabu ya data ya kipengele cha kuhesabu, hapa ndipo tunapohitaji futa data kutoka.

Unahitaji kupata kamba ya utaftaji ambayo inakuongoza kwenye data yako, Ni rahisi sana kugundua hii kabla ya kuweka alama kwa kifaa. Kwa mfano huu, kutafuta "hesabu ya data" kunanileta hadi kwenye data tunayotaka, ambayo ni kamilifu. Hatuna haja ya kuwa na wasiwasi kuwa inalingana pia katika sehemu zingine kwenye ukurasa, kwa sababu itagonga kilele kwanza. Ikiwa ulihitaji kugonga ile ya tatu, unaweza kuipanga ili kupuuza 2 ya kwanza uliyopiga.

Ikiwa tutatazama mfano wa Mti wa Timu, kama kabla hatujaruka vichwa vya majibu na sasa tunaangalia mwili wa majibu (ambayo ni ukurasa wa wavuti). Kinachorudi kutoka kwa mteja ni mtiririko wa data. Hatujali chochote juu ya hoja yetu ya utaftaji, kwa hivyo tunafanya mteja kupata. Ikiwa itapata swala la utaftaji itarudi kweli na itahamisha mkondo hadi mwisho wa swala. Jambo linalofuata linalopatikana kutoka kwa mtiririko huo litakuwa data tunayotafuta, lakini katika kesi hii hatujui data hiyo itakuwa ya muda gani, lakini tunajua ni habari yote kati ya mahali tulipo sasa kwenye mkondo na koma iliyofuata iliyogeuzwa.. Tunaweza kufanikisha hili kwa kutumia "mteja.readBytesUntil" ambayo inafanya kile inachosema, inasoma baiti ndani ya bafa mpaka itakapogonga swali maalum. Hakikisha tu bafa unayoisoma ni kubwa ya kutosha kushikilia data zote, nadhani tuko salama hapa na 32!

Ikiwa una data yote unayohitaji, basi hauitaji kusoma data zaidi. Sikufunga unganisho hapa kwa sababu haikuonekana kusababisha shida kwenye ESP8266, ilionekana kusababisha shida na ESP32, kwa hivyo niliongeza mteja.stop (). Kuwa mkweli kabisa, sina hakika kwanini niliiweka juu ya njia, ningefikiria itakuwa busara kuifunga mara tu unapokuwa na data unayotaka.

Hatua ya 5: Kuondoa Data Kutumia Seva ya nje:

Kuondoa Takwimu Kutumia Seva ya Nje
Kuondoa Takwimu Kutumia Seva ya Nje
Kuondoa Takwimu Kutumia Seva ya Nje
Kuondoa Takwimu Kutumia Seva ya Nje

Mada moja tu ya kugusa, kuna zana bora zaidi za kuchanganua mazingira ya kawaida ya kompyuta kama NodeJS kuliko kwa mdhibiti mdogo, kwa hivyo wakati mwingine inaweza kuwa na maana kufanya huduma ambayo inachukua data kutoka kwa wavuti na hutoa rahisi mwisho wa ESP8266 yako au ESP32. Mfano mmoja wa hii ilikuwa kufuta ukurasa wa CrowdSupply kupata hesabu ya moja kwa moja TinyPICO ngapi iliuzwa. Inawezekana ikawezekana kuifikia moja kwa moja kwenye ESP8266 au ESP32, lakini kwa kuwa ilikuwa ikichanganya vidokezo tofauti vya data kwenye vitu kadhaa tofauti, kwa hivyo ingekuwa ngumu.

Niliishia kuunda mradi wa NodeJS na kuchanganua data kutumia maktaba inayoitwa cheerio na ilifanya kazi vizuri sana. Nilikaribisha mradi huu kwenye seva ya wingu nilikuwa nayo tayari, lakini unaweza kuendesha mradi wa aina hii kwenye pi ikiwa haukuwa na kitu kama hicho cha kusanidi.

Hatua ya 6: Mipaka ya Matumizi

Mipaka ya Matumizi
Mipaka ya Matumizi

Jambo moja ambalo linaweza kuathiri njia hizi zote ni kupiga mipaka ya utumiaji wa wavuti. Katika API za kawaida kawaida imeandikwa vizuri ni maombi ngapi unaweza kufanya kwa dakika au kwa siku na unaweza kupunguza maombi yako ya miradi kulingana na hii. Unapofuta, haujui ni nini mipaka hii kwa hivyo una hatari ya kuzipiga na uwezekano wa kuzuiwa. Siwezi kutoa ushauri wowote halisi juu ya kuizuia ili ubaki kwenye vitabu vyao vyema, lakini ningefikiria kila kitu chini ya kila dakika kitakuwa mara nyingi, isipokuwa kesi kama kickstarter ambapo wanaonekana kutoa maombi kila sekunde chache.

Hatua ya 7: Asante kwa Kusoma

Tunatumahi video hii ilisaidia ikiwa una nia ya kuchanganua data moja kwa moja kutoka kwa kurasa za wavuti kwenye ESP8266 yako au ESP32. Je! Una maswali mengine yoyote juu ya mada ambayo sikuyashughulikia? Tafadhali nijulishe katika maoni hapa chini, au ujiunge nami na kundi la watengenezaji wengine kwenye seva yangu ya Discord, ambapo tunaweza kujadili mada hii au nyingine yoyote inayohusiana na mtengenezaji, watu wanasaidia sana hapo kwa hivyo ni mahali pazuri pa kutundika nje

Ningependa pia kutoa shukrani kubwa kwa Wadhamini wangu wa Github ambao wanasaidia kuunga mkono kile ninachofanya, ninaithamini sana. Ikiwa haujui, Github inalinganisha udhamini kwa mwaka wa kwanza, kwa hivyo ukifanya udhamini watalingana na 100% kwa miezi michache ijayo.

Asante kwa kusoma!

Ilipendekeza: