Mundarija:

1984 WeatherMan Pi: 7 qadam (rasmlar bilan)
1984 WeatherMan Pi: 7 qadam (rasmlar bilan)

Video: 1984 WeatherMan Pi: 7 qadam (rasmlar bilan)

Video: 1984 WeatherMan Pi: 7 qadam (rasmlar bilan)
Video: The Giant Wave - The Perfect Storm (3/5) Movie CLIP (2000) HD 2024, Noyabr
Anonim
Image
Image
1984 yil ob -havo Man Pi
1984 yil ob -havo Man Pi
1984 yil ob -havo Man Pi
1984 yil ob -havo Man Pi

Bu ko'chma kassetali pleyer hozirda 80 -yillarning boshlarida "hozirgi sharoitlar" animatsiyasini, haroratni va yomg'ir ehtimoli grafigini tasma oynasi orqali ko'rsatadigan IoT muhitidagi displey. Ob-havo sharoiti o'zgarganda, tepadagi servo-boshqariladigan minigarnituralar ogohlantirish sifatida oldinga va orqaga siljiydi.

Funktsional lentali eshikni ochganimizda, changli asl komponentlar Raspberry Pi Zero W, Pimoroni Unicorn Hat HD (LED Matrix) va kichik servo bilan almashtirilganini ko'rishimiz mumkin. Ob-havo ma'lumotlari aniq joylashuvimga mos keladigan Dark Sky Weather API-ni aniqlaydigan Python skriptidan foydalaniladi.

Bu oddiy, lekin chiroyli ko'rinishga ega va funktsional IoT konstruktsiyasi, u YouTube hisoblagichimning qarama-qarshi stolida joylashgan va meni jimgina ob-havo bilan xabardor qilib turadi.

Ta'minotlar

Raspberry Pi Zero

Pimoroni Unicorn HAT HD

Kichik Servo

1984 yil Hitachi SP-1 shaxsiy stereo va minigarnituralar

USB WiFi adapter

2 mm tishli novda

Sugru (qora va kulrang)

GeoMag magnitlari

1 -qadam: Tasmani yirtish

Tasmani yirtib tashlash
Tasmani yirtib tashlash
Tasmani yirtib tashlash
Tasmani yirtib tashlash
Tasmani yirtib tashlash
Tasmani yirtib tashlash

Sentyabr oyida qaynonam menga bu go'zal eski kassetani berishdi va shu zahotiyoq uning ajoyib ko'rinishi va tugmachalarini sevib qoldim. Haqiqiy yutuq - bu katta lenta oynasi edi - taxminan 15 soniyadan keyin menda o'lchagich bor edi va men uni standart Raspberry Pi HAT (uskuna biriktirilgan) bilan bir xil o'lchamda ekanligini ko'rib hayron bo'ldim.

Bu kashfiyotning o'zi mening kukukli soat loyihamni "qilish" ro'yxatidan pastga tushirish uchun etarli edi va men darhol o'yinchini demontaj qilib ishlay boshladim.

Yiqilish juda yaxshi o'tdi va men uchta alohida qism bilan ishladim - men bir nechta plastmassa qismlarni sindira oldim, lekin ularni bir -biriga yopishtirib bo'lmaydi.

2 -qadam: Dark Sky Pi

Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi

Men bir muncha vaqt telefonimda Dark Sky -dan foydalanganman va prognozlarning to'g'riligidan juda taajjublandim, shuning uchun men ushbu loyihada foydalanishim mumkin bo'lgan keng qamrovli API taklif qilishlarini ko'rib, juda xursand bo'ldim. ham yuqoriga!

Birinchidan, https://darksky.net/dev saytiga o'ting va bepul hisob qaydnomasiga ro'yxatdan o'ting - "sinov" hisob qaydnomasi kuniga 1000 ta API so'rovini bajarishga imkon beradi, bu har 1,5 daqiqada yangilanish uchun etarli bo'ladi - tez -tez men uchun ham. Buyuk Britaniyada ob -havoga moyillik darajasi.

Ro'yxatdan o'tgandan so'ng siz "maxfiy kalit" ni olasiz - bu ma'lumotlarga kirish uchun kerak bo'lgan narsa va u Python skriptida ishlatiladi, shuning uchun uni qo'lda saqlang (va bilasizmi, sir).

Men API ma'lumotlarini olish uchun Python -dagi so'rovlar modulidan foydalanadigan YouTube Subscriber Counter -da ishlatilgan skriptni moslashtirishdan boshladim. Men ishlatgan skript GitHub -da, siz faqat Dark Sky API kalitini qo'shishingiz va, albatta, o'zingizning Latitude & Longitude qiymatlarini almashtirishingiz kerak bo'ladi.

Hozirgi ob -havo ma'lumotlarini o'chirish juda oddiy edi va men "Belgilar", "Yomg'irlar ehtimoli" va "Harorat" elementlaridan foydalanishga qaror qildim.

3 -qadam: Kod

Kodeks
Kodeks

Agar siz men ishlatgan kodni qayta ishlatishni yoki tramplindan chiqishni xohlasangiz, u GitHub -dagi WeatherMan omborida joylashgan yoki "ob -havo" papkasini Raspberry Pi -dagi "pi" jildiga yuklab oling.

Asosiy skript funktsiyalari quyidagilar:

ob -havo

Bu Dark Sky -dan ob -havo ma'lumotlarini chiqaradigan asosiy skript. Siz https://darksky.net/dev saytida Dark Sky hisobini o'rnatishingiz va maxfiy kalitingizni ko'rsatilgan skriptga qo'yishingiz kerak. Sizni qiziqtirgan ob -havo joylashuvining kengligi va uzunligini ham kiritishingiz kerak bo'ladi - buni Google Xaritalarda topish mumkin, sichqonchaning o'ng tugmasi bilan bosing va "Bu erda nima bor?" va siz joylashuvning uzun/uzunligini ko'rsatadigan pop-upni olasiz.

API ma'lumotlarini olgandan so'ng, weatherman.py parametrlarni bir nechta kichik skriptlarga o'tkazadi, shunda animatsiyalar va naushniklar chayqaladi.

Boshlang'ich faylni tahrirlash orqali skript ishga tushganda o'rnatiladi …

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

… va qo'shib:

@python3 /home/pi/weather/weatherman.py &

fayl oxirida.

icon.py

Bu skript weatherman.py skriptidan "hozirgi shartlar" parametrini oladi va undan 16x16 ob -havo animatsiyasini ko'rsatish uchun foydalanadi - bularning hammasi "ikonkalar" papkasida saqlanadi va standart Unicorn HAT HD hujjatlarining bir qismidir.-p.webp

telefonlar.py

