Senzor hladiny dešťové vody je rozšiřovací modul pro Arduino. Tento modul je tvořen deskou plošných spojů, na které se nachází detekční vodivé proužky a pomocné součástky. Při použití je pak detekována voda, která se objeví na zmíněných detekčních proužcích.
Pro napájení lze použít napětí v rozsahu 3,3 – 5 V. Proudový odběr se pohybuje v jednotkách miliampér, maximálně 20 mA. Provozní teplota je doporučena v rozsahu 10-30 °C. A rozměry celého modulu jsou 62x20 mm.
Pro úspěšné propojení senzoru deště a Arduino desky stačí zapojit celkem 3 vodiče. Propojíme „S“ s pinem A0, „+“ s pinem D4 a „-“ se zemí Arduina. Pro pin „+“ je možné vybrat jiný digitální pin a pro pin „S“ je možné vybrat jiný analogový pin, ale je nutné tuto volbu provést také na začátku programu.
Ukázkový kód obsahuje na svém začátku nastavení propojovacích pinů a vytvoření proměnné, do které je ukládán čas poslední kontroly.
V podprogramu setup v prvním kroku zahájíme komunikaci po sériové lince a následně nastavíme napájecí pin jako výstupní.
Nekonečná smyčka loop má na začátku v komentáři uvedené místo, v kterém můžeme vykonávat ostatní příkazy programu. Kontrola deště je následně volána každých 1000 ms (1 sekunda) a zpracování této kontroly trvá velice krátký čas. Pokud je tedy rozdíl aktuálního času od spuštění a uloženého času větší jak 1 sekunda, provedeme následující příkazy.
Jako první zapneme pomocí napájecího pinu modul se senzorem a po krátké pauze načteme hodnoty z analogového pinu do proměnné. Následně vypneme napájení pro modul a vypíšeme na sériovou linku načtenou hodnotu. Poté je ještě v programu uvedena detekce překročení námi dané hranice. Já jsem zde zvolil hodnotu 512, která odpovídá polovině měřícího rozsahu. Při překročení této hranice vypíšeme po sériové lince ještě dodatek o překročení hranice. Posledním krokem kontroly je uložení aktuálního času do proměnné, abychom mohli další kontrolu zahájit opět po uběhnutí jedné sekundy.
// Arduino senzor dešťové vody // nastavení propojovacích pinů #define pinAnalog A0 #define pinNapajeni 4 // proměnná pro uložení času poslední kontroly unsigned long ulozenyCas = 0; void setup() { // zahájení komunikace po sériové lince // rychlostí 9600 baud Serial.begin(9600); // nastavení napájecího pinu jako výstup pinMode(pinNapajeni, OUTPUT); } void loop() { // místo pro zbytek programu // ... // každých 1000 ms provedeme kontrolu if (millis() - ulozenyCas > 1000) { // zapnutí napájení pro modul s krátkou pauzou digitalWrite(pinNapajeni, HIGH); delay(1); // načtení hodnoty z analogového pinu do proměnné int analog = analogRead(pinAnalog); // vypnutí napájení pro modul digitalWrite(pinNapajeni, LOW); // vytištění informace o analogovém vstupu Serial.print("Analogovy vstup: "); Serial.println(analog); // při překročení nastavené hladiny // vytiskni varovnou hlášku if (analog > 512) { Serial.println("Prekrocena nastavena hranice - detekovan dest!"); } // uložení aktuálního času pro následující kontrolu ulozenyCas = millis(); } }
Po nahrání ukázkového kódu do Arduino desky s připojeným senzorem deště dostaneme například tento výsledek po zamokření detekčních proužků:
Analogovy vstup: 0 Analogovy vstup: 0 Analogovy vstup: 552 Prekrocena nastavena hranice - detekovan dest! Analogovy vstup: 608 Prekrocena nastavena hranice - detekovan dest! Analogovy vstup: 605 Prekrocena nastavena hranice - detekovan dest! Analogovy vstup: 462
Senzor hladiny dešťové vody pro Arduino je zajímavý rozšiřovací modul, které umožňuje vytvořit s Arduinem detektor vody. Hodí se tedy do projektů jako je například automatické zapínání stěrače oken, detektor deště a další. V ukázce jsem záměrně použil pouze krátké zapínání napájení pro modul v průběhu měření, protože při stálém napájení má modul nejen zbytečně vysoký proudový odběr, ale také se snižuje životnost detekčních vodivých proužků. A při venkovním použití bychom také měli správně zaizolovat část modulu s pomocnými součástkami.
Seznam použitých komponent:
https://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
https://dratek.cz/arduino/1264-senzor-hladiny-destove-vody-pro-arduino-1459973768.html