IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

15. diel - Raspberry Pi - Vodné čerpadlo

V predchádzajúcej lekcii, Raspberry Pi - Dotykový displej , sme si k Raspberry Pi pripojili dotykový displej.

Dnes k nášmu Raspberry Pi pripojíme vodné čerpadlo. Napíšeme si k tomu jednoduchý kód, ktorý bude čerpadlo ovládať a povieme si ako funguje. Ako už mnohokrát predtým tu ukážem vlastné zapojenie a schému zapojenia vytvorené pomocou Fritzing.

Potrebné súčiastky

Na úspešné zapojenie budeme potrebovať:

.<> Raspberry Pi

Pokiaľ sa vám rovnako ako mne rozbilo relé, nezúfajte. Je možné namiesto neho použiť aj h-bridge. Viac o tom ako zapojiť h-bridge nájdete v predchádzajúcej lekcii.

Ako funguje čerpadlo

Mini ponorné vodné čerpadlo je odstredivé vodné čerpadlo, čo znamená, že používa motor na pohon obežného kolesa, ktoré je navrhnuté tak, aby rotovalo a vytláčalo vodu smerom von. Motor je umiestnený vo vodotesnom tesnení a spojený s telom vodného čerpadla, ktoré poháňa. Elektronickou časťou čerpadla je teda motor. Z toho dôvodu môžeme pripojiť (rovnako ako motor) čerpadlo na zdroj napájania, a bude fungovať. V takom prípade ho ale nemôžeme ovládať.

Ako funguje relé

Relé je elektromagnetický spínač ovládaný nízkym elektrickým prúdom, ktorý môže zapnúť alebo vypnúť oveľa vyšší elektrický prúd. Srdcom relé je elektromagnet (cievka drôtu, ktorá sa stáva dočasným magnetom, keď ním prechádza elektrina).

Relé si môžeme predstaviť ako „elektrickú páku“. Zapneme ho malým prúdom a ono zopne iný spotrebič s oveľa väčším prúdom. Samotné relé zahŕňa dva obvody: napájací obvod a kontaktný obvod. Cievka je na strane napájania, a kontakty na kontaktnej strane.

Keď je cievka relé pod napätím, tok prúdu cievkou vytvára magnetické pole. Magnetická cievka priťahuje železnú dosku, ktorá je súčasťou kotvy. Jeden koniec kotvy je pripevnený ku kovovému rámu, ktorý je vytvorený tak, aby sa kotva mohla otáčať, zatiaľ čo druhý koniec otvára a zatvára kontakty. Kontakty sa dodávajú v rade rôznych konfigurácií v závislosti od počtu prerušení, pólov a hodov, ktoré tvoria relé.

Zapojenie čerpadla

Zapojenie čerpadla bude trochu zložitejšie. Samotné čerpadlo rovnako ako mnoho motorov potrebuje vlastné napájanie. Na jeho ovládanie je namiesto h-mostíka potrebné relé. Naše čerpadlo má iba plus a mínus. Relé má na jednej strane tri piny a na druhej strane tri skrutkovacie zdierky.

Mínus čerpadla zapojíme do mínusu externého napájania a do jednej zo zdierok na relé. Plus externého napájania zapojíme taktiež do jednej zo zdierok relé. Zdroj napájania a čerpadlo máme teda zapojené.

Zostáva nám ešte zapojiť relé. Z druhej strany relé oproti zdierkam máme tri piny. Jeden je označený "+/vcc". Tento pin spojíme s "5v" pinom na Raspberry Pi. Druhý pin má označenie "-/gnd". Ten spojíme s GND na našom Raspberry Pi. Nakoniec posledný pin je ten, cez ktorý budeme relé a čerpadlo ovládať. Ten zapojíme do GPIO18 (možno zapojiť do akéhokoľvek GPIO portu).

Raspberry Pi

Programová časť

Poďme si skúsiť čerpadlo ovládať. Napíšeme si jednoduchý program, ktorému nastavíme, aby v určitý čas čerpadlo zapol a hneď zase vypol.

Import knižníc

Prvé musíme importovať knižnice. Dnes budeme potrebovať tri knižnice:

  • GPIO knižnicu
  • time knižnicu
  • a datetime knižnicu.
Prvé dve knižnice už celkom dobre poznáme. Knižnica GPIO nám umožňuje pracovať s GPIO portami. time nám potom umožňuje napríklad pozastaviť program v bode, v ktorom práve je, na určitý čas. Tretiu knižnicu budeme používať na zistenie aktuálneho času:
import RPi.GPIO as GPIO
import time
from datetime import datetime

Knižnica datetime (ako názov napovedá) poskytuje všetky informácie týkajúce sa dátumu a času. Pomocou tejto knižnice môžeme napríklad zisťovať aktuálny čas v rôznych pásmach alebo iba zistiť aktuálny dátum.

Nekonečná slučka

Vytvoríme si nekonečnú slučku while. Do tejto zložky vložíme prvú premennú cas, v ktorej sa bude ukladať aktuálny čas.

while True:

Podmienka

V slučke while si urobíme podmienku if, ktorá bude porovnávať aktuálny čas s nami nastaveným časom.

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()

Vysvetlime si, čo hovorí kód vyššie. Pokiaľ bude zadaná podmienka splnená, stane sa, že:

  • Funkcia GPIO.setmomode() bude nastavená na BCM.
  • Funkcia GPIO.setup() sa nastaví na náš port a na OUT. Nastavenie OUT znamená, že my budeme posielať dáta do senzora, a nie prijímať dáta od neho.
  • Potom nastavíme prvý GPIO.output na LOW. V čerpadle sa spustí motor a voda pôjde von.
  • Použijeme funkciu time.sleep(), aby sa motor pozastavil v stave LOW na 1 sekundu.
  • Potom funkciu GPIO.output() prenastavíme na HIGH.
  • Nakoniec použijeme funkciu GPIO.clenup(), aby sme uvoľnili GPIO port a mohli ho znova používať.
Sleep

Slučka musí končiť ďalšou funkciou time.sleep(). Tentoraz ale na celú minútu (60 sekúnd) aby sme zamedzili tomu, aby sa podmienka vykonávala stále dookola:

time.sleep(60)

Vysvetlenie

Program bude dookola porovnávať aktuálny čas s časom, ktorý sme nastavili. Keď tento čas nastane, program spustí čerpadlo. Po spustení bude čerpadlo chvíľu prepúšťať vodu. Po stanovenom čase sa vypne a potom sa program uspí na zvyšok minúty, aby sa do konca minúty už čerpadlo nemohlo spustiť. Po skončení spánku začne opäť porovnávať aktuálny čas s časom ktorý sme 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)

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

V ďalšej lekcii, Raspberry Pi - Pripojenie kamery , si k Raspberry Pi pripojíme kameru.


 

Predchádzajúci článok
Raspberry Pi - Dotykový displej
Všetky články v sekcii
Raspberry Pi
Preskočiť článok
(neodporúčame)
Raspberry Pi - Pripojenie kamery
Článok pre vás napísal Aleš Hlavín
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Raspberry
Aktivity