- Wymagane materiały
- Czujnik deszczu
- Działanie czujnika deszczu
- Schemat obwodu
- Objaśnienie kodu
- Działanie systemu wykrywania deszczu opartego na Arduino
Prosty system wykrywania deszczu można łatwo zbudować, łącząc Arduino z czujnikiem deszczu. Czujnik wykryje padający na niego deszcz, a płyta Arduino to wyczuje i może wykonać wymagane czynności. Taki system może być używany w wielu różnych dziedzinach, takich jak rolnictwo i motoryzacja. Wykrywanie opadów deszczu może służyć do automatycznej regulacji procesu nawadniania. Również ciągłe dane dotyczące opadówmoże pomóc rolnikom w korzystaniu z tego inteligentnego systemu do automatycznego podlewania upraw tylko wtedy, gdy jest to absolutnie konieczne. Podobnie w sektorze samochodowym wycieraczki przedniej szyby mogą być w pełni automatyczne dzięki zastosowaniu systemu wykrywania deszczu. Systemy automatyki domowej mogą również wykorzystywać wykrywanie deszczu do automatycznego zamykania okien i regulowania temperatury w pomieszczeniu. W tym samouczku zbudujemy podstawowy czujnik deszczu za pomocą Arduino z buzzerem. Następnie możesz użyć tego zestawu, aby zbudować wszystko, co chcesz. Należy również pamiętać, że moduł czujnika deszczu jest również określana jako czujnik kropla deszczu lub deszczu czujnika pomiarowego lub czujnikiem wody deszczowej wg zużycia, ale wszystkie one odnoszą się do tego samego czujnika stosowanego w tym projekcie, a wszystkie one działają na tej samej zasadzie.
Zbudowaliśmy również prosty alarm deszczowy i automatyczną wycieraczkę samochodową, używając tylko timera 555, możesz to również sprawdzić, jeśli nie chcesz używać Arduino. Biorąc to pod uwagę, wróćmy do tego projektu i zacznijmy budować nasz miernik deszczu Arduino.
Wymagane materiały
- Arduino UNO
- Czujnik deszczu
- Brzęczyk
- Płytka prototypowa
- Przewody łączące
Czujnik deszczu
Moduł Raindrops składa się z dwóch płyt, czyli deszcz Nadzorczej i Zarządu Kontroli.
Moduł Rain board składa się z dwóch miedzianych torów, zaprojektowanych w taki sposób, aby w warunkach suchych zapewniały dużą rezystancję na napięcie zasilania, a to napięcie wyjściowe tego modułu będzie wynosić 5V. Odporność tego modułu stopniowo maleje wraz ze wzrostem zawilgocenia płyty. Wraz ze spadkiem rezystancji zmniejsza się również jego napięcie wyjściowe w zależności od zawilgocenia modułu. Moduł deszczu płyta składa się z dwóch kołków służących do łączenia się z tablicy sterowania, jak pokazano poniżej.
Moduł płytki sterującej kontroluje czułość i konwertuje wyjście analogowe na wyjście cyfrowe. Jeśli wartość analogowa jest niższa od wartości progowej karty sterującej, wyjście cyfrowe jest w stanie niskim, a jeśli wartość analogowa jest wyższa niż wartość progowa, wyjście jest cyfrowe w stanie wysokim. Do tego porównania i konwersji używany jest komparator OP-Amp LM393. Komparator wzmacniacza operacyjnego to interesujący obwód, który można wykorzystać do porównania dwóch różnych wartości napięcia, używaliśmy już w tym obwodzie w wielu projektach, takich jak Smart Electronic Candle, Laser Security Alarm, Line Follower Robot i wiele innych.
Moduł sterujący deszczu, który jest pokazany poniżej składa się z 4 sworzni do łączenia Arduino mianowicie VCC, GND, D0, A0, a kolejne dwie szpilki do połączenia płyty modułu deszcz. Podsumowując, moduł tablicy deszczowej wykrywa wodę deszczową, a moduł tablicy sterowniczej służy do kontroli czułości oraz porównywania i przekształcania wartości analogowych na wartości cyfrowe.
Działanie czujnika deszczu
Działanie modułu czujnika deszczu jest łatwe do zrozumienia. W słoneczny dzień, ze względu na suchość na module deski przeciwdeszczowej, zapewnia wysoką odporność na napięcie zasilania. To napięcie pojawia się na pinie wyjściowym modułu deszczowni jako 5V. To 5 V jest odczytywane jako 1023, jeśli jest odczytywane przez analogowy pin Arduino. Podczas deszczu woda deszczowa powoduje wzrost zawilgocenia deski przeciwdeszczowej, co z kolei skutkuje spadkiem oporu oferowanego do zasilania. Wraz ze stopniowym zmniejszaniem się rezystancji napięcie wyjściowe zaczyna spadać.
Gdy deska przeciwdeszczowa jest całkowicie mokra, a oferowany przez nią opór jest minimalny, napięcie wyjściowe będzie jak najmniejsze (ok. 0). To 0 V jest odczytywane jako wartość 0, jeśli zostanie odczytane przez analogowy pin Arduino. Jeśli moduł panelu przeciwdeszczowego jest częściowo mokry, moc wyjściowa tego modułu panelu deszczowego będzie odpowiadać oporze, jaki oferuje. Jeśli rezystancja oferowana przez moduł tablicy deszczowej jest taka, że na wyjściu jest 3V, odczytana wartość analogowa wyniesie 613. Wzór na znalezienie ADC można podać wzorem ADC = (analogowa wartość napięcia X 1023) / 5. Korzystając z tego wzoru, można przekonwertować dowolne napięcie analogowe na wartość odczytu analogowego t Arduino.
Schemat obwodu
Poniższy schemat obwodu pokazuje połączenia obwodów czujnika kropli deszczu z Arduino. Projekt jest wykonywany za pomocą proteusa, moduły fizyczne są podobne do modułów pokazanych na schemacie obwodu.
Moduł deszczomierza pokazany na schemacie obwodu jest podłączony do tablicy sterowniczej. Pin VCC płyty sterującej jest podłączony do zasilania 5V. Kołek uziemiający jest połączony z masą. W razie potrzeby pin D0 jest podłączony do dowolnego cyfrowego pinu Arduino, a ten pin musi być zadeklarowany jako pin wyjściowy w programie. Problem z pinem D0 polega na tym, że nie możemy uzyskać dokładnej wartości napięcia wyjściowego. Jeśli wyjście przekracza napięcie progowe, moduł sterujący może wykryć zmianę na wyjściu. Musimy obsługiwać brzęczyk nawet w przypadku znacznej zmiany napięcia wyjściowego w module tablicy deszczowej. Z tych powodów pin A0 jest połączony z pinem analogowym Arduino, co ułatwia monitorowanie zmiany wyjścia. Brzęczyk, który służy jako sygnał dla użytkownika,można podłączyć do dowolnego cyfrowego pinu Arduino. Jeśli brzęczyk potrzebuje więcej niż 5V, spróbuj podłączyć obwód przekaźnika lub tranzystor, a następnie podłączyć do niego obciążenie.
Objaśnienie kodu
Kod Arduino dla czujnika deszczu został napisany przy użyciu Arduino IDE. Pełny kod tego projektu znajduje się na końcu strony.
# zdefiniować opady A0 # zdefiniować brzęczyk 5 wartość int; int zestaw = 10;
Zdefiniowanie pinu A0 jako opadu, a pinu 5 jako brzęczyka oraz zadeklarowanie „wartości” i „ustawienia” zmiennej jako liczb całkowitych oraz ustawienie jej wartości zadanej zmiennej na 10. Wartość tę można zmieniać w zależności od wymaganego poziomu pracy. Jeśli chcesz, aby brzęczyk włączał się, nawet przy niewielkim deszczu, ustaw go na minimalną wartość
void setup () {Serial.begin (9600); pinMode (buzzer, OUTPUT); pinMode (opady, INPUT); }
Zainicjowanie komunikacji szeregowej i ustawienie brzęczyka. Ustawienie pinów opadów deszczu jako pinów wyjściowych i wejściowych.
void loop () {wartość = analogRead (opady); Serial.println (wartość); wartość = mapa (wartość, 0,1023,225,0);
funkcja analogRead odczytuje wartość czujnika deszczu. Mapa funkcji odwzorowuje wartość czujnika deszczu ze styku wyjściowego i przypisuje wartość do zmiennej w zakresie od 0 do 225.
if (value> = set) {Serial.println ("wykryto deszcz"); digitalWrite (buzzer, HIGH);
Jeżeli odczytana wartość czujnika jest większa od ustawionej to program wchodzi w pętlę, wyświetla komunikat na monitorze szeregowym i włącza brzęczyk
else {digitalWrite (buzzer, LOW);
Program wchodzi do funkcji else tylko wtedy, gdy wartość jest mniejsza niż ustawiona wartość. Funkcja ta wyłączy brzęczyk, gdy ustawiona wartość jest wyższa niż wartość czujnika, co oznacza, że nie ma deszczu.
Działanie systemu wykrywania deszczu opartego na Arduino
System ten działa w taki sposób, że w przypadku deszczu woda deszczowa działa jak wyzwalacz, który włącza brzęczyk. W kodzie czujnika kropli deszczu Arduino zdefiniowaliśmy, że piny 5 i A0 to brzęczyk i opad. W ten sposób możemy zmienić piny w zdefiniowanej części funkcji, a pozostała część kodu pozostanie nietknięta. Ułatwi to programistę edycję pinów.
W pustej pętli polecenie analogRead odczytuje wartość z czujnika. W następnym wierszu polecenie Serial.println (wartość) wyświetla wartość na monitorze szeregowym. Będzie to pomocne podczas debugowania. Funkcja mapy mapuje przychodzącą wartość z zakresu 0-225. Format funkcji dla mapy to mapa (wartość, wartość minimalna, wartość maksymalna, wartość do zamapowania na wartość minimalną, wartość do zamapowania na wartość maksymalną). Brzęczyk zostanie włączony lub wyłączony, w zależności od ustawionej wartości i wyjścia czujnika. Ta wartość jest porównywana w funkcji if z wartością zadaną. Jeśli wartość jest większa niż ustawiona wartość, włączy brzęczyk. Jeśli wartość jest mniejsza niż ustawiona wartość, brzęczyk zostanie wyłączony.
Pełną pracę można znaleźć w poniższym filmie wideo. Jest to jedno z wielu zastosowań, ta sama zasada będzie widoczna w wycieraczkach przedniej szyby, innych branżach automatyki domowej, rolnictwie itp. Mam nadzieję, że zrozumiałeś projekt i podobało Ci się stworzenie czegoś pożytecznego. Jeśli masz jakieś pytania, skorzystaj z sekcji komentarzy poniżej lub skorzystaj z naszych forów, aby uzyskać odpowiedzi na inne pytania techniczne.