Բովանդակություն:

Upcycled rmարթուցիչ Smart Light: 8 քայլ (նկարներով)
Upcycled rmարթուցիչ Smart Light: 8 քայլ (նկարներով)

Video: Upcycled rmարթուցիչ Smart Light: 8 քայլ (նկարներով)

Video: Upcycled rmարթուցիչ Smart Light: 8 քայլ (նկարներով)
Video: EXTREME FURNITURE MAKEOVER || DIY upcycling you can do from HOME || FLIPPING furniture for a PROFIT 2024, Հուլիսի
Anonim
Upcycled rmարթուցիչ Smart Light
Upcycled rmարթուցիչ Smart Light
Upcycled rmարթուցիչ Smart Light
Upcycled rmարթուցիչ Smart Light
Upcycled rmարթուցիչ Smart Light
Upcycled rmարթուցիչ Smart Light

Այս նախագծում ես բարձրացնում եմ ամբողջովին կոտրված քամու զարթուցիչը: Clockամացույցի երեսը փոխարինվում է 12 LED- ով, լուսավորված ժամացույցի եզրով լուսավորված LED շերտով: 12 LED- ները ցույց են տալիս ժամանակը, և LED շերտը ծրագրված է ազդանշանի դեր կատարելու համար ՝ սահմանված ժամին միանալով ամբողջ պայծառությանը: Ամեն ինչ վերահսկվում է Raspberry Pi Zero- ի միջոցով, որը թույլ է տալիս ինտեգրման և ընդլայնման անհամար հնարավորություններ, ինչպիսիք են ՝ լուսազանգի ավտոմատ համաժամացումը ձեր հեռախոսի ահազանգի հետ կամ LED- ների առկայծումը, երբ նամակ եք ստանում:

Նախագիծը օգտագործում է համեմատաբար էժան կամ նորից օգտագործվող բաղադրիչներ. Միակ բանը, որ ես վերջում գնեցի, լարման կարգավորիչն էր: Մնացած ամեն ինչ, որ պատահել է շուրջս, օրինակ ՝ LED շերտի անջատված հատվածը: Այս Ուղեցույցը ձեզ կառաջնորդի, թե ինչպես ես նոր կյանք տվեցի իմ կոտրված ժամացույցին և հուսով եմ, որ կարող է ձեզ ոգեշնչել ձեր սեփականը վերափոխելու համար:

Քայլ 1: Մասեր

Մասեր
Մասեր
Մասեր
Մասեր
Մասեր
Մասեր

Ամեն ինչ վերահսկելու համար մենք կօգտագործենք Raspberry Pi Zero- ն, քանի որ այն փոքր է, շատ քիչ արժե և կարող է միացված լինել WiFi- ին, ինչը նշանակում է, որ մենք իրական ժամանակի ժամացույցի կարիք չունենք, և, հետևաբար, կարող ենք հեշտությամբ թարմացնել կոդը նոութբուքից հեռակա կարգով: Եթե դուք չունեք Pi Zero W, մենք կկապվենք WiFi ցանցի ՝ օգտագործելով USB WiFi dongle:

Ահա այն մասերի ցանկը, որոնք ես օգտագործել եմ, բայց շատ բաներ կարող են փոխանակվել համապատասխան այլընտրանքների համար: Օրինակ, Raspberry Pi- ի փոխարեն կարող եք օգտագործել Arduino- ն իրական ժամանակի ժամացույցով `նախագիծը վերահսկելու համար:

Օգտագործված մասեր

  • Հին զարթուցիչ
  • 30 սմ տաք սպիտակ LED ժապավեն
  • 1x Raspberry Pi Zero + միկրո SD քարտ
  • 1x USB WiFi dongle + միկրո USB USB փոխարկիչ
  • 12x LED
  • 12x 330 օհմ ռեզիստորներ (ավելի բարձր օգտագործեք, եթե ցանկանում եք ավելի թույլ լուսադիոդներ)
  • 1x TIP31a (կամ այլ npn էներգիայի տրանզիստոր կամ MOSFET)
  • 1x 1k դիմադրություն
  • 1x LM2596 DC-DC կարգավորելի կողպեքի փոխարկիչ (իջնում է 12 Վ-ով 5 Վ-ի համար ՝ Raspberry Pi- ի համար)
  • 1x 12v էլեկտրամատակարարում (+ ձեր նախագծին մուտք գործելու եղանակ)
  • 10 սմ x 10 սմ փայտ ժամացույցի սլաքի համար (պետք է լինի համապատասխանաբար բարակ ՝ ձեր LED- ները տեղադրելու համար)
  • Տարբեր գույնի մետաղալարերի տարբեր կտորներ

Օգտակար բաներ ունենալ

  • Sոդման երկաթ + զոդ
  • Տաք սոսինձ
  • Բազմաչափ
  • Breadboard
  • Վերնագրի կանացի կապում
  • Micro SD քարտի ընթերցիչ կամ փոխարկիչ
  • Համակարգիչ
  • Մինի HDMI ադապտեր + HDMI էկրան, եթե ցանկանում եք օգտագործել Pi- ի աշխատասեղանի միջավայրը

Քայլ 2: Ազնվամորու Pi- ի կարգավորում

Ազնվամորու Պի կարգավորում
Ազնվամորու Պի կարգավորում
Ազնվամորու Պի կարգավորում
Ազնվամորու Պի կարգավորում

Օպերացիոն համակարգ

Քանի որ Raspberry Pi- ն չի միացվի էկրանին, ես ընտրեցի օգտագործել Raspbian Buster Lite- ը, որը չի գալիս աշխատասեղանի միջավայրով: Եթե դուք ավելի նոր եք Raspberry Pi- ի համար, գուցե ցանկանաք հավատարիմ մնալ ստանդարտ Raspbian Buster- ին, որն ունի աշխատասեղան: Եթե վստահ չեք, թե ինչպես տեղադրել ձեր օպերացիոն համակարգը, սա հիանալի ռեսուրս է: Երկու օպերացիոն համակարգերը կարելի է ներբեռնել Raspberry Pi կայքից:

Այս պահին միացրեք Pi- ն իր Micro USB հոսանքի միջոցով: Միացրեք նաև USB WiFi հանգույցը:

Խոսելով Raspberry Pi- ի հետ

Երբ ամեն ինչ փաթեթավորվի, բավականին դժվար է մուտք գործել Pi, եթե ցանկանում եք փոխել ծածկագիրը և այլն: SSH- ի օգտագործումը թույլ է տալիս միանալ Pi- ին և վերահսկել այն այլ համակարգչից: Սա լռելյայն միացված չէ, բայց մենք կարող ենք դա անել ՝ պարզապես ձեր SD քարտի boot partition- ում ssh անունով պանակ ստեղծելով: Եթե արդեն մուտք եք գործել ձեր Pi- ն, կարող եք նաև դա անել ՝ տերմինալում մուտքագրելով sudo raspi-config և նավարկելով դեպի Interfacing Options> SSH և ընտրելով Yes ՝ այն միացնելու համար:

Այժմ կարող եք ձեր Pi- ին միանալ այլ համակարգչից: Mac- ում կամ Linux- ում կարող եք օգտագործել ձեր տերմինալային ծրագիրը, սակայն Windows- ի տարբերակների մեծ մասում ստիպված կլինեք տեղադրել SSH հաճախորդ, ինչպիսին է PuTTY- ը: Միացեք Pi- ին ՝ մուտքագրելով ssh pi@ որտեղ հյուրընկալողի անունը փոխարինվում է ձեր Pi- ի IP հասցեի հյուրընկալողի անունով: Լռելյայն հյուրընկալողի անունը raspberrypi.local է: Այն ձեզանից գաղտնաբառ կխնդրի, որը, եթե դեռ չեք փոխել այն, ազնվամորին է:

Անհրաժեշտ իրերի տեղադրում

Նախ համոզվեք, որ ամեն ինչ արդիական է ՝ գործարկելով sudo apt թարմացում, այնուհետև sudo apt լրիվ արդիականացում:

Համոզված լինելու համար, թե ինչ է մեզ պետք, որպեսզի վերահսկենք GPIO կապերը Pi տիպի sudo apt-get տեղադրեք python-rpi.gpio և sudo apt-get install python3-rpi.gpio: Սրանք արդեն պետք է տեղադրված լինեն Raspbian- ի ամբողջական տարբերակի վրա:

Ծածկագիրը

Ահա ներբեռնման կոդը, որպեսզի ամեն ինչ աշխատի: Եթե դուք օգտագործում եք աշխատասեղանի միջավայր, դրանք տեղադրեք ձեր Փաստաթղթերի թղթապանակում:

Եթե դուք օգտագործում եք SSH- ի հրամանի տողը, գնացեք ձեր հիմնական թղթապանակ `մուտքագրելով cd ~/Documents և սեղմելով enter: Նանո test1.py- ով պատրաստեք նոր ֆայլ test1.py անունով: Սա կբացի նանո տեքստի խմբագիրը, որտեղ կարող եք տեղադրել ներբեռնված test1.py ֆայլի ծածկագիրը: CTRL-O և սեղմեք enter ՝ ֆայլը պահելու համար, և CTRL-X ՝ խմբագրից դուրս գալու համար: Կրկնեք գործընթացը մնացած ֆայլերի համար:

Քայլ 3: LED շերտի տեղադրում

LED շերտի տեղադրում
LED շերտի տեղադրում
LED շերտի տեղադրում
LED շերտի տեղադրում

Սկզբում ժամացույցի մեջ լուսադիոդային ժապավենը բացեք ՝ տեսնելու համար, թե որքան ձեզ հարկավոր կլինի, նշեք այս երկարությունը և կտրեք շերտը հաջորդ կտրման կետում, ինչպես ցույց է տրված: Շատ ավելի հեշտ է լարերը կպցնել ժապավենին, նախքան շերտը տեղում խրված լինելը: Սա բավականին լավ ուղեցույց է, թե ինչպես դա անել, բայց եթե համոզված չեք, որ ես պարզապես կաշխատեի զոդման միացման վրա այն կտորից, որից դուք պարզապես կտրել եք ձեր շերտը: Wireոդեք մեկ մետաղալար `զոդի դրական կետին և մեկ մետաղալար` բացասական: Համոզվեք, որ ստուգել եք ձեր LED շերտի աշխատանքը, նախքան այն ժամացույցի մեջ կպցնելը:

Քանի որ իմ օգտագործած լուսադիոդային ժապավենը օգտագործվել էր մինչ այն կորցրել էր իր ինքնասոսնձվող հենարանը, ուստի ստիպված էի տաք սոսինձ օգտագործել ժամացույցի եզրին եզրը ամրացնելու համար: Եթե ունեք ավելորդ երկարություն, ծածկեք լարերի ամրացման կետը: Հնարավոր է, որ ավելի ուշ ցանկանաք տեղադրել ժապավենը, բայց ես ավելի հեշտ գտա այն ժամացույցի մեջ թաքցնելը:

Քայլ 4: LED շերտի վերահսկում

LED շերտի վերահսկում
LED շերտի վերահսկում

LED ժապավենի միացում

LED շերտն աշխատում է 12 Վ լարման վրա, այնպես որ այն չի կարող անմիջապես Pi- ից սնվել: Դրանք վերահսկելու համար մենք կօգտագործենք էներգիայի տրանզիստոր (օրինակ ՝ TIP31a), որը միացված է Pi- ին, ինչպես ցույց է տրված վերևում: Ես խորհուրդ կտայի նախ ստուգել, որ այս ամենը աշխատում է սեղանի վրա:

  • Միացրեք GPIO 19 -ը բազային 1k դիմադրության միջոցով
  • Էմիտորը պետք է միացված լինի GND- ին
  • Միացրեք կոլեկտորը LED շերտի բացասական տերմինալին
  • Միացրեք դրական LED շերտի տերմինալը +12V- ին

Փորձարկում

