Mundarija:

Upcycled budilnikli aqlli yorug'lik: 8 qadam (rasmlar bilan)
Upcycled budilnikli aqlli yorug'lik: 8 qadam (rasmlar bilan)

Video: Upcycled budilnikli aqlli yorug'lik: 8 qadam (rasmlar bilan)

Video: Upcycled budilnikli aqlli yorug'lik: 8 qadam (rasmlar bilan)
Video: 23 ВЕЩИ С ALIEXPRESS, от которых ты офигеешь / Безумные Вещи с Алиэкспресс + КОНКУРС 2024, Noyabr
Anonim
Uyg'otuvchi budilnik aqlli yorug'lik
Uyg'otuvchi budilnik aqlli yorug'lik
Uyg'otuvchi budilnik aqlli yorug'lik
Uyg'otuvchi budilnik aqlli yorug'lik
Uyg'otuvchi budilnik aqlli yorug'lik
Uyg'otuvchi budilnik aqlli yorug'lik

Ushbu loyihada men butunlay buzilgan uyg'otuvchi soatni aylantiraman. Soat yuzi 12 ta LED bilan almashtirilgan, ular soat chetidagi LED tasmasi bilan yoritilgan. 12 ta LED vaqtni ko'rsatadi va LED tasmasi signal sifatida ishlaydi va belgilangan vaqtda to'liq nashrida bo'ladi. Hamma narsa Raspberry Pi Zero tomonidan boshqariladi, bu son -sanoqsiz integratsiya va kengaytirish imkoniyatlarini beradi, masalan, signal signalini telefon signalingiz bilan avtomatik ravishda sinxronlashtirish yoki elektron pochta xabarini olganingizda LEDlarning miltillashi.

Loyihada nisbatan arzon yoki qayta ishlatilgan komponentlar ishlatiladi - men sotib olgan yagona narsa - bu voltaj regulyatori. Men tasodifan LED tasmasining kesilgan qismi kabi yolg'on gapirganman. Bu ko'rsatma sizga buzilgan soatingizga qanday qilib yangi hayot bag'ishlaganimni ko'rsatib beradi va umid qilamanki, sizni o'zingizdan biror narsani o'zgartirishga undaydi.

1 -qadam: qismlar

Qismlar
Qismlar
Qismlar
Qismlar
Qismlar
Qismlar

Hamma narsani nazorat qilish uchun biz Raspberry Pi Zero -dan foydalanamiz, chunki u juda kichik, Wi -Fi -ga ulanishi mumkin, bu bizga real vaqtda soat kerak emas va shuning uchun kodni noutbukdan masofadan turib osongina yangilashi mumkin. Agar sizda Pi Zero W bo'lmasa, biz Wi -Fi tarmog'iga USB WiFi dongle yordamida ulanamiz.

Mana men ishlatgan qismlar ro'yxati, lekin ko'p narsalarni mos alternativalarga almashtirish mumkin. Masalan, Raspberry Pi o'rniga siz loyihani boshqarish uchun Arduino -dan real vaqtda soat bilan foydalanishingiz mumkin.

Ishlatilgan qismlar

  • Eski budilnik
  • 30 sm uzunlikdagi oq oq LED tasmasi
  • 1x Raspberry Pi Zero + micro SD karta
  • 1x USB WiFi dongle + micro USB -dan USB -konvertorga
  • 12x LED
  • 12x 330 ohmli rezistorlar (agar siz dimmerli LEDlarni xohlasangiz, balandroq foydalaning)
  • 1x TIP31a (yoki boshqa npn quvvat tranzistorlari yoki MOSFET)
  • 1x 1k qarshilik
  • 1x LM2596 DC-DC sozlanishi pul o'tkazgichi (Raspberry Pi uchun 5V uchun 12V pastga tushadi)
  • 1x 12V quvvat manbai (+ loyihangizga kirish usuli)
  • Soat yuzi uchun 10 sm x 10 sm yog'och
  • Har xil rangli simlarning turli qismlari

Foydali narsalarga ega bo'lish

  • Lehimlash temir + lehim
  • Issiq elim
  • Multimetr
  • Non paneli
  • Ayol sarlavhasi pinlari
  • Micro SD kartani o'quvchi yoki konvertor
  • Kompyuter
  • Agar siz Pi -ning ish stoli muhitidan foydalanmoqchi bo'lsangiz, mini HDMI adapteri + HDMI ekrani

2 -qadam: Raspberry Pi -ni sozlash

Raspberry Pi -ni sozlash
Raspberry Pi -ni sozlash
Raspberry Pi -ni sozlash
Raspberry Pi -ni sozlash

Operatsion tizim

Raspberry Pi ekranga ulanmaganligi sababli, men ish stoli muhiti bo'lmagan Raspbian Buster Lite dasturidan foydalanishni tanladim. Agar siz Raspberry Pi -ga yangi bo'lsangiz, ish stoli bilan birga keladigan standart Raspbian Buster -ga rioya qilishni xohlashingiz mumkin. Agar siz operatsion tizimni qanday o'rnatishni bilmasangiz, bu ajoyib manba. Har ikkala operatsion tizimni ham Raspberry Pi veb -saytidan yuklab olish mumkin.

Hozircha Pi -ni Micro USB quvvat manbai orqali quvvatlantiring. Bundan tashqari, USB Wi -Fi dongle -ni ulang.

Raspberry Pi bilan gaplashish

Agar hamma narsa qadoqlangan bo'lsa, agar siz kodni o'zgartirishni xohlasangiz, Pi ga kirish juda qiyin bo'ladi. SSH yordamida Pi -ga ulanish va uni boshqa kompyuterdan boshqarish imkonini beradi. Bu sukut bo'yicha yoqilmagan, lekin biz buni SD -kartaning yuklash qismida ssh nomli papkani yaratish orqali qilishimiz mumkin. Agar siz allaqachon Pi-ga kirgan bo'lsangiz, buni Terminalda sudo raspi-config yozib, Interfacing Options> SSH-ga o'ting va uni yoqish uchun Ha-ni tanlang.

Endi siz Pi -ga boshqa kompyuterda ulanishingiz mumkin. Mac yoki Linux -da siz terminal dasturidan foydalanishingiz mumkin, lekin Windows -ning aksariyat versiyalarida PuTTY kabi SSH mijozini o'rnatishingiz kerak bo'ladi. Ssh pi@ yozish orqali Pi ga ulaning, bu erda xost nomi sizning Pi manzilingizning xost nomi bilan almashtiriladi. Standart xost nomi raspberrypi.local. U sizdan parolni so'raydi, agar siz uni hali o'zgartirmagan bo'lsangiz, malina.

Kerakli narsalarni o'rnatish

Avval sudo apt update va keyin sudo apt full-upgrade orqali hamma narsa yangilanganligiga ishonch hosil qiling.

Pi tipidagi GPIO pinlarini nazorat qilishimiz kerakligiga ishonch hosil qilish uchun sudo apt-get install python-rpi.gpio va sudo apt-get install python3-rpi.gpio. Ular allaqachon Raspbian -ning to'liq versiyasiga o'rnatilishi kerak.

Kod

Bu erda hamma narsa ishlashi uchun yuklab olish kodi. Agar siz ish stoli muhitidan foydalanayotgan bo'lsangiz, ularni Hujjatlar papkasiga joylashtiring.

Agar siz SSH buyruq satridan foydalansangiz, cd ~/Documents buyrug'ini kiriting va enter tugmasini bosib, uy papkasiga o'ting. Nano test1.py yordamida test1.py nomli yangi fayl yarating. Bu nano matn muharririni ochadi, bu erda siz yuklangan test1.py faylining kodini joylashtirishingiz mumkin. Faylni saqlash uchun CTRL-O tugmachasini bosing va muharrirdan chiqish uchun CTRL-X ni bosing. Qolgan fayllar uchun protsedurani takrorlang.

3 -qadam: LED tasmasini o'rnatish

LED chizig'ini o'rnatish
LED chizig'ini o'rnatish
LED chizig'ini o'rnatish
LED chizig'ini o'rnatish

Birinchidan, LED chizig'ini soatga qo'ying va sizga qancha kerakligini bilib oling, bu uzunlikni belgilang va chiziqni keyingi kesish joyida ko'rsatilganidek kesib oling. Ip joyiga yopishib qolmasdan oldin, uni simga lehimlash ancha oson. Bu qanday qilish kerakligi haqida juda yaxshi qo'llanma, lekin agar ishonchingiz komil bo'lmasa, men siz faqat tasmasini kesib tashlagan bo'lakni lehim bilan birlashtirishni mashq qilardim. Bir simni ijobiy lehim nuqtasiga va bitta simni manfiyga lehimlang. LED tasmasini soatga yopishtirishdan oldin uning ishlashini tekshirganingizga ishonch hosil qiling.

