Mundarija:
- 1 -qadam: Astronomiya ma'lumotlarini ro'yxatdan o'tkazish
- 2 -qadam: komponentlar
- 3 -qadam: Kompyuter uchun dasturiy ta'minot
- 4 -qadam: O'chirish davri
- 5 -qadam: Kod
- 6 -qadam: Yakuniy yig'ilish
Video: Simsiz oy fazali kuzatuvchisi: 6 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Oy fazasi kuzatuvchisi-bu oy haqida muhim ma'lumotlarni to'plash imkonini beradigan kichik, yarim ko'chma qurilma. Qurilma ko'rinadigan yorug'lik, faza, oyning ko'tarilishi, belgilangan vaqt va boshqalar kabi parametrlarni qaytaradi.
Bu qurilma ilm -fan yoki astronomiyaga qiziqadigan va ish stoli uchun ajoyib bezak beradigan va, albatta, suhbatni boshlaydigan har bir kishi uchun juda zarurdir.
Loyiha juda oddiy va ESP32 kabi Internetga ulangan qurilmani talab qiladi, lekin siz har doim kodni Wi -Fi qalqoni, Ethernet qalqoni yoki Internetga ulangan boshqa qurilmalar bilan ishlashga moslashtira olasiz. Lunar Phase Tracker lityum-polimer batareyalar va juda tejamkor elektron siyohli displey bilan ishlashga mo'ljallangan bo'lib, u nafaqat ajoyib ekranni beradi, balki quvvat o'chib qolsa ham oxirgi tasvirni ushlab turadi!
1 -qadam: Astronomiya ma'lumotlarini ro'yxatdan o'tkazish
Bu qadam juda muhim (zerikarli bo'lsa ham), chunki biz ma'lumot yig'ish uchun onlayn API -dan foydalanmoqdamiz. Oy fazalarini, yorug'lik va boshqalarni hisoblash mumkin bo'lsa -da, buni bajarish zerikarli. Biz foydalanayotgan API jonli ob-havo stantsiyalari va kuzatuv tizimlaridan dolzarb ma'lumotlarni taqdim etadi, shuning uchun biz olgan ma'lumotlar hisoblangan qiymatlar emas, balki real natijalardir.
Ob -havo metrosiga o'ting, "ro'yxatdan o'tish" ni bosing va barcha ma'lumotlarni to'ldiring. Hisob mutlaqo bepul va siz har daqiqada juda ko'p natija so'ramasangiz yoki kuniga 500 so'rovdan oshmasangiz, sizning API qo'ng'iroqlaringiz bepul. Bu sahifaga xatcho'p qo'yganingizga ishonch hosil qiling, siz har doim keyinroq qaytib kelib, ob -havo statistikasi va boshqa ajoyib ma'lumotlar uchun API -dan foydalanishingiz mumkin. Hisob qaydnomangizni yaratganingizdan so'ng, API saytiga o'ting, "sotib olish kaliti" ni bosing va bepul rejani tanlang, siz shunchaki bir nechta ma'lumotlarni kiritishingiz kerak bo'ladi, shunda siz kalitni o'zgartiruvchi kalit bilan bog'liq muammolarga duch kelasiz. Bu identifikator sizga xos va maxfiy saqlanishi kerak. Men o'z kalitimni Arduino kodining misolida ko'rsatdim, uni birozdan keyin ko'rib chiqamiz. Siz test kalitlari sifatida mening kalit identifikatorimdan foydalanishga rozi bo'lasiz, lekin men o'zingiz uchun ro'yxatdan o'tishni tavsiya qilaman.
O'zingizning shaxsiy identifikatoringizni olganingizdan so'ng, siz Astronomiya API ma'lumotlariga o'tishingiz mumkin, bu haqiqatan ham juda yalang'och. Siz shunga o'xshash oddiy misolni topasiz:
api.wunderground.com/api/8c6dc2e5c6f36de9/a…
Bu URL juda muhim, chunki bu bizni loyihamizni amalga oshirish uchun zarur bo'lgan barcha ma'lumotlar bilan ta'minlaydi. Davom eting, havolani bosing, siz Sidney uchun oy fazasi, yorug'lik va boshqa yaxshi ma'lumotlarni ko'rasiz. URLga qarang, biz Sidney, Avstraliyani va "8c6dcwe …" bilan boshlanadigan uzun kodni ko'ramiz. Bu kod - biz ilgari olgan kalit identifikatoringiz. O'zingizning shaxsiy identifikatoringiz bilan kodni o'zgartiring va uning qanday ishlashini ko'ring, aynan bir xil natijaga erishishingiz kerak. Joylar bilan o'ynashga harakat qiling. Janubiy Afrikada o'zim uchun Yoxannesburg va ZAdan foydalanaman.
2 -qadam: komponentlar
Xo'sh, endi qiziqarli narsalar haqida. Bizga bir nechta komponentlar kerak bo'ladi, ko'p emas va ularning hech biri juda qimmat emas va men o'zim ishlatgan komponentlar uchun Amazon havolalarini berganman. Shuni yodda tutingki, agar siz dasturlashni yaxshi bilsangiz, sizda mavjud bo'lgan har qanday displey yoki internet qurilmasidan bemalol foydalaning. Qurilish uchun men quyidagilarni qo'lladim:
Waveshare E-Ink SPI 4.2 "SPI displeyi
- ESP32 ishlab chiqarish kengashi (umumiy)
- Adafruit Power Boost 500
- 5000mAh Lipo batareya to'plami
- Stripboard (Protoboard)
Uyda sizga asosiy vositalar kerak bo'ladi, masalan:
- Lehimlash temir
- Lehim
- Multimetr
- Kaliperlar
- Protoboarddagi yo'llarni ajratish uchun matkap
- Tel
- Simli Snips
- Yelim (issiq elim ishlaydi)
- Arduino IDE o'rnatilgan noutbuk
Sizga kerak bo'lishi mumkin bo'lgan yagona ilg'or asbob - bu 3D -printer. Agar sizda yo'q bo'lsa, juda yaxshi, korpusingizni yog'ochdan, qo'lda yoki boshqa narsadan tayyorlang. Ha, mening 3D printerim eski va changli.
3 -qadam: Kompyuter uchun dasturiy ta'minot
O'chirish va dasturlash ustida ishlashni boshlashdan oldin, biz birinchi navbatda Arduino IDE -ni bu erda topamiz.
Biz ESP32 -ni Arduino yadrosi bilan ishlatganimiz uchun, biz bu yadroni Arduino IDE -ga o'rnatishimiz kerak bo'ladi. Github -dan ushbu oddiy qo'llanmani bajaring, u sizga qanday dasturiy ta'minot va konfiguratsiyani ko'rsatishi kerakligini ko'rsatadi, shunda siz Arduino IDE -da ESP32 ishlab chiqarish kartasini ishlatishingiz mumkin.
Bizning tizimimiz ishlashi uchun bizga ikkita qo'shimcha kutubxona kerak bo'ladi. Birinchisi, Arduino JSON kutubxonasi, bu bizga JSON so'rovlarini o'qish va tahlil qilish imkonini beradi, bu aynan Weather Underground -dan keladi. Siz bu ikkita kutubxonani shaxsiy Dropbox -dan yoki pastdan yuklab olishingiz mumkin. Fayllarni olganingizdan so'ng, ularni chiqarib oling va Arduino kutubxonangiz papkasiga joylashtiring. U odatda C: / Users / YOUR_NAME / Documents / Arduino / kutubxonalarida joylashgan. IDE -ni qayta ishga tushirganingizga ishonch hosil qiling, aks holda Arduino yangi qo'shimchalarni olmaydi. Asosiy Arduino SRC kodi ham shu papkada. Kutubxonada Waveshare displeylaridan olingan namunaning o'zgartirilgan versiyasi ham mavjud. Fayllar GPIO -lari bilan ESP32 modulida ishlash uchun o'zgartirildi va men oyning turli fazalari uchun barcha tasvirlarni o'z ichiga olgan yangi "shrift" ni joriy qildim.
4 -qadam: O'chirish davri
To'g'ri, buning sxemasi juda oddiy va faqat bir nechta komponentlar va simlarni talab qiladi.
Umumiy fikr shundaki, bizda Lipo zaryadlovchi zanjiri, 5V kuchlanishli kuchaytirgich, keyin esa ESP32 Dev to'plami mavjud bo'lib, u kuchlanish 3.3V ga tushadi. Bu 3.3V Waveshare E-Ink displeyi uchun ham ishlatiladi. Ha, bu biroz samarasiz, chunki chiziqli regulyator yordamida kuchayadi, lekin ESP32 juda dahshatli kuchlanish oralig'ida ishlaydi. Taxminan 2,5 - 3,6 V atrofida. Bu batareya loyihalari uchun, ayniqsa lityum polimer hujayralarni ishlatadiganlar uchun mos emas.
Asosiy simlar quyidagicha:
- ESP32 Dev Kit -da 5V kuchlanishli Vin & GND konvertorini kuchaytiring
- ESP32 3.3V 3.3V va GND elektron siyohli displey
- ESP32 PIN 18 CLK elektron siyohli displey
- ESP32 PIN 23 DIN/MOSI elektron siyohli displey
- ESP32 PIN 5 CS/SS elektron siyohli displey
- ESP32 PIN 32 DC elektron siyohli displey
- ESP32 PIN 33 RST elektron siyohli displey
- ESP32 PIN34 BUSY elektron siyohli displey
Ko'rishingiz mumkinki, simlar juda oddiy va men yaratgan DIY plitalari atigi 15 daqiqa davom etdi. Quvvat berishdan oldin multimetr bilan qisqa tutashuvlarni tekshiring.
Shuningdek, men uyqu rejimida taxminan 40mA quvvatni tejash uchun ESP32 va Lipo kuchaytirgichlar panelidan LEDlarni olib tashladim. Bu batareyalarning uzoqroq ishlashiga yordam beradi. Agar xohlasangiz, quvvat tugmachasini, quvvatni tejash sxemasini, avtomatik uzishni va boshqalarni amalga oshirishingiz mumkin. Siz bu loyihani kengaytirib, xohlaganingizcha murakkablashtira olasiz.
5 -qadam: Kod
Kodni 3 -bosqichda berilgan papkada topish mumkin yoki.ino faylini pastdan yuklab olishingiz mumkin. Hammasi birgalikda ishlashi uchun 3 -bosqichda aytib o'tilganidek, bog'liq kutubxonalarni o'rnatishingiz kerak bo'ladi. Bu qadam haqida ko'p narsa aytishning hojati yo'q, chunki kod ish holatida taqdim etilgan. Dasturni sinab ko'rishdan oldin SSID va tarmoq parolini kiritganingizga ishonch hosil qiling, siz har doim yaqin atrofdagi simsiz tarmoqlarni aniqlash uchun ESP32 WiFi Scan -ni ishga tushirishingiz mumkin, lekin mening dasturimda tarmoq ma'lumotlari faqat kod va kodda o'rnatiladi. Balki siz uni qaysi tarmoqqa ulanishni so'rash uchun o'zgartirishingiz mumkin:)
Kod juda oddiy va men kelgusi bir necha hafta ichida uni sharhlash va takomillashtirishga biroz vaqt sarflayman. Biz asosan tarmoqqa, mening holimda, uy tarmog'iga ulanamiz. Keyin biz Weather Underground -ga ulanishga va veb -sahifadan JSON matnini olishga harakat qilamiz. ArduinoJSON kutubxonasi keyinchalik ajratish uchun ishlatiladi. yoki tahlil qilib, JSON kodini xaridorlarga ko'rsatishdan oldin qiymatlarni o'zgartirishga imkon beradigan char massivlariga yoki satrlarga ajrating. Kodning oxirgi qismi GUIni dasturlash uchun mo'ljallangan va sinov va xato bilan qilingan. Men displeyga qaradim, aktivlar sonini ko'paytirdim yoki kamaytirdim va shrift o'lchami, tartibi va tasvirlari qanday ko'rinishda bo'lganidan mamnun bo'lguncha kodni qayta ishga tushirdim.
Men quvvatni tejash uchun ESP32 uchun chuqur uyqu rejimini qo'lladim. Standart 60 soniya, lekin men sizga qiymatni bir yoki ikki soatga o'zgartirishni maslahat beraman, chunki yangilanishlar kamida bir necha soat davomida sodir bo'lmaydi. Misol soniyalarni qabul qiladi, shuning uchun konvertatsiyani to'g'ri bajarganingizga ishonch hosil qiling.
Men yangi shrift uchun olti burchakli massivlarni yaratish uchun "Dot Factory" dasturidan ham foydalanganman. Bu shrift oy fazalari uchun "tasvirlar" ni yaratish uchun ishlatiladi. Agar siz shriftlar faylini tahrir qilmoqchi bo'lsangiz, avlod uchun yuqorida ko'rsatilgan dasturdan foydalanganingizga ishonch hosil qiling. Bu biroz chalkash, chunki E-Ink kutubxonasi yaxshi hujjatlashtirilmagan va mening muvaffaqiyatimning ko'p qismi sinov va xato tufayli bo'lgan. Men ushbu kod bilan ko'proq vaqt o'tkazganimda, men topilmalarim haqida ko'proq ma'lumot berish uchun ko'rsatmalarni yangilayman.
Oy fazalari uchun ishlatiladigan shrift standart ASCII sxemasiga muvofiq bajarilishi kerak. Agar siz font24-ni EPD-master papkasida ochsangiz, siz 1-grafik bo'sh joy bilan aniqlangan tartibni ko'rishingiz mumkin, ikkinchisi "!" (undov belgisi) va boshqalar. Siz ko'rasiz, men bog'langan shriftni kodning oxirgi qismidagi 3 raqami yoki hashtag belgisi yordamida tortaman (getLunarChar funktsiyasi). Buning sababi shundaki, Arduino ASCII standartini 32 dan 127 gacha kutadi. Chunki biz haqiqiy shriftlarga hech qanday aloqasi bo'lmagan shriftlardan foydalanamiz, aksincha oy fazasi grafik matritsasi, biz ASCII belgisining biz tanlagan oy fazasi tasviriga mos kelishini ta'minlashimiz kerak. Bu shuni anglatadiki,! belgi, bizning oy fazasi shriftimiz ushbu ro'yxatdagi ikkinchi oy fazasi grafikasini ko'rsatadi. Agar siz oy fazasining shriftiga qarasangiz, siz oyning turli fazalarini ko'rasiz, ularning har biri yorug'lik darajasi har xil. Kelgusida men bajargan barcha grafikalardan foydalanish uchun yana kod qo'shaman. Hozir biz faqat bir nechtasini ishlatmoqdamiz, lekin grafikalar oy fazasi shriftida allaqachon amalga oshirilgan va undan foydalanish uchun kodda qo'llanilishi kerak.
6 -qadam: Yakuniy yig'ilish
Qurilishning oxirgi qismi va eng qoniqarli - bu montaj jarayoni. Men taxtamga mos keladigan korpusni 3D dizaynda chop etdim. Loyiha juda DIY, professional PCB yoki bitta standart tartib yo'q. Ko'pincha, men ishlatgan quti, siz tanlagan har qanday lipo zaryadlovchi yoki kuchaytirgichni joylashtirish uchun etarlicha katta. Agar ular ushbu yo'riqnomada ko'rsatilgan asosiy funktsiyalarni ta'minlasalar, siz yaxshi bo'lishingiz kerak.
Men korpusning yuqori va pastki yarmini bir -biriga mahkamlash uchun 4 ta vintni va DIY sxemasini o'rnatish uchun issiq elim ishlatdim. Men batareyani ushlab turish uchun ozgina yopishtiruvchi tomchilardan foydalandim, lekin agar ko'proq vaqtim bo'lsa, men barcha elektronikalar uchun maxsus qavs yasagan bo'lardim.
Men, shuningdek, orqadagi qulflash tugmachasi uchun teshik ochishga qaror qildim. Bu batareyani kuchaytirgichdan uzib qo'yadi, agar siz qurilmani 24/7 ishlashni rejalashtirmasangiz, bu foydali bo'ladi. Afsuski, kuchaytirgich ESP32 uyqu rejimida bo'lsa ham, kuch ishlatadi.
Umuman olganda, natijadan juda mamnunman. Men ESP32 -dan foydalanganda ko'p narsani o'rgandim va o'zimni kelajakda turli xil loyihalarda ishlatayotganimni ko'rishim mumkin.
Agar sizda biron bir savol bo'lsa, bemalol so'rang, men yordam berishga tayyorman va agar siz ushbu qo'llanmada xatolar topsangiz, menga xabar bering.
EDIT: Men aslida CNC mashinasini 3D bosma versiyasi o'rniga kichik korpus qildim, bu siz tasvirlangan rasmlarda ko'rinadi.
EDIT: Tanlangan rasmlarda biz 99% yoritilgan to'lin oyni ko'ramiz. Shunday qilib, oq doira, oy o'ziga xos fazalarini bosib o'tishi bilan, shunga mos ravishda oyning tasviri o'zgaradi. Boshqa rasmlar oyning fazalari bo'ylab o'tishi bilan yuklanadi, shunda siz grafik tasvirini olishingiz mumkin.
Kosmik tanlovda yuguruvchi
Tavsiya:
DIY GPS kuzatuvchisi-Python ilovasi: 5 qadam (rasmlar bilan)
DIY GPS Tracker --- Python ilovasi: Men ikki hafta oldin velosipedda qatnashganman. Tugatgandan so'ng, men marshrutni va o'sha paytdagi tezlikni tekshirishni xohladim. Afsuski, bunga erishilmadi. Endi men ESP32 -dan GPS -kuzatuvchini yasash uchun foydalanaman va men uni velosiped marshrutimni yozib olaman
SMS -xabarnoma va Thingspeak ma'lumotlarini yuklash, Arduino -ga asoslangan, uy avtomatizatsiyasi bilan GPS avtomobil kuzatuvchisi: 5 qadam (rasmlar bilan)
SMS -xabarnoma va Thingspeak ma'lumotlarini yuklash, Arduino -ga asoslangan, uy avtomatizatsiyasi bilan GPS avtomobil kuzatuvchisi: Men bu GPS -trekerni o'tgan yili yaratganman va u yaxshi ishlaganligi uchun hozir uni Instructable -da nashr etaman. U yuk mashinasining aksessuarlari vilkasiga ulangan. GPS -kuzatuvchi avtomobilning joylashuvi, tezligi, yo'nalishi va o'lchangan haroratini mobil ma'lumotlar orqali yuklaydi
Kino izdoshi - Raspberry Pi bilan ishlaydigan teatr chiqishlari kuzatuvchisi: 15 qadam (rasmlar bilan)
Kino izdoshi - Raspberry Pi bilan ishlaydigan teleko'rsatuvlarni kuzatuvchi: Movie Tracker - bu klipperboard shaklidagi, Raspberry Pi bilan ishlaydigan relizlarni kuzatuvchi. U TMDb API -dan foydalanib, sizning mintaqangizda bo'lajak filmlarning afishasini, sarlavhasini, chiqish sanasini va umumiy ko'rinishini ma'lum vaqt oralig'ida (masalan, shu haftadagi filmlar) chop etish uchun chop etadi
Yulduzli trek - Arduino bilan ishlaydigan yulduz ko'rsatgichi va kuzatuvchisi: 11 qadam (rasmlar bilan)
Star Track - Arduino Powered Star Pointer and Tracker: Star track - bu Arduino -ga asoslangan, GoTo -ga o'rnatilgan ilhomlangan yulduzlarni kuzatish tizimi. U osmondagi har qanday ob'ektni ko'rsatishi va kuzatishi mumkin (samoviy koordinatalar kirish sifatida berilgan) 2 Arduino, gyro, RTC moduli, ikkita arzon qadamli dvigatel va 3D bosma tuzilmasi bilan
Masofadan boshqarish pultidan simsiz simsiz klaviatura yasang: 10 qadam (rasmlar bilan)
Televizorni masofadan boshqarish pultidan simsiz mini klaviatura yarating: Siz hech qachon televizoringizning pultini buzib simsiz klaviatura yasashni o'ylab ko'rganmisiz? Shunday qilib, men ushbu ko'rsatmalarda qanday qilib arzon simsiz klaviatura qurishni tushuntiraman. Ushbu loyiha maxsus simsiz tarmoq yaratish uchun IQ (infraqizil) aloqasidan foydalanadi