Съдържание:

Актуализиран будилник Интелигентна светлина: 8 стъпки (със снимки)
Актуализиран будилник Интелигентна светлина: 8 стъпки (със снимки)

Видео: Актуализиран будилник Интелигентна светлина: 8 стъпки (със снимки)

Видео: Актуализиран будилник Интелигентна светлина: 8 стъпки (със снимки)
Видео: Ето Защо НАСА Никога не се Върна на ЛУНАТА - Moon Discoveries 2024, Ноември
Anonim
Рециклиран будилник Интелигентна светлина
Рециклиран будилник Интелигентна светлина
Рециклиран будилник Smart Light
Рециклиран будилник Smart Light
Рециклиран будилник Интелигентна светлина
Рециклиран будилник Интелигентна светлина

В този проект преработвам напълно счупен будилник за навиване. Циферблатът на часовника се заменя с 12 светодиода, осветени от LED лента около ръба на часовника. 12 -те светодиода показват часа и LED лентата е програмирана да действа като аларма, като се включва до пълна яркост в зададеното време. Всичко се контролира от Raspberry Pi Zero, което позволява безброй възможности за интегриране и разширяване, като автоматично синхронизиране на светлинната аларма с алармата на телефона ви или мигане на светодиодите, когато получите имейл.

Проектът използва сравнително евтини или повторно използвани компоненти - единственото нещо, което в крайна сметка купих, беше регулаторът на напрежението. Всичко останало, което ми се е случвало да лежа наоколо, например изрязана LED лента. Тази инструкция ще ви преведе как дадох нов живот на счупения си часовник и се надявам да ви вдъхнови да преработите нещо свое.

Стъпка 1: Части

Части
Части
Части
Части
Части
Части

За да контролираме всичко, което ще използваме Raspberry Pi Zero, тъй като е малък, струва много малко и може да бъде свързан с WiFi, което означава, че не се нуждаем от часовник в реално време и следователно можем лесно да актуализираме кода дистанционно от лаптоп. Освен ако нямате Pi Zero W, ще се свържем с WiFi мрежа, използвайки USB WiFi ключ.

Ето списък на частите, които използвах, но повечето неща могат да бъдат заменени за подходящи алтернативи. Например, вместо Raspberry Pi, можете да използвате Arduino с часовник в реално време, за да контролирате проекта.

Използвани части

  • Стар будилник
  • 30 см топло бяла LED лента
  • 1x Raspberry Pi Zero + микро SD карта
  • 1x USB WiFi ключ + микро USB към USB конвертор
  • 12x светодиоди
  • 12x 330ohm резистори (използвайте по -високо, ако искате димери с димер)
  • 1x TIP31a (или друг npn захранващ транзистор или MOSFET)
  • 1x 1k резистор
  • 1x LM2596 DC-DC регулиращ се конвертор (понижава 12V за 5V за Raspberry Pi)
  • 1x 12v захранване (+ начин за влизане във вашия проект)
  • 10 см х 10 см дърво за циферблата на часовника (трябва да е подходящо тънък, за да монтирате светодиодите)
  • Различни парчета тел с различен цвят

Полезни неща, които трябва да имате

  • Поялник + спойка
  • Горещо лепило
  • Мултиметър
  • Платка
  • Женски щифтове за заглавки
  • Четец или конвертор на Micro SD карти
  • Компютър
  • Мини HDMI адаптер + HDMI екран, ако искате да използвате настолната среда на Pi

Стъпка 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 и да го контролирате от друг компютър. Това не е включено по подразбиране, но можем да направим, като просто направим папка, наречена ssh, в зареждащия дял на вашата SD карта. Ако вече сте влезли във вашия Pi, можете също да направите това, като напишете sudo raspi-config в терминала и отидете до Опции за интерфейс> SSH и изберете Да, за да го активирате.

Сега можете да се свържете с вашия Pi на друг компютър. На Mac или Linux можете да използвате терминалното си приложение, но в повечето версии на Windows ще трябва да инсталирате SSH клиент, като PuTTY. Свържете се с Pi, като напишете ssh pi@, където името на хоста се заменя с името на хоста на IP адреса на вашия Pi. Името на хост по подразбиране е raspberrypi.local. Той ще ви поиска парола, която, ако все още не сте я променили, е малинова.

Инсталиране на необходимите неща

Първо се уверете, че всичко е актуално, като стартирате sudo apt update и след това sudo apt пълно обновяване.

За да сме сигурни от какво се нуждаем, за да контролираме GPIO пиновете на тип Pi sudo apt-get install python-rpi.gpio и sudo apt-get install python3-rpi.gpio. Те вече трябва да бъдат инсталирани на пълната версия на Raspbian.

Кодът

Ето кода за изтегляне, за да работи всичко. Ако използвате работна среда, поставете ги в папката „Документи“.

Ако използвате командния ред на SSH, отворете домашната папка, като въведете cd ~/Documents и натиснете enter. Направете нов файл, наречен test1.py с nano test1.py. Това ще отвори нано текстовия редактор, където можете да поставите кода на изтегления файл test1.py. CTRL-O и натиснете enter, за да запазите файла, и CTRL-X, за да излезете от редактора. Повторете процеса за останалите файлове.

Стъпка 3: Инсталиране на LED лентата

Инсталиране на LED лентата
Инсталиране на LED лентата
Инсталиране на LED лентата
Инсталиране на LED лентата

Първо пуснете LED лентата в часовника, за да видите колко ще ви трябва, маркирайте тази дължина и изрежете лентата в следващата точка на изрязване, както е показано. Много по -лесно е да запоите проводници към лентата, преди лентата да се залепи на място. Това е доста добро ръководство за това как да направите това, но ако не сте сигурни, просто бих се упражнявал върху спойката върху парчето, от което току -що сте отрязали лентата си. Запоявайте един проводник към положителната точка на спойка и един проводник към отрицателния. Проверете дали LED лентата ви работи, преди да я поставите в часовника си.

Тъй като използваната от мен LED лента беше използвана, преди да е загубила самозалепващата си подложка, трябваше да използвам горещо лепило, за да фиксирам лентата около ръба на часовника. Ако имате излишна дължина, покрийте мястото, където са прикрепени проводниците. Може да искате да инсталирате лентата по -късно, но ми беше по -лесно да я прибера в часовника.

Стъпка 4: Управление на LED лентата

Управление на LED лентата
Управление на LED лентата

Свързване на LED лентата

LED лентата работи на 12V, така че не може да се захранва директно от Pi. За да ги контролираме, ще използваме захранващ транзистор (например TIP31a), свързан към Pi, както е показано по -горе. Препоръчвам първо да проверите дали всичко работи на макет.

  • Свържете GPIO 19 към основата чрез 1k резистор
  • Излъчвателят трябва да бъде свързан към GND
  • Свържете колектора към отрицателния извод на LED лентата
  • Свържете положителната клема на LED лентата към +12V

Тестване

В командния ред отидете в папката с документи (cd ~/Documents) и въведете python test1.py и въведете. Трябва да видите увеличаване и намаляване на яркостта на LED лентата. За да излезете от програмата, натиснете CTRL-C. Можете да редактирате файла (nano test1.py), за да промените скоростта и яркостта в програмата.

импортиране на RPi. GPIO като GPIOимпортно време GPIO.setmode (GPIO. BCM) # Използвайте разклонителя на BCM GPIO.setwarnings (False) # Игнорирайте предупрежденията за пиновете, използвани за други неща ledStripPin = 19 # LED лентата се захранва от този пин GPIO.setup (ledStripPin, GPIO. dutyCycle в диапазон (0, 101, 1): # Fade up pwm. ChangeDutyCycle (dutyCycle) time.sleep (0.05) за dc в диапазон (95, -1, -1): # Fade down pwm. ChangeDutyCycle (dc) време.sleep (0.05) с изключение на KeyboardInterrupt: # Натиснете CTRL-C, за да излезете, и след това: pwm.stop () # Спрете pwm GPIO.cleanup () # Почистете пиновете GPIO

Стъпка 5: Направете циферблата на лицето

Направяне на циферблат на часовника
Направяне на циферблат на часовника
Направяне на циферблат на часовника
Направяне на циферблат на часовника
Направяне на циферблат на часовника
Направяне на циферблат на часовника

Нарежете парчето дърво за часовника си с лицето надолу, така че да пасне на вашия часовник. Направих моята да почива на около 3 см отпред. Пробийте 12 дупки с диаметър на вашите светодиоди (обикновено 3 мм или 5 мм), разположени на 30 градуса един от друг. Шлайфайте лицевата страна надолу и нанесете финиш по ваш избор. От задната страна поставете светодиодите така, че да сочат напред. Използвах горещо лепило, за да поддържам светодиодите на място с положителния извод (по -дълъг проводник), обърнат навътре. Размерът на циферблата ми означаваше, че мога да запоя всички отрицателни клеми заедно (вижте по -горе), така че беше необходим само един проводник за свързване на всичките 12 светодиода към GND. След това запоявайте проводник към всеки светодиод.

Ако искате да тествате това на макет, първо не забравяйте да използвате резистор (330ohm е доста стандартен) последователно с всеки светодиод, преди да го свържете към един от пиновете Pi GPIO. Поиграйте със стойността на резистора, който използвате, за да получите ниво на яркост, от което сте доволни. T-cobbler е наистина полезен за разбиване на щифтовете на Pi към макет, въпреки че за това ще трябва да запоите щифтовете на заглавката. Използвайте test2.py (стартирайте с помощта на python test2.py), но не забравяйте първо да редактирате програмата и да въведете GPIO пиновете на Pi, които сте използвали за всеки светодиод.

импортирайте RPi. GPIO като GPIO

време за импортиране GPIO.setmode (GPIO. BCM) # Използвайте разклонението на BCM GPIO.setwarnings (False) # Пренебрегвайте предупрежденията за пинове, използвани за други неща # Заменете едно, две,… със съответния номер на пина hourPin = [един, два, три, четири, пет, шест, седем, осем, девет, десет, единадесет, дванадесет] # Пиновете, към които светодиодите са свързани от 1-12 за i в обхват (0, 12): GPIO.setup (hourPin , GPIO.], 1): time.sleep (0.05) за i в обхват (0, 12) GPIO.output (hourPin , 0): time.sleep (0.05) с изключение на KeyboardInterrupt: # Натиснете CTRL-C, за да излезете и след това: GPIO.cleanup () # Почистете пиновете на GPIO

Стъпка 6: Захранване на Pi

Захранване на Pi
Захранване на Pi

Нуждаем се от лесен начин да получим 5V към Pi Zero, за да можем да се отървем от микро USB кабела, който използвахме за захранване досега. Има редица решения, които намаляват 12V до 5V, като например линеен регулатор на напрежение LM7805, но те не са много ефективни, така че вместо това избрах да използвам по -ефективния регулируем конвертор, използващ чипа LM2596. Забележка: с това ще трябва да завъртите потенциометъра, докато изходното напрежение се намали до 5V, както е необходимо, така че ще ви е необходим някакъв начин за измерване на напрежението.

Използването на LM2596 е просто: свържете +12V към IN +, заземете към IN-. Pi може да бъде свързан директно към 5V чрез свързване OUT+ към един от 5V пиновете на Pi, но се уверете, че сте променили изходното напрежение на 5V, преди да направите това, или ще изпържите своя Pi!

Стъпка 7: Попълнете веригата и опаковката

Попълнете веригата и опаковката
Попълнете веригата и опаковката
Попълнете веригата и опаковката
Попълнете веригата и опаковката
Попълнете веригата и опаковката
Попълнете веригата и опаковката
Попълнете веригата и опаковката
Попълнете веригата и опаковката

Сега обхванахме и трите елемента на веригата, които са показани заедно в цялостната схема по -горе. За да спестите място и да направите веригата по -чиста, поставете веригата си върху лента или прототипна платка. Първо запоявайте най -малките компоненти, резисторите, след това захранващия транзистор, всякакви съединители и накрая проводниците. Планирайте схемата си преди запояване, за да се уверите, че имате място за всичко.

Свързах всичко на прототипираща печатна платка и използвах женски щифтове, така че Pi да може да се монтира директно върху печатната платка. Светодиодите на циферблата са свързани чрез резистори от едната страна на платката и съм запазил място от другата страна на платката за захранващия транзистор и свободен за всяка друга схема, която може да искам да добавя по -късно.

Прикрепете циферблата на часовника към часовника и се уверете, че цялата електроника се вписва. Всичко беше доста прилепнало за мен, така че може да се наложи да пренаредите. Свържете захранването и стартирайте test1.py и test2.py от SSH, за да проверите дали всичко работи, преди да прикрепите гърба.

Стъпка 8: Качете кода + Край

Качете кода + Край
Качете кода + Край
Качете кода + Край
Качете кода + Край
Качете кода + Край
Качете кода + Край

Кодът

И накрая, ако още не сте го направили, качете кода и го адаптирайте както искате (с помощта на nano filename.py). Ползата от свързването с Pi през SSH е, че можете да актуализирате кода, без да отваряте часовника.

Тези програми на python от стъпка 2 правят следното:

  • light_clock_simple.py просто показва часа на светодиодите и избледнява нагоре и надолу по LED лентата в определени часове
  • light_clock_pwm.py е същият като по -горе, но също така позволява да се намали яркостта на светодиодите и показва минутите с различна яркост спрямо часовете. Ще трябва да си поиграете с нивата на яркост и на двете, така че контрастът между двете е забележим

Те трябва да осигурят солидна основа за добавяне към кода, например може да искате да добавите бутон за отлагане на светлинната аларма.

За да стартираме програмата, когато Pi се стартира, трябва да добавим „@reboot nohup python light_clock_pwm.py &“в края на файла crontab, който може да бъде отворен от терминала с crontab -e. Рестартирайте вашия Raspberry Pi, за да проверите дали работи със sudo shutdown -r сега.

Потенциални допълнения

Ето някои идеи за допълнителна функционалност, които могат да бъдат добавени

  • Добавяне на бутон за отлагане
  • Добавяне на режим на лампа
  • Свързване към IFTTT (напр. Светлината може да светне, когато алармата на телефона ви изгасне/мига при получаване на имейл)
  • Добавяне на капацитет за докосване, т.е. превърнете часовника в сензорна лампа

Може да забележите, когато използвате ШИМ, че понякога, особено с по -ниска яркост, светодиодът леко мига. Това е така, защото Pi използва софтуерна PWM, така че процесорите могат да повлияят на работния цикъл. По -малкото изпълнени процеси помагат за това, затова използвах намалена операционна система Raspbian Lite. Хардуерната PWM се предлага и на няколко пина, така че ако трептенето доказва проблем, това може да е нещо, което да се проучи.

Надявам се, че сте намерили тази инструкция информативна и или се чувствате вдъхновени да преработите стар будилник или да използвате елементи от кода за вашия собствен проект.

Предизвикателство за скоростта на LED лентата
Предизвикателство за скоростта на LED лентата
Предизвикателство за скоростта на LED лентата
Предизвикателство за скоростта на LED лентата

Втора награда в предизвикателството за скорост на LED лентата

Препоръчано: