Оглавление:

Нагреватель росы Raspberry Pi для камеры All-Sky: 7 шагов
Нагреватель росы Raspberry Pi для камеры All-Sky: 7 шагов

Видео: Нагреватель росы Raspberry Pi для камеры All-Sky: 7 шагов

Видео: Нагреватель росы Raspberry Pi для камеры All-Sky: 7 шагов
Видео: Астрофотография от $100 до $10 000 2024, Июль
Anonim
Подогреватель росы Raspberry Pi для камеры All-Sky
Подогреватель росы Raspberry Pi для камеры All-Sky

[См. Шаг 7, чтобы узнать об изменении используемого реле]

Это усовершенствованная камера кругового обзора, которую я построил в соответствии с превосходным руководством Томаса Жакина (Беспроводная камера кругового обзора). Распространенная проблема, которая возникает с камерами обзора неба (и телескопами в том числе), заключается в том, что на куполе камеры будет конденсироваться роса по мере того, как становится холоднее. ночь, которая закрывает вид на ночное небо. Решение состоит в том, чтобы добавить нагреватель росы, который будет нагревать купол до температуры выше точки росы или температуры, при которой вода будет конденсироваться на куполе.

Обычный способ сделать это - пропустить ток через несколько резисторов, которые затем нагреются, и использовать их в качестве источника тепла. В этом случае, поскольку в камере уже есть Raspberry Pi, я хотел использовать его для управления цепью резисторов через реле, включая и выключая их по мере необходимости, чтобы поддерживать определенную температуру купола выше точки росы. Датчик температуры расположен в куполе для контроля. Я решил получить данные о местной погодной температуре и влажности из Национальной метеорологической службы для получения необходимой информации о точке росы, вместо того, чтобы добавлять еще один датчик, и мне нужно было проникнуть в корпус моей камеры, которое могло бы протечь.

Raspberry Pi имеет заголовок GPIO, который позволяет платам расширения управлять физическими устройствами, но сам модуль ввода-вывода не предназначен для обработки тока, необходимого для цепи питания резистора. Так что нужны дополнительные компоненты. Я планирую использовать реле для изоляции силовой цепи, поэтому для взаимодействия с Pi требуется микросхема драйвера реле. Мне также нужен датчик температуры, чтобы считывать температуру внутри купола, поэтому необходим аналого-цифровой преобразователь (АЦП), чтобы Pi мог считывать температуру. Эти компоненты доступны по отдельности, но вы также можете купить «шляпу» для Pi, которая содержит эти устройства на плате, которая просто подключается к GPIO Pi.

Я выбрал Pimoroni Explorer pHAT, который имеет целый ряд входов / выходов, но для моих целей он имеет четыре аналоговых входа в диапазоне 0-5 В и четыре цифровых выхода, подходящих для управления реле.

Для датчика температуры купола я использовал TMP36, который мне понравился, потому что он имеет простое линейное уравнение для определения температуры из показаний напряжения. Я использую термисторы и термометры сопротивления в своей работе, но они нелинейны и, следовательно, их сложнее реализовать с нуля.

Я использовал мини-комплект Perma Proto Bonnet от Adafruit в качестве печатной платы для пайки реле, клеммной колодки и другой проводки, что хорошо, поскольку оно соответствует размерам Pi и имеет схемы, соответствующие тому, что предлагает Pi.

Это главное. В итоге я получил почти все от Digikey, так как они поставляют запчасти Adafruit в дополнение ко всем обычным схемам, так что это упрощает получение всего сразу. Вот ссылка на корзину со всеми заказанными мною запчастями:

www.digikey.com/short/z7c88f

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

Запасы

  • Пиморони Эксплорер pHAT
  • Датчик температуры TMP36
  • Резисторы 150 Ом 2Вт
  • 1A 5VDC реле SPDT
  • Винтовой клеммный блок
  • Печатная плата
  • Проволока
  • монтажные платы стойки
  • припой и паяльник

Список запчастей на дигики:

www.digikey.com/short/z7c88f

Шаг 1: Примечания по теории электричества

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

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

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

Суммарное сопротивление параллельных резисторов: 1 / R_T = 1 / R_1 + 1 / R_2 + 1 / R_3 + 1 / R_N

Если отдельные сопротивления равны, оно может быть уменьшено до: R_T = R / N. Итак, для четырех одинаковых резисторов это R_T = R / 4.

Я использую четыре резистора по 150 Ом, поэтому общее сопротивление через четыре из них составляет (150 Ом) / 4 = 37,5 Ом.

Закон Ома - это просто напряжение = ток x сопротивление (V = I × R). Мы можем изменить это, чтобы определить ток, чтобы получить I = V / R. Если мы подключим наше напряжение к источнику питания и нашему сопротивлению, мы получим I = (12 В) / (37,5 Ом) = 0,32 А. Это означает, что, как минимум, наше реле должно быть рассчитано на 0,32 А. Таким образом Используемое нами реле на 1 А более чем в 3 раза превышает необходимый размер, и этого достаточно.

Для резисторов нам нужно определить количество мощности, проходящей через каждый из них. Уравнение мощности существует в нескольких формах (путем подстановки на закон Ома), но наиболее удобным для нас является P = E ^ 2 / R. Для нашего отдельного резистора это становится P = (12 В) ^ 2/150 Ом = 0,96 Вт. Таким образом, нам понадобится резистор не менее 1 Вт, но 2 Вт даст нам дополнительный коэффициент безопасности.

Общая мощность схемы будет всего 4 x 0,96 Вт или 3,84 Вт (вы также можете поместить общее сопротивление в уравнение мощности и получить тот же результат).

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

Сначала я попытался запустить схему с 5 В от шины питания Raspberry Pi, но мощность, генерируемая на резистор, составляет всего P = (5 В) ^ 2/150 Ом = 0,166 Вт, в общей сложности 0,66 Вт, что было не так. t достаточно, чтобы вызвать повышение температуры более чем на пару градусов.

Шаг 2: Шаг 1: Пайка

Шаг 1: пайка
Шаг 1: пайка
Шаг 1: пайка
Шаг 1: пайка
Шаг 1: пайка
Шаг 1: пайка

Ладно, хватит списков деталей и теории, перейдем к схемотехнике и пайке!

Я нарисовал схему на Proto-Bonnet двумя разными способами: один раз в виде электрической схемы, а второй - в виде визуального представления платы. Также есть размеченная фотография платы Pimoroni Explorer pHAT, показывающая проводку, которая проходит между ней и Proto-Bonnet.

На Explorer pHAT 40-контактный разъем, который идет в комплекте, необходимо припаять к плате, это соединение между ним и Raspberry Pi. Он поставляется с клеммной колодкой для ввода / вывода, но я не использовал ее, а просто припаял провода прямо к плате. Proto-Bonnet также включает соединения для заголовка, но в данном случае он не используется.

Датчик температуры подключается непосредственно к плате Explorer pHAT с помощью проводов, чтобы компенсировать разницу между расположением Raspberry Pi и внутренней частью купола камеры, где он расположен.

Винтовой клеммный блок и управляющее реле - это два компонента, которые припаяны к плате Proto-Bonnet, на схеме они обозначены T1, T2, T3 (для трех винтовых клемм) и CR1 для реле.

Резисторы припаяны к выводам, которые также идут от Raspberry Pi к купольной камере, они подключаются к Proto-Bonnet через винтовые клеммы на T1 и T3. Я забыл сфотографировать сборку перед тем, как установить камеру обратно на крышу, но я попытался равномерно распределить резисторы по куполу, так что только два провода возвращались к Proto-Bonnet. Они входят в купол через отверстия на противоположных сторонах трубы, а датчик температуры - через третье отверстие, равномерно расположенное между двумя резисторами рядом с краем купола.

Шаг 3: Шаг 2: Сборка

Шаг 2: Сборка
Шаг 2: Сборка

После того, как все это будет спаяно, вы можете установить его на камеру кругового обзора. Установите Explorer pHAT на Rasperry Pi, надев его на 40-контактный разъем, а затем установите Proto-Bonnet рядом с ним поверх Pi, используя некоторые стойки. Другой вариант - использовать стойки поверх Explorer, но, поскольку я использовал корпус из ABS Pipe, Pi стал слишком большим, чтобы в него поместиться больше.

Проложите датчик температуры вверх по корпусу к его месту и установите также жгут резисторов. Затем подключите жгут к клеммной колодке на макетной плате.

Переходим к программированию!

Шаг 4: Шаг 3: загрузка библиотеки PHAT Explorer и тестирование программирования

Прежде чем мы сможем использовать Explorer pHAT, нам нужно загрузить для него библиотеку из Pimoroni, чтобы Pi мог взаимодействовать с ним.

На Raspberry Pi откройте терминал и введите:

curl https://get.pimoroni.com/explorerhat | трепать

Введите «y» или «n», чтобы завершить установку.

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

время импорта

import explorerhat delay = 2, а True: T1 = explorerhat.analog.one.read () tempC = ((T1 * 1000) -500) / 10 tempF = tempC * 1.8 +32 print ('{0: 5.3f} вольт, {1: 5.3f} degC, {2: 5.2f} deg F'.format (round (T1, 3), round (tempC, 3), round (tempF, 3))) V1 = explorerhat.output.two. on () print ('Реле включено') time.sleep (delay) V1 = explorerhat.output.two.off () print ('Relay off') time.sleep (delay)

Вы можете открыть файл на своем Raspberry Pi (у меня он открылся в Thonny, но есть много других редакторов Python), а затем запустить его, и он должен начать показывать температуру, и вы услышите реле включается и выключается! Если нет, проверьте свою проводку и схемы.

Шаг 5: Шаг 4: Загрузка программы нагревателя росы

Вот полное программирование нагревателя росы. Он делает несколько вещей:

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

    • NWS запрашивает включение контактной информации в запросы API. В случае возникновения проблем с запросом они знают, к кому обращаться. Это строка 40 программы, замените «[email protected]» на свой собственный адрес электронной почты.
    • Вам нужно будет зайти на сайт weather.gov и найти прогноз для своего района, чтобы получить идентификатор станции, которая является ближайшей метеостанцией на NWS. Идентификатор станции находится в скобках () после названия местоположения. Введите это в строку 17 программирования. В настоящее время он показывает KPDX или Портленд, штат Орегон.
    • Если вы находитесь за пределами США, есть еще одна возможность использовать данные с OpenWeatherMap.org. Я сам не пробовал, но вы можете посмотреть этот пример здесь: Reading-JSON-With-Raspberry-Pi
  • Обратите внимание, что температуры от NWS и от датчика температуры указаны в градусах по Цельсию, как и температуры для камеры ASI, поэтому для единообразия я оставил их все Centrigrade, а не переводил в градусы Фаренгейта, к чему я больше привык..
  • Затем он считывает температуру с купольного датчика, и если она меньше чем на 10 градусов выше точки росы, включает реле. Если она больше чем на 10,5 градусов выше точки росы, реле отключается. При желании вы можете изменить эти настройки.
  • Раз в минуту он записывает текущие значения температуры, точки росы и состояния реле в файл.csv, чтобы вы могли видеть, как это происходит с течением времени.

#Raspberry Pi Программа управления нагревателем росы

# Декабрь 2019 # Брайан Плетт # Использует Pimoroni Explorer pHAT, датчик температуры и реле # для управления цепью резистора в качестве нагревателя росы для камеры кругового обзора # Определяет температуру наружного воздуха и точку росы с веб-сайта NWS # поддерживает внутреннюю температуру 10 градусов выше точки росы время импорта импорт дата и время запросы на импорт import csv import os import explorerhat # ID станции - ближайшая метеостанция на NWS. Перейдите на сайт weather.gov и найдите прогноз для своего региона, # ID станции стоит в () после названия местоположения. settings = {'station_ID': 'KPDX',} # Альтернативный URL-адрес для информации о погоде #BASE_URL = "https://api.openweathermap.org/data/2.5/weather?appid={0}&zip={1}, { 2} & units = {3}"

#Weather URL для получения данных

BASE_URL = "https://api.weather.gov/stations/{0}/observations/latest"

# задержка срабатывания реле, секунды

ControlDelay = 2 A = 0 B = 0 while True: # дата для использования в журнале имя файла datestr = datetime.datetime.now (). Strftime ("% Y% m% d") # дата и время для использования для каждой строки данных localtime = datetime.datetime.now (). strftime ("% Y /% m /% d% H:% M") # путь к файлу CSV = '/home/pi/allsky/DewHeaterLogs/DewHeatLog{}.csv' while B == 0: try: # Получать температуру и точку росы от NWS каждые 60 секунд final_url = BASE_URL.format (settings ["station_ID"]) weather_data = requests.get (final_url, timeout = 5, headers = {'User-agent ':' Raspberry Pi 3+ Allsky Camera [email protected] '}) oatRaw = weather_data.json () ["свойства"] ["температура"] ["значение"] dewRaw = weather_data.json () ["свойства"] ["точка росы"] ["значение"] # диагностическая печать для печати сырых данных температуры (oatRaw, dewRaw) OAT = round (oatRaw, 3) Dew = round (dewRaw, 3) за исключением: A = 0 B = 1 перерыв A = 0 B = 1 перерыв, если A <300: A = A + ControlDelay else: B = 0 # Считать исходное напряжение из Raspberry Pi Explorer PHat и преобразовать в температуру T1 = explorerhat.analog.one.read () tempC = ((T1 * 1 000) -500) / 10 #tempF = tempC * 1.8 +32 if (tempC Dew + 10.5): V1 = explorerhat.output.two.off () # диагностическая распечатка, показывающая температуры, точки росы и состояние выхода реле print ('{ 0: 5.2f} degC, {1: 5.2f} degC, {2: 5.2f} deg C {3: 5.0f} '. Формат (round (OAT, 3), round (Dew, 3), round (tempC, 3), explorerhat.output.two.read ())) # через 10 секунд после пролистывания минуты записать данные в файл CSV, если A == 10: if os.path.isfile (path.format (datestr)): print (path.format (datestr)) с open (path.format (datestr), "a") как csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat. output.two.read ()]) else: fieldnames = ['date', 'Outdoor Air Temp', 'Dewpoint', 'Dome Temp', 'Relay State'] с открытым (path.format (datestr), "w ") как csvfile: txtwrite = csv.writer (csvfile) txtwrite.writerow (имена полей) txtwrite.writerow ([localtime, OAT, Dew, tempC, explorerhat.output.two.read ()]) time.sleep (ControlDelay)

Я сохранил это в новой папке в папке allsky под названием DewHeaterLogs.

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

Шаг 6: Шаг 5: Запуск сценария при запуске

Чтобы запустить сценарий Dew Heater сразу после запуска Raspberry Pi, я выполнил следующие инструкции:

www.instructables.com/id/Raspberry-Pi-Laun…

Для скрипта запуска я создал следующее:

#! / bin / sh

# launcher.sh # перейдите в домашний каталог, затем в этот каталог, затем выполните скрипт python, затем вернитесь домой cd / cd home / pi / allsky / DewHeaterLogs sleep 90 sudo python DewHeater_Web.py & cd /

Как только это будет сделано, все готово. Наслаждайтесь камерой без росы!

Шаг 7. Обновите декабрь 2020 г

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

Поэтому я обновил его, установив реле с более высоким номиналом, с контактом 5А, а не контактом 1А. Кроме того, это силовое реле, а не сигнальное реле, так что я надеюсь, что это поможет. Это TE PCH-105D2H, 000. Я также добавил несколько винтовых клемм для Explorer pHAT, чтобы при необходимости можно было легко отключить нагреватель и датчик температуры. Все 3 из них находятся в этой корзине ниже:

Корзина покупок Digikey

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

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