Оснащаем свое авто датчиком дождя. Делаем датчик дождя с оповещением по e-mail с помощью Arduino Принципиальная схема датчик дождя на лобовом стекле

Главная / Фундамент под беседку

В этом уроке мы используем датчик дождя для определения интенсивности дождя и cгенерируем аналоговый переменный сигнал от 0 до 1024. Он также cгенерирует цифровой выход в соответствии с его заданным значением.

Когда датчик дождя обнаруживает дождь, он отправляет аналоговый сигнал на Arduino Uno Board. Arduino Uno отслеживает изменения, происходящие на датчике дождя. Когда значение датчика дождя выходит за пределы определенного уровня, наш Arduino Uno посылает некоторые команды нашему модулю GSM и модуль GSM посылает sms по нужному номеру телефона.

Установка Arduino IDE: вы можете загрузить последнюю версию Arduino IDE на этой странице .

Шаг 2. Используемые компоненты

Для этого проекта нам понадобятся некоторые компоненты:

  1. Сенсор/датчик дождя
  2. GSM-модуль (sim 900)
  3. Набор проводов/перемычек

Сенсор/датчик дождя

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

Аналоговый выход используется для обнаружения капель в количестве осадков. При подключении к источнику питания 5В светодиодный индикатор включается, когда на индукционной плате не происходит падения дождя, выход DO высокий. При снижении количества воды, выход DO низкий, индикатор переключателя включается. Удалите капли воды, при восстановлении в исходное состояние выйдет на высокий уровень.

GSM-модуль (sim 900)

Это совместимый с GSM/GPRS четырехдиапазонный сотовый телефон, который работает на частоте 850/900/1800/1900 МГц и который может использоваться не только для доступа в Интернет, но и для устного общения (при условии, что он подключен к микрофону и небольшому громкоговорителю) и СМС.

Внешне это выглядит как небольшая упаковка (2,4 см x 2,4 см x 0,3 см) с L-образными контактами с четырех сторон, так что они могут паяться как сбоку, так и снизу. Внутренний модуль управляется процессором AMR926EJ-S , который контролирует телефонную связь, передачу данных (через встроенный стек TCP/IP) и (через UART и последовательный интерфейс TTL) связь со схемой, сопряженной с самим телефоном.

Процессор также отвечает за SIM-карту (3 или 1,8 В), которую необходимо подключить к внешней стенке модуля. Кроме того, устройство GSM900 объединяет аналоговый интерфейс, аналого-цифровой преобразователь, RTC, шину SPI, I²C и модуль PWM. Секция радиосвязи является фазой GSM 2/2 + и является классом 4 (2 Вт) на частоте 850/900 МГц или классом 1 (1 Вт) на частоте 1800/1900 МГц.

Последовательный интерфейс TTL отвечает не только за передачу всех данных относительно уже полученных SMS и тех, которые входят во время сеансов TCP/IP в GPRS (скорость передачи данных определяется классом GPRS 10: максимум 85,6 кбит/с), Но также и получение команд схемы (в нашем случае, исходящих от PIC, управляющих дистанционным управлением), которые могут быть либо стандартом AT, либо AT-усиленным типом SIMCom. Модуль снабжен непрерывным питанием (от 3,4 до 4,5 В) и поглощает максимум 0,8 А во время передачи.

Arduino Uno

Arduino Uno или Genuino Uno - это плата микроконтроллера, основанная на ATmega328P (техническое описание). Он имеет 14 цифровых входов / выходов (из которых 6 могут использоваться как выходы PWM), 6 аналоговых входов, кварцевый кристалл 16 МГц, USB-соединение, разъем питания, заголовок ICSP и кнопку сброса.

Шаг 3. Описание проекта

В этом проекте мы используем Датчик/сенсор дождя (Raindrop Sensor) для обнаружения интенсивности дождя (Raindrop Intensity) и сгенерируем некоторые аналоговые значения. Когда датчик дождя обнаруживает интенсивность капли дождя, Arduino UNO посылает команду на модуль GSM, затем модуль GSM отправляет почту на указанный идентификатор электронной почты.

Соединение нашей схемы приведено выше. Есть две принципиальные схемы : одна для сенсора дождя с Arduino, а другая для Arduino с модулем GSM.

Шаг 4. Код для проекта

Вы можете скачать исходный код этого проекта ниже.

/* RAIN DROP DETECTOR WITH GSM(USING SIM-900 MINI , RAINDROP SENSOR & ARDUINO UNO); Here We Are Using Raindrop Sensor To Detect Raindrop Intensity And Generate An Analog Varying Signal From 0 To 1024. It Also Generates A Digital Output According To Its Preset Value. When The Raindrop Sensor Detects Rain Then It"s Going To Send An Analog Signal To Arduino Uno Board.Arduino Uno Monitoring The Change Happening On Raindrop Sensor. When The Value Of Raindrop Sensor Going Beyond A Certain Level Our Arduino Uno Sends Some At Command To Our GSM Module And GSM Module Send An SMS To The Given Phone No. The circuit: * GSM MODULE(SIM-900 MINI) 5VT(TX) CONNECTED TO PIN 9(RX FOR SOFTWARE SERIAL) * GSM MODULE(SIM-900 MINI) 5VR(RX) CONNECTED TO PIN 10(TX FOR SOFTWARE SERIAL) * RAINDROP SENSOR DO TO PIN 11 * RAINDROP SENSOR AO TO PIN A0 * CONNECT VCC OF RAINDROP TO 5V OF ARDUINO UNO * CONNECT VCC OF GSM TO 5V OF ARDUINO UNO. created 8 NOV 2016 by SOUMYA RANJAN PANDA For any help contact [email protected] */ #include SoftwareSerial mySerial(9, 10); //(RX,TX) int d=0; void setup() { mySerial.begin(9600); Serial.begin(9600); pinMode(11,INPUT); //FOR DIGITAL INPUT pinMode(A0,INPUT); //FOR ANALOG INPUT delay(50); } void loop() { int sensorReading = analogRead(A0); //READ RAINDROP SENSOR VALUE if(sensorReading<500) //WHEN SENSOR DETACT RAIN IT"S ANALOG VALUE REDUCE { Serial.println("Raining"); SendMessage(); //SENDING SMS SIGNAL TO GSM MODULE while(analogRead(A0)<800); //HOLDING STATE UNTIL RAIN STOP } else if((sensorReading>500)&&(sensorReading<800)) // IT IS FOR RAINWARNING { Serial.println("Rain Warnigitng"); } else if(sensorReading>800) //WHEN RAIN STOP { Serial.println("NotRaining"); } delay(1000); } /***************************FOR GSM SIM-900 MINI********************************/ void SendMessage() //SENDING SMS SIGNAL { mySerial.println("AT+CMGF=1"); //SELECTING SMS Text Mode delay(1000); mySerial.println("AT+CMGS=\"+91XXXXXXXXXX\"\r"); //PROVIDE YOUR MOBILE NUMBER delay(1000); mySerial.println("HELLO SIR, I AM YOUR HOUSE .IT"S RAINING OUTSIDE:)"); delay(100); mySerial.println((char)26); delay(1000); }

Шаг 5. Итоговое видео

Полное видео проекта и его описание смотрите выше. На этом всё.

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



Датчик дождя состоит из сенсорной пластины и платы с компаратором LM393. Помимо цифрового выхода, датчик имеет аналоговый выход, поэтому микроконтроллер Arduino может считывать аналоговые показания в диапазоне напряжений от 0 до 5 В или значение от 0 до 1023 после АЦП.



Если сенсорная плата датчика находится в сухом состоянии, аналоговый выход модуля составляет 5 В. В случае, если на пластину попадают капли дождя, соединяющие проводники платы между собой, то аналоговый выход изменяется от 5 В до 0 В в зависимости от количества влаги на пластине. Таким способом датчик сообщает нам, сильный или слабый идёт дождь. Arduino включит сигнализацию после определенной интенсивности дождя и некоторой задержки, что будет определено в коде. Это позволит избежать ложных срабатываний. В данном случае порог срабатывания составляет 300, а задержка 30 секунд.


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


int rainSensePin= 0; // аналоговый вход 0 для сигнала датчика int alertPin= 8; // цифровой выход 8 - для сигнализации int curCounter= 0; // счётчик - инкрементируется на 1 каждую секунду после срабатывания датчика void setup(){ Serial.begin(9600); pinMode(alertPin, OUTPUT); pinMode(rainSensePin, INPUT); } void loop(){ int rainSenseReading = analogRead(rainSensePin); Serial.println(rainSenseReading); // для мониторинга через последовательный порт delay(250); // короткая задержка if (curCounter >= 30){ // конец временной задержки digitalWrite(alertPin, HIGH); // срабатывание сигнализации } // если дождя больше нет, сбрасываем счетчик if (rainSenseReading <300){ curCounter++; } else if (rainSenseReading >300) { // если интенсивность дождя не превышает порога digitalWrite(alertPin, LOW); // не включаем сигнализацию curCounter = 0; // сбрасываем счетчик в 0 } delay(1000); }

Когда идет дождь (и Arduino обнаруживает его) выход D8 переходит в высокий логический уровень. Этот выход можно подключить к звуковой сигнализации (пьезозуммеру) или переключателю (электромагнитному реле). Схема подключения выхода показана ниже.



В данном случае питание на Arduino подаётся от внешнего источника 9 В, схема активации зуммера/реле может питаться от 5-12 В. Источник напряжения питания Vcc должен подходить как по напряжению, так и по току для данной схемы.


Таким образом, создание проекта, в котором с помощью платы Arduino можно регистрировать наличие или отсутствие дождя или падающих капель от какого-либо источника жидкости, не является сложным занятием. Датчик капель/дождя для Arduino достаточно распространен, стоит недорого и прост в использовании. В конечном счете его можно сделать самому.

В этой статье мы узнаем, как можно использовать датчик протечки ардуино. Такие датчики часто называют по-разному: датчик дождя, влаги, капель, протечки. При этом почти всегда имеется в виду один и тот же датчик, как правило, выполненный в виде готового модуля. Датчик легко подключается к Arduino, скетч для работы с такими датчиками прост, цена не высока. Идеальный вариант для несложных проектов на Arduino Uno, Mega, Nano.

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

Модуль датчика состоит из двух частей:

  • «Сенсорная» плата обнаружения капель. Она отслеживает количество попавшей на неё влаги. По сути, сенсор представляет собой простой переменный резистор, замыкаемый водой в разных местах, что вызывает изменение сопротивления.
  • Вторая часть датчика – сдвоенный компаратор (как правило, LM393, но возможны варианты LM293 и LM193). Его главная задача – преобразование значения с сенсора в аналоговый сигнал от 0 до 5 вольт.

На рынке встречаются варианты датчиков как с разнесенными сенсором и компаратором, так и с объединенными на одной панели.

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

  • Аналоговый. Значение, получаемое контроллером, будет варьироваться от 0 до 1023. Где 0 – все затопило или идет ливень, сенсор очень влажный, 1023 – сухая погода, сенсор сухой (в некоторых датчиках встречаются противоположные значения, 1023 – максимальная влажность, 0 – максимальная сухость).
  • Цифровой. Выдает высокое (5В) или низкое напряжение в случае превышения некоторого порога. Уровень порога срабатывания регулируется с помощью подстроечного резистора.

Подключение датчика протечки и дождя к ардуино

Для подключения датчика к ардуино понадобится сама плата (UNO, Mega, Nano или любая другая) и сам датчик. Если вы хотите проверять интенсивность осадков, то рекомендуется расположить датчик не горизонтально, а под некоторым углом, чтобы накапливаемые капли стекали вниз.

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

  • VCC (вход питания) – должен совпадать для соединенной схемы ардуино по напряжению и току. То есть в данном случае 5В;
  • GND – заземление;
  • АO – аналоговый выход;
  • DO – цифровой выход.

