Извеждане на прогнозата за времето от Интернет към модула с LED матрицата Amperka

В тази статия ще говоря за това как да направите свой собствен метеорологичен монитор, който самостоятелно да издирва текущото време в избран град в Интернет и да показва съответната информация на цветна LED матрица.

Какво е необходимо

времето

Всъщност първият проблем, с който се сблъскваме, е откъде да вземем времето? От кой сайт? Мисля, че всички познават сайтове като Gismeteo или Yandex.Weather. Но в нашия проект ние няма да вземем отчета за времето от тях. Ще използваме сайт, за който не мисля, че сте чували: http://openweathermap.org/.

Той е безплатен и има възможност да наслагва метеорологични данни на картата. Но най-важният факт за нас е, че той има безплатен, прост API, чиято мощност използваме в нашето устройство. Gismeteo и Yandex, Времето няма API с еднакво ниво на простота.

И така, да кажем, че трябва да разберем времето в град Москва. Можем да намерим съответната страница чрез търсене. Отваряйки го, ще видим приблизително следната снимка.

прогнозата

Това е удобно за хората, но какво ще кажете за контролера? Също така е желателно той да изтегля по-малко данни от Интернет, за да опрости тяхната обработка. За целта ще използваме API. За да получите времето в Москва, в метричната система от единици и в повече или по-малко четим формат XML, трябва да следвате следната връзка:

Този път няма да има снимки, а само малко текст с нещо подобно:

Ще се съсредоточим само върху първите 2 цифри. За простота на примера няма да правим разлика между деня и нощта, а също така поддържаме само най-често срещаните текущи опции за времето.

Както си спомняте, нашият LED масив има разделителна способност 8x8 пиксела. И така нашите снимки трябва да са с еднакъв размер.

Ето четири от нашите снимки: дъжд, сняг, слънце и гръмотевична буря.

Такива снимки се правят много лесно. Достатъчно е да потърсите в Интернет „Онлайн редактор на икони“. Там можете да ги нарисувате пиксел по пиксел и да си ги запазите, например във формат PNG).

Проблемът е, че този формат не е подходящ за нас, тъй като изображението е компресирано и трябва да се разопакова, за да работи с него. И това се прави по доста сложен алгоритъм. Бихме искали да имаме данни в някакъв прост некомпресиран формат.