Mündəricat:

ESP8266/ESP32: 7 addım ilə məlumatların silinməsi
ESP8266/ESP32: 7 addım ilə məlumatların silinməsi

Video: ESP8266/ESP32: 7 addım ilə məlumatların silinməsi

Video: ESP8266/ESP32: 7 addım ilə məlumatların silinməsi
Video: Lesson 05: Introduction to Serial Monitor | Robojax Arduino Step By Step Course 2024, Noyabr
Anonim
ESP8266/ESP32 ilə məlumatların silinməsi
ESP8266/ESP32 ilə məlumatların silinməsi
ESP8266/ESP32 ilə məlumatların silinməsi
ESP8266/ESP32 ilə məlumatların silinməsi

Arduino layihələriniz üçün heç vaxt məlumat əldə etmək istəmisiniz, amma bunun üçün açıq bir API yoxdur? Və ya Instagram API kimi, quraşdırma prosesinin çox rahat olmadığı hallarda?

Bu Təlimat kitabında, ESP8266 və ya ESP32 layihələriniz üçün bir veb saytdan məlumatları silmək üçün 2 fərqli varianta baxacağıq.

Addım 1: Videoya baxın

Image
Image

Bu təlimatla eyni şeyi əhatə edən bir video hazırladım, buna görə maraqlanırsınızsa, baxın!

Addım 2: Başlamadan əvvəl

Başlamazdan əvvəl
Başlamazdan əvvəl
Başlamazdan əvvəl
Başlamazdan əvvəl

Qırışdan bəhs edəcəyim məlumatların hər kəsin üzləşdiyi məlumatlar olduğuna və heç bir təsdiq tələb etmədiyinə diqqət çəkin. Məsələn, mənim dəqiq YouTube abunəçi sayım yalnız yaradıcı studiyasında mənim üçün əlçatandır, buna görə cihaz yükləmək üçün mənim kimi təsdiqlənmiş bir tələb etməli olacaq. Bu cür sorğular bu video üçün nəzərdə tutulmayacaq. Səhifəni gizli bir pəncərədə yükləməyə çalışmaq, heç bir sayta avtomatik daxil olmayacağınızı yoxlamaq üçün sürətli bir sınaqdır.

Bu Təlimat kitabında yer alan texnikalar üçün brauzerlərdə mövcud olan bəzi inkişaf etdirici vasitələrdən istifadə etməli olacağıq. Onları Firefox ilə nümayiş etdirəcəyəm, amma bilirəm ki, Chrome -un oxşar vasitələri var və əminəm ki, digər brauzerlərdə də var.

Addım 3: Qeyri -adi API -lər (Spoiler: Instructables -da biri var!)

Baxacağımız ilk yol ictimai olmayan bir API istifadə etməkdir. Bu həmişə mövcud olmayacaq, amma əgər bu, mütləq istifadə etmək istədiyiniz bir üsuldursa. "Qeyri-ictimai API" adlandırdığım şey, bir saytın əldə etmək istədiyimiz məlumatları əldə etmək üçün pərdə arxasında veb saytında reklam edilməmiş bir API istifadə etməsidir.

Bunun istifadə edilməsinə üstünlük verilməsinin bir neçə səbəbi var.

  1. Ən böyük üstünlüyü, bir veb səhifəsi kimi tez -tez dəyişməyinin mümkün olmamasıdır, əgər məlumatları birbaşa veb səhifəsi HTML -dən götürsəniz, hər dəfə sayta dəyişiklik etdikdə, analiziniz pozula bilər.
  2. Ümumiyyətlə daha səmərəli məlumatdır. Bir veb səhifəni qaşıyarkən, əsasən bütün HTML səhifəsini yükləyərək ondan məlumatlar əldə edirsiniz, API -lər yalnız məlumat nöqtələrini qaytaracaq, buna görə də ümumiyyətlə daha kiçik sorğular olacaq.
  3. Təhlil etmək ümumiyyətlə daha asandır. Adətən API -lər, məlumatları təhlil etmək asan olan JSON formatında qaytarır, bu, birdən çox məlumat çıxarırsınızsa, bu xüsusilə doğrudur.

Əvvəlcə veb səhifənin belə bir quruluşdan istifadə edib -etmədiyini öyrənməliyik. Ən böyük ipucu, saytın Kickstarter-dəki kimi real vaxtda dəyərini yeniləməsidir, amma olmasa da bu qurğudan istifadə edə biləcəyinə ümid yoxdur. Instructables, real vaxtda yenilənməsə də, saytları üçün bəzi məlumatları əldə etmək üçün açıq olmayan bir API istifadə edir.

Saytın bu quruluşdan istifadə edib -etmədiyini yoxlamaq üçün, brauzerinizin developer rejiminə daxil olun, bunun ən asan yolunun səhifəni sağ klikləmək və "elementi yoxlamaq" ı seçmək olduğunu görürəm.

Daha sonra şəbəkə sekmesine keçmək istəyəcəksiniz, bu veb səhifənin arxa planda etdiyi istəkləri göstərəcək, bu sekməni açdıqdan sonra səhifəni yenidən yükləməyiniz lazım ola biləcəyini unutmayın, çünki yalnız bundan sonra edilən istəkləri göstərəcəkdir.

Adətən "json" tipli olanları axtarmaq istəyirsən. Burada çoxlu istəklər ola bilər, buna görə də növlərə görə sıralamağa kömək edə bilər. Kickstarter kampaniya səhifəsində bu quruluşu istifadə etdiyinin çox açıq olduğunu görürsünüz, çünki "stats.json" son nöqtəsinə davamlı istəklər edilir. Instructables müəllifləri səhifəsində (məsələn, mənimki "https://www.instructables.com/member/witnessmenow/"), daimi istəklər vermirlər, ancaq digərləri arasında "showAuthorStats" son nöqtəsi istəyinin gizli olduğunu görə bilərsiniz.

Bu istək haqqında daha çox məlumat əldə etmək üçün üzərinə vura bilərsiniz. İstəyi təkrarlamaq üçün lazım olan bütün məlumatları buradan əldə edə bilməlisiniz. Ancaq bunu etməzdən əvvəl, istədiyiniz məlumatların olub olmadığını iki dəfə yoxlamaq lazımdır. Cavab sekmesini vurun və məlumatların olub olmadığını yoxlayın.

Lazım olan məlumatları ehtiva edirsə, hər şey hazırdır! Daha sonra API -lərə qoşulmaqla bağlı əvvəlki videomda müzakirə olunan eyni yanaşmaları istifadə edə bilərsiniz. Bunun qısa versiyası, istəyin əvvəlcə Postman kimi bir vasitədə gözlənildiyi kimi işlədiyinə əmin olmaq və sonra cihazınızda işlədiyini yoxlamaq üçün bu nümunə layihədən istifadə etməkdir.

JSON məlumatlarını təhlil etmək üçün əksər ssenarilərdə ArudinoJSON -dan istifadə etməyi məsləhət görürəm, əgər bu, öyrətmək istədiyiniz bir şeydirsə, mənə bildirin!

Addım 4: Məlumatların birbaşa silinməsi

Məlumatların birbaşa silinməsi
Məlumatların birbaşa silinməsi
Məlumatların birbaşa silinməsi
Məlumatların birbaşa silinməsi
Məlumatların birbaşa silinməsi
Məlumatların birbaşa silinməsi

Sonra məlumatları birbaşa veb səhifədən silməyə baxacağıq, bu cihazdakı tam veb səhifəni tələb edir və istədiyimiz məlumatları təhlil edir. Qeyri-ictimai API-nin bu metoddan üstünlüyünü qeyd etdim, amma bəzən ehtiyac var!

Burada qeyd etmək vacib olan bir şey, veb inkişaf etdirmə ilə tanış olsanız, müəyyən bir element haqqında məlumatı və necə qurulduğunu öyrənmək üçün yoxlama elementi xüsusiyyətindən istifadə edə bilərsiniz. Bu yanaşma üçün bunun qarşısını almaq lazımdır, çünki müasir veb səhifələr ümumiyyətlə cihazınızda baş verməyəcək Javascript istifadə edərək dinamik olaraq dəyişdirilir. Cihazınızda mövcud olan HTML kodu yalnız yüklənmiş orijinal veb səhifəsi olacaq. Bunun yaxşı bir nümunəsi TeamTrees səhifəsidir, cari bağış sayı 0 olaraq başlayır və daha sonra bu animasiya ilə səhifəyə yüklənir, lakin əvvəllər gördüyümüz iki nümunədən fərqli olaraq məlumatları arxa planda yükləmir. doğru məlumatlar başqa yerdə olmalıdır.

Orijinal veb səhifə kodunu görmək üçün səhifəni sağ vurub "Mənbəyə Bax" ı seçə bilərsiniz. Daha sonra istədiyiniz xüsusi məlumatları axtarmaq istəyirsiniz, buna görə də mövcud ianə sayını axtardığımız zaman TeamTrees nümunəsində faktiki sayın sayma elementinin data-count xüsusiyyətində saxlandığını görə bilərik, bura ehtiyacımız var məlumatları silin.

Sizi məlumatlarınıza aparan bir axtarış xətti tapmalısınız, cihaz üçün kodlamadan əvvəl bunu anlamaq daha asandır. Bu nümunə üçün, "data-count \" "axtarışı məni mükəmməl istədiyimiz məlumatlara çatdırır. Səhifənin digər yerlərində də uyğun gəldiyindən narahat olmağımıza ehtiyac yoxdur, çünki əvvəlcə ən üst sıraya çıxacaq. Üçüncüsünü vurmalı olsanız, vurduğunuz ilk 2 -ni görməməzlikdən gəlmək üçün proqramlaşdıra bilərsiniz.

TeamTrees nümunəsinə baxsaq, əvvəllər olduğu kimi cavab başlıqlarını atlayırıq və indi cavabın gövdəsinə baxırıq (bu veb səhifəsidir). Müştəridən geri qayıdan məlumat axınıdır. Axtarış sorğumuza qədər heç bir şey maraqlandırmır, buna görə də bir müştəri edirik. Tapın. Axtarış sorğusunu taparsa, doğruya dönər və axını sorğunun sonuna aparar. Yayımdan əldə edə biləcəyimiz növbəti şey axtardığımız məlumatlar olacaq, ancaq bu vəziyyətdə məlumatların nə qədər olacağından əmin deyilik, amma bilirik ki, axındakı indiki yerimizlə növbəti ters çevrilmiş vergül arasındakı bütün məlumatlardır.. Bunu dediklərini edən "client.readBytesUntil" istifadə edərək əldə edə bilərik, baytı müəyyən edilmiş sorğuya çatana qədər buferə oxuyur. Oxuduğunuz tamponun bütün məlumatları saxlayacaq qədər böyük olduğundan əmin olun, düşünürəm ki, burada 32 ilə olduqca təhlükəsizik!

Lazım olan bütün məlumatlarınız varsa, artıq məlumatları oxumağa ehtiyac yoxdur. ESP8266 -da problem yaratmadığı üçün ESP32 -də problem yarandığı üçün əlaqəni burada bağlamadım, buna görə də client.stop () əlavə etdim. Düzünü desəm, niyə metodun üstünə qoyduğumdan əmin deyiləm, istədiyiniz məlumatları əldə etdikdən sonra onu bağlamağın daha məntiqli olacağını düşünürəm.

Addım 5: Xarici serverdən istifadə edərək məlumatların silinməsi:

Xarici serverdən istifadə edərək məlumatların silinməsi
Xarici serverdən istifadə edərək məlumatların silinməsi
Xarici serverdən istifadə edərək məlumatların silinməsi
Xarici serverdən istifadə edərək məlumatların silinməsi

Toxunulacaq başqa bir mövzu, NodeJS kimi adi kompüter əsaslı mühitlərdə mikro nəzarətçidən daha yaxşı analiz vasitələri var, buna görə bəzən məlumatları veb səhifədən götürən və daha sadə bir xidmət təqdim etmənin mənası ola bilər. ESP8266 və ya ESP32 üçün son nöqtə. Bunun bir nümunəsi, neçə TinyPICO satıldığını canlı hesablamaq üçün CrowdSupply səhifəsini silmək idi. Bir ESP8266 və ya ESP32 -də buna nail olmaq mümkün ola bilərdi, ancaq bir neçə fərqli elementdə bir çox fərqli məlumat nöqtəsini təhlil etdiyinə görə çətinləşərdi.

Bir NodeJS layihəsi yaratmağı bitirdim və məlumatları cheerio adlı bir kitabxanadan istifadə edərək təhlil etdim və çox yaxşı işləndi. Mən bu layihəni artıq sahib olduğum bulud serverində keçirdim, amma belə bir qurğunuz yoxdursa, bu cür bir layihəni pi -də işlədə bilərsiniz.

Addım 6: İstifadə Limitləri

İstifadə məhdudiyyətləri
İstifadə məhdudiyyətləri

Bütün bu yanaşmalara potensial olaraq təsir edə biləcək bir şey saytların istifadə məhdudiyyətlərinə çatmaqdır. Daimi API -lərdə, adətən dəqiqədə və ya gündə nə qədər sorğu edə biləcəyiniz çox yaxşı sənədləşdirilmişdir və buna əsaslanaraq layihə istəklərinizi məhdudlaşdıra bilərsiniz. Qırxarkən bu məhdudiyyətlərin nə olduğunu bilmirsiniz, buna görə də onları vurmaq və potensial olaraq bloklanmaq riski daşıyırsınız. Yaxşı kitablarında qalmağınız üçün bunu məhdudlaşdırmaqla bağlı dəqiq bir məsləhət verə bilmərəm, amma düşünürəm ki, hər saniyədə bir şey çox tez -tez baş verir, bəlkə də hər saniyədə bir neçə saniyədən sonra sorğu göndərdikləri vəziyyətdən başqa.

Addım 7: Oxuduğunuz üçün təşəkkürlər

Ümid edirik ki, ESP8266 və ya ESP32 üzərindəki veb səhifələrdən məlumatları birbaşa təhlil etmək istəyirsinizsə, bu video kömək etdi. Başa salmadığım mövzu ilə bağlı başqa suallarınız varmı? Zəhmət olmasa aşağıdakı şərhlərdə mənə bildirin və ya Discord serverimdə mənə və ya bir çox digər istehsalçıya qoşulun, burada bu mövzunu və ya sahib olduğunuz başqa bir istehsalçı ilə bağlı müzakirələr apara bilərik, insanlar orda həqiqətən faydalıdırlar, buna görə asmaq üçün əla yerdir çıxmaq

Etdiklərimi dəstəkləməyə kömək edən Github Sponsorlarıma da böyük təşəkkürümü bildirmək istərdim, bunu çox qiymətləndirirəm. Bilmirsinizsə, Github ilk il üçün sponsorluqlara uyğun gəlir, buna görə sponsorluq etsəniz, önümüzdəki bir neçə ay ərzində 100% uyğunlaşacaqlar.

Oxuduğunuz üçün təşəkkürlər!

Tövsiyə: