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.

Senzor hladiny dešťové vody pro Arduino

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.

Schéma zapojení Senzoru hladiny dešťové vody pro Arduino

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

FB tw

Další podobné články