Водонепроницаемая плавающая колонка. Водонепроницаемая колонка для душа BathBeats

Тарас Каленюк

Время на чтение: 4 минуты

А А

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

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

Такие устройства могут применяться в птицеводстве (в инкубаторах), в растениеводстве, для измерения влажности почвы, воздуха, древесины и многого другого. В быту подобные приборы, как правило, применяются в Умных Домах, в банях, теплицах и т. д.

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

Благодаря огромному количеству разнообразных гнезд и контактов, а также возможности соединять несколько плат в одну систему, возможности Ардуино становятся практический неограниченными. Плата, позволяющая расширить количество возможностей, называется шилд (shield)

Годами не стихающий интерес к Ардуино можно объяснить многими причинами, среди которых простота и доступность. Программы для устройств пишутся на С++, а загружаются они при помощи приложения Arduino IDE, которое доступно к бесплатному скачиванию для любого ПО.

А что особенно приятно - для того, чтобы собрать действующий прибор, не нужно ничего паять - все в Ардуино подключается при помощи перемычек и макетных досок.

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

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

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

Сравнительные характеристики DHT11 и DHT22 (если нет уточнений, значит данный параметр подходит для обоих типов):

  1. питание 3-5 В;
  2. потребляемый ток 2,5 мА;
  3. габариты 15,1/12/5,5 миллиметров;
  4. четыре коннектора, расположенных на расстоянии 0,1“ друг о друга;
  5. диапазон измерения влажности 20-80% с погрешностью 5% у 11 модели; от нуля до ста процентов с погрешностью 2-5%, в зависимости от уровня влаги, у DHT22;
  6. температурный диапазон у DHT11 составляет 0-50 градусов Цельсия, а у его конкурента он значительно шире – -40/+125, причем погрешности измерения во втором случае практически равны нулю;
  7. частота DHT11 равна 1 Гц; у DHT22 – 0,5 Гц.

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

Стоит отметить, что оба этих прибора выпускаются в двух вариантах:

  • как отдельный датчик;
  • как готовый модуль.

Если пользователь решает собрать прибор с нуля, имея на руках только «голый» датчик, необходимо будет дополнительно иметь плату, макетную доску, светодиоды, резистор с показателем 10 К.

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

В обоих случаях необходимо строго следовать инструкции и соблюдать полярность.

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

Датчик температуры DS18B20

Данный прибор направлен на измерение уровня температуры заданного объекта или среды. Температура, с которой может работать термодатчик составляет от -55 до +125 градусов Цельсия.

Датчик температуры DS18B20 преобразует полученные данные в числовой код (9-12 бит) и передает их в головную систему с помощью протокола 1-Wire.

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

Время сбора данных при максимальном разрешении составляет 750 мс.

Терморезистор NTC

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

Существует два типа таких датчиков:

  • PTC – positive temperature coefficient – измеритель, в котором уровень сопротивления повышается вместе с ростом температурных показателей;
  • NTC – negative temperature coefficient – датчик, снижающий показатель сопротивления при повышении уровня тепла.

В случае с Arduino датчик температуры подобного типа, который можно было бы привести в качестве примера - это NTC MF 58 100K.

Продолжаем серию уроков . Сегодня мы разберем подключение к Arduino датчиков температуры и влажности DHT11 и DHT22.

Датчики DHT11 и DHT22 не обладают высоким быстродействием и точностью, но зато просты, недороги и отлично подходят для обучения. Они выполнены из двух частей — емкостного датчика влажности и термистора. Чип, находящийся внутри, выполняет аналого-цифровое преобразование и выдает цифровой сигнал, который можно считать с помощью любого микроконтроллера.

Список деталей для сборки модели

Для сборки проекта, описанного в этом уроке, понадобятся следующие детали:

  • плата Arduino (подробнее, о том как выбрать Arduino );
  • датчик DHT11 или DHT22 (можно купить, например, или );
  • Breadboard;
  • резистор на 10 кОм;
  • программа Arduino IDE, которую можно скачать с сайта Arduino .

Датчики DHT11 и DHT22

Чем отличаются датчики DHT11 и DHT22?

Две версии сенсоров DHT похожи друг на друга и имеют одинаковую распиновку. Их отличия в характеристиках. Спецификации:

Сенсор DHT11:

  • определение влажности в диапозоне 20-80%
  • определение температуры от 0°C до +50°C
  • частота опроса 1 раз в секунду

Сенсор DHT22:

  • определение влажности в диапазоне 0-100%
  • определение температуры от -40°C до +125°C
  • частота опроса 1 раз в 2 секунды

Таким образом, характеристики датчика DHT22 лучше по сравнению с DHT11, и поэтому он чуть-чуть дороже. Снимать показания чаще, чем раз в 1-2 секунды не получится, но, возможно, для вашего проекта более высокое быстродействие и не требуется.

Подключение сенсоров DHT к Arduino

Датчики DHT имеют стандартные выводы и их просто установить на breadboard.

Датчики DHT имеют 4 вывода:

  1. питание.
  2. вывод данных
  3. не используется.
  4. GND (земля).

Между выводами питания и вывода данных нужно разместить резистор номиналом 10 кОм.

Датчик DHT часто продается в виде готового модуля. В этом случае он имеет три вывода и подключается без резистора, т.к. резистор уже есть на плате.

Схема подключения датчика с резистором:

Схема подключения датчика DHT к Arduino

Arduino скетч

Воспользуемся библиотекой DHT.h, созданной специально для датчиков DHT. Ее можно скачать . Для использования нужно поместить скачанную папку в в папку /libraries.

Пример программы для работы модели с датчиком DHT22 (можно просто скопировать в Arduino IDE):
#include "DHT.h"
#define DHTPIN 2 // номер пина, к которому подсоединен датчик
// Раскомментируйте в соответствии с используемым датчиком
// Инициируем датчик
DHT dht(DHTPIN, DHT22);
//DHT dht(DHTPIN, DHT11);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
// Задержка 2 секунды между измерениями
delay(2000);
//Считываем влажность
float h = dht.readHumidity();
// Считываем температуру
float t = dht.readTemperature();
// Проверка удачно прошло ли считывание.
if (isnan(h) || isnan(t)) {
Serial.println("Не удается считать показания");
return;
}
Serial.print("Влажность: "+h+" %\t"+"Температура: "+t+" *C ");
}
При использовании датчика DHT11 закомментируйте строку:
DHT dht(DHTPIN, DHT22);
И раскомментируйте строку:
//DHT dht(DHTPIN, DHT11);
Загрузите скетч в контроллер и проверьте правильность работы при помощи Сервис->Монитор порта:

Показания температуры и влажности (Монитор порта)

Вы должны увидеть температуру и влажность. Изменения можно увидеть, например, выдыхая на датчик (как для затуманивания окна). Дыхание увеличивает влажность.

Посты по урокам:

  1. Первый урок:
  2. Второй урок:
  3. Третий урок:
  4. Четвертый урок:
  5. Пятый урок:
  6. Шестой урок:
  7. Седьмой урок:
  8. Восьмой урок:
  9. Девятый урок:

DHT11 – датчик влажности и температуры, который генерирует откалиброванный цифровой выход и может быть интерфейсом для любого микроконтроллера, такого как Arduino и Raspberry Pi, и получать мгновенные результаты. DHT11 – это недорогой прибор, который обеспечивает высокую надежность и долговременную стабильность.

В этом проекте построена небольшая схема для интерфейса с датчиком температуры на Arduino. Одним из основных применений подключения данного сенсора к Arduino является мониторинг погоды.

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

Рассмотрим основные виды приборов, построенных на рассматриваемой платформе:

  1. Вращательный: в основном, резистор, подключенный к потенциометру и трехконтактному разъему, который позволяет подключать аналоговый выход и подавать его VCC и GND. Часто используется для определения положения двигателя, как сервомотора, так и шагового, постоянного тока и других. По-другому можно назвать – Ардуино датчик тока или Аrduino датчик движения.
  2. Звуковой: оснащен микрофоном, операционным усилителем LM386 и потенциометром, позволяющим захватывать любой звук вокруг него и превращать его в аналоговый сигнал с 0V до VCC, который может быть преобразован в сигнал Аrduino от 0 до 1024 в резолюции ADC. Существуют различные приложения для такого типа, которые относятся к аудиозахвату. Также существует ультразвуковой датчик Ардуино.
  3. Обнаружитель дыма: используется в системах обнаружения пожара, является прибором, который выявляет дым и газ, может быть откалиброван с помощью потенциометра, а выходной сигнал подключается к аналоговому входному модулю. Эти Ардуино-датчики имеют, помимо прочего, варианты MQ-2, MQ-3, MQ4 и дифференцируются по типу обнаруженного вещества, метана, спирта, пропана и другие.
  4. Детонация: предназначен для обнаружения сбоев или известен, как перкуссионный. Передает цифровой сигнал, когда обнаруживает изменение. Может быть подключен к цифровому входу на плате разработки Arduino и обнаруживать сигнал, который генерируется при наличии какого-либо удара.
  5. Ардуино-датчик температуры: предназначается для измерения состояния окружающей среды. К таким можно отнести Аrduino dsl8b20.

Распиновка и принципиальная схема подключения

Распиновка у датчиков данного типа довольно простая. Независимо от того сколько выводов у вашего сенсора - рабочих выводов всего 3:


Принципиальная схема при подключении к микроконтроллеру может выглядеть таким образом:

Устройство датчиков и схема подключения к Ардуино

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

DHT11 состоит из 3 основных компонентов. Датчик влажности резистивного типа, термистор NTC и 8-разрядный микроконтроллер, который преобразует аналоговые сигналы и отправляет одиночный цифровой сигнал.


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

DHT11 состоит из 4 контактов: VCC, Data Out, Not Connected (NC) и GND. Диапазон напряжения для вывода VCC составляет от 3,5 до 5,5 В. Питание 5 В будет достаточно. Данные на выводе Data Out являются последовательными цифровыми данными.

DHT11 может измерять значение влажности в диапазоне 20-90 % относительной влажности (RH) и температуру в диапазоне 0-50 0 С. Период выборки составляет 1 секунду.

Все DHT11 точно калибруются в лаборатории, а результаты хранятся в памяти. Между любыми микроконтроллерами, такими как Arduino и DHT11 Sensor, может быть установлена ​​однопроводная связь.

Кроме того, длина кабеля может достигать 20 метров. Данные состоят из целочисленных и десятичных частей, как для относительной влажности (RH), так и для температуры.

Данные от DHT11 и Ардуино датчиков движения состоят из 40 бит, и формат выглядит следующим образом:

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

Скетч для работы с датчиком

Давайте посмотрим теперь на код благодаря которому сенсор будет взаимодействовать с нашей платой (схема подключения выше):

#include "DHT.h" #define dht_apin A0 // Аналоговый контакт к которому подключен датчик dht DHT; void setup(){ Serial.begin(9600); delay(500);//Задержка для загрузки системы Serial.println("DHT11 сенсор влажности и температуры\n\n"); delay(1000);//Подождите, прежде чем обращаться к датчику }//end "setup()" void loop(){ //Начало программы DHT.read11(dht_apin); Serial.print("Текущая влажность = "); Serial.print(DHT.humidity); Serial.print("% "); Serial.print("температура = "); Serial.print(DHT.temperature); Serial.println("C "); delay(5000);//Подождите 5 секунд, прежде чем снова обратиться к датчику //Самый быстрый должен быть раз в две секунды }// окончание цикла loop()

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

Arduino DHT11 – относительно дешевый прибор для измерения температуры и влажности. DHT22 похож на DHT11 и имеет большую точность. Однако эта библиотека не подходит для DHT21 или DHT22, поскольку они имеют другой формат данных.

Проверьте DHTlib на поддержку этих датчиков. Эта библиотека протестирована на MEGA2560 и подтверждена работой на Arduino 2009. Niesteszeck создал библиотеку DHT11, управляемую прерываниями. Энди Дальтон сделал модифицированную версию. Разница в том, что DATAPIN определен в конструкторе, в результате чего полагается один выделенный объект на приспособление.

С помощью одножильного приспособления DS18B20 мы можем измерять температуру от -55 ℃ до 125 ℃ с точностью ± 5.

В итоге мы должны на выходе увидеть вот такие данные:

Получение данных

Рассмотрим данные, полученные от DHT11.

00100101 00000000 00011001 00000000 00111110.

Эти данные можно разделить на основе указанной выше структуры следующим образом:

Чтобы проверить правильность полученных данных, нам нужно выполнить небольшой расчет. Добавьте все значения интегральных и десятичных значений RH и температуры и проверьте, равна ли сумма величине контрольной суммы, т. е. последним 8-битным данным:

00100101 + 00000000 + 00011001 + 00000000 = 00111110

Это значение совпадает с контрольной суммой и, следовательно, полученные данные действительны. Теперь, чтобы получить значения RH и температуры, просто преобразуйте двоичные данные в десятичные данные:

RH = Десятичное значение 00100101 = 37 %

Температура = Десятичное значение 00011001 = 25 0 C

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

Дополнительные сенсоры

Кроме сенсоров, которые мы рассмотрели выше можно присмотреться и к другим датчикам для Ардуино:

  1. Датчик температуры + влажности. Вы можете использовать этот совместимый с Arduino гаджет для контроля температуры окружающей среды или влажности. В качестве основного проекта вы можете подключить ЖК-дисплей к Arduino и отображать температуру в помещении/влажность.
  2. Датчик инфракрасного излучения, также называемый «инфракрасным излучающим диодом». Он работает с 38KHz модулирующим сигналом. Можно использовать для отправки кода в другой Arduino или для управления телевизором.
  3. Фоторезистор. Сопротивление компонента будет варьироваться в зависимости от интенсивности света, которому он подвергается. Является резистором, сопротивление которого падает, когда свет попадает на него.
  4. Ультразвуковой прибор расстояния автоматически отправляет аудиосигнал 40 кГц и определяет, есть ли импульсный сигнал назад. Он посылает сигнал, и если он получает обратно, то вычисляет пройденное расстояние, таким образом, расстояние от приспособления до объекта перед ним. Он может ощущать объект в диапазоне: 2 см ~ 500 см.
  5. Датчик детонации. Проще говоря, это переключатель, который включается, когда он обнаруживает стук. Существует светодиод, который также дает визуальный сигнал состояния, высокий или низкий.
  6. Звуковой будет обнаруживать окружающий звук. Это лучше всего использовать для таких проектов, как голосовые чейнджеры.
  7. Обнаружение напряжения (выше/ниже). Определяет уровень напряжения любого поставщика постоянного тока, до 25 вольт. Критические точки перенапряжения/пониженного напряжения могут быть отрегулированы.
  8. Определитель влажности и температуры. Arduino датчик влажности почвы помогает определить условия для комфортного существования комнатных и тепличных растений.

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

Соединяем Arduino с датчиком влажности почвы FC-28, чтобы определить, когда ваша почва под растениями нуждается в воде.

В этой статье мы собираемся использовать датчик влажности почвы FC-28 с Ардуино. Этот датчик измеряет объемное содержание воды в почве и дает нам уровень влаги. Датчик дает нам на выходе аналоговые и цифровые данное. Мы собираемся подключить его в обоих режимах.

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

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

Датчик FC-28 можно соединить в аналоговом и цифровом режимах. Сначала мы подключим его в аналоговом режиме, а затем в цифровом.

Спецификация

Спецификации датчика влажности почвы FC-28:

  • входное напряжение: 3.3–5V
  • выходное напряжение: 0–4.2V
  • входной ток: 35mA
  • выходной сигнал: аналоговый и цифровой

Распиновка

Датчик влажности почвы FC-28 имеет четыре контакта:

  • VCC: питание
  • A0: аналоговый выход
  • D0: цифровой выход
  • GND: земля

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

Аналоговый режим

Для подключения датчика в аналоговом режиме нам потребуется использовать аналоговый выход датчика. Датчик влажности почвы FC-28 принимает аналоговые выходные значения от 0 до 1023.

Влажность измеряется в процентах, поэтому мы сопоставим эти значения от 0 до 100, а затем покажем их на последовательном мониторе (serial monitor). Вы можете установить различные значения влаги и повернуть водяную помпу "включено-выключено" согласно этим значениям.

Электрическая схема

Подключите датчик влажности почвы FC-28 к Ардуино следующим образом:

  • VCC FC-28 → 5V Arduino
  • GND FC-28 → GND Arduino
  • A0 FC-28 → A0 Arduino

Код для аналогового выхода

Для аналогового выхода мы пишем такой код:

Int sensor_pin = A0; int output_value ; void setup() { Serial.begin(9600); Serial.println("Reading From the Sensor ..."); delay(2000); } void loop() { output_value= analogRead(sensor_pin); output_value = map(output_value,550,0,0,100); Serial.print("Mositure: "); Serial.print(output_value); Serial.println("%"); delay(1000); }

Объяснение кода

Прежде всего, мы определили две переменные: одну для контакта датчика влажности почвы, а другую для хранения выхода датчика.

Int sensor_pin = A0; int output_value ;

В функции setup, команда Serial.begin(9600) поможет в общении между Arduino и серийным монитором. После этого, мы напечатаем "Reading From the Sensor ...” (англ. - считываем с датчика) на обычном дисплее.

Void setup() { Serial.begin(9600); Serial.println("Reading From the Sensor ..."); delay(2000); }

В функции цикла, мы прочитаем значение от аналогового выхода датчика и сохраним значение в переменной output_value . Затем мы сопоставим выходные значения с 0-100, потому что влажность измеряется в процентах. Когда мы брали показания с сухого грунта, значение датчика было 550, а во влажном грунте значение датчика было 10. Мы сопоставили эти значения, чтобы получить значение влаги. После этого мы напечатали эти значения на последовательном мониторе.

Void loop() { output_value= analogRead(sensor_pin); output_value = map(output_value,550,10,0,100); Serial.print("Mositure: "); Serial.print(output_value); Serial.println("%"); delay(1000); }

Цифровой режим

Для подключения датчика влажности почвы FC-28 в цифровом режиме мы подключим цифровой выход датчика к цифровому контакту Arduino.

Модуль датчика содержит потенциометр, который использован для того чтобы установить пороговое значение. Пороговое значение после этого сравнивается со значением выхода датчика используя компаратор LM393, который помещен на модуле датчика FC-28. Компаратор LM393 сравнивает значение выхода датчика и пороговое значение, и после этого дает нам выходное значение через цифровой вывод.

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

Электрическая схема

Соединения для датчика влажности почвы FC-28 и Ардуино в цифровом режиме следующие:

  • VCC FC-28 → 5V Arduino
  • GND FC-28 → GND Arduino
  • D0 FC-28 → Пин 12 Arduino
  • Светодиод положительный → Вывод 13 Ардуино
  • Светодиод минус → GND Ардуино

Код для цифрового режима

Код для цифрового режима ниже:

Int led_pin =13; int sensor_pin =8; void setup() { pinMode(led_pin, OUTPUT); pinMode(sensor_pin, INPUT); } void loop() { if(digitalRead(sensor_pin) == HIGH){ digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); delay(1000); } }

Объяснение кода

Прежде всего, мы инициализировали 2 переменные для соединения вывода светодиода и цифрового вывода датчика.

Int led_pin = 13; int sensor_pin = 8;

В функции setup мы объявляем пин светодиода как пин выхода, потому что мы включим светодиод через него. Мы объявили пин датчика как входной пин, потому как Ардуино будет принимать значения от датчика через этот вывод.

Void setup() { pinMode(led_pin, OUTPUT); pinMode(sensor_pin, INPUT); }

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

Void loop() { if(digitalRead(sensor_pin) == HIGH){ digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); delay(1000); } }

На этом вводный урок по работе с датчиком FC-28 для Ардуино мы завершаем. Успешных вам проектов.