5.8 KiB
Ovládání relé - Wio Terminal
V této části lekce přidáte k Wio Terminalu relé kromě senzoru vlhkosti půdy a budete jej ovládat na základě úrovně vlhkosti půdy.
Hardware
Wio Terminal potřebuje relé.
Použité relé je Grove relé, běžně otevřené relé (to znamená, že výstupní obvod je otevřený nebo odpojený, pokud není reléti poslán signál), které zvládne výstupní obvody až do 250V a 10A.
Jedná se o digitální akční člen, takže se připojuje k digitálním pinům na Wio Terminalu. Kombinovaný analogový/digitální port je již používán senzorem vlhkosti půdy, takže toto relé se připojuje do druhého portu, který je kombinovaný I2C a digitální port.
Připojení relé
Grove relé lze připojit k digitálnímu portu Wio Terminalu.
Úkol
Připojte relé.
-
Zasuňte jeden konec Grove kabelu do zásuvky na relé. Kabel lze zasunout pouze jedním způsobem.
-
S Wio Terminalem odpojeným od počítače nebo jiného zdroje napájení připojte druhý konec Grove kabelu do levé zásuvky Grove na Wio Terminalu, pokud se díváte na obrazovku. Senzor vlhkosti půdy ponechte připojený k pravé zásuvce.
- Zasuňte senzor vlhkosti půdy do půdy, pokud tam již není z předchozí lekce.
Naprogramování relé
Nyní lze Wio Terminal naprogramovat tak, aby používal připojené relé.
Úkol
Naprogramujte zařízení.
-
Otevřete projekt
soil-moisture-sensor
z minulé lekce ve VS Code, pokud již není otevřený. Budete do něj přidávat další kód. -
Pro tento akční člen neexistuje knihovna - jedná se o digitální akční člen ovládaný vysokým nebo nízkým signálem. Pro zapnutí pošlete na pin vysoký signál (3,3V), pro vypnutí nízký signál (0V). To lze provést pomocí vestavěné funkce Arduino
digitalWrite
. Začněte přidáním následujícího kódu na konec funkcesetup
, abyste nastavili kombinovaný I2C/digitální port jako výstupní pin pro odesílání napětí do relé:pinMode(PIN_WIRE_SCL, OUTPUT);
PIN_WIRE_SCL
je číslo portu pro kombinovaný I2C/digitální port. -
Pro otestování, zda relé funguje, přidejte následující kód do funkce
loop
, pod poslednídelay
:digitalWrite(PIN_WIRE_SCL, HIGH); delay(500); digitalWrite(PIN_WIRE_SCL, LOW);
Tento kód pošle na pin připojený k relé vysoký signál, čímž relé zapne, počká 500 ms (půl sekundy) a poté pošle nízký signál, čímž relé vypne.
-
Sestavte a nahrajte kód do Wio Terminalu.
-
Po nahrání se relé bude zapínat a vypínat každých 10 sekund, s půlsekundovým zpožděním mezi zapnutím a vypnutím. Uslyšíte cvaknutí relé při zapnutí a vypnutí. LED dioda na desce Grove se rozsvítí, když je relé zapnuté, a zhasne, když je vypnuté.
Ovládání relé na základě vlhkosti půdy
Nyní, když relé funguje, může být ovládáno na základě hodnot vlhkosti půdy.
Úkol
Ovládejte relé.
-
Smažte 3 řádky kódu, které jste přidali pro testování relé. Nahraďte je následujícím kódem:
if (soil_moisture > 450) { Serial.println("Soil Moisture is too low, turning relay on."); digitalWrite(PIN_WIRE_SCL, HIGH); } else { Serial.println("Soil Moisture is ok, turning relay off."); digitalWrite(PIN_WIRE_SCL, LOW); }
Tento kód kontroluje úroveň vlhkosti půdy ze senzoru vlhkosti půdy. Pokud je hodnota vyšší než 450, relé se zapne, a pokud je nižší než 450, relé se vypne.
💁 Pamatujte, že kapacitní senzor vlhkosti půdy čte nižší hodnoty při vyšší vlhkosti půdy a vyšší hodnoty při nižší vlhkosti.
-
Sestavte a nahrajte kód do Wio Terminalu.
-
Sledujte zařízení přes sériový monitor. Uvidíte, jak se relé zapíná nebo vypíná v závislosti na úrovni vlhkosti půdy. Vyzkoušejte v suché půdě a poté přidejte vodu.
Soil Moisture: 638 Soil Moisture is too low, turning relay on. Soil Moisture: 452 Soil Moisture is too low, turning relay on. Soil Moisture: 347 Soil Moisture is ok, turning relay off.
💁 Tento kód najdete ve složce code-relay/wio-terminal.
😀 Program pro ovládání relé senzorem vlhkosti půdy byl úspěšný!
Prohlášení:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. I když se snažíme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.