Мазмуну:

Upcycled Ойготкуч Smart Light: 8 кадам (Сүрөттөр менен)
Upcycled Ойготкуч Smart Light: 8 кадам (Сүрөттөр менен)

Video: Upcycled Ойготкуч Smart Light: 8 кадам (Сүрөттөр менен)

Video: Upcycled Ойготкуч Smart Light: 8 кадам (Сүрөттөр менен)
Video: Miu Miu Upcycled 2024, Ноябрь
Anonim
Upcycled Ойготкуч саат Smart Light
Upcycled Ойготкуч саат Smart Light
Upcycled Ойготкуч саат Smart Light
Upcycled Ойготкуч саат Smart Light
Upcycled Ойготкуч саат Smart Light
Upcycled Ойготкуч саат Smart Light

Бул долбоордо мен толугу менен сынган шамал ойготкучун айландырам. Сааттын бети 12 LED менен алмаштырылган, алар сааттын алкагындагы LED тилкеси менен жарыктандырылган. 12 светодиод убакытты айтат жана LED тилкеси белгиленген убакта толук жарыктыкка чейин бурулуп, сигнал катары иштөө үчүн программаланган. Бардыгы Raspberry Pi Zero тарабынан көзөмөлдөнөт, бул сансыз интеграция жана кеңейтүү мүмкүнчүлүктөрүнө жол ачат, мисалы, сигналды телефонуңуздун сигнализациясы менен автоматтык түрдө синхрондоштуруу же электрондук кат алганыңызда светодиоддорду күйгүзүү.

Долбоор салыштырмалуу арзан же кайра колдонулган компоненттерди колдонот - мен сатып алган бир гана нерсе - чыңалуу жөндөгүчү. Калган нерселердин баары, мисалы, LED тилкесинин кесилиши сыяктуу жатып калдым. Бул Нускоо сизди сынган саатыма кантип жаңы жашоо бергенимди көрсөтөт жана сизге өзүңүздүн бир нерсеңизди көтөрүүгө дем берет деп үмүттөнөм.

1 -кадам: Бөлүктөр

Бөлүктөр
Бөлүктөр
Бөлүктөр
Бөлүктөр
Бөлүктөр
Бөлүктөр

Баарын көзөмөлдөө үчүн биз Raspberry Pi Zero колдоно турган болобуз, анча чоң эмес, WiFiга туташса болот, демек, реалдуу убакыт саатынын кереги жок, ошондуктан кодду ноутбуктан алыстан оңой эле жаңырта алабыз. Эгерде сизде Pi Zero W болбосо, биз USB WiFi түйүнү аркылуу WiFi тармагына туташабыз.

Бул жерде мен колдонгон бөлүктөрдүн тизмеси, бирок көпчүлүк нерселерди ылайыктуу альтернативаларга алмаштырууга болот. Мисалы, Raspberry Pi ордуна сиз проектти көзөмөлдөө үчүн реалдуу убакыт сааты менен Arduino колдоно аласыз.

Колдонулган бөлүктөр

  • Эски ойготкуч саат
  • 30 см жылуу ак LED диод
  • 1x Raspberry Pi Zero + микро SD карта
  • 1x USB WiFi донгли + микро USB USB конвертерине
  • 12x LED
  • 12x 330ohm резисторлору (эгер сиз светодиоддук диоддорду кааласаңыз, жогору колдонуңуз)
  • 1x TIP31a (же башка npn күч транзистору же MOSFET)
  • 1x 1k каршылыгы
  • 1x LM2596 DC-DC жөнгө салынуучу бак конвертери (Raspberry Pi үчүн 5V үчүн 12V түшүп)
  • 1x 12v электр менен камсыздоо (+ долбооруңузга кирүү жолу)
  • Сааттын бети үчүн 10см х 10см жыгач (сиздин LED ди орнотуу үчүн ылайыктуу ичке болушу керек)
  • Ар кандай түстөгү зымдын түрдүү бөлүктөрү

Пайдалуу нерселер

  • Лампочка + ширетүүчү
  • Ысык клей
  • Мультиметр
  • Breadboard
  • Аялдын башына төөнөгүчтөр
  • Micro SD карта окурман же конвертер
  • Компьютер
  • Пи рабочий чөйрөсүн колдонууну кааласаңыз, Mini HDMI адаптери + HDMI экраны

2 -кадам: Raspberry Pi орнотуу

Raspberry Pi орнотуу
Raspberry Pi орнотуу
Raspberry Pi орнотуу
Raspberry Pi орнотуу

Иштетүү системасы

Raspberry Pi экранга туташпай тургандыктан, мен Raspbian Buster Lite программасын колдонууну туура көрдүм, ал рабочий чөйрө менен келбейт. Эгерде сиз Raspberry Pi үчүн жаңы болсоңуз, анда сиз рабочий столу менен келген стандарттык Raspbian Busterге жабышкыңыз келиши мүмкүн. Эгерде сиз операциялык системаңызды кантип орнотууну билбесеңиз, бул эң сонун булак. Эки операциялык системаны Raspberry Pi веб -сайтынан жүктөп алсаңыз болот.

Азыркы учурда, Pi'ди Micro USB кубаттуулугу аркылуу кубаттаңыз. Ошондой эле USB WiFi ключун туташтырыңыз.

Raspberry Pi менен сүйлөшүү

Баары пакеттелгенден кийин, эгер сиз кодду өзгөрткүңүз келсе, Piге кирүү өтө кыйын, SSHди колдонуу Piге туташууга жана аны башка компьютерден башкарууга мүмкүнчүлүк берет. Бул демейки боюнча күйгүзүлгөн эмес, бирок биз SD картаңыздын жүктөөчү бөлүгүндө ssh аттуу папканы түзүү менен жасай алабыз. Эгерде сиз буга чейин Пиңизге кирген болсоңуз, муну Терминалга sudo raspi-config терип, Interfacing Options> SSHге өтүп, аны иштетүү үчүн Ооба дегенди тандасаңыз болот.

Эми сиз Пиңизге башка компьютерден туташа аласыз. Mac же Linuxто терминалдык колдонмоңузду колдоно аласыз, бирок Windowsтун көпчүлүк версияларында PuTTY сыяктуу SSH кардарын орнотууга туура келет. Ssh pi@ терүү менен Пи менен туташыңыз, бул жерде хосттун аты сиздин Пи IP дарегиңиздин хост атына алмаштырылат. Демейки хосттун аты raspberrypi.local. Ал сизден сырсөздү сурайт, эгер сиз аны өзгөртө элек болсоңуз, малина.

Керектүү нерселерди орнотуу

Алгач sudo apt update, андан кийин sudo apt толук жаңыртууну иштетүү менен баары жаңырганын текшериңиз.

Pi түрүндөгү GPIO казыктарын көзөмөлдөө үчүн эмне керек экенибизди текшерүү үчүн sudo apt-get install python-rpi.gpio жана sudo apt-get install python3-rpi.gpio. Булар буга чейин Raspbianдин толук версиясына орнотулушу керек.

Коду

Бул жерде баары иштеши үчүн жүктөө үчүн код бар. Эгер сиз рабочий чөйрөнү колдонуп жатсаңыз, муну Документтер папкаңызга чаптаңыз.

Эгерде сиз SSHдин буйрук сабын колдонуп жатсаңыз, cd ~/Documents терүү жана enter басуу менен үй папкаңызга өтүңүз. Nano test1.py менен test1.py деп аталган жаңы файл жасаңыз. Бул нано текст редакторун ачат, анда жүктөлгөн test1.py файлынын кодун чаптай аласыз. Файлды сактоо үчүн CTRL-O жана enter баскычын, ал эми редактордон чыгуу үчүн CTRL-X басыңыз. Калган файлдар үчүн процессти кайталаңыз.

3 -кадам: LED тилкесин орнотуу

LED тилкесин орнотуу
LED тилкесин орнотуу
LED тилкесин орнотуу
LED тилкесин орнотуу

Адегенде канчалык керек экениңизди билүү үчүн LED тилкесин ачыңыз, бул узундукту белгилеңиз жана тилкени көрсөтүлгөндөй кийинки кесүү жеринде кесиңиз. Тилке ордуна тыгылып калганга чейин зымдарды тилкеге кошуу бир топ оңой. Бул муну кантип жасоо керектиги жөнүндө абдан жакшы көрсөтмө, бирок эгер ишенбесеңиз, мен жөн гана стриптиңди кесип алып, кесилген бөлүккө кошулмакмын. Оң зымдын чекитине бир зым, терске бир зым. Саатыңызга жабыштыруудан мурун LED тилкесиңиздин иштээрин текшериңиз.

Мен колдонгон LED тилкеси өзүнүн жабышчаак катмарын жоготконго чейин колдонулгандыктан, тилкени саат алкагынын четине бекитүү үчүн ысык желимди колдонууга туура келди. Эгерде сизде ашыкча узундук болсо, зымдар бекитилген жерди жаап коюңуз. Сиз кийинчерээк тилкени орноткуңуз келиши мүмкүн, бирок аны сааттын ичинде чечип коюу оңой деп таптым.

4 -кадам: LED тилкесин көзөмөлдөө

LED тилкесин көзөмөлдөө
LED тилкесин көзөмөлдөө

LED тилкесин туташтыруу

LED тилкеси 12Вда иштейт, андыктан Pi түздөн -түз иштей албайт. Аларды көзөмөлдөө үчүн биз жогоруда көрсөтүлгөндөй Пи менен туташкан күч транзисторун (мис. TIP31a) колдонобуз. Мен адегенде мунун баарын нан тактасында текшерүүнү сунуштайм.

  • GPIO 19ны 1k каршылыгы аркылуу базага туташтырыңыз
  • Эмитент GND менен туташышы керек
  • Коллекторду LED тилкесинин терс терминалына туташтырыңыз
  • Позитивдүү LED тилкеси терминалын +12Vга туташтырыңыз

Тестирлөө

Буйрук сабында документтериңиздин папкасына (cd ~/Documents) кирип, python test1.py деп териңиз жана киргизиңиз. Сиз LED тилкесинин жарыктыгынын жогорулашын жана азайышын көрүшүңүз керек. Программадан чыгуу үчүн CTRL-C басыңыз. Сиз программанын ылдамдыгын жана жарыктыгын өзгөртүү үчүн файлды (nano test1.py) түзөтө аласыз.

GPIO импорттоо убактысы катары RPi. GPIO импорттоо GPIO.setmode (GPIO. BCM) # BCM pinout GPIO.setwarnings (False) # Башка нерселер үчүн колдонулган казыктар жөнүндө эскертүүлөрдү этибарга албаңыз ledStripPin = 19 # LED тилкеси бул пинден GPIO.setup кууп чыгарылган (ledStripPin, GPIO. OUT) # LEDStripPinди чыгуучу pwm = GPIO. PWM (ledStripPin, 100) катары коюу # LEDstripPin жыштыгы 100Hz dutyCycle = 0 # Баштапкы жарыктык pwm.start (dutyCycle) катары аракет кылып көрүңүз: чыныгы: үчүн dutyCycle диапазондо (0, 101, 1): # pwm. Fange upDutyCycle (dutyCycle) time.sleep (0.05) dc диапазонунда (95, -1, -1): # Pwm ылдый түшөт. ChangeDutyCycle (dc) убакыт.sleep (0.05) KeyboardInterruptден башка: # Чыгуу үчүн CTRL-C баскычын басыңыз, анан: pwm.stop () # pwm GPIO.cleanup () # GPIO казыктарын тазалаңыз

5 -кадам: Сааттын жүзүн жасоо

Сааттын жүзүн жасоо
Сааттын жүзүн жасоо
Сааттын жүзүн жасоо
Сааттын жүзүн жасоо
Сааттын жүзүн жасоо
Сааттын жүзүн жасоо

Саатыңыздын жыгач бөлүгүн саатыңызга туура келгидей кылып кесиңиз. Мен өзүмдү алдыңкы бөлүктөн болжол менен 3 см аралыкта эс алдырдым. Жарык диоддоруңуздун диаметри (көбүнчө 3мм же 5мм) бири -биринен 30 градус аралыкта 12 тешик бургулаңыз. Алдыңкы жагын ылдый караңыз жана өзүңүз тандаган бүтүрүүнү колдонуңуз. Жарык диоддорду арткы жагына коюп, алар алдыңкы жагына көрсөтөт. Мен позитивдүү терминалды (узунураак зым) ичине каратып, светодиоддорду ордунда кармоо үчүн ысык клей колдондум. Менин саатымдын өлчөмү бардык терс терминалдарды чогуу ширете алам дегенди билдирет (жогорудан караңыз), андыктан бардык 12 LEDди GNDге туташтыруу үчүн бир гана зым керек болгон. Андан кийин, ар бир светодиодго зым туташтырыңыз.

Эгерде сиз муну нан тактасында сынап көргүңүз келсе, аны Pi GPIO казыктарынын бирине туташтыруудан мурун, ар бир LED менен бир катарда резистор (330 Ом абдан стандарттуу) колдонууну унутпаңыз. Жарыктын деңгээлине жетүү үчүн колдонгон резистордун мааниси менен ойноңуз. Т-өтүкчү Пи пиндерин нанга бөлүү үчүн чынында эле пайдалуу, бирок бул үчүн баштык казыктарды ширетүү керек болот. Test2.py колдонуңуз (python test2.py менен чуркаңыз), бирок программаны биринчи жолу оңдоп, ар бир светодиод үчүн колдонгон Pi GPIO казыктарын киргизиңиз.

GPO катары RPi. GPIO импорттоо

импорттоо убактысы GPIO.setmode (GPIO. BCM) # BCM pinout GPIO.setwarnings (False) # Башка нерселер үчүн колдонулган казыктар жөнүндө эскертүүлөрдү этибарга албаңыз # Бир, эки,… тиешелүү пин номери менен алмаштырыңыз hourPin = [бир, эки, үч, төрт, беш, алты, жети, сегиз, тогуз, он, он бир, он эки] # Жарык диоддор i диапазонунда 1-12 чейин туташкан (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Бардык hourPinsти GPIO.output катары коюңуз (hourPin , 0) # Бардык светодиоддордун өчүрүлгөнүн текшериңиз: True: ал эми i диапазонунда (0, 12) GPIO.output (hourPin [i)], 1): time.sleep (0.05) i үчүн диапазондо (0, 12) GPIO.output (hourPin , 0): time.sleep (0.05) KeyboardInterruptден башка: # Чыгуу үчүн CTRL-C баскычын басыңыз жана анда: GPIO.cleanup () # GPIO казыктарын тазалаңыз

6 -кадам: Pi'ге кубат берүү

Пиди кубаттоо
Пиди кубаттоо

Бизге азырынча кубат берүү үчүн колдонгон микро USB кабелинен арылуу үчүн Pi Zeroго 5В алуунун оңой жолу керек. LV7805 чыңалуусун жөнгө салуучу 12Vдан 5Vга чейин төмөндөгөн көптөгөн чечимдер бар, бирок алар анча эффективдүү эмес, анын ордуна мен LM2596 чипин колдонуп, кыйла эффективдүү жөнгө салынуучу конверторду колдонууну чечтим. NB мында потенциометрди керектүү болгондой 5В чейин кыскартууга туура келет, андыктан сизге чыңалууну өлчөөнүн кандайдыр бир жолу керек болот.

LM2596 колдонуу жөнөкөй: +12V менен IN +, жерди IN- га туташтыруу. Pi түздөн -түз 5V га туташып, OUT+ ды Pi'дин 5V казыктарынын бирине туташтырып койсо болот, бирок муну жасабастан мурун 5Вга чыгуу чыңалуусун өзгөрткөнүңүздү текшериңиз же Пиңизди куурасыз!

7 -кадам: Районду жана таңгактоону бүтүрүңүз

Циркти жана таңгактоону бүтүрүңүз
Циркти жана таңгактоону бүтүрүңүз
Циркти жана таңгактоону бүтүрүңүз
Циркти жана таңгактоону бүтүрүңүз
Циркти жана таңгактоону бүтүрүңүз
Циркти жана таңгактоону бүтүрүңүз
Циркти жана таңгактоону бүтүрүңүз
Циркти жана таңгактоону бүтүрүңүз

Биз азыр жогоруда жалпы схемада чогуу көрсөтүлгөн схеманын үч элементин камтып койдук. Орунду үнөмдөө жана схеманы тыкан кылуу үчүн схемаңызды тилке тактасына же прототип тактасына коюңуз. Адегенде эң кичинекей тетиктерди, резисторлорду, андан кийин күч транзисторун, ар кандай туташтыргычтарды жана акырында зымдарды ширеткиле. Бардык нерсеге орун бар экенине ынануу үчүн, өзүңүздүн схемаңызды пландаштырыңыз.

Мен бардыгын прототиптелген PCBге туташтырдым жана аялдын баш пиндерин колдондум, ошондуктан Пи ПКБга түздөн -түз орнотулушу мүмкүн. Сааттын бетиндеги светодиоддор коллегиянын бир жагындагы резисторлор аркылуу туташат, мен тактанын экинчи тарабында күч транзисторуна орун сактап койгом жана кийинчерээк кошкум келген башка схемаларга бекер.

Саатты саатка жабыштырып коюңуз жана электрониканын баары туура келгенин текшериңиз. Баары мен үчүн абдан ылайыктуу болгон, андыктан сизге кайра уюштуруу керек болушу мүмкүн. Электр менен камсыздоону туташтырып, SSHден test1.py жана test2.py иштетип, артын тиркөө алдында иштээрин текшериңиз.

8 -кадам: Кодду жүктөө + Аяктоо

Кодду жүктөө + Аяктоо
Кодду жүктөө + Аяктоо
Кодду жүктөө + Аяктоо
Кодду жүктөө + Аяктоо
Кодду жүктөө + Аяктоо
Кодду жүктөө + Аяктоо

Коду

Акырында, эгерде сизде жок болсо, кодду жүктөп, аны өзүңүз каалагандай ыңгайлаштырыңыз (nano filename.py менен). SSH аркылуу Piге туташуунун артыкчылыгы - бул кодду саатты ачпастан жаңыртуу.

Бул 2 -кадамдагы python программалары төмөнкүлөрдү аткарат:

  • light_clock_simple.py жөн гана светодиоддордо саатты көрсөтөт жана белгилүү убакта LED тилкесин өйдө -ылдый түшүрөт
  • light_clock_pwm.py жогорудагыдай эле, бирок ошондой эле светодиоддордун жарыктыгын төмөндөтүүгө мүмкүндүк берет жана мүнөттөрдү сааттан башка жарыктыкта көрсөтөт. Сиз экөөнүн тең жаркыроо деңгээли менен ойношуңуз керек, андыктан экөөнүн ортосундагы контраст байкалат

Булар кодго кошуу үчүн бекем негиз түзүшү керек, мисалы, жарык сигналын тындыруу үчүн баскычты кошуп койсоңуз болот.

Pi жүктөлгөндө программаны ишке киргизүү үчүн, терминалдан crontab -e менен ачыла турган crontab файлынын аягына '@reboot nohup python light_clock_pwm.py &' кошуу керек. Raspberry Pi'ни өчүрүп -күйгүзүңүз, анын sudo shutdown -r менен иштеп жатканын текшериңиз.

Мүмкүн болгон толуктоолор

Бул жерде кошумча функциялардын кээ бир идеялары кошулушу мүмкүн

  • Тындыруу баскычы кошулууда
  • Лампа режимин кошуу
  • IFTTTге туташуу (мисалы, телефондун ойготкучу өчкөндө/электрондук почта келгенде жарк этиши мүмкүн)
  • Тийүү жөндөмүн кошуу, башкача айтканда, саатты сенсордук лампага айландыруу

Сиз PWMди колдонуп жатканда, кээде, айрыкча, жарыктуулугу төмөн болгондо, LED бир аз жарк этип турганын байкайсыз. Бул Pi PWM программасын колдонгондуктан, CPU процесстери кызмат циклине таасир этиши мүмкүн. Аз иштеп жаткан процесстер жардам берет, ошондуктан мен Raspbian Lite операциялык системасын колдондум. Аппараттык PWM дагы бир нече казыктарда бар, андыктан эгерде жылтылдоо көйгөйдү далилдеп жатса, анда бул нерсени карап чыгуу керек.

Мен сиз бул Инструктивдүү маалыматты таптыңыз деп үмүттөнөм же эски будильникти айлантууга же өзүңүздүн долбооруңуз үчүн коддун элементтерин колдонууга шыктандыңыз.

LED Strip Speed Challenge
LED Strip Speed Challenge
LED Strip Speed Challenge
LED Strip Speed Challenge

LED Strip Speed Challenge экинчи сыйлыгы

Сунушталууда: