Оглавление:
- Шаг 1. Регистрация для получения астрономической информации
- Шаг 2: Компоненты
- Шаг 3: компьютерное программное обеспечение
- Шаг 4: Схема
- Шаг 5: Код
- Шаг 6: Окончательная сборка
Видео: Беспроводной трекер фазы Луны: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Счетчик фаз Луны - это небольшое полупортативное устройство, которое позволяет собирать важную информацию о Луне. Устройство сообщает такие параметры, как видимое освещение, фаза, время восхода и захода луны и многое другое.
Это устройство незаменимо для всех, кто интересуется наукой или астрономией, оно может стать отличным украшением рабочего стола в офисе и, безусловно, послужит поводом для разговора.
Проект довольно прост и требует подключенного к Интернету устройства, такого как 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% освещением. Отсюда белый круг, когда луна проходит свои типичные фазы, изображение луны будет соответственно меняться. Дальнейшие изображения будут загружаться по мере прохождения фазы луны, чтобы вы могли получить представление о графике.
Финалист космического конкурса
Рекомендуемые:
Настольный трекер COVID19 с часами! Трекер на базе Raspberry Pi: 6 шагов
Настольный трекер COVID19 с часами! Трекер на базе Raspberry Pi: мы знаем, что можем умереть в любой момент, даже я могу умереть, пока пишу этот пост, в конце концов, я, ты, все мы смертные. Весь мир потрясла пандемия COVID19. Мы знаем, как это предотвратить, но эй! мы знаем, как молиться и зачем молиться, не так ли
Переработанная лампа фаз Луны: 15 шагов
Лампа из переработанного материала для определения фаз Луны: эта лампа сделана из пластикового сосуда и загорается, когда вы закрываете крышку. Вы можете изменить силуэт, чтобы показать разные фазы луны
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): 6 шагов (с изображениями)
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): Индуктивная зарядка (также известная как беспроводная зарядка или беспроводная зарядка) - это тип беспроводной передачи энергии. Он использует электромагнитную индукцию для обеспечения электропитания портативных устройств. Самым распространенным применением является беспроводная зарядка Qi st
Волшебное зеркало Земли и Луны: 4 шага
Волшебное зеркало Земли и Луны: волшебные зеркальные часы с планшетным питанием, показывающие Луну / Землю и текущие внешние условия
Взломайте беспроводной дверной звонок в переключатель беспроводной сигнализации или переключатель включения / выключения: 4 шага
Взломайте беспроводной дверной звонок в переключатель беспроводной сигнализации или переключатель включения / выключения: недавно я построил систему сигнализации и установил ее в своем доме. Я включил магнитные выключатели на дверях и подключил их через чердак. Окна - это совсем другое дело, и жесткая проводка их не подходила. Мне нужно было беспроводное решение, а это