5.6 KiB
Relé vezérlése - Virtuális IoT hardver
A lecke ezen részében egy relét fogsz hozzáadni a virtuális IoT eszközödhöz a talajnedvesség-érzékelő mellett, és a talajnedvesség szintje alapján vezérled azt.
Virtuális hardver
A virtuális IoT eszköz egy szimulált Grove relét fog használni. Ez a labor ugyanúgy működik, mintha egy Raspberry Pi-t használnál fizikai Grove relével.
Egy fizikai IoT eszközben a relé egy alapállapotban nyitott relé lenne (ami azt jelenti, hogy a kimeneti áramkör nyitott, vagyis nincs összekapcsolva, ha nem érkezik jel a reléhez). Egy ilyen relé akár 250V és 10A kimeneti áramköröket is képes kezelni.
Relé hozzáadása a CounterFit-hez
Ahhoz, hogy virtuális relét használj, hozzá kell adnod azt a CounterFit alkalmazáshoz.
Feladat
Add hozzá a relét a CounterFit alkalmazáshoz.
-
Nyisd meg a
soil-moisture-sensor
projektet az előző leckéből a VS Code-ban, ha még nincs megnyitva. Ehhez a projekthez fogsz hozzáadni. -
Győződj meg róla, hogy a CounterFit webalkalmazás fut.
-
Hozz létre egy relét:
-
Az Actuators panel Create actuator mezőjében nyisd le az Actuator type mezőt, és válaszd ki a Relay opciót.
-
Állítsd a Pin értékét 5-re.
-
Kattints az Add gombra, hogy létrehozd a relét az 5-ös lábon.
A relé létrejön, és megjelenik az aktuátorok listájában.
-
A relé programozása
Most már programozhatod a talajnedvesség-érzékelő alkalmazást, hogy használja a virtuális relét.
Feladat
Programozd a virtuális eszközt.
-
Nyisd meg a
soil-moisture-sensor
projektet az előző leckéből a VS Code-ban, ha még nincs megnyitva. Ehhez a projekthez fogsz hozzáadni. -
Add hozzá a következő kódot az
app.py
fájlhoz a meglévő importok alá:from counterfit_shims_grove.grove_relay import GroveRelay
Ez az utasítás importálja a
GroveRelay
osztályt a Grove Python shim könyvtárakból, hogy kapcsolatba léphess a virtuális Grove relével. -
Add hozzá a következő kódot az
ADC
osztály deklarációja alá, hogy létrehozz egyGroveRelay
példányt:relay = GroveRelay(5)
Ez létrehoz egy relét az 5-ös lábon, amelyhez a relét csatlakoztattad.
-
Annak teszteléséhez, hogy a relé működik-e, add hozzá a következő kódot a
while True:
ciklusba:relay.on() time.sleep(.5) relay.off()
A kód bekapcsolja a relét, vár 0,5 másodpercet, majd kikapcsolja.
-
Futtasd a Python alkalmazást. A relé 10 másodpercenként be- és kikapcsol, fél másodperces késleltetéssel a be- és kikapcsolás között. A CounterFit alkalmazásban látni fogod, ahogy a virtuális relé záródik és nyílik, amikor a relé be- és kikapcsol.
A relé vezérlése a talajnedvesség alapján
Most, hogy a relé működik, vezérelheted azt a talajnedvesség-érzékelő mérései alapján.
Feladat
Vezéreld a relét.
-
Töröld a 3 sort, amelyet a relé teszteléséhez adtál hozzá. Helyettesítsd őket a következő kóddal:
if soil_moisture > 450: print("Soil Moisture is too low, turning relay on.") relay.on() else: print("Soil Moisture is ok, turning relay off.") relay.off()
Ez a kód ellenőrzi a talajnedvesség-érzékelő által mért szintet. Ha az 450 fölé emelkedik, bekapcsolja a relét, és kikapcsolja, ha 450 alá csökken.
💁 Ne feledd, hogy a kapacitív talajnedvesség-érzékelőnél minél alacsonyabb az érték, annál több nedvesség van a talajban, és fordítva.
-
Futtasd a Python alkalmazást. Látni fogod, hogy a relé be- vagy kikapcsol a talajnedvesség szintjétől függően. Módosítsd a talajnedvesség-érzékelő Value vagy Random beállításait, hogy lásd az érték változását.
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.
💁 Ezt a kódot megtalálod a code-relay/virtual-device mappában.
😀 A virtuális talajnedvesség-érzékelővel vezérelt relé programod sikeres volt!
Felelősség kizárása:
Ez a dokumentum az AI fordítási szolgáltatás Co-op Translator segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy téves értelmezésekért.