Mundarija:

ESP8266/ESP32 yordamida ma'lumotlarni o'chirish: 7 qadam
ESP8266/ESP32 yordamida ma'lumotlarni o'chirish: 7 qadam

Video: ESP8266/ESP32 yordamida ma'lumotlarni o'chirish: 7 qadam

Video: ESP8266/ESP32 yordamida ma'lumotlarni o'chirish: 7 qadam
Video: ESP8266-01 Wifi moduldan qanday foydalanish mumkin?/How to use ESP8266-01 Wifi module?/Full 2024, Noyabr
Anonim
ESP8266/ESP32 yordamida ma'lumotlarni o'chirish
ESP8266/ESP32 yordamida ma'lumotlarni o'chirish
ESP8266/ESP32 yordamida ma'lumotlarni o'chirish
ESP8266/ESP32 yordamida ma'lumotlarni o'chirish

Siz hech qachon Arduino loyihalaringiz haqida ma'lumot olishni xohlaganmisiz, lekin buning uchun umumiy API yo'qmi? Yoki Instagram API kabi holatlarda, o'rnatish jarayoni unchalik qulay emasmi?

Ushbu yo'riqnomada biz ESP8266 yoki ESP32 loyihalaringiz uchun veb -saytdan ma'lumotlarni yig'ishning 2 xil variantini ko'rib chiqamiz.

1 -qadam: Videoni ko'rib chiqing

Image
Image

Men xuddi shu narsani o'rgatadigan video tayyorladim, shuning uchun agar sizni qiziqtirsa, uni ko'rib chiqing!

2 -qadam: boshlashdan oldin

Boshlashdan oldin
Boshlashdan oldin
Boshlashdan oldin
Boshlashdan oldin

Shuni esda tutingki, men qirqish haqida gapiradigan ma'lumotlar hamma uchun ochiq bo'lgan ma'lumotlar va autentifikatsiyani talab qilmaydi. Masalan, ayting -chi, mening YouTube obunachilarim soni faqat ijodkorlar studiyasida mavjud, shuning uchun uni yuklash uchun qurilma menga tasdiqlangan so'rov yuborishi kerak. Bu turdagi so'rovlar ushbu video uchun qo'llanilmaydi. Sahifani inkognito oynasida yuklashga urinib ko'rish mumkin, chunki bu sizni avtomatik ravishda hech qanday saytga kirmaydi.

Ushbu yo'riqnomada keltirilgan usullar uchun biz brauzerlarda mavjud bo'lgan ishlab chiquvchi vositalardan foydalanishimiz kerak bo'ladi. Men ularni Firefox -da ko'rsataman, lekin bilaman, Chrome -da shunga o'xshash vositalar bor va boshqa brauzerlarda ham ular borligiga aminman.

3 -qadam: Hamma uchun ochiq bo'lmagan API (buzg'unchi: Instructables bitta!)

Biz ko'rib chiqadigan birinchi usul-ommaviy bo'lmagan API-dan foydalanish. Bu har doim ham mavjud bo'lavermaydi, lekin agar aynan shunday bo'lsa, siz undan foydalanishni maqsad qilgan bo'lishingiz kerak. Men "ommaviy bo'lmagan API" deb atayman, bu sayt o'z veb-saytida reklama qilinmagan API-ni ishlatib, biz qidirmoqchi bo'lgan ma'lumotlarni olish uchun.

Buni ishlatishning afzal varianti bo'lishining bir necha sabablari bor.

  1. Eng katta ustunlik shundaki, veb -sahifa kabi tez -tez o'zgarib turmaydi, agar siz HTML -dan to'g'ridan -to'g'ri ma'lumotlarni olib tashlasangiz, ular har safar saytga o'zgartirish kiritsa, sizning tahlilingiz buzilishi mumkin.
  2. Odatda bu ma'lumotni tejashda samaraliroq. Veb -sahifani qirib tashlaganingizda, siz asosan HTML -sahifani yuklab olasiz, undan ma'lumot olish uchun, API -lar faqat ma'lumotlar nuqtalarini qaytaradi, shuning uchun odatda juda kichik so'rovlar bo'ladi.
  3. Odatda tahlil qilish osonroq. Odatda API -lar ma'lumotlarni tahlil qilish oson bo'lgan JSON formatida qaytaradi, bu, ayniqsa, agar siz bir nechta ma'lumotni chiqarayotgan bo'lsangiz, to'g'ridir.

Avvalo, veb -sahifada bunday sozlash ishlatilganligini aniqlashimiz kerak. Eng katta maslahat, agar sayt Kickstarter-dagi kabi real vaqtda qiymatni yangilasa, lekin u bo'lmasa ham, bu sozlamani ishlatishiga umid yo'q. Instructables o'z saytiga ba'zi ma'lumotlarni olish uchun ochiq bo'lmagan API-dan foydalanadi, garchi u real vaqtda yangilanmasa ham.

Sayt ushbu sozlamadan foydalanayotganligini tekshirish uchun brauzeringizning ishlab chiquvchi rejimiga kiring, men buni eng oson yo'li - sahifani o'ng tugmasini bosish va "elementni tekshirish" ni tanlash.

Keyin siz tarmoq yorlig'iga o'tishni xohlaysiz, bu veb -sahifaning orqa fonda qilgan so'rovlarini ko'rsatadi, shuni esda tutingki, bu varaqni ochganingizdan so'ng sahifani qayta yuklashingiz kerak bo'ladi, chunki u faqat bundan buyon qilingan so'rovlarni ko'rsatadi.

Siz odatda "json" turini qidirishni xohlaysiz. Bu erda ko'plab so'rovlar bo'lishi mumkin, shuning uchun ularni turiga qarab saralashga yordam berishi mumkin. Siz kickstarter kampaniyasi sahifasida bu sozlamadan foydalanayotgani aniq ko'rinib turibdi, chunki siz "stats.json" oxirgi nuqtasiga doimiy so'rovlar yuborilishini ko'rasiz. Instructables mualliflari sahifasida (masalan, meniki "https://www.instructables.com/member/witnessmenow/"), ular doimiy so'rovlarni bermaydilar, lekin siz "showAuthorStats" oxirgi nuqtasini so'rashni boshqalar orasida yashiringan holda ko'rishingiz mumkin.

Ushbu so'rov haqida ko'proq ma'lumot olish uchun siz uni bosishingiz mumkin. Siz so'rovni takrorlash uchun barcha kerakli ma'lumotlarni shu erdan olishingiz mumkin. Ammo buni amalga oshirishdan oldin, siz xohlagan ma'lumotlarga ega ekanligini ikki marta tekshirib ko'rishni xohlaysiz. Javoblar yorlig'ini bosing va ma'lumotlar mavjudligini tekshiring.

Agar u kerakli ma'lumotlarni o'z ichiga olsa, hamma narsa tayyor! Keyin API -ga ulanish haqida oldingi videomda muhokama qilingan yondashuvlardan foydalanishingiz mumkin. Qisqa versiyasi - so'rov avval Postman kabi asbobda kutilganidek ishlashiga ishonch hosil qilish va keyin bu misol loyihasidan foydalanib, u sizning qurilmangizda ishlayotganligini tekshirish.

JSON ma'lumotlarini tahlil qilish uchun men ko'p holatlarda ArudinoJSONdan foydalanishni tavsiya qilaman, agar bu sizga o'rgatishni xohlasa, menga xabar bering!

4 -qadam: Ma'lumotlarni to'g'ridan -to'g'ri o'chirish

Ma'lumotlarni to'g'ridan -to'g'ri o'chirish
Ma'lumotlarni to'g'ridan -to'g'ri o'chirish
Ma'lumotlarni to'g'ridan -to'g'ri o'chirish
Ma'lumotlarni to'g'ridan -to'g'ri o'chirish
Ma'lumotlarni to'g'ridan -to'g'ri o'chirish
Ma'lumotlarni to'g'ridan -to'g'ri o'chirish

Keyin biz ma'lumotlarni to'g'ridan -to'g'ri veb -sahifadan tozalashni ko'rib chiqamiz, bu qurilmadagi to'liq veb -sahifani talab qiladi va biz xohlagan ma'lumotlarni tahlil qiladi. Men ochiq bo'lmagan API-ning ushbu usuldan afzalliklarini aytib o'tgan edim, lekin ba'zida bunga ehtiyoj bor!

Bu erda e'tiborga olish kerak bo'lgan bitta narsa, agar siz veb -ishlab chiqarishni yaxshi bilsangiz, ma'lum bir element va uning tuzilishi haqida ma'lumot olish uchun tekshirish elementi xususiyatidan foydalangan bo'lishingiz mumkin. Bunday yondashuvni oldini olish kerak, chunki zamonaviy veb -sahifalar odatda Javascript yordamida dinamik ravishda o'zgartiriladi, bu sizning qurilmangizda bo'lmaydi. Sizning qurilmangizda mavjud bo'lgan HTML kod faqat yuklab olingan asl veb -sahifa bo'ladi. Bunga yaxshi misol - TeamTrees sahifasi, hozirgi xayriya soni 0dan boshlanadi va keyinchalik bu animatsiya bilan sahifaga yuklanadi, lekin biz ko'rgan ikkita misoldan farqli o'laroq, u ma'lumotlarni fonda yuklamaydi. to'g'ri ma'lumotlar boshqa joyda bo'lishi kerak.

Veb -sahifaning asl kodini ko'rish uchun siz sichqonchaning o'ng tugmachasini bosishingiz va "Manbani ko'rish" -ni tanlashingiz mumkin. Keyin siz kerakli ma'lumotlarni qidirishni xohlaysiz, shuning uchun TeamTrees misolida, biz xayriya sonini qidirganimizda, haqiqiy sonni hisoblash elementining ma'lumotlar hisoblash xususiyatida saqlanganligini ko'rishimiz mumkin, bu erda biz kerak. dan ma'lumotlarni o'chirib tashlang.

Sizni ma'lumotingizga olib boradigan qidiruv satrini topishingiz kerak, bu qurilmani kodlashdan oldin aniqlash osonroq. Misol uchun, "ma'lumotlarni hisoblash \" ni qidirish meni kerakli ma'lumotlarga olib keladi, bu juda zo'r. Bu sahifaning boshqa joylarida ham mos keladi deb xavotirlanmasligimiz kerak, chunki u birinchi o'rinda turadi. Agar siz 3 -chini bosishingiz kerak bo'lsa, uni urgan dastlabki 2 -ni e'tiborsiz qoldiradigan qilib dasturlashingiz mumkin.

Agar biz TeamTrees misolini ko'rib chiqsak, avvalgidek, biz javob sarlavhalarini o'tkazib yubordik va hozir javobning asosiy qismini ko'rib chiqmoqdamiz (bu veb -sahifa). Mijozdan qaytib keladigan narsa - bu ma'lumotlar oqimi. Biz qidiruv so'rovigacha hech narsaga ahamiyat bermaymiz, shuning uchun client.find qilamiz. Agar u qidiruv so'rovini topsa, u haqiqatga qaytadi va oqimni so'rov oxiriga o'tkazadi. Oqimdan keyingi narsa biz qidirayotgan ma'lumotlar bo'ladi, lekin bu holda biz ma'lumotlarning qancha davom etishiga ishonchimiz komil emas, lekin biz bilamizki, bu oqimdagi hozirgi joyimiz va keyingi teskari vergul o'rtasidagi ma'lumotlar.. Biz buni "client.readBytesUntil" yordamida amalga oshirishimiz mumkin, u aytganini bajaradi, u baytlarni belgilangan so'rovga kelguncha buferga o'qiydi. Siz o'qiyotgan bufer barcha ma'lumotlarni saqlash uchun etarlicha katta ekanligiga ishonch hosil qiling, menimcha, biz bu erda 32 bilan juda xavfsizmiz!

Agar sizda barcha kerakli ma'lumotlar mavjud bo'lsa, boshqa ma'lumotlarni o'qishingiz shart emas. Men bu erda ulanishni yopmadim, chunki bu ESP8266 -da muammo tug'dirmadi, ESP32 bilan bog'liq muammolarni keltirib chiqardi, shuning uchun client.stop () ni qo'shdim. Rostini aytsam, nima uchun men uni usulning yuqori qismiga qo'yganimni bilmayman, menimcha, kerakli ma'lumotlarga ega bo'lgandan keyin uni yopish mantiqiyroq bo'ladi.

5 -qadam: Tashqi server yordamida ma'lumotlarni o'chirish:

Tashqi server yordamida ma'lumotlarni o'chirish
Tashqi server yordamida ma'lumotlarni o'chirish
Tashqi server yordamida ma'lumotlarni o'chirish
Tashqi server yordamida ma'lumotlarni o'chirish

Yana bitta mavzu - NodeJS kabi oddiy kompyuter muhitini mikro -tekshiruvchiga qaraganda yaxshiroq tahlil qilish vositalari bor, shuning uchun ba'zida ma'lumotlarni veb -sahifadan oladigan va soddalashtiradigan xizmatni ko'rsatish mantiqiy bo'lishi mumkin. ESP8266 yoki ESP32 uchun oxirgi nuqta. Bunga bir misol, qancha TinyPICO sotilganligini to'g'ridan -to'g'ri hisoblash uchun CrowdSupply sahifasini qirib tashlash edi. Bunga to'g'ridan -to'g'ri ESP8266 yoki ESP32 -da erishish mumkin edi, lekin u bir nechta elementlar bo'yicha bir nechta ma'lumot punktlarini tahlil qilgani uchun murakkab bo'lardi.

Men NodeJS loyihasini yaratishni yakunladim va cheerio deb nomlangan kutubxona yordamida ma'lumotlarni tahlil qildim va u juda yaxshi ishladi. Men bu loyihani menda bo'lgan bulutli serverda o'tkazganman, lekin agar sizda bunday sozlash bo'lmasa, siz bunday loyihani pi -da ishga tushirishingiz mumkin.

6 -qadam: Foydalanish chegaralari

Foydalanish chegaralari
Foydalanish chegaralari

Bu yondashuvlarning barchasiga ta'sir qilishi mumkin bo'lgan narsa bu saytlardan foydalanish chegaralarini buzishdir. Oddiy API -da, odatda, har daqiqada yoki kuniga qancha so'rov yuborish mumkinligi juda yaxshi hujjatlashtirilgan va shu asosda siz loyiha so'rovlarini cheklashingiz mumkin. Qachonki siz qirib tashlayotgan bo'lsangiz, siz bu chegaralar nima ekanligini bilmayapsiz, shuning uchun ularni urish va blokirovka qilish xavfi bor. Men cheklash bo'yicha aniq maslahat berolmayman, shuning uchun siz ularning yaxshi kitoblarida qolasiz, lekin men o'ylaymanki, har bir daqiqada hamma narsa juda tez -tez sodir bo'ladi, bundan tashqari, har bir soniyada bir necha soniya ichida so'rov yuboradiganga o'xshaydi.

7 -qadam: O'qiganingiz uchun tashakkur

Umid qilamanki, agar siz ESP8266 yoki ESP32 veb -sahifalaridan ma'lumotlarni tahlil qilishni xohlasangiz, bu video yordam berdi. Men yoritmagan mavzu bo'yicha boshqa savollaringiz bormi? Iltimos, menga quyidagi izohlarda xabar bering, yoki menga va Discord serverimdagi boshqa ishlab chiqaruvchilarga qo'shiling, u erda biz bu mavzuni yoki sizga tegishli bo'lgan boshqa ishlab chiqaruvchilarni muhokama qila olamiz, odamlar u erda haqiqatan ham yordam berishadi, shuning uchun bu osish uchun ajoyib joy tashqariga

Men ham Github homiylarimga katta rahmat aytmoqchiman, ular mening ishimni qo'llab -quvvatlaydilar, men buni juda qadrlayman. Agar bilmasangiz, Github birinchi yil homiylik yordamiga mos keladi, shuning uchun agar siz homiylik qilsangiz, ular keyingi bir necha oy davomida unga 100% mos keladi.

O'qiganingiz uchun tashakkur!

Tavsiya: