Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

12. diel - Raspberry pi - Senzor vlhkosti pôdy

V predchádzajúcej lekcii, Raspberry Pi - Membránová klávesnica 4x4 , sme si k Raspberry Pi pripojili membránovú klávesnicu 4x4.

Dnes sa pozrieme na pripojenie senzora vlhkosti pôdy k nášmu Raspberry Pi, pozrieme sa na rôzne spôsoby zapojenia a ako naprogramovať aplikáciu, ktorá nás bude upozorňovať na potrebu zvlhčenia pôdy.

Schéma zapojenia bola vytvorená pomocou Fritzing.

Potrebné súčiastky

Na úspešné zapojenie budeme potrebovať:

  • Raspberry Pi
  • senzor vlhkosti pôdy ( napr. tento senzor
  • pri najlepšom nepájivé pole a niekoľko drôtikov, prípadne iba drôtiky
bonus :
Raspberry Pi

Ako funguje senzor vlhkosti pôdy?

Senzor meria vlhkosť pôdy na základe elektrickej vodivosti zeme. Odpor pôdy sa zvyšuje spolu so vzduchom. Keď je v pôde veľké množstvo vody, pôda má väčšiu elektrickú vodivosť a odpor je menší. Na senzore sa nachádzajú dve elektródy. Elektrický odpor sa meria práve medzi týmito elektródami. Komparátor aktivuje digitálny výstup, keď je prekročená nastaviteľná prahová hodnota. Komparátor je väčšinou k senzoru pripojený pomocou dvoch káblov. Z neho potom vychádzajú 3 alebo 4. Komparátor je malá doštička (väčšinou dodávaná spolu so senzorom), ktorá umožňuje dostávať zo senzora dáta buď analógovo alebo digitálne.

Zapojenie senzora vlhkosti pôdy

Pri zapojení je dôležitý typ komparátora. Náš komparátor má 4 piny, a to AO, DO, VCC a GND. Tento typ je možné zapojiť ako analógovo tak digitálne.

AO – analógový (A nalog O utput) DO – digitálny (D igital O utput)

Analógový pin môžeme pripojiť iba na analógový pin, avšak digitálny pin môžeme pripojiť na akýkoľvek pin. Raspberry Pi nemá analógové piny, preto na použitie senzora s AO bude potrebné ADC. Použitie analógového portu pri analógovom senzore má tú výhodu, že z neho je možné dostávať viac presné dáta. Z digitálneho portu budeme dostávať čisto 1 alebo 0.

Tentoraz budeme mať dva nákresy. Jeden s použitím analógového portu s prevodníkom, druhý s použitím digitálneho portu bez prevodníka.

ADC

Na chvíľu sa ešte pozastavíme pri ADC (A nalog-to-Digital C onverter), v slovenčine AD prevodník. Ako z názvu vyplýva, prevádza signál analógový na digitálny signál. U Arduino UNO dosky máme zabudovaných 5 analógových portov, na doske Raspberry Pi však nie je ani jeden. Preto jedinou možnosťou, ktorú máme, keby sme chceli prekladať AD signál, je tento prevodník.

AD prevodník však sám o sebe nefunguje. Je k nemu potrebná špeciálna knižnica a prekladač analógového signálu na volty. AD prevodník nám totiž nevyhodí hodnotu vo voltoch ale iba čísla v rozmedzí zhruba 0-25000. My si dnes ukážeme ako vypisovať iba výstup AD, pretože je z môjho pohľadu oveľa lepšie využiteľný ako výstup preložený.

Raspberry Pi

Zapojenie DO

Digitálne zapojenie je jednoduché stačí iba zapojiť GND do GND na Raspberry Pi, VCC do 3,3 V a DO do jedného z portov GPIO.

Zapojenie AO

Analógové zapojenie bude trochu zložitejšie. Musíme si pripraviť náš AD prevodník. Vezmeme si napr. prevodník ADS1115. Prevodník má klasicky VDD, GND ktoré zapojíte do 3,3 V a GND na Raspberry Pi. Ďalej SDA pripojíme k GPIO portu 2 (SDA port) a SCL pripojíme k GPIO portu 3 (SCL port). Nakoniec pri senzore vlhkosti zapojíme VCC do 3,3 V a GND do GND na Raspberry Pi. Zmena potom nastane po zapojení AO. To zapojíme do jedného z analógových portov prevodníka (napr. A0):

Raspberry Pi

Ako vidíte na schéme, senzor vlhkosti pôdy má možnosť zapojenia ako AO tak DO.

Programová časť

Zapojenie aj programy budú dnes dva. Zapojenie aj program pre každé zapojenie vyššie.

DO program

DO program je veľmi jednoduchý jediné čo bude zbierať tak true alebo false, a podľa toho vyhodnocovať, či je v pôde dosť vody alebo nie:

import RPi.GPIO as GPIO
import time
port = 4
GPIO.setmode(GPIO.BCM)
GPIO.setup(port, GPIO.IN)

def vyhodnoceni(port):
        if GPIO.input(port):
                print "potřebuji vodu"
        else:
                print "mám dost vody"

Prvé dva riadky už poznáme z predchádzajúcich lekcií, je to import dôležitých knižníc. Ako vždy to budú GPIO a time. Ďalej si potom vytvoríme premennú port a nastavíme jej hodnotu 4 (číslo GPIO portu BCM). GPIO mode si nastavíme na BCM. Do GPIO setup si dáme na prvé miesto port a na druhé GPIO.IN, aby port prijímal vstup (input) zvonku (aby sme od senzora dostávali vstup práve 1 alebo 0).

Nakoniec si vytvoríme funkciu vyhodnoceni() s premennou port vo vnútri. Vo funkcii vyhodnoceni() máme podmienku if ktorá čaká na vstup z portu GPIO. Keď senzor bude mať málo vody, vypíše 1 (true). Podmienka sa vyhodnotí ako vstup a vypíše potřebuji vodu. V opačnom prípade sa vykoná else kde je výpis mám dost vody.

AO program

AO program vyžaduje pár špeciálnych krokov. V základe sa ale jedná o podobný kód. Teraz však vyhodnocujeme, či senzor prekročil alebo neprekročil určitú hodnotu.

Najprv si musíme nainštalovať knižnicu požadovanú naším prevodníkom. To urobíme pomocou príkazu:

sudo pip3 install adafruit_ads1x15

Keď máme knižnicu nainštalovanú, môžeme začať písať kód. Kód bude vyzerať nasledovne:

import Adafruit_ADS1x15
adc = Adafruit_ADS1x15.ADS1115()
nastaveni= 1
hodnota = adc.read_adc(0, gain=nastaveni)
if hodnota<15000:
    print("mám dost vody")
else:
    print("potřebuji vodu")

V prvej časti si importujeme nainštalovanú knižnicu adafruit. Ďalej si ju uložíme do premennej adc. Vytvoríme si premennú nastaveni ktorá nám bude nastavovať citlivosť prevodníka. Do premennej hodnota potom zapíšeme pomocou adc.read_adc - príkaz povie knižnici adc aby čítala na porte 0 s gain nastavenom pomocou premennej nastaveni.

Práve gain určuje rozsah citlivosti senzora vo Voltoch. Napr: 1 = rozsah od 4V do -4V. Nakoniec si pomocou podmienok určíme výpis programu. Keď premenná hodnota je menšia ako 15000, program vypíše text pod if, else vypíše iný text:

Raspberry Pi

Verím, že sa vám pripojenie a nakódovanie senzora vlhkosti pôdy podarilo. Svoje dojmy a prípadné otázky môžete zanechať v diskusii pod článkom 🙂

V ďalšej lekcii, Pestrý šatník Raspberry Pi - Prehľad HAT modulov , sa trochu neobvykle budeme rozprávať o všetkých zaujímavých klobúkoch (HAT) pre naše Raspberry Pi.


 

Predchádzajúci článok
Raspberry Pi - Membránová klávesnica 4x4
Všetky články v sekcii
Raspberry Pi
Preskočiť článok
(neodporúčame)
Pestrý šatník Raspberry Pi - Prehľad HAT modulov
Článok pre vás napísal Aleš Hlavín
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Raspberry
Aktivity