Հրամանի տողում բացեք ձեր փաստաթղթերի թղթապանակը (cd ~/Documents) և մուտքագրեք python test1.py և մուտքագրեք: Դուք պետք է տեսնեք, որ LED շերտը մեծանում և նվազում է պայծառությունը: Itրագրից դուրս գալու համար սեղմեք CTRL-C: Դուք կարող եք խմբագրել ֆայլը (nano test1.py) `ծրագրում արագությունն ու պայծառությունը փոխելու համար:

ներմուծել RPi. GPIO որպես GPIOimport ժամանակ GPIO.setmode (GPIO. BCM) # Օգտագործել BCM pinout GPIO.setwarnings (False) # Անտեսել նախազգուշացումները այլ նյութերի համար օգտագործվող քորոցների մասին ledStripPin = 19 # LED շերտը քշվում է այս կապից (ledStripPin, GPIO. OUT) # Սահմանել ledStripPin- ը որպես ելք pwm = GPIO. PWM (ledStripPin, 100) # PWM ledStripPin- ում 100Hz հաճախականությամբ dutyCycle = 0 # Նախնական պայծառությունը որպես տոկոսային pwm.start (dutyCycle) փորձեք. մինչդեռ ճշմարիտ. DutyCycle միջակայքում (0, 101, 1)..sleep (0.05) բացառությամբ Ստեղնաշարի Անընդհատ. # Դուրս գալու համար սեղմեք CTRL-C, այնուհետև ՝ pwm.stop () # Դադարեցրեք pwm GPIO.cleanup () # Մաքրել GPIO- ի կապում

Քայլ 5: Mամացույցի դեմք պատրաստելը

Akingամացույցի դեմք դարձնելը
Akingամացույցի դեմք դարձնելը
Akingամացույցի դեմք դարձնելը
Akingամացույցի դեմք դարձնելը
Akingամացույցի դեմք դարձնելը
Akingամացույցի դեմք դարձնելը

Կտրեք փայտի կտորը ձեր ժամացույցի դեմքով դեպի ներքև, որպեսզի այն տեղավորվի ձեր ժամացույցի մեջ: Ես ստիպեցի իմը հանգստանալ առջևից մոտ 3 սմ հեռավորության վրա: Ձեր LED- ների տրամագիծը (սովորաբար 3 մմ կամ 5 մմ), միմյանցից 30 աստիճան հեռավորության վրա, բացեք 12 անցք: Ավազեք առջևը ներքև և կիրառեք ձեր նախընտրած ավարտը: Հետևի կողմից տեղադրեք LED- ները, որպեսզի դրանք ուղղվեն դեպի առջև: Ես օգտագործել եմ տաք սոսինձ ՝ LED- ները տեղում պահելու համար, իսկ դրական տերմինալը (ավելի երկար մետաղալար) դեպի ներս է նայում: Clockամացույցի երեսիս չափը նշանակում էր, որ ես կարող եմ միացնել բոլոր բացասական տերմինալները միասին (տե՛ս վերևում), այնպես որ միայն մեկ մետաղալար էր անհրաժեշտ բոլոր 12 LED- ները GND- ին միացնելու համար: Հաջորդը, յուրաքանչյուր LED- ին ամրացրեք մետաղալար:

Եթե ցանկանում եք սա ստուգել տախտակի վրա, ապա առաջին հերթին հիշեք օգտագործել դիմադրություն (330 օհմը բավականին ստանդարտ է) յուրաքանչյուր LED- ով, նախքան այն միացնելը Pi GPIO կապումներից մեկին: Խաղացեք ռեզիստորի արժեքի հետ, որն օգտագործում եք ՝ ձեր պայծառության մակարդակը ստանալու համար: T-cobbler- ն իսկապես օգտակար է Pi- ի կապումներն ափսեի մեջ կոտրելու համար, չնայած դրա համար հարկավոր է զոդել վերնագրերի կապում: Օգտագործեք test2.py (գործարկեք python test2.py- ի միջոցով), բայց համոզվեք, որ նախ խմբագրեք ծրագիրը և մուտքագրեք Pi- ի GPIO կապերը, որոնք օգտագործել եք յուրաքանչյուր LED- ի համար:

ներմուծեք RPi. GPIO- ն որպես GPIO

ներմուծման ժամանակը GPIO.setmode (GPIO. BCM) # Օգտագործեք BCM pinout GPIO.setwarnings (False) # Անտեսեք այլ նյութերի համար օգտագործվող քորոցների մասին նախազգուշացումները # Փոխարինեք մեկ, երկու,… համապատասխան պին համարով hourPin = [մեկ, երկու, երեք, չորս, հինգ, վեց, յոթ, ութ, ինը, տասը, տասնմեկ, տասներկու] # Պիներ, որոնց LED- ները միացված են 1-12-ից i միջակայքում i (0, 12). GPIO.setup (hourPin , GPIO. OUT) # Սահմանեք բոլոր ժամացույցները որպես ելքեր GPIO.output (hourPin , 0) # Համոզվեք, որ բոլոր LED- ները անջատված են:], 1): time.sleep (0.05) i միջակայքում i (0, 12) GPIO.output (hourPin , 0): time.sleep (0.05) բացառությամբ KeyboardIntruptrupt: # Դուրս գալու համար սեղմեք CTRL-C և ապա ՝ GPIO.cleanup () # Մաքրել GPIO կապում

Քայլ 6: Pi- ի հզորացում

Pi- ի հզորացում
Pi- ի հզորացում

Մեզ պետք է Pi Zero- ին 5V հասցնելու հեշտ միջոց, որպեսզի կարողանանք ազատվել միկրո USB մալուխից, որը մինչ այժմ օգտագործում էինք այն սնուցելու համար: Կան մի շարք լուծումներ, որոնք իջնում են 12 Վ -ից մինչև 5 Վ, օրինակ ՝ LM7805 գծային լարման կարգավորիչը, բայց դրանք այնքան էլ արդյունավետ չեն, դրա փոխարեն ես նախընտրեցի օգտագործել ավելի արդյունավետ կարգավորելի բաք փոխարկիչ ՝ օգտագործելով LM2596 չիպը: Հաշվի առնելով դա, դուք ստիպված կլինեք պտտել պոտենցիոմետրը մինչև ելքային լարումը նվազի մինչև 5 Վ, ինչպես պահանջվում է, այնպես որ ձեզ անհրաժեշտ կլինի լարման չափման ինչ -որ եղանակ:

LM2596- ի օգտագործումը պարզ է. Միացրեք +12V- ը IN +ին, գետինը `IN-: Pi- ն կարող է ուղղակիորեն միացվել 5V- ին ՝ OUT+ - ը Pi- ի 5V կապումներից մեկին միացնելով, բայց համոզվեք, որ ելքային լարումը փոխել եք 5V- ի, նախքան դա անելը, հակառակ դեպքում կփխեք ձեր Pi- ն:

