Оглавление:

Беспроводной трекер фазы Луны: 6 шагов (с изображениями)
Беспроводной трекер фазы Луны: 6 шагов (с изображениями)

Видео: Беспроводной трекер фазы Луны: 6 шагов (с изображениями)

Видео: Беспроводной трекер фазы Луны: 6 шагов (с изображениями)
Видео: БОКОВУШЕЧКА У ТУАЛЕТА в плацкарте 2024, Ноябрь
Anonim
Беспроводной трекер фазы Луны
Беспроводной трекер фазы Луны
Беспроводной трекер фазы Луны
Беспроводной трекер фазы Луны
Беспроводной трекер фазы Луны
Беспроводной трекер фазы Луны
Беспроводной трекер фазы Луны
Беспроводной трекер фазы Луны

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

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

Проект довольно прост и требует подключенного к Интернету устройства, такого как ESP32, однако вы всегда можете адаптировать код для работы с экраном WiFi, экраном Ethernet или любым другим устройством, подключенным к Интернету, которое у вас может быть. Устройство отслеживания фазы Луны было разработано для работы от литий-полимерных батарей и очень энергоэффективного дисплея E-ink, который не только обеспечивает прекрасный экран, но и сохраняет последнее изображение, даже если питание отключено!

Шаг 1. Регистрация для получения астрономической информации

Регистрация для получения астрономической информации
Регистрация для получения астрономической информации
Регистрация для получения астрономической информации
Регистрация для получения астрономической информации

Этот шаг абсолютно необходим (хотя и утомителен), поскольку мы используем онлайн-API для сбора нашей информации. Хотя можно рассчитать фазы луны, освещенность и т. Д., Это утомительно. API, который мы используем, предоставляет актуальную информацию от метеостанции в реальном времени и систем мониторинга, поэтому данные, которые мы получаем, являются реальными результатами, а не расчетными значениями.

Перейдите в Weather Underground, нажмите «зарегистрироваться» и введите всю свою информацию. Учетная запись полностью бесплатна, как и ваши вызовы API, если вы не запрашиваете слишком много результатов в минуту или превышаете 500 запросов в день. Убедитесь, что вы добавили эту страницу в закладки, вы всегда можете вернуться позже и использовать API для получения статистики погоды и другой полезной информации. После того, как вы создали свою учетную запись, перейдите на сайт API, нажмите «Купить ключ» и выберите бесплатный план, вам просто нужно ввести несколько деталей, и у вас возникнут проблемы с идентификатором ключа переходника. Этот идентификатор является уникальным для вас, и его следует хранить в тайне. Я предоставил свой ключ в примере кода Arduino, который мы рассмотрим чуть позже. Вы можете использовать мой идентификатор ключа для тестирования, но я настоятельно рекомендую подписаться на него самостоятельно.

Получив свой уникальный идентификатор, вы можете перейти к информации Astronomy API, которая, честно говоря, очень проста. Вы найдете простой пример, который выглядит так:

api.wunderground.com/api/8c6dc2e5c6f36de9/a…

Этот URL-адрес чрезвычайно важен, поскольку он дает нам всю информацию, необходимую для создания нашего проекта. Идите вперед, щелкните ссылку, вы увидите результаты для Сиднея, такие как фаза луны, освещение и другую полезную информацию. Взгляните на URL-адрес, мы увидим Сидней, Австралия, и длинный код, который начинается с «8c6dcwe…». Этот код является вашим идентификатором ключа, который мы получили ранее. Замените этот код своим уникальным идентификатором и посмотрите, как это работает, вы должны получить точно такой же результат. Попробуйте поиграть с локациями. Для себя в Южной Африке я использую Йоханнесбург и ZA.

Шаг 2: Компоненты

Компоненты
Компоненты
Компоненты
Компоненты
Компоненты
Компоненты

Итак, теперь самое интересное. Нам понадобится несколько компонентов, не так много, и ни один из них не является чрезвычайно дорогим, и я предоставил ссылки Amazon для компонентов, которые я использовал. Имейте в виду, если вы хорошо разбираетесь в программировании, не стесняйтесь использовать любой дисплей или интернет-устройство, которое у вас есть. Для своей сборки я использовал следующее:

Waveshare E-Ink SPI 4,2-дюймовый дисплей SPI

  • ESP32 Dev Board (универсальный)
  • Повышение мощности Adafruit 500
  • Аккумулятор Lipo 5000 мАч
  • Стрипборд (Протоборд)

Вам, возможно, понадобятся основные инструменты, такие как:

  • Паяльник
  • Припой
  • Мультиметр
  • Суппорта
  • Сверло для разделения дорожек на макетной плате
  • Проволока
  • Ножницы для проводов
  • Клей (подойдет горячий клей)
  • Ноутбук с установленной Arduino IDE

Единственный продвинутый инструмент, который вам может понадобиться, - это 3D-принтер для изготовления корпуса. Если у вас его нет, ничего страшного, сделайте свой корпус из дерева и используйте ручные пилы или что-нибудь еще, что у вас есть. И да, мой 3D-принтер старый и пыльный, лол.

Шаг 3: компьютерное программное обеспечение

Прежде чем мы сможем начать работу над схемой и программированием, нам сначала понадобится самая последняя версия Arduino IDE, которую можно найти здесь.

Поскольку мы используем ESP32 с ядром Arduino, нам нужно будет установить это ядро в Arduino IDE. Следуйте этому простому руководству от Github, в котором показано, какое программное обеспечение и конфигурация вам потребуется, чтобы вы могли использовать свою плату разработчика ESP32 в среде Arduino IDE.

Нам также понадобятся две дополнительные библиотеки, чтобы наша система заработала. Первая - это библиотека JSON Arduino, которая позволяет нам читать и анализировать запросы JSON, что мы и получаем от Weather Underground. Вы можете скачать эти две библиотеки из моего личного Dropbox или ниже. Получив файлы, извлеките их и поместите в папку библиотеки Arduino. Обычно он находится в C: / Users / YOUR_NAME / Documents / Arduino / libraries. Убедитесь, что вы перезапустили свою IDE, иначе Arduino не подберет новые дополнения. Основной код Arduino SRC также находится в этой папке. Библиотека также содержит модифицированную версию образца, предоставленного с дисплеев Waveshare. Файлы были изменены для работы в модуле ESP32 с их GPIO, и я реализовал новый «шрифт», который содержит все изображения для различных фаз луны.

Шаг 4: Схема

Схема
Схема
Схема
Схема
Схема
Схема

Итак, схема для этого чрезвычайно проста и требует всего нескольких компонентов и проводов.

Общая идея состоит в том, что у нас есть схема зарядного устройства Lipo, повышающий преобразователь, который дает нам 5 В, а затем ESP32 Dev Kit, который понижает напряжение до 3,3 В. Эти 3,3 В также используются для дисплея Waveshare E-Ink. Да, это немного неэффективно из-за повышения, а затем понижения с помощью линейного регулятора, но ESP32 работает в очень ужасном диапазоне напряжений. Где-то около 2,5 - 3,6 В. Это не подходит для аккумуляторных батарей, особенно для тех, в которых используются литий-полимерные элементы.

Базовая разводка следующая:

  • Повышающий преобразователь 5 В, выход Vin и GND на ESP32 Dev Kit
  • ESP32 3,3 В 3,3 В и GND E-Ink Display
  • ESP32 PIN 18 CLK E-Ink Display
  • ESP32 PIN 23 DIN / MOSI E-Ink дисплей
  • ESP32 PIN 5 CS / SS E-Ink Display
  • ESP32 PIN 32 DC E-Ink Display
  • ESP32 PIN 33 RST E-Ink Display
  • ESP32 PIN34 BUSY E-Ink Display

Как видите, разводка очень проста, а мои платы своими руками построили всего за 15 минут. Не забудьте проверить наличие короткого замыкания с помощью мультиметра, прежде чем подавать питание.

Я также удалил светодиоды с моей платы ESP32 и Lipo boost, чтобы сэкономить около 40 мА энергии в спящем режиме. Это поможет батареям прослужить немного дольше. Вы можете реализовать выключатель питания, схему энергосбережения, автоматическое отключение и т. Д., Если хотите. Вы можете расширить этот проект и сделать его настолько сложным, насколько захотите.

Шаг 5: Код

Код
Код
Код
Код
Код
Код
Код
Код

Код можно найти в прилагаемой папке на шаге 3 или загрузить файл.ino снизу. Вам нужно будет установить связанные библиотеки, как указано в шаге 3, чтобы все работало вместе. Об этом шаге особо нечего сказать, так как код поставляется в рабочем состоянии. Обязательно укажите свой SSID и сетевой пароль перед тестированием программы, вы всегда можете запустить ESP32 WiFi Scan для обнаружения любых ближайших беспроводных сетей, однако в моей программе информация о сети задается только в коде и коде. Возможно, вы можете изменить его, чтобы спросить, к какой сети вы хотите подключиться:)

Код довольно прост, и в следующие несколько недель я потрачу некоторое время на его комментирование и уточнение. Мы в основном подключаемся к сети, в моем случае, к моей домашней сети. Затем мы пытаемся подключиться к Weather Underground и получить текст JSON с веб-страницы. Затем для извлечения используется библиотека ArduinoJSON. или разобрать код JSON на массивы или строки char, которые позволяют нам манипулировать значениями перед отображением их пользователю. Последний фрагмент кода предназначен исключительно для программирования графического интерфейса пользователя и был выполнен методом проб и ошибок. Я смотрел на дисплей, увеличивал или уменьшал позицию активов и снова запускал код, пока не был доволен размером шрифта, макетом и изображениями.

Я реализовал процедуру глубокого сна для ESP32, чтобы сэкономить электроэнергию. По умолчанию это 60 секунд, однако я предлагаю вам изменить это значение на час или два, поскольку обновления не происходят в течение как минимум нескольких часов. В примере принимаются секунды, поэтому убедитесь, что вы правильно выполняете преобразования.

Я также использовал программу The Dot Factory для создания шестнадцатеричных массивов для нового шрифта. Этот шрифт используется для создания «изображений» фаз луны. Если вы хотите отредактировать файл шрифтов, убедитесь, что вы используете вышеупомянутую программу для генерации. Это немного сбивает с толку, поскольку библиотека E-Ink плохо документирована, и большая часть моего успеха была достигнута благодаря пробам и ошибкам. Когда я потрачу больше времени на этот код, я обновлю Instructable, чтобы предоставить больше информации о моих выводах.

Шрифт, используемый для фаз луны, должен быть выполнен в соответствии со стандартной компоновкой ASCII. Если вы откроете font24 в папке EPD-master, вы увидите макет, в котором первое изображение обозначено пробелом, а второе - знаком "!" (восклицательный знак) и так далее. Вы увидите, что я извлекаю связанный шрифт, используя номер 3 или символ хэштега в последнем бите кода (функция getLunarChar). Это связано с тем, что Arduino ожидает стандарта ASCII от 32 до 127. Поскольку мы используем шрифты, которые не имеют ничего общего с фактическими шрифтами, а скорее с графической матрицей фаз Луны, нам необходимо убедиться, что символ ASCII ссылается на наше выбранное изображение фазы Луны. Это означает, что использование! знак, наш шрифт фаз Луны показывает нам вторую графику фаз Луны в этом списке. Если вы посмотрите на шрифт лунных фаз, вы увидите целую кучу лунных фаз с разным уровнем освещенности. В будущем я добавлю больше кода, чтобы использовать всю графику, которую мы реализовали. На данный момент мы используем только несколько, однако графика уже реализована в шрифте фазы Луны, и ее просто нужно реализовать в коде, чтобы использовать ее.

Шаг 6: Окончательная сборка

Окончательная сборка
Окончательная сборка
Окончательная сборка
Окончательная сборка
Окончательная сборка
Окончательная сборка

Последняя часть сборки, которая приносит наибольшее удовлетворение, - это процесс сборки. Я спроектировал и напечатал на 3D-принтере корпус, который подходит для моей платы. Проект очень самодельный, профессиональных плат и единой стандартной компоновки нет. По большей части, коробка, которую я использовал, достаточно велика, чтобы вместить любое липо-зарядное устройство или повышающий преобразователь, который вы решите использовать. Если они обеспечивают те же базовые функции, что и в этом Руководстве, с вами все будет в порядке.

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

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

В целом результатом я очень доволен. Я многому научился, используя ESP32, и вижу, что буду использовать его для множества проектов в будущем.

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

РЕДАКТИРОВАТЬ: Я действительно сделал ЧПУ небольшой футляр вместо 3D-печатной версии, которую вы видите на представленных изображениях.

РЕДАКТИРОВАТЬ: На избранных изображениях мы видим полную луну с 99% освещением. Отсюда белый круг, когда луна проходит свои типичные фазы, изображение луны будет соответственно меняться. Дальнейшие изображения будут загружаться по мере прохождения фазы луны, чтобы вы могли получить представление о графике.

Космический вызов
Космический вызов
Космический вызов
Космический вызов

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

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