Men ishlatadigan LED tasmasi o'zining yopishqoq qoplamasini yo'qotmasdan oldin ishlatilganligi sababli, chiziqni soat halqasining chetiga mahkamlash uchun issiq elim ishlatishga to'g'ri keldi. Agar sizda ortiqcha uzunlik bo'lsa, simlar biriktirilgan joyni yoping. Siz keyinchalik chiziqni o'rnatishni xohlashingiz mumkin, lekin men uni soat ichida olib qo'yish osonroq deb topdim.

4 -qadam: LED chizig'ini boshqarish

LED chizig'ini boshqarish
LED chizig'ini boshqarish

LED chizig'ini ulash

LED tasmasi 12V kuchlanish bilan ishlaydi, shuning uchun uni to'g'ridan -to'g'ri Pi dan quvvatlantirish mumkin emas. Ularni nazorat qilish uchun biz yuqorida ko'rsatilgandek Pi ga ulangan quvvat tranzistoridan (masalan, TIP31a) foydalanamiz. Men bularning barchasini taxtada ishlashini tekshirishni maslahat beraman.

  • GPIO 19 -ni 1k rezistor orqali bazaga ulang
  • Emitent GND ga ulangan bo'lishi kerak
  • Kollektorni LED chizig'ining salbiy terminaliga ulang
  • Ijobiy LED chiziqli terminalni +12V ga ulang

Sinov

Buyruq satrida hujjatlar papkasini (cd ~/Documents) nagivate qiling va python test1.py kiriting va kiriting. Siz LED chizig'ining yorqinligini pasayishini ko'rishingiz kerak. Dasturdan chiqish uchun CTRL-C tugmalarini bosing. Siz dasturni tezligini va yorqinligini o'zgartirish uchun faylni (nano test1.py) o'zgartirishingiz mumkin.

GPIO.portmode (GPIO. BCM) sifatida RPi. GPIO -ni import qilish # BCM pinout -dan foydalanish GPIO.setwarnings (Noto'g'ri) # Boshqa narsalar uchun ishlatilgan pinlar haqidagi ogohlantirishlarga e'tibor bermang ledStripPin = 19 # LED tasmasi bu pin GPIO.setup -dan boshqariladi. (ledStripPin, GPIO. OUT) # LEDStripPinni chiqish pwm = GPIO. PWM (ledStripPin, 100) sifatida belgilang dutyCycle diapazonida (0, 101, 1): # pwm. ChapDutyCycle (dutyCycle) vaqti. uyqu (0,05) shahar oralig'ida (95, -1, -1): # pwm pastga tushadi. ChangeDutyCycle (dc) vaqti.sleep (0,05) KeyboardInterrupt tashqari

5 -qadam: Soatning yuzini yasash

Soatning yuzini yaratish
Soatning yuzini yaratish
Soatning yuzini yaratish
Soatning yuzini yaratish
Soatning yuzini yaratish
Soatning yuzini yaratish

Soatingizga mos keladigan yog'och bo'lakni yuzingizga qarab pastga qarab kesib oling. Men old tomondan taxminan 3 sm masofada dam olishga majbur qildim. LEDlarning diametri (odatda 3 mm yoki 5 mm) bir -biridan 30 daraja masofada joylashgan 12 teshikni burang. Old yuzini pastga surting va o'zingiz xohlagan qoplamani qo'llang. LEDlarni orqa tomondan joylashtiring, shunda ular old tomonga ishora qiladilar. LEDlarni joyida ushlab turish uchun issiq elim ishlatdim, musbat terminali (uzunroq sim) ichkariga qaragan. Soat yuzining o'lchami men barcha manfiy terminallarni bir -biriga lehim qila olaman (yuqoriga qarang), shuning uchun barcha 12 LEDni GND ga ulash uchun faqat bitta sim kerak edi. Keyin, har bir LEDga simni lehimlang.

Agar siz buni taxtada sinab ko'rmoqchi bo'lsangiz, uni Pi GPIO pinlaridan biriga ulashdan oldin, har bir LED bilan ketma -ket qarshilik (330 ohm juda standart) ishlatishni unutmang. O'zingiz yoqtiradigan yorqinlik darajasini olish uchun ishlatadigan qarshilik qiymati bilan o'ynang. To'qimachilik dastgohi Pinning pinlarini non taxtasiga ajratish uchun juda foydalidir, lekin buning uchun siz bosh pimlarini lehimlashingiz kerak bo'ladi. Test2.py dan foydalaning (python test2.py yordamida ishga tushiring), lekin avval dasturni tahrir qilganingizga va har bir LED uchun ishlatilgan Pi ning GPIO pinlarini kiritganingizga ishonch hosil qiling.

RPi. GPIO -ni GPIO sifatida import qilish

import vaqti GPIO.setmode (GPIO. BCM) # BCM pinoutidan foydalaning GPIO.setwarnings (Noto'g'ri) # Boshqa narsalar uchun ishlatilgan pinlar haqidagi ogohlantirishlarga e'tibor bermang # Bir, ikkita,… mos keladigan pin raqami bilan o'zgartiring hourPin = [bir, ikki, uch, to'rt, besh, olti, etti, sakkiz, to'qqiz, o'n, o'n bir, o'n ikki] # LEDlar 1 dan 12 gacha i ga ulanadi (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Barcha hourPins -ni chiqish sifatida belgilang GPIO.output (hourPin , 0) # Barcha LEDlarning o'chirilganligini tekshiring: rost bo'lsa: i diapazonida (0, 12) GPIO.output (hourPin [i)], 1): vaqt oralig'i (0,05) i diapazonida (0, 12) GPIO.output (hourPin , 0): time.sleep (0,05) KeyboardInterruptdan tashqari: # Chiqish uchun CTRL-C tugmachalarini bosing va keyin: GPIO.cleanup () # GPIO pinlarini tozalang

6 -qadam: Pi -ni quvvatlantirish

Pi -ni quvvatlantirish
Pi -ni quvvatlantirish

Bizga Pi Zero -ga 5V olishning oson usuli kerak, shuning uchun biz shu paytgacha uni quvvatlantirish uchun ishlatilgan mikro USB kabelidan qutulishimiz mumkin. LV7805 chiziqli kuchlanish regulyatori kabi 12V dan 5V gacha pasayadigan bir qancha echimlar bor, lekin ular unchalik samarali emas, shuning uchun men LM2596 chipidan foydalanib, yanada samarali sozlanishi bukka konvertoridan foydalanishni tanladim. Eslatib o'tamiz, potentsiometrni chiqish voltaji kerak bo'lganda 5 V ga tushirilguncha burishingiz kerak bo'ladi, shuning uchun sizga kuchlanishni o'lchashning bir usuli kerak bo'ladi.

LM2596-dan foydalanish juda oddiy: +12Vni IN +ga, erni IN-ga ulang. OUT+ ni Pi ning 5V pinlaridan biriga ulash orqali Pi ni 5V ga to'g'ridan -to'g'ri ulash mumkin, lekin buni qilishdan oldin chiqish voltajini 5V ga o'zgartirganingizga ishonch hosil qiling, aks holda siz Pi -ni qovurasiz!

7 -qadam: O'chirish va qadoqlashni yakunlang

O'chirish va qadoqlashni yakunlang
O'chirish va qadoqlashni yakunlang
O'chirish va qadoqlashni yakunlang
O'chirish va qadoqlashni yakunlang
O'chirish va qadoqlashni yakunlang
O'chirish va qadoqlashni yakunlang
O'chirish va qadoqlashni yakunlang
O'chirish va qadoqlashni yakunlang

Endi biz sxemaning uchta elementini ko'rib chiqdik, ular birgalikda umumiy sxemada ko'rsatilgan. Joyni tejash va kontaktlarning zanglashiga olib kelish uchun sxemani lenta yoki prototip taxtasiga joylashtiring. Avval eng kichik komponentlarni, rezistorlarni, keyin quvvat tranzistorini, har qanday ulagichlarni va nihoyat simlarni lehimlang. Har bir narsa uchun joy borligiga ishonch hosil qilish uchun, lehimlashdan oldin, sxemangizni rejalashtiring.

Men hamma narsani prototipli PCB -ga uladim va Pi -ni to'g'ridan -to'g'ri PCB -ga o'rnatishi uchun ayol bosh pimlarini ishlatdim. Soat yuzidagi LEDlar taxtaning bir tomonidagi rezistorlar orqali ulanadi va men boshqa tomondan quvvat tranzistorlari uchun joy ajratib qo'ydim va keyinroq qo'shishni xohlagan boshqa sxemalar uchun bo'sh joy qoldirdim.

Soatni soatga bog'lab qo'ying va elektronikaning hamma narsaga mos kelishiga ishonch hosil qiling. Hammasi men uchun juda mos edi, shuning uchun siz qayta tartibga solishingiz kerak bo'ladi. Quvvat manbaini ulang va SSH -dan test1.py va test2.py -ni ishga tushiring, orqa tomonni ulashdan oldin hamma narsa ishlayotganini tekshiring.

8 -qadam: Kodni yuklang + Finish

Kodni yuklang + Finish
Kodni yuklang + Finish
Kodni yuklang + Finish
Kodni yuklang + Finish
Kodni yuklang + Finish
Kodni yuklang + Finish

Kod

Nihoyat, agar siz hali yo'q bo'lsa, kodni yuklang va uni xohlaganingizcha o'zgartiring (nano filename.py yordamida). Pi -ga SSH orqali ulanishning afzalligi shundaki, siz soatni ochmasdan kodni yangilashingiz mumkin.

2 -qadamdagi python dasturlari quyidagilarni bajaradi:

  • light_clock_simple.py faqat LEDlardagi soatni ko'rsatadi va LED tasmasini ma'lum vaqtlarda yuqoriga va pastga o'chiradi.
  • light_clock_pwm.py yuqoridagidek, lekin LEDlarning yorqinligini kamaytirishga imkon beradi va daqiqalarni soatiga boshqa yorqinlikda ko'rsatadi. Siz ikkalasining yorqinligi bilan o'ynashingiz kerak, shuning uchun ular orasidagi kontrast seziladi

Bu kodni qo'shish uchun mustahkam asos bo'lishi kerak, masalan, siz yorug'lik signalini kechiktirish uchun tugmani qo'shishingiz mumkin.

Pi chizilmasin dasturni ishga tushirish uchun terminaldan crontab -e bilan ochiladigan crontab faylining oxiriga '@reboot nohup python light_clock_pwm.py &' ni qo'shish kerak. Sudo shutdown -r bilan ishlayotganini tekshirish uchun Raspberry Pi -ni qayta ishga tushiring.

Potentsial qo'shimchalar

Bu erda qo'shimcha funktsiyalar haqida ba'zi fikrlar qo'shilishi mumkin

  • Kechiktirish tugmasi qo'shilmoqda
  • Chiroq rejimini qo'shish
  • IFTTT -ga ulanish (masalan, telefon signalizati o'chganda/elektron pochta xabarini olganingizda chiroq yonishi mumkin)
  • Sensorli quvvatni qo'shish, ya'ni soatni sensorli chiroqqa aylantirish

Siz PWM -dan foydalanganda, ba'zida, ayniqsa, pastroq yorug'lik bilan, LED biroz miltillab turishini sezishingiz mumkin. Buning sababi, Pi PWM dasturiy ta'minotidan foydalanadi, shuning uchun CPU jarayonlari ish aylanishiga ta'sir qilishi mumkin. Kamroq ishlaydigan jarayonlar yordam beradi, shuning uchun men Raspbian Lite operatsion tizimidan foydalanardim. Uskuna PWM ham bir nechta pimlarda mavjud, shuning uchun agar miltillash muammoni isbotlasa, buni ko'rib chiqish mumkin.

Umid qilamanki, siz ushbu ko'rsatmali ma'lumotni topdingiz va o'zingizni eski budilnikni o'zgartirishga yoki o'z loyihangiz uchun kod elementlaridan foydalanishga ilhom oldingiz.

LED chiziqli tezlik tanlovi
LED chiziqli tezlik tanlovi
LED chiziqli tezlik tanlovi
LED chiziqli tezlik tanlovi

LED chiziqli tezlik tanlovida ikkinchi mukofot

Tavsiya: