Mündəricat:
- Addım 1: Videoya baxın
- Addım 2: Başlamadan əvvəl
- Addım 3: Qeyri -adi API -lər (Spoiler: Instructables -da biri var!)
- Addım 4: Məlumatların birbaşa silinməsi
- Addım 5: Xarici serverdən istifadə edərək məlumatların silinməsi:
- Addım 6: İstifadə Limitləri
- Addım 7: Oxuduğunuz üçün təşəkkürlər
Video: ESP8266/ESP32: 7 addım ilə məlumatların silinməsi
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
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
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
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.
- Ə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.
- Ü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.
- 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
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:
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
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ə:
AWS -də Magicbit -dən məlumatların görüntülənməsi: 5 addım
AWS -də Magicbit -dən Məlumatların Görüntülənməsi: Magicbit -ə qoşulan sensorlardan toplanan məlumatlar MQTT vasitəsi ilə real vaxtda qrafik olaraq görüntülənmək üçün AWS IOT nüvəsində dərc olunacaq. ESP32 -ə əsaslanan bu layihədə inkişaf etdirmə lövhəsi olaraq magicbit istifadə edirik. Buna görə hər hansı bir ESP32 d
Corona simptomlarının aşkarlanması və məlumatların qeydiyyatı ilə Smart Watchz: 10 addım
Corona Semptomlarının Algılanması və Məlumatların Qeydiyyatı ilə Smart Watchz: Bu, serverdə məlumatların qeyd edilməsi ilə LM35 və Accelerometer istifadə edərək Corona simptomları aşkar edən bir Smartwatch. Rtc, vaxtı göstərmək və telefonla sinxronizasiya etmək və məlumatları qeyd etmək üçün istifadə etmək üçün istifadə olunur. Esp32, mavi ilə korteks nəzarətçisi olan bir beyin olaraq istifadə olunur
Dərslik - Məlumatların Ərazisi: 4 addım
Dərslik - Məlumatların Ərazisi: GİRİŞ və OCute; bu proqramlar, proqramlar və proqramlar haqqında ən çox məlumat əldə edə bilərsiniz. Bu proqramlar bir -birindən fərqlənmir (proqramların izlənməsi üçün)
ESP32 ilə PWM - Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: 6 addım
ESP32 ilə PWM | Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: Bu təlimatlarda Arduino IDE istifadə edərək ESP32 ilə PWM siqnallarının necə yaradılacağını görəcəyik. PWM əsasən hər hansı bir MCU -dan analoq çıxışı yaratmaq üçün istifadə olunur və bu analog çıxış 0V ilə 3.3V arasında ola bilər (esp32 vəziyyətində) & dan
RFID və Arduino Ethernet Shield istifadə edərək Google elektron cədvəlində məlumatların saxlanması ilə iştirak sistemi: 6 addım
RFID və Arduino Ethernet Shield istifadə edərək Google Elektron Cədvəlində Məlumatların Saxlanması ilə İştirak Sistemi: Salam Uşaqlar, burada çox maraqlı bir layihə hazırlayırıq və bu, Arduino istifadə edərək rfid məlumatlarını google elektron cədvəlinə necə göndərəcəyimizdir. Bir sözlə, rfid oxucuya əsaslanaraq iştirak məlumatlarını real vaxt rejimində saxlayacaq bir iştirak sistemi quracağıq