Аналоговый выход присоединяем к аналоговому пину микроконтроллера, например, A1. Цифровой выход, соответственно подключается к одному из цифровых пинов. Напряжение можно подать с вывода 5В платы ардуино, земля соединяется с землей.

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

Пример скетча

#define PIN_ANALOG_RAIN_SENSOR A1 // Аналоговый вход для сигнала датчика протечки и дождя #define PIN_DIGITAL_RAIN_SENSOR 5 // Цифровой вход для сигнала датчика протечки и дождя void setup(){ Serial.begin(9600); } void loop(){ int sensorValue = analogRead(PIN_ANALOG_RAIN_SENSOR); // Считываем данные с аналогового порта Serial.print("Analog value: "); Serial.println(sensorValue); // Выводим аналоговое значение в монитр порта sensorValue = digitalRead(PIN_DIGITAL_RAIN_SENSOR); // Считываем данные с цифрового порта Serial.print("Digital value: "); Serial.println(sensorValue); // Выводим цифровое значение в монитр порта delay(1000); // Задержка между измерениями }

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

Пример проекта дождевой сигнализации

Рассмотрим пример с использованием звуковой сигнализации в виде подключенного зумера на цифровом выходе D6. При желании можно вместо сигнализации подключить реле и выполнять различные операции с размыканием сети. В скетче полученные данные мы будем передавать в монитор порта по UART-интерфейсу.

Скетч для проекта с сигнализацией

Ниже представлен тестовый код, который активирует звуковой сигнал на уже упомянутом выше цифровом выходе 6, с задержкой времени, для того, чтобы исключить ложные срабатывания при случайном попадании воды на сенсор. Работа реализована через переменную, которая обновляется каждую секунду и выступает порогом – curCounter. Сигнализация приводится в действие тогда, когда значение, передаваемое с сенсора, станет меньше 300. Задержка между обнаружением влаги и срабатыванием звукового сигнала составляет чуть больше 30 секунд.

#define PIN_RAIN_SENSOR A1 // Аналоговый вход для сигнала датчика протечки и дождя #define PIN_ALERT 6 // Цифровой выход для сигнализации #define MAX_COUNTER 30 // Пороговое значение для счетчика #define ALERT_LEVEL 300 // Пороговое значение для счетчика int curCounter= 0; // Счётчик для сбора "статистики", который увеличивается на 1 каждую секунду после срабатывания датчика void setup(){ Serial.begin(9600); pinMode(PIN_ALERT, OUTPUT); pinMode(PIN_RAIN_SENSOR, INPUT); // Можно не указывать, т.к. это значение по умолчанию } void loop(){ int sensorValue = analogRead(PIN_RAIN_SENSOR); Serial.println(sensorValue); // Выводим значение в монитр порта delay(300); // короткая задержка // Если накопили достаточно оснований для включения сигнализации if (curCounter >= MAX_COUNTER){ digitalWrite(PIN_ALERT, HIGH); // Срабатывание сигнализации curCounter = MAX_COUNTER; // Защита от переполнения переменной } // Определяем уровень влажности if (sensorValue < ALERT_LEVEL){ // В очередной раз убедились, что все влажно, увеличиваем счетчик curCounter++; }else { // Интенсивность дождя не превышает порога digitalWrite(PIN_ALERT, LOW); // Выключаем сигнализацию curCounter = 0; // Обнуляем счетчик } delay(1000); // Задержка между измерениями }

Подведение итогов

Датчик дождя и протечки можно использовать в ардуино для создания устройств, реагирующих на появление влажности в виде капель. Среди преимуществ рассмотренного модуля можно отметить его простоту, удобство и дешевизну. Подключается датчик очень легко – с помощью аналогового или цифрового выходов. Для получения значения в скетче используется стандартная функция analogRead (или digitalRead для цифрового пина). Используя полученные значения, можно включать сигнализацию или другие внешние устройства с помощью реле.

© 2024 pehorkapark.ru -- Виды беседок. Мебель. Веранды. Материал для беседки. Крыши