Оглавление:

Калибровка датчика дождя Arduino: 7 шагов
Калибровка датчика дождя Arduino: 7 шагов

Видео: Калибровка датчика дождя Arduino: 7 шагов

Видео: Калибровка датчика дождя Arduino: 7 шагов
Видео: ПОДКЛЮЧАЕМ ДАТЧИКИ К ARDUINO [Уроки Ардуино #11] 2024, Июль
Anonim
Калибровка датчика дождя Arduino
Калибровка датчика дождя Arduino

Вступление:

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

Это руководство является частью создаваемой мной метеостанции и представляет собой документацию моего учебного процесса, замаскированную под учебник:)

Характеристики дождемера:

  • Ежедневное и ежечасное количество осадков измеряется в дюймах для удобной загрузки в Weather Underground.
  • код устранения неполадок для магнитного переключателя не включен, чтобы упростить код.
  • Готовый продукт больше похож на учебное пособие, а на прототип прототипа.

Шаг 1. Немного теории

Немного теории
Немного теории

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

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

Таким образом, количество осадков в миллиметрах или дюймах будет

высота осадков = объем собранного дождя / площадь водосбора

В моем коллекторе дождя длина и ширина составляли 11 см на 5 см соответственно, поэтому площадь водосбора составляла 55 см2. Таким образом, 9 миллилитров дождя будут означать 9 куб. См / 55 кв. См = 0,16363… см = 1,6363… мм = 0,064 дюйма.

В датчике дождя с опрокидывающимся ведром ведро опрокидывается 4 раза для 9 мл (или 0,064… дюйма дождя), поэтому один наконечник рассчитан на (9/4) мл = 2,25 мл (или 0,0161… дюйма). Если мы будем снимать почасовые показания (24 показания в день до сброса), сохранение трех значащих цифр будет достаточно приличным.

Таким образом, при каждом опрокидывании / опрокидывании ковша код обращается к нему как к 1 последовательности включения-выключения или одному щелчку. Да, мы сообщили о 0,0161 дюйма дождя. Повторюсь, с точки зрения Arduino

один щелчок = 0,0161 дюйма дождя

Примечание 1: я предпочитаю международную систему единиц, но Weather Underground предпочитает имперские / американские единицы и, следовательно, это преобразование в дюймы.

Примечание 2: Если расчеты - не ваша чашка чая, перейдите к разделу «Объем осадков», который отлично поможет в таких вопросах.

Шаг 2: Детали для этого проекта

Детали для этого проекта
Детали для этого проекта
Детали для этого проекта
Детали для этого проекта
Детали для этого проекта
Детали для этого проекта

Большинство деталей валялись, и честный список (для формальности)

  1. Arduino Uno (или любой другой совместимый)
  2. Датчик дождя от старой поврежденной метеостанции.
  3. Макетная плата.
  4. RJ11 для подключения моего датчика дождя к макетной плате.
  5. Резистор 10 кОм или выше в качестве подтягивающего резистора. Я использовал 15К.
  6. 2 перемычки между мужчинами и женщинами
  7. 2 перемычки «папа-папа».
  8. USB-кабель; От мужчины к мужчине B

Инструменты:

Шприц (использовался объем 12 мл)

Шаг 3: сборщик дождя

Сборщик дождя
Сборщик дождя
Сборщик дождя
Сборщик дождя

Фотографии моего сборщика дождя должны многое прояснить. В любом случае, дождь, который падает на его водосборный бассейн, направляется в одно из двух опрокидывающихся ведер внутри него. Два опрокидывающихся ведра соединены, как качели, и когда вес дождевой воды (0,0161 дюйма дождя для меня) опрокидывает одно ведро, оно опорожняется, а другие ведра поднимаются и позиционируются для сбора следующей дождевой воды. Опрокидывающее движение перемещает магнит над «магнитным переключателем», и цепь электрически подключается.

Шаг 4: Схема

Схема
Схема

Сделать схему

  1. Подключите цифровой вывод №2 Arduino к одному концу резистора.
  2. Подключите другой конец резистора к контакту заземления (GND).
  3. Подключите один конец разъема RJ11 к цифровому контакту №2 Arduino.
  4. Подключите другой конец разъема RJ11 к контакту + 5V Arduino (5V).
  5. Подключите датчик дождя к RJ11.

Схема завершена. Провода-перемычки и макетная плата упрощают выполнение соединений.

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

Шаг 5: Код

Скетч RainGauge.ino (встроенный в конце этого шага) хорошо прокомментирован, поэтому я выделю только три раздела.

Одна часть подсчитывает количество наконечников опрокидывающегося ковша.

if (bucketPositionA == false && digitalRead (RainPin) == HIGH) {

… … }

Другая часть проверяет время и вычисляет количество дождя.

if (now.minute () == 0 && first == true) {

hourlyRain = dailyRain - dailyRain_till_LastHour; …… ……

а другая часть очищает дождь днем, в полночь.

if (now.hour () == 0) {

dailyRain = 0; …..

Шаг 6: Калибровка и тестирование

Отсоедините дождевой коллектор от остальной цепи и выполните следующие действия.

  1. Наполните шприц водой. Я заливаю 10 мл.
  2. Держите дождевик на ровной поверхности и постепенно сливайте воду из шприца.
  3. Я веду подсчет опрокидывающихся ведер. Четырех наконечников мне хватило, и из шприца слили 9 мл. Согласно расчетам (см. Раздел теории), на один наконечник выпало 0,0161 дюйма дождя.
  4. Я включаю эту информацию в свой код в самом начале.

const double bucketAmount = 0,0161;

Вот и все. Для большей точности можно включить больше цифр, например 0,01610595. Конечно, ожидается, что ваши расчетные числа будут отличаться, если ваш Rain Collector не идентичен моему.

Для тестирования

  1. Подключите дождевой коллектор к разъему RJ11.
  2. Подключите Arduino к ПК с помощью USB-кабеля.
  3. Откройте серийный монитор.
  4. Налейте ранее отмеренное количество воды и наблюдайте за производительностью по истечении часа.
  5. Не наливайте воду, а дождитесь завершения следующего часа. В этом случае почасовой дождь должен быть нулевым.
  6. Оставьте компьютер с подключенной цепью запитанным на ночь и посмотрите, сбрасываются ли ежедневные и ежечасные значения дождя до нуля в полночь. Для этого шага можно также изменить часы ПК на подходящее значение (для просмотра выходных сигналов на последовательном мониторе в реальном времени).

Шаг 7: запоздалые мысли и благодарности

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

Часть кода была заимствована из Instructable от Lazy Old Geek.

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