Քայլ 7: Լրացրեք շրջանը և փաթեթավորումը

Լրացրեք սխեման և փաթեթավորումը
Լրացրեք սխեման և փաթեթավորումը
Լրացրեք սխեման և փաթեթավորումը
Լրացրեք սխեման և փաթեթավորումը
Լրացրեք սխեման և փաթեթավորումը
Լրացրեք սխեման և փաթեթավորումը
Լրացրեք սխեման և փաթեթավորումը
Լրացրեք սխեման և փաթեթավորումը

Այժմ մենք լուսաբանել ենք միացման բոլոր երեք տարրերը, որոնք միասին ցուցադրված են վերը նշված ընդհանուր սխեմայում: Տիեզերքը խնայելու և միացումն ավելի կոկիկ դարձնելու համար ձեր սխեման դրեք ժապավենի տախտակի կամ նախատիպի տախտակի վրա: Սկզբում կպցրեք ամենափոքր բաղադրիչները ՝ ռեզիստորները, այնուհետև էներգիայի տրանզիստորը, ցանկացած միակցիչներ և վերջապես լարերը: Planոդելուց առաջ պլանավորեք ձեր սխեման, որպեսզի համոզվեք, որ ամեն ինչի համար տարածք ունեք:

Ես ամեն ինչ միացրեցի PCB- ի նախատիպի վրա և օգտագործեցի վերնագրի կին կապեր, որպեսզի Pi- ն կարողանա ուղղակիորեն տեղադրվել PCB- ի վրա: Clockամացույցի երեսի LED- ները միացված են տախտակի մի կողմի դիմադրիչների միջոցով, և ես տախտակի մյուս կողմում տարածք եմ պահել էներգիայի տրանզիստորի համար և ազատ եմ ցանկացած այլ միացման համար, որը հետագայում կցանկանայի ավելացնել:

Attամացույցի դեմքը միացրեք ժամացույցին և համոզվեք, որ էլեկտրոնիկան տեղավորվում է: Ամեն ինչ ինձ համար բավականին հարմար էր, այնպես որ գուցե անհրաժեշտ լինի որոշակի վերադասավորում կատարել: Միացրեք էլեկտրասնուցումը և գործարկեք SS1- ից test1.py և test2.py ՝ հետևը ամրացնելուց առաջ ամեն ինչ ստուգելու համար:

Քայլ 8: Վերբեռնեք ծածկագիրը + Ավարտը

Վերբեռնեք ծածկագիրը + Ավարտը
Վերբեռնեք ծածկագիրը + Ավարտը
Վերբեռնեք ծածկագիրը + Ավարտը
Վերբեռնեք ծածկագիրը + Ավարտը
Վերբեռնեք ծածկագիրը + Ավարտը
Վերբեռնեք ծածկագիրը + Ավարտը

Ծածկագիրը

Վերջապես, եթե դեռ չեք հասցրել, վերբեռնեք կոդը և հարմարեցրեք այն, ինչպես ցանկանում եք (օգտագործելով nano filename.py): Pi- ի և SSH- ի հետ կապվելու առավելությունն այն է, որ կարող եք թարմացնել ծածկագիրը ՝ առանց ժամացույցը բացելու:

Քայլ 2 -ի այս պիթոնային ծրագրերը կատարում են հետևյալը.

  • light_clock_simple.py- ն պարզապես ցուցադրում է ժամը LED- ների վրա և որոշակի ժամանակ մարում և իջնում LED շերտի վրա
  • light_clock_pwm.py- ն նույնն է, ինչ վերևում է, բայց նաև թույլ է տալիս նվազեցնել LED- ների պայծառությունը և րոպեները ցուցադրում է ժամերին այլ պայծառությամբ: Դուք պետք է խաղաք երկուսի պայծառության մակարդակներով, այնպես որ երկուսի միջև հակադրությունը նկատելի է

Դրանք պետք է ամուր հիմք հանդիսանան ծածկագրին ավելացնելու համար, օրինակ ՝ գուցե ցանկանաք ավելացնել կոճակ ՝ լուսազարթումը հետաձգելու համար:

Pi- ի գործարկման ժամանակ ծրագիրը գործարկելու համար մենք պետք է ավելացնենք '@reboot nohup python light_clock_pwm.py &' crontab ֆայլի վերջում, որը կարելի է բացել տերմինալից crontab -e- ով: Վերագործարկեք ձեր Raspberry Pi- ն ՝ այժմ ստուգելու համար, որ այն աշխատում է sudo անջատման հետ -r:

Հնարավոր լրացումներ

Ահա լրացուցիչ ֆունկցիոնալության որոշ գաղափարներ, որոնք կարող են ավելացվել

  • Ննջելու կոճակի ավելացում
  • Լամպի ռեժիմի ավելացում
  • IFTTT- ին միանալը (օրինակ ՝ լույսը կարող է միանալ, երբ հեռախոսի ազդանշանը անջատվում է/բռնկվել, երբ ստացվել է նամակ)
  • Ավելացնելով հպման ունակություն, այսինքն ՝ ժամացույցը դարձրեք հպիչ լամպ

PWM- ն օգտագործելիս կարող եք նկատել, որ երբեմն, հատկապես ցածր պայծառությամբ, LED- ը մի փոքր թարթում է: Դա պայմանավորված է նրանով, որ Pi- ն օգտագործում է ծրագրային ապահովման PWM, այնպես որ պրոցեսորի գործընթացները կարող են ազդել աշխատանքային ցիկլի վրա: Ավելի քիչ գործընթացներ ունենալը օգնում է դրան, այնպես որ ես օգտագործեցի մանրացված Raspbian Lite օպերացիոն համակարգը: Սարքավորումների PWM- ն հասանելի է նաև մի քանի կապում, այնպես որ, եթե թրթռոցը խնդիր է ապացուցում, դա կարող է ուշադրություն դարձնել:

Հուսով եմ, որ դուք գտել եք այս ուսանելի տեղեկատվական տեղեկատվությունը և կամ ոգեշնչված եք հին զարթուցիչը վերազինելու համար, կամ կոդի տարրեր օգտագործելու ձեր սեփական նախագծի համար:

LED շերտի արագության մարտահրավեր
LED շերտի արագության մարտահրավեր
LED շերտի արագության մարտահրավեր
LED շերտի արագության մարտահրավեր

Երկրորդ մրցանակ LED Strip Speed Challenge- ում

Խորհուրդ ենք տալիս: