Оглавление:
- Шаг 1. Разберите все
- Шаг 2: кнопки для цифровых настроек
- Шаг 3: Конденсатор для двигателя
- Шаг 4: новый циферблат для часов
- Шаг 5: цифровой дисплей со старого мобильного телефона
- Шаг 6: Подключение цепей
- Шаг 7: соединительная плата для простых подключений
- Шаг 8: Настройка питания
- Шаг 9: Micro USB для зарядки и обновления прошивки
- Шаг 10: Окончательная сборка
- Шаг 11: Код
- Шаг 12: пошаговое видео
- Шаг 13: Заключительные слова
Видео: Часы с прогнозом погоды с использованием старого будильника и Arduino: 13 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
У меня валялся сломанный будильник, и мне пришла в голову идея переделать его в часы и станцию прогнозирования погоды.
Для этого проекта вам понадобятся:
- Старый круглый будильник
- Ардуино Нано
- Модуль датчика BME280 (температура, влажность, давление)
- Модуль ЖК-дисплея от Nokia 5110
- Часы DS1307 RTC
- TP4056 Зарядное устройство для литиевых батарей
- Старый литий-ионный аккумулятор извлечен из мобильного телефона
- Небольшой бустерный модуль от 3,7 до 5 в
- Светозависимый резистор (LDR - люксметр)
- Зуммер (использованный, утилизированный со старого ПК)
- 3 кнопки
- Связка резисторов (2х10к, 270 Ом) и транзистор (2N2222A или аналогичный)
- Какая-то широкая термоусадочная трубка
- лом печатной платы для использования в качестве украшения передней панели
- Удлинительный кабель Micro-USB (обе стороны - Micro-USB, розетка и вилка)
- Макетная плата 2x8 см и несколько проводов
Шаг 1. Разберите все
Сначала разобрал старые часы. Колокола, мотор, сломанный часовой механизм…
Шаг 2: кнопки для цифровых настроек
Поскольку новые часы будут полностью цифровыми с мини-компьютером внутри, я добавил 3 простые симпатичные кнопки сбоку.
Из куска алюминия я вырезал накладку, чтобы сделать этикетку. Буквы для этикеток были созданы с помощью букв и черного маркера.
Шаг 3: Конденсатор для двигателя
Я оставлю старые колокола, чтобы включить сигнализацию вместе с мотором. У старого сломанного часового механизма был керамический конденсатор с меткой 104. Я снял его с печатной платы и припаял прямо к мотору - это поможет предотвратить скачки мощности при включении мотора во время тревоги. Также важно отметить, что двигатель будет управляться через транзистор, но об этом позже.
Шаг 4: новый циферблат для часов
Поскольку я решил сделать новый циферблат для часов - я взял печатную плату из своей кучи мусорного бака и использовал строительный тепловой пистолет, чтобы быстро удалить все компоненты. Отверстие посередине сделано для цифрового экрана новых часов.
Шаг 5: цифровой дисплей со старого мобильного телефона
Для этого проекта я решил использовать ЖК-экран от старого мобильного телефона Nokia 5110. Эти экраны широко доступны для продажи в виде модулей, они потребляют очень мало энергии, а для Arduino есть хорошие библиотеки. Если вы покупаете новый модуль с экраном 5110 - вы спасаете планету, потому что все новые модули создаются из утилизированных телефонов 5110, 3110 и 3210!
Шаг 6: Подключение цепей
Вы, наверное, уже догадались, что я планировал использовать плату Arduino для управления этими часами. Проект легко повторить даже начинающим фанатам Arduino, потому что я не создавал свои собственные печатные платы. Это плата Arduino Nano с подключенными к ней модулями - датчик температуры, давления и влажности BME280, часы DS1307 RTC, зарядное устройство для литиевых батарей TP4056, небольшой модуль повышения напряжения с 3,7 В до 5 В, светозависимый резистор (LDR - измеритель света) и зуммер (взято со старого ПК).
Взгляните также на скетчи - они показывают все связи. Я думаю, что все очень легко читать и понимать, но если у вас есть какие-либо вопросы, просто задавайте их в комментариях ниже.
Несколько замечаний по настройке:
- Мотор подключается напрямую от аккумулятора через транзистор. Arduino управляет транзистором через резистор и вывод D5 ШИМ.
- Контакты D7-12 используются для подключения ЖК-дисплея. Земля и VCC подключаются к рейке на распределительной плате.
- LDR был установлен на циферблате, а резистор + 3 отходящих провода были припаяны прямо на обратной стороне циферблата.
- Для подключения кнопок я использовал внутреннюю функцию PULLUP внутри Arduino. К прерыванию прикреплена кнопка Menu, и только позже я понял, что вы также можете использовать внутреннюю PULLUP для прерывания. Прерывание для кнопки меню необходимо, чтобы код не проверял состояние кнопок все время.
- Часы будут отслеживать и отображать состояние батареи, поэтому батарея напрямую подключена к контакту A0. Напряжение батареи никогда не превышает 4,2 В, поэтому можно безопасно подключать батарею непосредственно к аналоговому выводу Arduino.
- Зуммер напрямую подключен к выводу D6 ШИМ. Хотя это не очень хорошая практика, мне это сошло с рук, потому что Arduino Nano может работать с более высокими характеристиками, чем заявлено, а также потому, что зуммер не будет работать постоянно. Такая же установка легко сожжет контакты на платах ESP, поэтому в таких случаях я рекомендую использовать транзисторное управление.
- У часов уже был переключатель, поэтому я решил его использовать. Сзади смотрится естественно.
Шаг 7: соединительная плата для простых подключений
Все модули требуют плюсового и заземляющего подключения, поэтому я решил использовать макетную плату 2x8 см и припаял к ней шины 5V и заземления. Я также сделал там небольшую шину I2C, так как у меня было несколько модулей, использующих интерфейс I2C.
С другой стороны я припаял стандартные контакты, чтобы можно было подключать и отключать модули при необходимости.
Там же были припаяны некоторые дополнительные компоненты, такие как транзистор и резистор для управления двигателем и резистор для кнопки меню, которая использует прерывание. Схемы я показал в предыдущем разделе.
btw Вы видите датчик LDR, уже установленный на циферблате на первом снимке?
Шаг 8: Настройка питания
Я использовал старую литий-ионную батарею от своего мобильного телефона для питания этих часов. Обычно заменяемые батареи мобильных телефонов все еще имеют хорошую емкость (по крайней мере, половину того, что было в новые). Их преимущество в том, что они имеют встроенную схему защиты от разряда, а также они очень тонкие, поэтому их можно использовать в небольших помещениях.
Чтобы подключить аккумулятор, просто припаяйте провода к контактам + и - на аккумуляторе. Не волнуйтесь, вы не повредите ячейку, потому что есть контроллер и некоторое пустое пространство между контактами и химическими веществами ячейки.
На этом изображении вы можете увидеть аккумулятор, а также контроллер заряда TP4056, а также усилитель 5 В, подключенные вместе и к аккумулятору. Я использовал термоусадочную трубку, чтобы сделать все изолированным и компактным.
Шаг 9: Micro USB для зарядки и обновления прошивки
После того, как все спаял, я приклеил зуммер и датчик температуры / давления / влажности на заднюю панель. Все они прекрасно вписывались в существующие слоты от старых регуляторов циферблата.
Пришло время установить порт Micro USB сзади. Почему Micro USB, если Nano использует Mini USB? Просто потому, что в домашних условиях большинство USB-кабелей идет от мобильных телефонов, и было бы удобно, если бы часы тоже могли это сделать.
Поскольку я хотел использовать его как для зарядки, так и для обновления функций часов и метеостанции, я снял USB-кабель, проложил провода питания через зарядное устройство TP4056 и провода Data + / Data- непосредственно к USB-разъему Arduino Nano. Вы можете увидеть это на схеме, которую я показал в предыдущих разделах.
Шаг 10: Окончательная сборка
Пришло время упаковать все обратно в оригинальные часы. Я использовал термоусадочную трубку для изоляции компонентов и модулей. Даже Ардуино был завернут в термоусадочную трубку.
Наведите курсор на первую фотографию, чтобы увидеть, где был размещен каждый компонент.
Шаг 11: Код
Как видите, часы внутри полностью упакованы. Это позволило создать что-то более сложное, чем старые часы, которые у меня были, - конечно, при наличии некоторых навыков программирования. Я написал исходный код, но попросил друга помочь мне.
Пока что, помимо самих часов, этот проект уже поддерживает следующие функции:
- Отображение времени и даты (а также время и активация будильника на одном экране)
- Экран загорается в темноте или при обнаружении движения (в зависимости от изменения освещения)
- Прогноз погоды (солнечно, облачно, дождливо)
- Отображение температуры, давления и влажности (для влажности укажет, не слишком ли сухо)
- Меню для настроек: будильник, изменение времени, включение / отключение отображения даты, включение / отключение звуковых уведомлений об изменении погоды и переключение между британскими и метрическими единицами измерения.
- Настройки будильника - включение / выключение, установка времени, установка мелодии и / или звонков для уведомлений
Последний код:
В будущем код будет обновлен новыми функциями, поэтому обязательно проверяйте обновления прошивки:-)
Если вы новичок в мире Arduino, я бы порекомендовал сделать следующие шаги:
- Установите драйвер USB для вашей платы (например, CH340)
- Установите Arduino IDE
- Установить библиотеки, используемые в этом проекте
- Загрузите с GitHub и загрузите последний код проекта на часы с помощью кабеля Micro USB (вы можете использовать его с мобильного телефона)
Алгоритм прогнозирования следующий:
Arduino Nano получает новые данные от датчика BME280 каждые 12 минут. Цикл измерения - 3 часа. Через 3 часа диапазон мониторинга давления (максимальное и минимальное значение в течение 3 часов) смещается относительно средних значений в текущем диапазоне и текущего значения давления. Каждый час сохраняется направление изменения давления с текущим значением давления. Для расчета прогноза используются единицы кПа.
Из-за ограничений памяти Nano алгоритм прогнозирования пришлось упростить. Но, несмотря на упрощения, он может прогнозировать осадки в ближайшие 12-24 часа, даже если прогноз стал более пессимистичным - значение по умолчанию - «Облачная погода».
«Солнечная погода» - текущее значение давления выше нормы на 7 баллов, давление не падает и разница между минимальным и максимальным значениями за последние 3 часа не более 2 баллов.
Возможны осадки «Дождливая погода» - текущее давление на 15 пунктов ниже нормы и разница между минимальным и максимальным значениями более 2 баллов ИЛИ Давление падает и разница между текущим значением и нормой составляет 3 - 30 баллов.
Для повышения качества прогнозов рекомендуется изменить вашу «высоту» в основном файле кода. Вы можете узнать свою высоту, например, здесь:
Шаг 12: пошаговое видео
Если было сложно следовать тому, что я сделал выше, вот также видеоверсия со всеми показанными шагами.
Шаг 13: Заключительные слова
В целом, с моей точки зрения, уровень сложности этого проекта невысокий, и пройти его сможет любой желающий. Если у вас нет старых часов, вы можете найти их по дешевке на местной барахолке.
Все компоненты по невысокой цене и доступны на Sparkfun / Aliexpress / eBay / Amazon.
Я надеюсь, что этот урок был вам интересен, и был бы признателен, если бы вы поддержали мой первый конкурс «Учебное пособие по часам».
Финалист в конкурсе часов
Рекомендуемые:
Часы прилива и погоды: 9 шагов (с изображениями)
Приливные и погодные часы: хотя вы можете купить аналоговые приливные часы, у которых одна стрелка показывает, высокий или низкий прилив или где-то посередине, то, что я хотел, было чем-то, что сообщало бы мне, в какое время будет отлив. Я хотел кое-что, на что можно было бы взглянуть q
Умный светильник для будильника: 8 шагов (с изображениями)
Обновленный будильник Smart Light: в этом проекте я использую полностью сломанный заводной будильник. Циферблат часов заменен 12 светодиодами, которые подсвечиваются светодиодной лентой по ободку часов. 12 светодиодов показывают время, а светодиодная лента запрограммирована на работу в качестве сигнала тревоги, поворачивая
Интеллектуальная система рулевого управления для машин-роботов с использованием шагового двигателя от старого дисковода для гибких дисков / компакт-дисков: 8 шагов (с изображениями)
Интеллектуальная система рулевого управления для автомобилей-роботов с использованием шагового двигателя старого дисковода для гибких дисков / компакт-дисков: интеллектуальная система рулевого управления для автомобилей-роботов Вы беспокоитесь о создании хорошей системы рулевого управления для своего автомобиля-робота? Вот отличное решение, просто используя ваши старые дисководы для гибких дисков / CD / DVD. следите за этим и получите представление о нем. Посетите georgeraveen.blogspot.com
Цифровые часы Arduino с функцией будильника (пользовательская печатная плата): 6 шагов (с изображениями)
Цифровые часы Arduino с функцией будильника (настраиваемая печатная плата): в этом руководстве я покажу вам, как сделать ваши собственные цифровые часы этой функцией будильника. В этом проекте я решил сделать свою собственную печатную плату, основанную на микроконтроллере Arduino UNO - Atmega328p. Вы найдете электронную схему с печатной платой l
Реле будильника Arduino: 6 шагов (с изображениями)
Реле будильника Arduino: мне сложно просыпаться рано утром, особенно если прошлой ночью я не ложился спать поздно. По сути, этот проект позволяет вам размыкать реле в то время, которое вы устанавливаете с помощью клавиатуры и ЖК-дисплея. Это реле может управлять многими устройствами от включения