- Co je zákal v kapalině?
- Jak měřit zákal pomocí Arduina?
- Komponenty potřebné k výrobě měřiče zákalu
- Přehled senzoru zákalu
- Klíčové vlastnosti modulu zákalu
- Propojovací senzor zákalu s Arduino - obvodové schéma
- Programování Arduina pro měření zákalu ve vodě
Pokud jde o kapaliny, je zákal důležitým termínem. Protože hraje důležitou roli v dynamice kapalin a používá se také k měření kvality vody. V tomto tutoriálu tedy pojďme diskutovat o tom, co je zákal, jak měřit zákal kapaliny pomocí Arduina. Pokud chcete tento projekt posunout dále, můžete také zvážit propojení pH metru s Arduino a také si přečíst hodnotu pH vody, abyste mohli lépe posoudit kvalitu vody. Dříve jsme pomocí ESP8266 také postavili monitorovací zařízení kvality vody založené na IoT, můžete si to v případě zájmu také zkontrolovat. Jak již bylo řečeno, pojďme začít
Co je zákal v kapalině?
Zákal je stupeň nebo úroveň zákalu nebo zakalení kapaliny. K tomu dochází v důsledku přítomnosti velkého množství neviditelných částic (pouhým okem) podobných bílému kouři ve vzduchu. Když světlo prochází kapalinami, světelné vlny se rozptýlí kvůli přítomnosti těchto drobných částic. Zákal kapaliny je přímo úměrný volným suspendovaným částicím, to znamená, že pokud se zvýší počet částic, zákal se také zvýší.
Jak měřit zákal pomocí Arduina?
Jak jsem již zmínil dříve, zákal se děje kvůli rozptylu světelných vln, abychom mohli měřit zákal, měli bychom měřit rozptyl světla. Zákal se obvykle měří v nefelometrických jednotkách zákalu (NTU) nebo Jacksonových zákalech (JTLJ), v závislosti na použité metodě měření. Tyto dvě jednotky jsou zhruba stejné.
Nyní se podívejme, jak funguje senzor zákalu, který má dvě části, vysílač a přijímač. Vysílač se skládá ze zdroje světla, obvykle z LED a budicího obvodu. Na konci přijímače je detektor světla, jako je fotodioda nebo LDR. Roztok umístíme mezi vysílač a přijímač.
Vysílač jednoduše přenáší světlo, že světelné vlny procházejí roztokem a přijímač přijímá světlo. Normálně (bez přítomnosti roztoku) procházející světlo zcela přijímá na straně přijímače. Ale v přítomnosti zakaleného roztoku je množství procházejícího světla velmi nízké. To je na straně přijímače, dostáváme pouze světlo s nízkou intenzitou a tato intenzita je nepřímo úměrná zákalu. Můžeme tedy měřit zákal měřením intenzity světla, pokud je intenzita světla vysoká, roztok je méně zakalený a pokud je intenzita světla velmi nízká, znamená to, že roztok je zakalenější.
Komponenty potřebné k výrobě měřiče zákalu
- Modul zákalu
- Arduino
- 16 * 2 I2C LCD
- Společná katodová RGB LED
- Nepájivá deska
- Propojovací vodiče
Přehled senzoru zákalu
Senzor zákalu použitý v tomto projektu je uveden níže.
Jak vidíte, tento modul senzoru zákalu je dodáván se 3 částmi. Vodotěsné vedení, obvod budiče a připojovací vodič. Zkušební sonda se skládá z vysílače i přijímače.
Obrázek nahoře ukazuje, že tento typ modulu používá IR diodu jako zdroj světla a IR přijímač jako detektor. Princip fungování je však stejný jako dříve. Řídicí část (zobrazená níže) se skládá z operačního zesilovače a některých komponent, které zesilují detekovaný světelný signál.
Skutečný senzor lze k tomuto modulu připojit pomocí konektoru JST XH. Má tři piny, VCC, zem a výstup. Vcc se připojuje k 5V a zem-země. Výstupem tohoto modulu je analogová hodnota, která se mění podle intenzity světla.
Klíčové vlastnosti modulu zákalu
- Provozní napětí: 5VDC.
- Aktuální: 30mA (MAX).
- Provozní teplota: -30 ° C až 80 ° C.
- Kompatibilní s Arduino, Raspberry Pi, AVR, PIC atd.
Propojovací senzor zákalu s Arduino - obvodové schéma
Kompletní schéma připojení senzoru zákalu k Arduinu je uvedeno níže, obvod byl navržen pomocí EasyEDA.
Toto je velmi jednoduché schéma zapojení. Výstup senzoru zákalu je analogový, takže připojený k pinu A0 Arduina, I2C LCD připojený k pinům I2C Arduina, což je SCL na A5 a SDA na A4. Poté se RGB LED připojila k digitálním pinům D2, D3 a D4. Po dokončení připojení vypadá moje nastavení hardwaru níže.
Připojte VCC snímače k Arduino 5v a poté připojte zem k zemi. Výstupní pin senzoru na analogový 0 Arduina. Dále připojte VCC a uzemnění LCD modulu k 5v a uzemnění Arduina. Pak SDA na A4 a SCL na A5, tyto dva piny jsou I2C piny Arduina. Nakonec připojí zem RGB LED k zemi Arduina a připojí zelenou k D3, modrou k D4 a červenou k D5.
Programování Arduina pro měření zákalu ve vodě
V plánu je zobrazit hodnoty zákalu od 0 do 100. To znamená, že měřič by měl zobrazovat 0 pro čistou kapalinu a 100 pro vysoce zakalené. Tento Arduino kód je také velmi jednoduchý a kompletní kód najdete ve spodní části této stránky.
Nejprve jsem zahrnul knihovnu I2C z tekutých krystalů, protože k minimalizaci připojení používáme I2C LCD.
# zahrnout
Pak jsem nastavil celé číslo pro vstup senzoru.
int sensorPin = A0;
V sekci nastavení jsem definoval piny.
pinMode (3, VÝSTUP); pinMode (4, VÝSTUP); pinMode (5, VÝSTUP);
V části smyčky, jak jsem již zmínil, je výstup snímače analogová hodnota. Musíme si tedy tyto hodnoty přečíst. Pomocí funkce Arduino AnalogRead můžeme číst výstupní hodnoty v sekci smyčky.
int sensorValue = analogRead (sensorPin);
Nejprve musíme pochopit chování našeho senzoru, což znamená, že musíme přečíst minimální a maximální hodnotu senzoru zákalu. tuto hodnotu můžeme přečíst na sériovém monitoru pomocí funkce serial.println .
Chcete-li získat tyto hodnoty, nejprve si volně přečtěte senzor, který je bez jakéhokoli řešení. Získal jsem hodnotu kolem 640 a poté umístil černou látku mezi vysílač a přijímač, dostaneme hodnotu, která je minimální hodnotou, obvykle je tato hodnota nula. Takže jsme dostali 640 jako maximum a nulu jako minimum. Nyní musíme převést tyto hodnoty na 0-100
Za to, že jsem použil mapu funkci Arduino.
int turbidita = mapa (sensorValue, 0,640, 100, 0);
Poté jsem tyto hodnoty zobrazil na LCD displeji.
lcd.setCursor (0, 0); lcd.print ("zákal:"); lcd.print (""); lcd.setCursor (10, 0); lcd. tisk (zákal);
Poté jsem s pomocí podmínek if dal jiné podmínky.
if (zákal <20) { digitalWrite (2, HIGH); digitalWrite (3, LOW); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("jeho VYMAZAT"); }
Tím se aktivuje zelená LED dioda a na LCD se zobrazí „jeho jasné“, pokud je hodnota zákalu pod 20.
if ((zákal> 20) && (zákal <50)) { digitalWrite (2, LOW); digitalWrite (3, HIGH); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print („jeho CLOUDY“); }
Tím se aktivuje modrá LED dioda a na LCD se zobrazí „its cloudy“, pokud je hodnota zákalu mezi 20 a 50.
if ((zákal> 50) { digitalWrite (2, LOW); digitalWrite (3, HIGH); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("its DIRTY"); }
Tím se aktivuje červená LED dioda a na LCD se zobrazí „je to špinavé“, pokud je hodnota zákalu větší než 50, jak je uvedeno níže.
Postupujte podle schématu zapojení a nahrajte kód. Pokud vše půjde správně, měli byste být schopni měřit zákal vody a na LCD displeji by se měla zobrazovat kvalita vody, jak je uvedeno výše.
Mějte na paměti, že tento měřič zákalu zobrazuje procento zákalu a nemusí to být přesná průmyslová hodnota, ale stále jej lze použít k porovnání kvality vody u dvou vod. Kompletní fungování tohoto projektu najdete ve videu níže. Doufám, že se vám výukový program líbil a dozvěděli jste se něco užitečného, pokud máte nějaké dotazy, můžete je zanechat v sekci komentářů níže nebo použít fóra CircuitDigest pro zveřejnění vašich technických otázek nebo zahájit příslušnou diskusi.