Агуулгын хүснэгт:
- Алхам 1: Видеог үзээрэй
- Алхам 2: Эхлэхээсээ өмнө
- Алхам 3: Нийтийн бус API (хорлон сүйтгэгч: Instructables нэг байна!)
- Алхам 4: Өгөгдлийг шууд хусах
- Алхам 5: Гадаад сервер ашиглан өгөгдлийг хусах:
- Алхам 6: Хэрэглээний хязгаар
- Алхам 7: Уншсанд баярлалаа
Видео: ESP8266/ESP32 ашиглан өгөгдлийг хусах: 7 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Та Arduino төслүүдийнхөө өгөгдлийг авахыг хүсч байсан уу, гэхдээ олон нийтэд зориулсан API байхгүй байна уу? Эсвэл Instagram API гэх мэт тохиолдолд тохируулах процесс тийм ч тохиромжтой биш байдаг уу?
Энэхүү гарын авлагад бид ESP8266 эсвэл ESP32 төслүүдийнхээ вэбсайтаас мэдээлэл хуулах хоёр өөр сонголтыг авч үзэх болно.
Алхам 1: Видеог үзээрэй
Би энэ заавартай ижил зүйлийг хамарсан видео хийсэн тул та сонирхож байвал үзээрэй!
Алхам 2: Эхлэхээсээ өмнө
Миний хуулж авах гэж буй өгөгдөл нь нийтэд нээлттэй өгөгдөл бөгөөд баталгаажуулалт шаарддаггүй гэдгийг анхаарна уу. Жишээлбэл, миний YouTube -ийн захиалагчдын тоог зөвхөн зохиогчийн студид л ашиглах боломжтой байдаг тул төхөөрөмж үүнийг надаар баталгаажуулсан хүсэлт гаргах шаардлагатай болно. Энэ төрлийн хүсэлт нь энэ видеоны хувьд хамааралгүй болно. Хамрах боломжтой эсэхийг шалгах хурдан тест бол хуудсыг нууц цонхонд ачаалахыг оролдох явдал бөгөөд ингэснээр таныг ямар ч сайт руу автоматаар нэвтрэхгүй болно.
Энэхүү зааварт заасан техникийн хувьд бид хөтөч дээр байдаг хөгжүүлэгчдийн зарим хэрэгслийг ашиглах шаардлагатай болно. Би тэдгээрийг Firefox дээр үзүүлэх болно, гэхдээ Chrome нь ижил төстэй хэрэгслүүдтэй болохыг би мэднэ, бусад хөтөч дээр ч бас байдаг гэдэгт би итгэлтэй байна.
Алхам 3: Нийтийн бус API (хорлон сүйтгэгч: Instructables нэг байна!)
Бидний авч үзэх хамгийн эхний арга бол олон нийтийн бус API ашиглах явдал юм. Энэ нь үргэлж боломжтой байдаггүй, гэхдээ хэрэв энэ нь гарцаагүй бол та үүнийг ашиглахыг зорих ёстой. Миний "олон нийтийн бус API" гэж нэрлэж буй зүйл бол үндсэндээ сайт нь бидний олж авахыг хүссэн өгөгдлийг авахын тулд хөшигний ард вэбсайт дээрээ сурталчилгаа хийгээгүй API ашигладаг явдал юм.
Үүнийг ашиглахыг илүүд үзэх хэд хэдэн шалтгаан бий.
- Хамгийн том давуу тал нь вэб хуудас шиг байнга өөрчлөгдөх магадлал багатай байдаг, хэрэв та өгөгдлийг HTML вэб хуудаснаас шууд хуулж авбал сайтад өөрчлөлт оруулах бүрт таны задлах ажиллагаа эвдэрч магадгүй юм.
- Энэ нь ихэвчлэн өгөгдөл илүү үр ашигтай байдаг. Вэб хуудсыг хусаж байхдаа та HTML хуудсыг бүхэлд нь татаж аваад үүнээс мэдээлэл авахын тулд API -ууд зөвхөн өгөгдлийн цэгүүдийг буцааж өгөх болно, ингэснээр ихэвчлэн хамаагүй бага хүсэлт байх болно.
- Ихэвчлэн задлан шинжлэх нь илүү хялбар байдаг. Ихэвчлэн API нь өгөгдлийг задлахад хялбар JSON форматаар буцаадаг бөгөөд хэрэв та олон тооны өгөгдлийг гаргаж байгаа бол энэ нь ялангуяа үнэн юм.
Вэб хуудас иймэрхүү тохиргоог ашигладаг эсэхийг бид эхлээд олж мэдэх ёстой. Хэрэв сайт Kickstarter дээр байгаа шиг бодит цаг хугацаанд үнэ цэнээ шинэчилж байгаа бол энэ тохиргоог ашиглах магадлал байхгүй хэвээр байх болно. Instructables нь олон нийтэд зориулагдаагүй API-ийг ашиглан сайтынхаа зарим мэдээллийг бодит цаг хугацаанд сэргээдэггүй ч гэсэн татаж авах боломжтой.
Сайт энэ тохиргоог ашиглаж байгаа эсэхийг шалгахын тулд хөтөчийнхөө хөгжүүлэгчийн горимыг оруулна уу, үүнийг хийх хамгийн хялбар арга бол хуудсан дээр хулганы баруун товчийг дараад "элементийг шалгах" -ыг сонгох явдал юм.
Дараа нь та сүлжээний таб руу очихыг хүсэх болно, энэ нь вэб хуудасны хүсэлтийг цаана нь харуулах болно, энэ хуудсыг нээсний дараа хуудсыг дахин ачаалах шаардлагатай байж магадгүй тул зөвхөн үүнээс хойш хийсэн хүсэлтийг харуулах болно.
Та ихэвчлэн "json" төрлийн хүмүүсийг хайж олохыг хүсдэг. Энд маш олон хүсэлт ирж болох тул төрлөөр нь эрэмбэлэхэд тусална. Kickstarter кампанит ажлын хуудсан дээр энэ тохиргоог ашиглаж байгаа нь маш тодорхой харагдаж байна, учир нь та "stats.json" эцсийн цэг рүү байнга хүсэлт гаргаж байгааг харж болно. Instructables зохиогчдын хуудсан дээр (жишээ нь минийх бол "https://www.instructables.com/member/witnessmenow/") тэд байнгын хүсэлт гаргадаггүй, гэхдээ та "showAuthorStats" төгсгөлийн цэгийн хүсэлтийг бусдын дунд нуугдаж байгааг харж болно.
Энэхүү хүсэлтийн талаар нэмэлт мэдээлэл авахын тулд та үүн дээр дарж болно. Хүсэлтийг давтахын тулд та эндээс шаардлагатай бүх мэдээллийг авах боломжтой байх ёстой. Гэхдээ үүнийг хийхээсээ өмнө хүссэн өгөгдөл байгаа эсэхийг дахин шалгах хэрэгтэй. Хариултын таб дээр дарж өгөгдөл байгаа эсэхийг шалгаарай.
Хэрэв танд хэрэгтэй өгөгдөл байгаа бол та бүгдийг тохируулсан болно! Та дараа нь API -тэй холбогдох талаар миний өмнөх видеон дээр дурдсан ижил аргыг ашиглаж болно. Үүний богино хувилбар нь хүсэлт нь эхлээд Postman гэх мэт хэрэгсэл дээр хүлээгдэж байсны дагуу ажиллаж байгаа эсэхийг шалгах бөгөөд дараа нь энэ жишээ төслийг ашиглан таны төхөөрөмж дээр ажиллаж байгаа эсэхийг шалгах явдал юм.
JSON өгөгдлийг задлан шинжлэхийн тулд би ArudinoJSON -ийг ихэнх тохиолдолд ашиглахыг зөвлөж байна, хэрэв энэ нь танд заавар өгөхийг хүсч байвал надад мэдэгдээрэй!
Алхам 4: Өгөгдлийг шууд хусах
Дараа нь бид өгөгдлийг вэб хуудаснаас шууд хусахыг авч үзэх болно, энэ нь төхөөрөмж дээрх бүрэн вэб хуудсыг шаардаж, бидний хүссэн өгөгдлийг задлан шинжлэх болно. Олон нийтийн бус API-ийн энэ аргын давуу талыг би аль хэдийн дурдсан боловч заримдаа шаардлагатай байдаг!
Энд анхаарах нэг чухал зүйл бол хэрэв та вэб хөгжүүлэлтийг сайн мэддэг бол тухайн элементийн тухай мэдээлэл, түүний бүтэц, зохион байгуулалтыг олж мэдэхийн тулд шалгах элементийн онцлогийг ашиглаж болно. Орчин үеийн вэб хуудсуудыг ихэвчлэн Javascript ашиглан динамикаар өөрчилдөг бөгөөд энэ нь таны төхөөрөмж дээр хийгдэхгүй тул энэ аргыг ашиглахаас зайлсхийх хэрэгтэй. Таны төхөөрөмж дээр байгаа HTML код нь зөвхөн татаж авсан вэб хуудас байх болно. Үүний сайн жишээ бол TeamTrees хуудас бөгөөд одоогийн хандивын тоо 0 -ээр эхэлж, дараа нь энэ анимацаар хуудсанд ачаалагдах болно, гэхдээ бидний өмнө үзсэн хоёр жишээнээс ялгаатай нь өгөгдлийг арын дэвсгэр дээр ачаалдаггүй. зөв өгөгдөл өөр газар байх ёстой.
Вэб хуудасны анхны кодыг үзэхийн тулд та хуудсан дээр хулганы баруун товчийг дараад "Эх сурвалжийг харах" -ыг сонгож болно. Та дараа нь хүссэн өгөгдлөө хайж олохыг хүсч байгаа тул TeamTrees-ийн жишээн дээр бид одоогийн хандивын тоог хайхад бодит тоо нь тоолох элементийн өгөгдөл тоолох шинж чанарт хадгалагдаж байгааг бид харж болно. -ээс өгөгдлийг хусах.
Таны өгөгдөл рүү хөтөлдөг хайлтын мөрийг олох хэрэгтэй, төхөөрөмжийг кодлохын өмнө үүнийг олоход илүү хялбар байдаг. Энэ жишээний хувьд "өгөгдөл тоолох \" "хайлтыг хайж олох нь бидний хүссэн өгөгдөл рүү шууд хүргэж байна. Энэ нь хуудасны бусад хэсэгт таарч байна гэж санаа зовох хэрэггүй, учир нь энэ нь эхний байранд орох болно. Хэрэв та 3 дахь цохилтыг хийх шаардлагатай байсан бол эхний 2 цохисныг үл тоомсорлож програмчлах боломжтой.
Хэрэв бид TeamTrees -ийн жишээг авч үзвэл өмнөх шигээ бид хариултын толгойг алгасаад одоо хариултын хэсгийг (энэ нь вэб хуудас) харж байна. Үйлчлүүлэгчээс буцаж ирдэг зүйл бол мэдээллийн урсгал юм. Бид хайлтын асуулга хүртэл юу ч хамаагүй, тиймээс бид клиент хийдэг. Хэрэв энэ нь хайлтын асуулгыг олсон бол энэ нь үнэн болж, урсгалыг асуулгын төгсгөлд шилжүүлэх болно. Дамжуулалтаас авах боломжтой дараагийн зүйл бол бидний хайж буй өгөгдөл байх болно, гэхдээ энэ тохиолдолд өгөгдөл хэр удаан үргэлжлэх нь тодорхойгүй байгаа ч энэ нь урсгал дахь бидний одоогийн байрлал ба дараагийн урвуу таслал хоёрын хоорондох бүх мэдээлэл гэдгийг бид мэднэ.. Бид үүнийг "client.readBytesUntil" ашиглан хэлснийг хийж, байтыг заасан асуулгад хүрэх хүртэл буферт уншдаг. Уншиж буй буфер нь бүх өгөгдлийг хадгалах хангалттай том хэмжээтэй байгаа эсэхийг шалгаарай, бид 32 -той энд аюулгүй байгаа гэж бодож байна!
Хэрэв танд хэрэгтэй бүх өгөгдөл байгаа бол та цаашид мэдээлэл унших шаардлагагүй болно. Би энд холболтыг хаасангүй, учир нь энэ нь ESP8266 дээр асуудал үүсгээгүй, ESP32 -т асуудал үүсгэсэн юм шиг санагдсан тул client.stop () нэмсэн. Үнэнийг хэлэхэд, яагаад би энэ аргыг хамгийн дээд хэсэгт оруулсан нь тодорхойгүй байна, хүссэн өгөгдөлтэй болсны дараа үүнийг хаах нь илүү утга учиртай гэж би бодож байна.
Алхам 5: Гадаад сервер ашиглан өгөгдлийг хусах:
Нөгөө нэг сэдэв бол NodeJS гэх мэт ердийн компьютер дээр суурилсан орчинд микро хянагчийг задлан шинжлэх илүү сайн хэрэгсэл байдаг тул заримдаа вэб хуудаснаас өгөгдөл авч, илүү хялбар болгох үйлчилгээ хийх нь утга учиртай байж магадгүй юм. таны ESP8266 эсвэл ESP32 -ийн төгсгөлийн цэг. Үүний нэг жишээ бол CrowdSupply хуудсыг хусаж хэдэн TinyPICO зарагдсан тухай шууд тоолох явдал байв. ESP8266 эсвэл ESP32 дээр шууд хүрэх боломжтой байсан боловч хэд хэдэн өөр өөр элемент дээр олон янзын өгөгдлийн цэгүүдийг задлан шинжилж байсан тул энэ нь төвөгтэй байх болно.
Би NodeJS төслийг бүтээж, cheerio нэртэй номын санг ашиглан өгөгдлийг задлан шинжилсэн бөгөөд маш сайн ажилласан. Би энэ төслийг өмнө нь байсан үүл сервер дээр байрлуулсан боловч хэрэв танд ийм тохиргоо байхгүй бол та ийм төслийг pi дээр ажиллуулж болно.
Алхам 6: Хэрэглээний хязгаар
Эдгээр бүх арга барилд нөлөөлж болзошгүй нэг зүйл бол сайтын ашиглалтын хязгаарыг давах явдал юм. Ердийн API -д ихэвчлэн минут тутамд эсвэл өдөрт хэдэн удаа хүсэлт гаргах боломжтойг маш сайн баримтжуулдаг бөгөөд үүнд үндэслэн та төслийнхөө хүсэлтийг хязгаарлаж болно. Та хусаж байхдаа эдгээр хязгаарлалтууд нь юу болохыг мэдэхгүй тул та тэдгээрийг цохиж, блоклох эрсдэлтэй болно. Би үүнийг хязгаарлах талаар тодорхой зөвлөгөө өгч чадахгүй, тиймээс та тэдний сайн номонд үлдэх болно, гэхдээ хэдхэн секунд тутамд өөрсдөө хүсэлт тавьдаг шиг тоглогч эхлэхээс бусад тохиолдолд минут тутамд ямар ч зүйл хэтэрхий олон удаа тохиолддог гэж би боддог.
Алхам 7: Уншсанд баярлалаа
Хэрэв та ESP8266 эсвэл ESP32 дээрх вэб хуудсуудаас өгөгдлийг шууд задлан шинжлэх сонирхолтой байгаа бол энэ видео тусалсан гэж найдаж байна. Миний хамруулаагүй сэдвээр өөр асуулт байна уу? Доорх сэтгэгдлүүд дээр надад мэдэгдээрэй, эсвэл надтай болон миний Discord сервер дээр байгаа бусад олон үйлдвэрлэгчидтэй нэгдээрэй, энд бид энэ сэдвээр эсвэл өөр бусад үйлдвэрлэгчидтэй холбоотой сэдвээр ярилцаж болно, хүмүүс тэнд үнэхээр тустай байдаг тул өлгөхөд тохиромжтой газар юм. гадагш
Миний хийж буй зүйлийг дэмжихэд тусалдаг Github ивээн тэтгэгчиддээ маш их баярлалаа гэж хэлмээр байна. Хэрэв та мэдэхгүй бол Github эхний жилдээ ивээн тэтгэгчтэй таарч байгаа тул хэрэв та ивээн тэтгэлэг хийвэл тэд ирэх хэдэн сарын хугацаанд 100% -тай тэнцэх болно.
Уншсанд баярлалаа!
Зөвлөмж болгож буй:
IoT ESP8266 Цуврал: 2- ThingSpeak.com ашиглан өгөгдлийг хянах: 5 алхам
IoT ESP8266 Цуврал: 2- ThingSpeak.com ашиглан өгөгдлийг хянах: Энэ бол IoT ESP8266 цувралын хоёр дахь хэсэг юм. 1 -р хэсгийг үзэхийн тулд энэхүү зааварчилгаа бүхий IoT ESP8266 цувралыг үзнэ үү: 1 WIFI чиглүүлэгч рүү холбогдоно уу. Энэ хэсэг нь мэдрэгчийн өгөгдлөө алдартай IoT үнэгүй үүл үйлчилгээнд хэрхэн илгээхийг харуулах зорилготой юм https: //thingspeak.com
ESP8266, цахим цаасан дэлгэц ашиглан Коронавирус COVID 19-ийн шууд өгөгдлийг хэрхэн хийх вэ: 7 алхам
ESP8266, цахим цаасан дэлгэц ашиглан Коронавирус COVID 19-ийн шууд өгөгдлийг хэрхэн яаж хийх вэ: 1
NodeMcu ашиглан ямар ч вэбсайтаас Wi -Fi (хойд гэрлийн заагч) дээрх өгөгдлийг татаж аваад шууд харуулах: 6 алхам
NodeMcu -ийн тусламжтайгаар ямар ч вэбсайтаас Wi -Fi (Хойд гэрлийн индикатор) дээрх өгөгдлийг татаж аваад шууд харуулах . Гэсэн хэдий ч эдгээр хичээлүүдийн маш цөөхөн нь шинэхэн хүмүүст зориулсан бүх нарийн ширийн зүйлс/ код/ диаграммтай байсан
Uno ашиглан ESP8266 WeMos D1 R1 Wifi процессор ашиглан ESP32-камер ашиглан зураг авах, илгээх: 7 алхам
ESP8266 WeMos D1 R1 Wifi процессор ашиглан Uno ашиглан ESP32-Cam ашиглан зураг авах, илгээх: Uno ашиглан ESP8266 WeMos D1 R1 WiFI процессор ашиглан ESP32-Cam (OV2640) ашиглан зураг авч имэйлд илгээж, Google Драйвт хадгалаад илгээнэ үү. Twilio ашиглан Whatsapp. Шаардлага: Uno -той ESP8266 WeMos D1 R1 WiFI процессор (https: // protosupplies
NSP Timestamp ашиглан ESP32 өгөгдлийг IoT Cloud дээр хэрхэн нийтлэх вэ: 5 алхам
NSP Timestamp ашиглан ESP32 өгөгдлийг IoT Cloud дээр хэрхэн нийтлэх вэ: Олон програмын хувьд хэрэглэгчид өгөгдлийг ачааллын хувьд AskSensors IoT үүл рүү илгээх утгуудын орон нутгийн цагийн тэмдгийн хамт илгээх шаардлагатай болдог. Цагийн тэмдгийн формат нь UNIX -ийн үе юм: Янугаас хойш өнгөрсөн миллисекундын тоо