Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 15 - Raspberry Pi - Vodní čerpadlo

V předchozí lekci, Raspberry Pi - Dotykový displej, jsme si k Raspberry Pi připojili dotykový displej.

Dnes k našemu Raspberry Pi připojíme vodní čerpadlo. Napíšeme si k tomu jednoduchý kód, který bude čerpadlo ovládat a řekneme si, jak funguje. Jako už mnohokrát předtím zde ukáži vlastní zapojení a schéma zapojení vytvořené pomocí Fritzing.

Potřebné součástky

K úspěšnému zapojení budeme potřebovat:

  • Raspberry Pi
  • vodní čerpadlo (lze koupit zde)
  • relé (lze koupit zde)
  • napájecí zdroj pro čerpadlo
  • přinejlepším nepájivé pole a několik drátků, případně pouze drátky
Raspberry Pi

Pokud se vám stejně jako mně rozbilo relé, nezoufejte. Lze místo něj použít i h-bridge. Více o tom jak zapojit h-bridge naleznete v předchozí lekci.

Jak funguje čerpadlo

Mini ponorné vodní čerpadlo je odstředivé vodní čerpadlo, což znamená, že používá motor k pohonu oběžného kola, které je navrženo tak, aby rotovalo a vytlačovalo vodu směrem ven. Motor je umístěn ve vodotěsném těsnění a je spojen s tělem vodního čerpadla, které pohání. Elektronickou částí čerpadla je tedy motor. Z toho důvodu můžeme připojit (stejně jako motor) čerpadlo na zdroj napájení a bude fungovat. V takovém případě ho ale nemůžeme ovládat.

Jak funguje relé

Relé je elektromagnetický spínač ovládaný nízkým elektrickým proudem, který může zapnout nebo vypnout mnohem vyšší elektrický proud. Srdcem relé je elektromagnet (cívka drátu, která se stává dočasným magnetem, když jím prochází elektřina).

Relé si můžeme představit jako "elektrickou páku". Zapneme jej malým proudem a ono sepne jiný spotřebič s mnohem větším proudem. Samotné relé zahrnuje dva obvody: napájecí obvod a kontaktní obvod. Cívka je na straně napájení a kontakty na kontaktní straně.

Když je cívka relé pod napětím, tok proudu cívkou vytváří magnetické pole. Magnetická cívka přitahuje železnou desku, která je součástí kotvy. Jeden konec kotvy je připevněn ke kovovému rámu, který je vytvořen tak, aby se kotva mohla otáčet, zatímco druhý konec otevírá a zavírá kontakty. Kontakty se dodávají v řadě různých konfigurací v závislosti na počtu přerušení, pólů a hodů, které tvoří relé.

Zapojení čerpadla

Zapojení čerpadla bude trochu složitější. Samotné čerpadlo stejně jako mnoho motorů potřebuje vlastní napájení. K jeho ovládání je místo h-můstku potřeba relé. Naše čerpadlo má pouze plus a minus. Relé má na jedné straně tři piny a na druhé straně tři šroubovací zdířky.

Minus čerpadla zapojíme do minusu externího napájení a do jedné ze zdířek na relé. Plus externího napájení zapojíme taktéž do jedné ze zdířek relé. Zdroj napájení a čerpadlo máme tedy zapojené.

Zbývá nám ještě zapojit relé. Z druhé strany relé naproti zdířkám máme tři piny. Jeden je označen "+/vcc". Tento pin spojíme s "5v" pinem na Raspberry Pi. Druhý pin má označení "-/gnd". Ten spojíme s GND na našem Raspberry Pi. Nakonec poslední pin je ten, přes který budeme relé a čerpadlo ovládat. Ten zapojíme do GPIO18 (lze zapojit do jakéhokoliv GPIO portu).

Raspberry Pi

Programová část

Pojďme si zkusit čerpadlo ovládat. Napíšeme si jednoduchý program, kterému nastavíme, aby v určitý čas čerpadlo zapnul a hned zase vypnul.

Import knihoven

První musíme importovat knihovny. Dnes budeme potřebovat tři knihovny:

  • GPIO knihovnu
  • time knihovnu
  • a datetime knihovnu.

První dvě knihovny už docela dobře známe. Knihovna GPIO nám umožňuje pracovat s GPIO porty. time nám pak umožňuje například pozastavit program v bodě, ve kterém zrovna je, na určitý čas. Třetí knihovnu budeme používat na zjištění aktuálního času:

import RPi.GPIO as GPIO
import time
from datetime import datetime

Knihovna datetime (jak název napovídá) poskytuje všechny informace týkající se data a času. Pomocí této knihovny můžeme například zjišťovat aktuální čas v různých pásmech nebo pouze zjistit aktuální datum.

Nekonečná smyčka

Vytvoříme si nekonečnou smyčku while. Do této složky vložíme první proměnnou cas, ve které se bude ukládat aktuální čas.

while True:

Podmínka

Ve smyčce while si uděláme podmínku if, která bude porovnávat aktuální čas s námi nastaveným časem.

cas = datetime.now()
    if cas.hour == 15 and cas.minute == 15:
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(18, GPIO.OUT)
        GPIO.output(18, GPIO.LOW)
        time.sleep(1)
        GPIO.output(18, GPIO.HIGH)
        GPIO.cleanup()

Vysvětleme si, co říká kód výše. Pokud bude zadaná podmínka splněna, stane se, že:

  • Funkce GPIO.setmomode() bude nastavena na BCM.
  • Funkce GPIO.setup() se nastaví na náš port a na OUT. Nastavení OUT znamená, že my budeme posílat data do senzoru a ne přijímat data od něj.
  • Poté nastavíme první GPIO.output na LOW. V čerpadle se spustí motor a voda půjde ven.
  • Použijeme funkci time.sleep(), aby se motor pozastavil ve stavu LOW na 1 sekundu.
  • Poté funkci GPIO.output() přenastavíme na HIGH.
  • Nakonec použijeme funkci GPIO.clenup(), abychom uvolnili GPIO port a mohli ho znovu používat.

Sleep

Smyčka musí končit další funkcí time.sleep(). Tentokrát ale na celou minutu (60 sekund), abychom zamezili tomu, aby se podmínka prováděla stále dokola:

time.sleep(60)

Vysvětlení

Program bude dokola porovnávat aktuální čas s časem, který jsme nastavili. Když tento čas nastane, program spustí čerpadlo. Po spuštění bude čerpadlo chvíli propouštět vodu. Po stanoveném čase se vypne a pak se program uspí na zbytek minuty, aby se do konce minuty už čerpadlo nemohlo spustit. Po skončení spánku začne opět porovnávat aktuální čas s časem, který jsme nastavili:

Celý kód :

import RPi.GPIO as GPIO
import time
from datetime import datetime
while True:
    cas = datetime.now()
    if cas.hour == 15 and cas.minute == 15:
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(18, GPIO.OUT)
        GPIO.output(18, GPIO.LOW)
        time.sleep(1)
        GPIO.output(18, GPIO.HIGH)
        GPIO.cleanup()
        time.sleep(60)

Věřím, že se vám připojení a nakódování čerpadla podařilo. Své dojmy a případné dotazy můžete zanechat v diskusi pod článkem 🙂

V další lekci, Raspberry Pi - Připojení kamery, si k Raspberry Pi připojíme kameru.


 

Předchozí článek
Raspberry Pi - Dotykový displej
Všechny články v sekci
Raspberry Pi
Přeskočit článek
(nedoporučujeme)
Raspberry Pi - Připojení kamery
Článek pro vás napsal Aleš Hlavín
Avatar
Uživatelské hodnocení:
4 hlasů
Raspberry
Aktivity