Përmbajtje:

Fshirja e të dhënave me një ESP8266/ESP32: 7 hapa
Fshirja e të dhënave me një ESP8266/ESP32: 7 hapa

Video: Fshirja e të dhënave me një ESP8266/ESP32: 7 hapa

Video: Fshirja e të dhënave me një ESP8266/ESP32: 7 hapa
Video: Using HT16K33 4 digit seven segment display with ESP32 2024, Nëntor
Anonim
Fshirja e të dhënave me një ESP8266/ESP32
Fshirja e të dhënave me një ESP8266/ESP32
Fshirja e të dhënave me një ESP8266/ESP32
Fshirja e të dhënave me një ESP8266/ESP32

A keni dashur ndonjëherë të merrni të dhëna për projektet tuaja Arduino, por nuk ka API publik për të? Apo në raste si API në Instagram ku procesi i konfigurimit për nuk është shumë i përshtatshëm?

Në këtë Instructable ne do të shikojmë 2 opsione të ndryshme për fshirjen e të dhënave nga një faqe në internet për projektet tuaja ESP8266 ose ESP32.

Hapi 1: Shikoni videon

Image
Image

Unë kam bërë një video që mbulon të njëjtën gjë si kjo e udhëzueshme, kështu që nëse jeni të interesuar, ju lutemi shikojeni!

Hapi 2: Para se të fillojmë

Para se të Fillojmë
Para se të Fillojmë
Para se të Fillojmë
Para se të Fillojmë

Vetëm një paralajmërim se të dhënat për të cilat do të flas do të jenë të dhëna me publikun dhe nuk kërkojnë vërtetim. Kështu thuaj për shembull, numri im i saktë i abonentëve në YouTube është i disponueshëm vetëm për mua brenda studios së krijuesit, kështu që pajisja do të duhet të bëjë një kërkesë që vërtetohet si unë për ta ngarkuar atë. Kërkesat e këtij lloji do të jenë jashtë fushëveprimit për këtë video. Një test i shpejtë për të kontrolluar nëse do të mbulohet është të provoni të ngarkoni faqen në një dritare të fshehtë pasi kjo nuk do t'ju regjistrojë automatikisht në asnjë sit.

Për teknikat e përfshira në këtë Udhëzues do të na duhet të përdorim disa nga mjetet e zhvilluesit që janë në dispozicion në shfletues. Unë do t'i demonstroj me Firefox, por e di që Chrome ka mjete të ngjashme dhe jam i sigurt që edhe shfletuesit e tjerë i kanë ato.

Hapi 3: API -të jo publike (Spoiler: Instructables Has One!)

Mënyra e parë që do të shikojmë është përdorimi i një API jo-publike. Kjo nuk do të jetë gjithmonë në dispozicion, por nëse është kjo është padyshim metoda që duhet të synoni të përdorni. Ajo që unë po e quaj një "API jo-publike" është në thelb ku një sit po përdor një API të pa reklamuar në faqen e tyre të internetit prapa skenave për të marrë të dhënat që ne po kërkojmë të marrim.

Ka disa arsye pse ky do të ishte opsioni i preferuar për t'u përdorur.

  1. Avantazhi më i madh është se nuk ka gjasa të ndryshojë aq shpesh sa një faqe në internet, nëse i grisni të dhënat drejtpërdrejt nga faqja e internetit HTML, sa herë që ata bëjnë një ndryshim në sit, analizimi juaj mund të prishet.
  2. Zakonisht është më efikase për të dhënat. Kur jeni duke grisur një faqe në internet, në thelb po shkarkoni të gjithë faqen HTML për të nxjerrë pjesë nga informacioni prej saj, API -të do të kthejnë vetëm pikat e të dhënave, kështu që normalisht do të ishin kërkesa shumë më të vogla.
  3. Zakonisht është më e lehtë për tu analizuar. Zakonisht API -të kthejnë të dhëna në formatin JSON i cili është i thjeshtë për tu analizuar, kjo është veçanërisht e vërtetë nëse jeni duke nxjerrë pjesë të shumta të të dhënave.

Së pari duhet të zbulojmë nëse uebfaqja përdor një konfigurim si ky. Çelësi më i madh është nëse siti azhurnon vlerën në kohë reale siç bën në Kickstarter, por edhe nëse nuk ka, ende ka shpresë se mund të përdorë këtë konfigurim. Instructables përdor një API jo-publike për marrjen e disa të dhënave për faqen e tyre edhe pse nuk rifreskohet në kohë reale.

Për të kontrolluar nëse siti po përdor këtë konfigurim, futni mënyrën e zhvilluesit të shfletuesit tuaj, unë gjej se mënyra më e lehtë për ta bërë këtë është të klikoni me të djathtën në faqe dhe të zgjidhni "inspektoni elementin".

Pastaj do të dëshironi të shkoni në skedën e rrjetit, kjo do të shfaqë kërkesat që bën uebfaqja në sfond, vini re se mund t'ju duhet të rimbushni faqen pasi të hapni këtë skedë sepse do të shfaqë vetëm kërkesat e bëra tani e tutje.

Ju normalisht dëshironi të kërkoni ato me llojin "json". Mund të ketë shumë kërkesa këtu, kështu që mund të ndihmojë në renditjen sipas llojit. Ju mund ta shihni se është shumë e qartë në faqen e fushatës kickstarter që po përdor këtë konfigurim pasi mund të shihni që kërkesat e vazhdueshme i bëhen një pike fundore "stats.json". Në faqen e autorëve të Instructables (p.sh. e imja është "https://www.instructables.com/member/witnessmenow/"), ata nuk bëjnë kërkesa të vazhdueshme, por ju mund të shihni të fshehur mes të tjerëve një kërkesë për "showAuthorStats" pikën përfundimtare.

Për të mësuar më shumë informacion në lidhje me këtë kërkesë, mund të klikoni mbi të. Ju duhet të jeni në gjendje të merrni të gjitha informacionet që ju nevojiten nga këtu për të përsëritur kërkesën. Por, para se ta bëni këtë, së pari dëshironi të kontrolloni dyfish nëse ka të dhënat që dëshironi. Klikoni, në skedën e përgjigjes dhe shihni nëse të dhënat janë atje.

Nëse përmban të dhënat që ju nevojiten, jeni gati! Pastaj mund të përdorni të njëjtat qasje të diskutuara në videon time të mëparshme në lidhje me lidhjen me API -të. Versioni i shkurtër i kësaj është të siguroheni që kërkesa të funksionojë siç pritej në një mjet si Postmani dhe më pas të përdorni këtë projekt shembull për të provuar që funksionon në pajisjen tuaj.

Për analizimin e të dhënave JSON unë do të rekomandoja përdorimin e ArudinoJSON në shumicën e skenarëve, nëse kjo është diçka për të cilën dëshironi të mësoni, thjesht më njoftoni!

Hapi 4: Fshirja e të Dhënave Direkt

Fshirja e të dhënave drejtpërdrejt
Fshirja e të dhënave drejtpërdrejt
Fshirja e të dhënave drejtpërdrejt
Fshirja e të dhënave drejtpërdrejt
Fshirja e të dhënave drejtpërdrejt
Fshirja e të dhënave drejtpërdrejt

Tjetra ne do të shikojmë në heqjen e të dhënave direkt nga faqja e internetit, kjo është kërkimi i faqes së plotë të internetit në pajisje dhe analizimi i të dhënave që duam të dalim. Unë tashmë përmenda avantazhet e API-ve jo-publike ndaj kësaj metode, por ndonjëherë duhet!

Një gjë që është e rëndësishme të theksohet këtu, nëse jeni të njohur me zhvillimin e uebit, mund të jeni mësuar të përdorni veçorinë e elementit të inspektimit për të gjetur informacion në lidhje me një element të veçantë dhe si është strukturuar. Kjo duhet të shmanget për këtë qasje, sepse faqet moderne të internetit zakonisht ndryshohen në mënyrë dinamike duke përdorur Javascript, gjë që nuk do të ndodhë në pajisjen tuaj. Kodi HTML që është i disponueshëm në pajisjen tuaj do të jetë vetëm uebfaqja origjinale që është shkarkuar. Një shembull i mirë për këtë është faqja TeamTrees, numri aktual i donacioneve fillon si 0 dhe ngarkohet në faqe më vonë me këtë animacion, por ndryshe nga dy shembujt që kemi parë më parë, nuk ngarkon të dhënat në sfond, kështu që të dhënat e sakta duhet të jenë diku tjetër.

Për të parë kodin origjinal të faqes në internet mund të klikoni me të djathtën në faqe dhe zgjidhni "Shiko burimin". Ju pastaj dëshironi të kërkoni për të dhënat e veçanta që dëshironi, kështu që në shembullin e TeamTrees kur ne kërkojmë për numrin aktual të dhurimeve, ne mund të shohim që numërimi aktual është i ruajtur në vetinë e numërimit të të dhënave të elementit të numërimit, këtu duhet të fshij të dhënat nga.

Ju duhet të gjeni një varg kërkimi që ju çon te të dhënat tuaja, muchshtë shumë më e lehtë ta kuptoni këtë para se të kodoni pajisjen. Për këtë shembull, kërkimi i "numërimit të të dhënave" më çon në të dhënat që duam, të cilat janë perfekte. Nuk kemi pse të shqetësohemi se përputhet edhe në vende të tjera në faqe, sepse do të godasë së pari në krye. Nëse keni nevojë të godisni të tretin, thjesht mund ta programoni që të injorojë 2 të parët që goditni.

Nëse i hedhim një sy shembullit të TeamTrees, si më parë, ne i kalojmë titujt e përgjigjeve dhe tani po shikojmë trupin e përgjigjes (që është uebfaqja). Ajo që kthehet nga klienti është një rrjedhë e të dhënave. Ne nuk kujdesemi për asgjë deri në pyetjen tonë të kërkimit, kështu që ne bëjmë një klient. Gjeni. Nëse e gjen pyetjen e kërkimit do të kthehet e vërtetë dhe do ta lëvizë rrjedhën në fund të pyetjes. Gjëja tjetër e disponueshme nga rryma do të jenë të dhënat që ne po kërkojmë, por në këtë rast ne nuk jemi të sigurt se sa kohë do të jenë të dhënat, por ne e dimë se është i gjithë informacioni midis vendit tonë aktual në rrjedhë dhe presjes tjetër të përmbysur Me Ne mund ta arrijmë këtë duke përdorur "client.readBytesUntil" i cili bën atë që thotë, i lexon bajtët në një tampon derisa të godasë pyetjen e specifikuar. Vetëm sigurohuni që tamponi në të cilin po lexoni është mjaft i madh për të mbajtur të gjitha të dhënat, mendoj se jemi mjaft të sigurt këtu me 32!

Nëse keni të gjitha të dhënat që ju nevojiten, atëherë nuk keni nevojë të lexoni më të dhëna. Unë nuk e mbylla lidhjen këtu sepse nuk dukej të shkaktonte ndonjë problem në ESP8266, dukej se shkaktonte probleme me ESP32, kështu që shtova një client.stop (). Për të qenë plotësisht i sinqertë, nuk jam i sigurt pse e vendosa në krye të metodës, do të mendoja se do të kishte më shumë kuptim ta mbyllnim sapo të keni të dhënat që dëshironi.

Hapi 5: Fshirja e të dhënave duke përdorur një server të jashtëm:

Fshirja e të dhënave duke përdorur një server të jashtëm
Fshirja e të dhënave duke përdorur një server të jashtëm
Fshirja e të dhënave duke përdorur një server të jashtëm
Fshirja e të dhënave duke përdorur një server të jashtëm

Vetëm një temë tjetër për tu prekur, ka mjete shumë më të mira për analizimin në mjedise të rregullta të bazuara në kompjuter si NodeJS sesa në mikrokontrollues, kështu që ndonjëherë mund të ketë kuptim të krijosh një shërbim që merr të dhënat nga një faqe në internet dhe siguron një më të thjeshtë pika përfundimtare për ESP8266 ose ESP32 tuaj. Një shembull i kësaj ishte heqja e faqes CrowdSupply për të marrë një numërim të drejtpërdrejtë të sa TinyPICO u shitën. Mund të ketë qenë e mundur për ta arritur atë drejtpërdrejt në një ESP8266 ose ESP32, por pasi po analizonte pika të ndryshme të të dhënave në disa elementë të ndryshëm, kështu që do të ishte e komplikuar.

Përfundova duke krijuar një projekt NodeJS dhe analizova të dhënat duke përdorur një bibliotekë të quajtur cheerio dhe funksionoi shumë mirë. Unë e prita këtë projekt në serverin cloud që kisha tashmë, por ju mund ta drejtoni këtë lloj projekti në një pi nëse nuk keni diçka të tillë.

Hapi 6: Kufijtë e Përdorimit

Kufijtë e Përdorimit
Kufijtë e Përdorimit

Një gjë që mund të ndikojë potencialisht në të gjitha këto qasje është goditja e kufijve të përdorimit të faqeve. Në API -të e rregullta është normalisht mjaft mirë e dokumentuar se sa kërkesa mund të bëni në minutë ose në ditë dhe mund të kufizoni kërkesat e projekteve tuaja bazuar në këtë. Kur jeni duke gërvishtur, nuk e dini se cilat janë këto kufij, kështu që rrezikoni t'i godisni ato dhe potencialisht të bllokoheni. Unë nuk mund të jap ndonjë këshillë të saktë për ta kufizuar atë, kështu që ju të qëndroni në librat e tyre të mirë, por do të mendoja se çdo gjë nën çdo minutë do të ishte shumë shpesh, përveç rasteve si kickstarter ku ata duket se bëjnë kërkesa çdo disa sekonda vetë.

Hapi 7: Faleminderit për Leximin

Shpresojmë që kjo video të ndihmojë nëse jeni të interesuar të analizoni të dhënat drejtpërdrejt nga faqet e internetit në ESP8266 ose ESP32. A keni ndonjë pyetje tjetër mbi temën që nuk e mbulova? Ju lutem më tregoni në komentet më poshtë, ose bashkohuni me mua dhe një bandë krijues të tjerë në serverin tim Discord, ku mund të diskutojmë këtë temë ose ndonjë krijues tjetër që keni, njerëzit janë vërtet të dobishëm atje, kështu që është një vend i mrekullueshëm për t'u varur jashtë

Unë gjithashtu do të doja të bëja një falënderim të madh për Sponzoruesit e mi Github të cilët më ndihmojnë të mbështes atë që bëj, vërtet e vlerësoj. Nëse nuk e dini, Github po përputhet me sponsorizimet për vitin e parë, kështu që nëse bëni një sponsorizim ata do të përputhen me të 100% për muajt e ardhshëm.

Faleminderit per leximin!

Recommended: