نمایش گزارش آب و هوای MozCast مستقل با ESP32 🥖 تصادفی‌های جان مولر

من تعداد زیادی برد ESP32 اضافی دارم، بنابراین فکر کردم ساخت یک نمایشگر آب و هوای کوچک برای آب و هوای SEO سرگرم کننده است. انتخاب واضح استفاده از MozCast است. این تفسیر منحصر به فرد Moz از نحوه تغییر نتایج جستجوی گوگل است. این نشان دهنده کاری نیست که گوگل در الگوریتم های خود انجام می دهد، اما عددی برای آب و هوا است، پس چرا که نه.

امیدواریم بدیهی است که این یک توصیه از هیچ ابزار سئو خاصی نیست. صادقانه بگویم، من طرفدار هیچ گزارش آب و هوای SEO نیستم، به ویژه به دلیل نحوه جمع آوری داده ها. افراد Moz در گذشته باهوش و دوستانه بودند، بنابراین امیدوارم با این هک خوب باشند. (خوشحال می شوم که یکی از اینها را برای کسی از Moz بفرستم، اگر یادداشتی برای من بفرستید.)

بررسی اجمالی

tl;dr: کد اینجاست.

ساختن یکی از اینها کار زیادی لازم نیست. سخت افزاری که من استفاده کردم یک برد توسعه “ESP32” با صفحه نمایش یکپارچه است که از یک پورت USB-C برای تغذیه و برنامه نویسی استفاده می کند. من از محیط برنامه نویسی آردوینو برای نوشتن کد استفاده کردم، با استفاده از چند کتابخانه که می توانید با UI اضافه کنید.

سخت افزار

من از “Lilypad TTGO with T-Display” استفاده کردم. (ESP32 نام ماژول اصلی است که شامل CPU، حافظه، وای فای و غیره می شود.) بردهای ESP32 دیگری با نمایشگر داخلی وجود دارد که احتمالاً کار می کنند (اما باید کد را تنظیم کنید).

در اینجا یک دستگاه نمونه از Aliexpress آمده است. آنها در حال حاضر 10-25 دلار هستند. تراشه ها کمی گران تر از قبل هستند، بنابراین YMMV. اگر ترجیح می دهید اغلب می توانید اینها را به صورت محلی تهیه کنید. شما به هیچ سخت افزار دیگری نیاز ندارید، بقیه نرم افزار رایگان است. آری

کد

کد Arduino C++ است و از کتابخانه ها برای نمایشگر و برای نقطه دسترسی وای فای (برای اتصال به وای فای) استفاده می کند.

کد یک نقطه دسترسی وای فای را تنظیم می کند، جایی که می توانید برای دسترسی به اینترنت به وای فای محلی خود متصل شوید. اتصال اینترنت فقط برای واکشی داده های MozCast استفاده می شود. هیچ تجزیه و تحلیل یا ردیابی در کد در سمت من وجود ندارد (و من تقریباً مطمئن هستم که هیچ یک از کتابخانه ها نیز این کار را انجام نمی دهند).

هنگامی که یک اتصال وای فای به وب وجود دارد، هر X دقیقه صفحه MozCast را دانلود می کند، سعی می کند آب و هوای فعلی را بیرون بکشد و آن را نمایش می دهد.

نامرتب است، اما برای من کار می کند.

کتابخانه های استفاده شده (همه در رابط کاربری آردوینو):

برای تنظیمات، کد را ببینید.

واکشی داده ها

داده‌ها از URL اصلی MozCast می‌آیند: moz.com/mozcast. URL توسط robots.txt مسدود نشده است، بنابراین بازی منصفانه به نظر می رسد. (Robots.txt در archive.org)

صفحه HTML شامل داده های JSON برای آب و هوا است که من از آنها استفاده کردم. صفحه طولانی است، بنابراین نمی توانم فقط آن را واکشی کنم و اطلاعات را با دستگاه ESP32 بیرون بیاورم. در عوض، صفحه را در بخش های 128 بایتی واکشی می کنم و شروع بلوک داده را در 2 بلوک متوالی جستجو می کنم. هنگامی که شروع پیدا شد، 1 کیلوبایت داده جمع آوری می کنم. این بیشتر از چیزی است که نیاز است (داده ها در ابتدای بلوک JSON هستند). پس از دریافت آن داده ها، ورودی های JSON را با تجزیه کننده JSON ساده شده استخراج می کنم.

به نظر می رسد داده های MozCast یک بار در روز به روز می شوند، اگرچه من جزئیات را ردیابی نکردم. واکشی داده‌ها هر ساعت یا بیشتر باید برای تازگی کافی باشد (زیرا از POV من غیرقابل پیش‌بینی است که دقیقاً چه زمانی داده‌ها به‌روزرسانی می‌شوند).

صفحه نمایش دمای فعلی، نام فایل نماد آب و هوا، تاریخ و دمای قبلی را نشان می دهد. MozCast یک واحد (C یا F) را مشخص نمی کند و به هر حال دلخواه است. علاوه بر این، زمان سرور را از سربرگ پاسخ HTTP در پایین نمایشگر نمایش می دهد.

توضیحات جانبی

نظرات تصادفی …

  • Moz احتمالاً یک علامت تجاری است. شاید MozCast هم باشد؟ من هیچ چیز بیخودی ندیدم
  • هیچ کوکی از سرورهای MozCast را نگه نمی دارد یا دوباره استفاده نمی کند. درخواست های شما ممکن است با آدرس IP عمومی شما ثبت شود.
  • من فکر نمی‌کنم ESP_WiFiManager کوکی‌ها را ذخیره کند یا تجزیه و تحلیلی را نگه دارد، اما تحت کنترل من نیست. اعتبار وای فای را در فلش مموری محلی دستگاه ذخیره می کند.
  • زمان در پایین مربوط به سرفصل‌های پاسخ HTTP است و ممکن است بسته به سروری که دریافت می‌کنید متفاوت باشد.
  • کد ترکیبی نامرتب از String() و char() است – برای من کار می کند.
  • اگر Moz تنظیمات خود را تغییر دهد، کار نمی کند. من برنامه خاصی برای ادامه کار ندارم، اما ممکن است.
  • اگر Moz بخواهد کد را حذف کنم، آن را حذف می کنم.
  • من برنامه ای برای اجرای سایر گزارش های جستجوی آب و هوا ندارم. اگر می‌خواهید این کار را انجام دهید، خودتان را ناک اوت کنید. تجزیه HTML نامرتب است، یک API JSON ساده تر خواهد بود.
  • من هیچ وابستگی به Moz ندارم. آنها برای این لینک پولی نمی پردازند.
  • من نمی‌دانم MozCast چگونه کار می‌کند، حدس می‌زنم 100٪ دقیق باشد (همانطور که اجرا شده است).

نظرات / سوالات

در حال حاضر هیچ قابلیت نظر دادن در اینجا وجود ندارد. اگر می‌خواهید نظر بدهید، لطفاً از Mastodon استفاده کنید و من را (@[email protected]) در آنجا ذکر کنید. با تشکر!

صفحات مرتبط

Source link