- Необходими материали
- Сензор за дъжд
- Работа на сензор за дъжд
- Електрическа схема
- Обяснение на кода
- Работа на базирана на Arduino система за откриване на дъжд
Една проста система за откриване на дъжд може лесно да бъде изградена чрез свързване на Arduino със сензор за дъжд. Сензорът ще разпознае всякакви валежи, които падат върху него и дъската Arduino ще го усети и може да извърши необходимите действия. Система като тази може да се използва в много различни области, като селското стопанство и автомобилната сфера. Откриването на валежи може да се използва за автоматично регулиране на процеса на напояване. Също така, данни за непрекъснати валежиможе да помогне на фермерите да използват тази интелигентна система за автоматично поливане на реколтата само когато е абсолютно необходимо. По същия начин, в автомобилния сектор чистачките на предното стъкло могат да бъдат направени напълно автоматични, като се използва системата за откриване на дъжд. А системите за домашна автоматизация могат също да използват откриване на дъжд за автоматично затваряне на прозорци и регулиране на стайна температура. В този урок ще изградим основен сензор за дъжд, използвайки Arduino със зумер. След това можете да използвате тази настройка, за да изградите всичко, което пожелаете, върху нея. Също така, имайте предвид, че модулът за сензор за дъжд също е посочена като един сензор дъждовна капка или сензор за дъжд габарит или сензор за дъждовна вода в зависимост от употребата, но всички те се отнасят за същия сензор, използван в този проект и всички те работят на същия принцип.
Също така сме изградили обикновена аларма за дъжд и автоматична чистачка за кола, като използваме само 555 таймер, може да искате да проверите и това, ако не искате да използвате Arduino. Като се има предвид това, нека се върнем към този проект и започнем да изграждаме нашия Arduino Rain Gauge.
Необходими материали
- Arduino UNO
- Сензор за дъжд
- Звънец
- Макет
- Свързващи проводници
Сензор за дъжд
Модулът Raindrops се състои от две дъски, а именно Rain Board и Control Board.
Модулът дъска за дъжд се състои от две медни коловози, проектирани по такъв начин, че при сухи условия да осигуряват висока устойчивост на захранващото напрежение и това изходно напрежение на този модул ще бъде 5V. Съпротивлението на този модул постепенно намалява по отношение на увеличаването на влажността на дъската. С намаляването на съпротивлението изходното му напрежение също намалява по отношение на влажността на модула. Модулът дъска за дъжд се състои от два щифта, използвани за свързване към контролната платка, както е показано по-долу.
Модулът Control Board контролира чувствителността и преобразува аналоговия изход в цифров изход. Ако аналоговата стойност е под праговата стойност на контролната платка, изходът е цифров нисък и Ако аналоговата стойност е по-висока от праговата стойност, изходът е цифров висок. За това сравнение и преобразуване се използва LM393 OP-Amp Comparator. Op-Amp компаратор е интересна схема, която може да се използва за сравняване на две различни стойности на напрежението, ние вече използвахме в тази схема в много проекти като Smart Electronic Candle, Laser Security Alarm, Line Follower Robot и много други.
Модулът за управление на дъжда, който е показан по-долу, се състои от 4 щифта за свързване на Arduino, а именно VCC, GND, D0, A0 и още два щифта за свързване на модула дъска. В обобщение, модулът дъска за дъжд открива дъждовната вода, а модулът за управление се използва за контрол на чувствителността и сравняване и преобразуване на аналоговите стойности в цифрови стойности.
Работа на сензор за дъжд
Работата на модула за сензор за дъжд е лесна за разбиране. По време на слънчев ден, поради сухотата на модула дъска, той предлага висока устойчивост на захранващото напрежение. Това напрежение се появява на изходния щифт на модула за дъждовна дъска като 5V. Този 5V се чете като 1023, ако се чете от аналогов щифт на Arduino. По време на дъжд дъждовната вода причинява увеличаване на влажността на дъждовната дъска, което от своя страна води до намаляване на съпротивлението, предлагано за захранването. Тъй като съпротивлението намалява постепенно, изходното напрежение започва да намалява.
Когато дъската за дъжд е напълно мокра и съпротивлението, което се предлага от нея, е минимално, изходното напрежение ще бъде възможно най-ниско (приблизително 0). Това 0V се чете като стойност 0, ако се чете от аналогов щифт на Arduino. Ако модулът за дъжд е частично мокър, изходът на този модул за дъжд ще бъде по отношение на съпротивлението, което той предлага. Ако съпротивлението, предлагано от модула за дъждовна дъска, е по такъв начин, че изходът е 3V, прочетената аналогова стойност ще бъде 613. Формулата за намиране на ADC може да бъде дадена чрез, ADC = (стойност на аналоговото напрежение X 1023) / 5. Използвайки тази формула, можете да преобразувате всяко аналогово напрежение в стойност за аналогово четене на Arduino.
Електрическа схема
Долната схема на схемата ви показва верижните връзки за сензора за капка дъжд с Arduino. Проектирането е направено с помощта на proteus, физическите модули са подобни на модулите, които са показани на електрическата схема.
Модулът за дъждомер, който е показан на електрическата схема, е свързан към контролната платка. VCC щифтът на контролната платка е свързан към 5V захранване. Заземяващият щифт е свързан със земята. Ако е необходимо, пинът D0 е свързан с който и да е цифров щифт на Arduino и този пин трябва да бъде деклариран като изходен пин в програмата. Проблемът, с който се сблъскваме с щифта D0, е, че не можем да получим точната стойност на изходното напрежение. Ако изходът пресича праговото напрежение, тогава управляващият модул може да усети промяната в изхода. Трябва да задействаме зумера, дори ако има значителна промяна в изходното напрежение в модула дъска. Поради тези причини щифтът A0 е свързан с аналоговия щифт на Arduino, което улеснява проследяването на промяната в изхода. Звуковият сигнал, който се използва като сигнал към потребителя,може да бъде свързан към всеки цифров щифт на Arduino. Ако зумерът се нуждае от повече от 5V, опитайте да свържете релейна верига или транзистор и след това свържете товара към него.
Обяснение на кода
Кодът на Arduino за сензора за дъжд е написан с помощта на IDE на Arduino. Пълният код за този проект е даден в края на страницата.
#define валежи A0 #define зумер 5 int стойност; int set = 10;
Определяне на пин A0 като дъжд и щифт 5 като зумер и деклариране на променливите „стойност“ и „набор“ като цели числа и задаване на стойността на зададената от нея променлива на 10. Тази стойност може да бъде променена в съответствие с необходимото ниво на работа. Ако искате зумерът да се активира, дори когато има малко дъжд, задайте го на минимална стойност
void setup () {Serial.begin (9600); pinMode (зумер, ИЗХОД); pinMode (валежи, INPUT); }
Инициализиране на серийната комуникация и настройка на зумера. Задаване на щифта за валежи като изходен щифт и входен щифт.
void loop () {value = analogRead (валежи); Serial.println (стойност); стойност = карта (стойност, 0,1023,225,0);
функцията analogRead отчита стойността на сензора за дъжд. Картата на функциите картографира стойността на сензора за дъжд от изходния щифт и присвоява стойност на променливата, варираща от 0 до 225.
if (стойност> = зададена) {Serial.println ("открит дъжд"); digitalWrite (зумер, HIGH);
Ако стойността на четения сензор е по-голяма от зададената стойност, тогава програмата влиза в цикъла, отпечатва съобщението на сериен монитор и включва зумера
else {digitalWrite (зумер, LOW);
Програмата влиза във функцията else само когато стойността е по-малка от зададената стойност. Тази функция ще изключи зумера, когато зададената стойност е по-висока от стойността на сензора, което показва, че няма дъжд.
Работа на базирана на Arduino система за откриване на дъжд
Тази система работи по такъв начин, че когато има дъжд, дъждовната вода действа като спусък, който включва зумера. В Arduino Code на сензора за капка дъжд определихме, че щифтове 5 и A0 са зумер и валежи. По този начин можем да променим щифтовете в определената част на функцията, а останалата част от кода ще бъде недокосната. Това ще направи програмиста лесно да редактира щифтовете.
В празния цикъл командата analogRead отчита стойността от сензора. В следващия ред командата Serial.println (стойност) отпечатва стойността на серийния монитор. Това ще бъде полезно при отстраняване на грешки. Функцията за карта картографира входящата стойност между 0 -225. Форматът на функцията за картата е карта (стойност, минимална стойност, максимална стойност, стойност, която се картографира за минимална стойност, стойност, която се картографира за максимална стойност). Зуммерът ще бъде включен или изключен, в зависимост от зададената стойност и изхода на сензора. Тази стойност се сравнява във функцията if с зададената стойност. Ако стойността е по-голяма от зададената стойност, тя ще включи зумера. Ако стойността е по-малка от зададената стойност, зумерът ще бъде изключен.
Цялата работа може да бъде намерена във видеото, свързано по-долу. Това е едно приложение сред многото, същият принцип ще се види в чистачките на предното стъкло, други автоматизации на дома, селскостопански сектори и др. Надявам се, че сте разбрали проекта и сте се радвали да изградите нещо полезно. Ако имате въпроси, използвайте раздела за коментари по-долу или използвайте форумите ни за други технически въпроси.