Agar oxirgi API talabidan ob -havo sharoiti o'zgargan bo'lsa (yoki bu yangi yuklash bo'lsa ham, qor yog'magan bo'lsa), bu skript weatherman.py dan chaqiriladi va sizga shartlar borligini bildirish uchun servoga oldinga va orqaga "jingle" qilishni buyuradi. o'zgartirildi.

precip.py

Bu skript weatherman.py -dan "yog'ingarchilik ehtimoli" parametrini qabul qiladi va % ehtimollik bilan bog'liq bo'lgan Unicorn HAT -da ko'k rangdagi chiziqlarni ko'rsatadi. Agar 100% barcha 16 qatorlar ko'k rangda yonib tursa, 50% faqat 8 qatorda bo'lsa.

temp.py

Boshqa standart Pimoroni skriptlari, bu weatherman.py -dan "temp" parametrini oladi va uni aylantiruvchi matn bilan ko'rsatadi. Bu Herkules truetype shriftini ("shriftlar" papkasida) ishlatish uchun o'rnatiladi, lekin agar xohlasangiz, standart shriftdan foydalanish mumkin. Siz hatto uni yaxshilashingiz mumkin, shunda ko'rsatilgan matn harorat qiymatiga qarab rangini o'zgartiradi!

4 -qadam: Unicorn HAT va Servo

Unicorn HAT va Servo
Unicorn HAT va Servo
Unicorn HAT va Servo
Unicorn HAT va Servo
Unicorn HAT va Servo
Unicorn HAT va Servo

Ob -havo ma'lumotlarini ushlab turish juda yaxshi edi, lekin endi men uni Unicorn HAT -da ko'rsatishim kerak edi. Men Internetdagi ob -havo belgilarining turli xil to'plamlarini ko'rib chiqdim va Pimoroni hujjatlarida ob -havo namunasi va ob -havo ko'rsatuvlari mavjudligini anglab etgach, ularni moslashtirib qo'ydim.

Bu juda katta miqdordagi ishni tejab qoldi va men tezda ishlay boshladim, hozirgi sharoitlar uchun animatsion belgi, harorat uchun bir nechta aylantiruvchi matn va % yog'ingarchilik grafigi (ba'zi engil matematikalarni o'z ichiga olgan). Men skriptlarni alohida saqladim va parametrlarni oldinga va orqaga o'tkazish uchun Pythonning Subprocess modulidan foydalandim.

Servo qo'shish bu ogohlantirishlar uchun ideal vosita edi, chunki u biroz shovqin qiladi va juda zerikarli bo'lmasdan ko'zni qamashtiradi. HAT allaqachon Pi -ning ko'p pimlarini olgani uchun men puls kengligi modulyatsiyasi yordamida servo harakatini nazorat qilish uchun 17 -pin yordamida servo kabellarni taxtaning pastki qismiga lehimladim.

Servodan Pi -dan quvvat olish ideal emas edi, lekin u faqat bir lahzalik chayqalish uchun ishlatilgan, shuning uchun bu erda aniqlik katta ahamiyatga ega emas edi. U diagrammada ko'rsatilgandek, Brown kabeli GND ga, Qizil 5v ga va Orange (boshqaruv kabeli) GPIO17 ga ulangan.

Oxir -oqibat, men GIMP -da ob -havo haqidagi ba'zi animatsion fayllarni tahrir qildim, o'z shaxsiy teginishimni qo'shdim, masalan, oyda ko'rshapalaklar va quyoshda tabassum. Men, shuningdek, o'yin -kulgi uchun ishga tushirish uchun "Old Tech New Spec" kaset g'ildiragining odatiy animatsiyasini qo'shdim.

5 -qadam: Eshitish vositasi jingle

Eshitish vositasi jingle
Eshitish vositasi jingle
Eshitish vositasi jigle
Eshitish vositasi jigle
Eshitish vositasi jingle
Eshitish vositasi jingle
Eshitish vositasi jingle
Eshitish vositasi jingle

WeatherManning fikri shundan iborat ediki, u mening stolida passiv o'tirib, vaqti -vaqti bilan ob -havoni ko'rsatib turardi, lekin men buni biroz ko'proq qilishni xohlardim! U bilan birga kelgan minigarnituralar tushdi, lekin 80 -yillarning klassikasi edi, shuning uchun men ular bilan biror narsa qilishga qaror qildim. Barcha kabellarni echib, singan qismini issiq yopishtirgandan so'ng, menda uch qism, 3,5 mm vilkasi, olmos shaklidagi tugma va telefonlarning egiluvchan metall tasmasi qoldi.

Agar men telefonlarni qurilmaning yuqori qismiga o'rnatishning boshqa usulini topsam, ularni servo bilan oldinga va orqaga burib, qo'shimcha bildirishnoma sifatida ishlatishim mumkin edi.

Birinchidan, men 3,5 mm vilkasini ochdim va olmos kalitini demontaj qildim, keyin ularni tishli novda ustiga qo'ydim. Keyin men plastmassa ulagichga yong'oq yopishtirdim, shunda tayoq servo ustida ishonchli (va to'g'ri) o'tirishi mumkin edi. Tayoqning boshqa uchiga men boshqa yong'oq qo'shdim. Oxir -oqibat men kulrang Sugru -dan tayoqning yuqori qismini minigarnituraga bog'lash uchun ishlatardim, shuningdek, uning pastki qismidagi yong'oqni yopdim. Agar siz Sugru haqida eshitmagan bo'lsangiz, u mayda -chuyda qoplarga solingan yopishtiruvchi yopishtiruvchi bo'lib, u Play -Doh kabi qolib ketadi, lekin yopishqoq kabi yopishib qoladi va plastmassa kabi qattiq bo'ladi!

Yaqinda sovuq ob -havo sharoitida Sugru bir necha kun to'liq qotib qoldi, lekin naushniklar va ularning stendi tez orada yakuniy yig'ilishga tayyor edi.

6 -qadam: yig'ish

O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish

Pi, HAT va Servo hammasi skameykada yaxshi ishlaydilar, shuning uchun keyingi ish ularni bu ishga kirish edi. Katta tarkibiy qismlarni ishga tushirishdan oldin men kosmetika vositalarini ajratish uchun kulrang Sugru-ni ishlatib, ovoz balandligi, naushnik rozetkasi va "metall tasma" kalitini o'rnatdim. Men, shuningdek, Play, Stop, FF & Rew tugmalarini plastik kanalga yopishtirdim, shunda ular kerakli joyda qoladilar. Bu safar hech qanday tugmachani qaytadan ishlatmaslik sharmandalik edi, lekin ularni boshqaradigan hech narsa yo'q edi!

Men kulrang Sugru -ning oxirgi qismini ishlatib, servoni ushlab turdim, uning milini naushnikning kattalashgan uyasi teshib o'tdi. Ishning ikkinchi yarmiga o'tsam, men HAT va Pi yig'ilishini lenta eshigiga mahkamlash uchun qora Sugru ishlatardim, shunda ular ochiladi. Menga eshikni mahkam yopib qo'yish uchun GeoMag magnitini mahkamlagani juda yoqdi.

Ikkala yarmini birlashtirish - asabiy ish edi, chunki men Pi va Servo bir -biriga qarama -qarshilik qiladi deb qo'rqardim, lekin oxirida millimetrga yaqin bo'sh joy qoldi, mening kitobimda ko'p. Eshikning eshiklari kelajakda xizmat ko'rsatish uchun ichki makonga to'liq kirishga imkon bergani uchun, men faqat ikkita yarmini bir -biriga yopishtirib qo'ydim va yog'li barmoq izlarimni artib bo'lgach, minigarnituraning yuqori qismiga o'rnatib qo'ydim!

7 -qadam: Jim obsesyon

Jim obsesyon
Jim obsesyon
Jim obsesyon
Jim obsesyon

Qayta ishlatish tanlovining ikkinchi mukofoti

Tavsiya: