5.6 KiB
Controlează un releu - Hardware IoT Virtual
În această parte a lecției, vei adăuga un releu dispozitivului tău IoT virtual, pe lângă senzorul de umiditate a solului, și îl vei controla în funcție de nivelul de umiditate a solului.
Hardware Virtual
Dispozitivul IoT virtual va folosi un releu simulat Grove. Acest lucru menține laboratorul similar cu utilizarea unui Raspberry Pi cu un releu fizic Grove.
Într-un dispozitiv IoT fizic, releul ar fi un releu normal-deschis (ceea ce înseamnă că circuitul de ieșire este deschis sau deconectat atunci când nu este trimis niciun semnal către releu). Un astfel de releu poate gestiona circuite de ieșire de până la 250V și 10A.
Adaugă releul în CounterFit
Pentru a folosi un releu virtual, trebuie să-l adaugi în aplicația CounterFit.
Sarcină
Adaugă releul în aplicația CounterFit.
-
Deschide proiectul
soil-moisture-sensor
din lecția anterioară în VS Code, dacă nu este deja deschis. Vei adăuga la acest proiect. -
Asigură-te că aplicația web CounterFit este pornită.
-
Creează un releu:
-
În caseta Create actuator din panoul Actuators, deschide meniul derulant Actuator type și selectează Relay.
-
Setează Pin la 5.
-
Selectează butonul Add pentru a crea releul pe Pin 5.
Releul va fi creat și va apărea în lista de actuatori.
-
Programează releul
Aplicația senzorului de umiditate a solului poate fi acum programată pentru a folosi releul virtual.
Sarcină
Programează dispozitivul virtual.
-
Deschide proiectul
soil-moisture-sensor
din lecția anterioară în VS Code, dacă nu este deja deschis. Vei adăuga la acest proiect. -
Adaugă următorul cod în fișierul
app.py
, sub importurile existente:from counterfit_shims_grove.grove_relay import GroveRelay
Această instrucțiune importă
GroveRelay
din bibliotecile Grove Python shim pentru a interacționa cu releul virtual Grove. -
Adaugă următorul cod sub declarația clasei
ADC
pentru a crea o instanțăGroveRelay
:relay = GroveRelay(5)
Acest cod creează un releu folosind pinul 5, pinul la care ai conectat releul.
-
Pentru a testa dacă releul funcționează, adaugă următorul cod în bucla
while True:
:relay.on() time.sleep(.5) relay.off()
Codul pornește releul, așteaptă 0,5 secunde, apoi oprește releul.
-
Rulează aplicația Python. Releul se va porni și opri la fiecare 10 secunde, cu o întârziere de jumătate de secundă între pornire și oprire. Vei vedea releul virtual din aplicația CounterFit închizându-se și deschizându-se pe măsură ce releul este pornit și oprit.
Controlează releul în funcție de umiditatea solului
Acum că releul funcționează, acesta poate fi controlat în funcție de citirile senzorului de umiditate a solului.
Sarcină
Controlează releul.
-
Șterge cele 3 linii de cod pe care le-ai adăugat pentru a testa releul. Înlocuiește-le cu următorul cod:
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()
Acest cod verifică nivelul de umiditate a solului de la senzorul de umiditate a solului. Dacă este peste 450, pornește releul, iar dacă scade sub 450, îl oprește.
💁 Reține că senzorul capacitiv de umiditate a solului citește: cu cât nivelul de umiditate a solului este mai mic, cu atât solul este mai umed și invers.
-
Rulează aplicația Python. Vei vedea releul pornindu-se sau oprindu-se în funcție de nivelurile de umiditate a solului. Schimbă setările Value sau Random pentru senzorul de umiditate a solului pentru a vedea cum se schimbă valoarea.
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.
💁 Poți găsi acest cod în folderul code-relay/virtual-device.
😀 Programul tău de control al unui releu cu senzorul virtual de umiditate a solului a fost un succes!
Declinare de responsabilitate:
Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.