Съдържание:
- Стъпка 1: Какво ви трябва
- Стъпка 2: Настройка на Raspberry Pi
- Стъпка 3: Сценариите
- Стъпка 4: Веригата
- Стъпка 5: Сглобяване
- Стъпка 6: И сега?
Видео: O-R-A RGB Led Matrix Wall Clock и други ** актуализиран юли 2019 **: 6 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Здравейте. Ето ме с нов проект, наречен O-R-A
Това е RGB LED Matrix стенен часовник, който показва:
- час: минута
- температура
- влажност
- икона за текущо състояние на времето
- Събития в Google Календар и известия за напомняния за 1 час
в определен час показва:
- Списък на събитията в Google Календар днес и утре
- прогноза за времето
- извънредни новини
Пристрастяващи функции:
- текуща дата
- Магия 8 топка
- Кухненски таймер
За всяка функционалност устройството възпроизвежда различна аудио аларма. За всякакви метеорологични условия има изигран съответния аудио файл при извикване на функционалността.
Функционалностите като списък на Google Календар, прогноза за времето, новини за RSS започват в предварително избрания час, когато устройството е в "часовник", те също могат да бъдат наречени директно задействане на превключвателите. Друга функционалност по време на "часовник" показва текущия ден/месец/година. Може да се стартира с натискане на бутона ENTER. Натискането на бутона CHANGE STATE и след това ENTER в рамките на 3 секунди в "часовник" ви позволява да влезете в менюто с опции. Бутонът CHANGE STATE е зададен за превъртане в менюто, бутонът ENTER е за потвърждаване на избраната опция.
Този проект е еволюция на предишните ми LEGOLED и TEMPO. RGB светодиодният матричен панел вече има резолюция 32x64, така че е възможно да се показват по -разбираеми графики, фиксиран и превъртащ се текст едновременно. Използвайки функции TEMPO, устройството се включва и изключва автоматично без никакъв бутон или външен таймер. PIR модул открива присъствието на хора, затова включва/изключва дисплея.
Прогнозата за времето и данните от календара се събират всяка минута, предоставена от Google Календар и Отворена карта на времето.
Този проект е напълно адаптивен, започвайки от Raspberry PI B+, 2 модул 16x64 rgb led матрица и захранване. Може да се разшири, както направих аз, като добавя USB звукови карти, високоговорители, верига за включване/изключване.
Стъпка 1: Какво ви трябва
- Raspberry Pi B+ (с вграден wifi или dongle)
- 2 x 16x64 RGB LED матрица или 2 x 32x32
- обща рамка (40x50 см и приблизително 3 см дълбочина)
- матов пластмасов лист
- слънчев филм за прозорци
- PS 5V 10A
- кабели
- термореактивна обвивка (*)
- релеен модул (*)
- допълнителен PS за аудио усилвател (*)
- 3W аудио усилвател модул (*)
- високоговорители (*)
- USB звукова карта (*)
- 2 x микропревключвател (*)
- PIR (*)
- Attiny85 (*)
- DS3231 (*)
- Mosfet IRF540 (*)
- Резистори: 3x1K, 2x10K, 1x2K (*)
- клемен блок (*)
- ленти за глава женски (*)
- заглавни ленти мъжки (*)
(*) по избор
Стъпка 2: Настройка на Raspberry Pi
Това ръководство се основава основно на библиотеката Raspbian Jessie Lite, Python 2.7 и RGB LED MATRIX от потребителя на Hzeller Github.
На първо място актуализиране и надграждане на RPI
Инсталирайте git
~ $ sudo apt-get install git
Изтеглете RGB LED MATRIX библиотека от Github
~ $ git клонинг
~ $ cd rpi-rgb-led-матрица
~ $ sudo make
черен списък на RPI вътрешна звукова карта
~ $ cat << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf
черен списък snd_bcm2835
EOF
~ $ sudo update -initramfs -u
Задайте параметри на външна звукова карта, ако се нуждаете от аудио възможности:
~ $ sudo nano /usr/share/alsa/alsa.conf
промяна:
defaults.ctl.card 0
defaults.pcm.card 0
да се
defaults.ctl.card 1
defaults.pcm.card 1
след това рестартирайте.
Сега инсталирайте библиотека с матрици
~ $ cd/home/pi/rpi-rgb-led-matrix
~ $ sudo apt-get update && sudo apt-get инсталирайте python2.7-dev python-pillow -y
~ $ направете build-python
~ $ sudo направи install-python
и инсталирайте други необходими библиотеки:
~ $ sudo easy_install pip
~ $ sudo pip инсталирайте
Копирайте samplebase.py скрипт от ~/rpi-rgb-led-matrix/bindings/python/sample/в началната директория
Вземете безплатно регистриране на API ключ, за да отворите карта на времето
Инсталирайте сега OWM Python обвивка за PYthon 2.7 (благодарение на потребителя на CSPARPAGithub)
~ $ sudo pip install git+https://github.com/csarpa/[email protected]
Вземете идентификационни данни за Google Календар, следвайки инструкциите в Google Calendar API
За възпроизвеждане на аудио инсталирайте Pygame
~ $ sudo apt-get инсталирайте python-pygame
RSS емисиите се нуждаят от инсталиран Feedparser
~ $ sudo pip инсталирайте feedparser
копирай моя скрипт ORAeng_131.py (английска версия) или ORAita_131.py (италианска версия) в началната директория
създайте папки за звуци и снимки:
mkdir dbsounds
mkdir owm
изтеглете и копирайте всички-p.webp
www.dropbox.com/sh/nemyfcj1a1i18ic/AAB1W7I6lg5EgqL1gJZPWVTxa?dl=0
добавете вашите идентификационни данни за OWM към ред 69 (API_key)
задайте град за прогноза за времето (проверете дали е обхванат от OWM и дали е прието правилното име) на редове 213, 215
obs = owm.weather_at_place ('Napoli, IT')
fc = owm.three_hours_forecast ('Napoli, IT')
********************************** АКТУАЛИЗИРАНЕ 28/7/2019 ********** ******************
Новият API на Google Календар създава проблеми. Реших да премахна някои модули:
~ $ sudo apt-get remove --purge python-setuptools
~ $ sudo apt-get автоматично премахване на python-pyasn1
опитайте да стартирате скрипта
~ $ sudo python ORAeng_150.py # или ORAita_150.py за италианска версия
за първи път скриптът ще поиска разрешение от GCAL. Щракнете върху връзката, за да получите идентификационни данни за google api. Дайте разрешение тогава, ако всичко е наред, ще видите, че часовникът започва.
поради прекомерно използване на RAM след няколко часа, написах скрипт, който просто рестартира скрипта на python, когато използването на RAM надхвърли прагово ниво. След това копирайте в началната директория скрипта с име memcheck, преименувайки го на memcheck.sh и добавете към crontab -e заедно основния скрипт
*/5 * * * * * bash /home/pi/memcheck.sh@reboot sudo python /home/pi/ORAeng_150.py
Стъпка 3: Сценариите
Основният скрипт трябва да бъде променен според вашите нужди. Ако приемем, че идентификационните данни на OWM и Goggle Calendar са зададени като съответните им инструкции за API, най -важните параметри са:
списък със събития в календара, изпълняващ се на всеки час в минута 2, 32 (вижте ред на скрипт 65)
метеорологичните условия и прогнозата се изпълняват на всеки час в минута 7, 37 (вижте сценария ред 66)
актуални новини, изпълняващи се на всеки час в минута 11 (вижте сценария ред 67)
актуални новини rss канал. Вътрешният скрипт е настроен за инструкции RSS, но може да бъде променен. (вижте скрипт ред 366)
Очевидно скриптът дава приоритет на входящите събития в календара или известията за напомняния. Понякога часовникът не изпълнява своите функции, за да избегне пресичане на функционалности.
Таймерът за включване/изключване на Attiny85 трябва да бъде програмиран за качване на скицата Tempo_V1_9_1Mhz_bugfix.ino.
Това позволява включване на устройството в 8 сутринта и изключване в 23. Вижте урока за повече информация.
Стъпка 4: Веригата
Веригата има основно 3 секции
- таймер за включване/изключване, управляван от модул DS3231, Attiny85 и Mosfet
- превключвател за ръчно управление на функциите на часовника
- раздел за свързване, където има кабели за RGB LED Matrix данни и мощност, аудио усилвател и Raspberry Pi
Не е споменат резистивен делител на напрежение, който позволява на RPI да прочете ВИСОК/НИСКИ 5V сигнал от Attiny85
Превключвателите са свързани към RPI извод GND директно с помощта на вътрешни резистори
Таймерът Attiny85 идва от предишния ми проект, наречен TEMPO. По принцип DS3231 изпраща LOW сигнал към прекъсващ щифт Attiny85, който го събужда от спящ режим. При събуждане Attiny85 изпраща ВИСОК сигнал към транзистора на Mosfet, активирайки захранващата верига за RPI, LED матрица и аудио усилвател (ако не е свързан към допълнителен PS чрез реле, като последната ми конфигурация).
За изключване на RPI моят скрипт обмисля, че RPI слуша цифров сигнал на пин 14, когато е ВИСОК, се нарича команда за изключване. След това RPI извършва правилен процес на изключване, след което след една минута Attiny85 се връща в спящ режим и Mosfet получава НИСКИ сигнал, който изключва цялото устройство. Този процес е груб, но ефективен.
PIR модулът е опция и е свързан директно към RPI GPIO.
Моята конфигурация изисква следните RPI GPIO щифтове да са свързани към:
15 към PIR
14 към Attiny85 щифт 3 чрез делител на напрежение
21 към релейния модул
2 за превключване (бутон ENTER)
3 за превключване (бутон за промяна на състоянието)
Проблеми:
- шум, дължащ се на LED Matrix захранване, решен с помощта на малък PS само за аудио усилвателя. Допълнително реле позволява включването на усилвателя само когато е необходимо. Това може да предизвика шум при удар при включване/изключване.
Веригата е гравирана с помощта на медна плоча, 3D принтер, маркер и железен хлорид.
Стъпка 5: Сглобяване
Аз адаптирах обща рамка 40x50cm към този проект заедно 3D отпечатани части и някои допълнителни екстри.
Стъклото е защитено от слънчево фолио за прозорци и матово пластмасово фолио. Светодиодната матрица трябва да се държи на около 1 см до стъклото, за да не се види бялото вътре в светодиодите. Малки винтове са необходими като M3 гайки и болтове. Задължителни са кабелите и термореактивната обвивка.
Светодиодните матрици се завинтват на задния панел на рамката.
Стъпка 6: И сега?
Следващата стъпка ще бъде добавяне на температурен сензор, активиране на Bluetooth възможности и защо не, интернет радио плейър до максимален потенциал на Raspberry Pi.
Чао
Вицешампион в състезанието за часовници
Препоръчано:
Лесна настройка на IR дистанционното управление с помощта на LIRC за Raspberry PI (RPi) - юли 2019 г. [част 1]: 7 стъпки
Лесна настройка на IR дистанционното управление с помощта на LIRC за Raspberry PI (RPi) - юли 2019 г. [част 1]: След дълго търсене бях изненадан и обезпокоен от противоречивата информация за това как да настроя IR дистанционното управление за моя проект RPi. Мислех, че ще бъде лесно, но настройката на Linux InfraRed Control (LIRC) е проблематична от дълго време, но
Актуализиран будилник Интелигентна светлина: 8 стъпки (със снимки)
Интелигентна светлина с алармен часовник: В този проект аз циклирам напълно счупен будилник с навиване. Циферблатът на часовника се заменя с 12 светодиода, осветени от LED лента около ръба на часовника. 12 -те светодиода показват часа и LED лентата е програмирана да действа като аларма, завъртайки
Система Ambilight за всеки вход, свързан към вашия телевизор. WS2812B Arduino UNO Raspberry Pi HDMI (актуализиран 12.2019): 12 стъпки (със снимки)
Система Ambilight за всеки вход, свързан към вашия телевизор. WS2812B Arduino UNO Raspberry Pi HDMI (Актуализирано 12.2019): Винаги съм искал да добавя ambilight към телевизора си. Изглежда толкова готино! Най -накрая го направих и не бях разочарован! Видях много видеоклипове и много уроци за създаване на система Ambilight за вашия телевизор, но никога не съм намерил пълен урок за моята точна рожба
Лесна настройка IR дистанционно управление с помощта на LIRC за Raspberry PI (RPi) - юли 2019 г. [част 2]: 3 стъпки
Лесна настройка на IR дистанционно управление с помощта на LIRC за Raspberry PI (RPi) - юли 2019 г. [част 2]: В част 1 демонстрирах как да сглобявам RPi + VS1838b и да конфигурирам LIRC модула на Raspbian да получава IR команди от IR дистанционно. Всички проблеми с настройките на хардуера и LIRC са обсъдени в част 1. Част 2 ще демонстрира как да се свърже хардуерната
Led електрическа китара Pickup Mod *** Актуализиран със схема за мигащи светодиоди и видео !: 8 стъпки
Led Electric Guitar Pickup Mod *** Актуализиран със схема за мигащи светодиоди и видео !: Искали ли сте някога вашата китара да бъде уникална? Или китара, която кара всички да я ревнуват? Или просто сте уморени от обикновения стар вид на китарата си и искате да я украсите? Е, в този много прост Ible ще ви покажа как да осветявате пикапите на вашия