Оглавление:

Часы с прогнозом погоды с использованием старого будильника и Arduino: 13 шагов (с изображениями)
Часы с прогнозом погоды с использованием старого будильника и Arduino: 13 шагов (с изображениями)

Видео: Часы с прогнозом погоды с использованием старого будильника и Arduino: 13 шагов (с изображениями)

Видео: Часы с прогнозом погоды с использованием старого будильника и Arduino: 13 шагов (с изображениями)
Видео: ТЕХНИКА БЕЗОПАСНОСТИ. Вид Грубейшего Нарушения ТРЕБОВАНИЙ ТБ при работе на СТАНКАХ. 2024, Июль
Anonim
Часы с прогнозом погоды с использованием старого будильника и Arduino
Часы с прогнозом погоды с использованием старого будильника и Arduino
Часы с прогнозом погоды с использованием старого будильника и Arduino
Часы с прогнозом погоды с использованием старого будильника и Arduino

У меня валялся сломанный будильник, и мне пришла в голову идея переделать его в часы и станцию прогнозирования погоды.

Для этого проекта вам понадобятся:

  • Старый круглый будильник
  • Ардуино Нано
  • Модуль датчика 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 для зарядки и обновления прошивки

После того, как все спаял, я приклеил зуммер и датчик температуры / давления / влажности на заднюю панель. Все они прекрасно вписывались в существующие слоты от старых регуляторов циферблата.

Пришло время установить порт 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: пошаговое видео

Image
Image

Если было сложно следовать тому, что я сделал выше, вот также видеоверсия со всеми показанными шагами.

Шаг 13: Заключительные слова

В целом, с моей точки зрения, уровень сложности этого проекта невысокий, и пройти его сможет любой желающий. Если у вас нет старых часов, вы можете найти их по дешевке на местной барахолке.

Все компоненты по невысокой цене и доступны на Sparkfun / Aliexpress / eBay / Amazon.

Я надеюсь, что этот урок был вам интересен, и был бы признателен, если бы вы поддержали мой первый конкурс «Учебное пособие по часам».

Конкурс часов
Конкурс часов
Конкурс часов
Конкурс часов

Финалист в конкурсе часов

Рекомендуемые: