You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/fa/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md

7.3 KiB

کنترل یک رله - سخت‌افزار مجازی IoT

در این بخش از درس، شما یک رله به دستگاه IoT مجازی خود اضافه خواهید کرد، علاوه بر سنسور رطوبت خاک، و آن را بر اساس سطح رطوبت خاک کنترل خواهید کرد.

سخت‌افزار مجازی

دستگاه IoT مجازی از یک رله شبیه‌سازی‌شده Grove استفاده خواهد کرد. این کار باعث می‌شود این آزمایش مشابه استفاده از Raspberry Pi با یک رله فیزیکی Grove باشد.

در یک دستگاه IoT فیزیکی، رله معمولاً یک رله باز معمولی است (به این معنی که مدار خروجی باز یا قطع است زمانی که هیچ سیگنالی به رله ارسال نمی‌شود). چنین رله‌ای می‌تواند مدارهای خروجی تا 250 ولت و 10 آمپر را مدیریت کند.

افزودن رله به CounterFit

برای استفاده از یک رله مجازی، باید آن را به برنامه CounterFit اضافه کنید.

وظیفه

رله را به برنامه CounterFit اضافه کنید.

  1. پروژه soil-moisture-sensor از درس قبلی را در VS Code باز کنید اگر هنوز باز نشده است. شما به این پروژه اضافه خواهید کرد.

  2. مطمئن شوید که برنامه وب CounterFit در حال اجرا است.

  3. یک رله ایجاد کنید:

    1. در کادر Create actuator در پنل Actuators، از منوی کشویی Actuator type گزینه Relay را انتخاب کنید.

    2. مقدار Pin را روی 5 تنظیم کنید.

    3. دکمه Add را انتخاب کنید تا رله روی پین 5 ایجاد شود.

    تنظیمات رله

    رله ایجاد خواهد شد و در لیست محرک‌ها ظاهر می‌شود.

    رله ایجاد شده

برنامه‌نویسی رله

اکنون می‌توان برنامه سنسور رطوبت خاک را برای استفاده از رله مجازی برنامه‌ریزی کرد.

وظیفه

دستگاه مجازی را برنامه‌ریزی کنید.

  1. پروژه soil-moisture-sensor از درس قبلی را در VS Code باز کنید اگر هنوز باز نشده است. شما به این پروژه اضافه خواهید کرد.

  2. کد زیر را به فایل app.py در زیر واردات موجود اضافه کنید:

    from counterfit_shims_grove.grove_relay import GroveRelay
    

    این دستور GroveRelay را از کتابخانه‌های شبیه‌سازی Python Grove وارد می‌کند تا با رله مجازی Grove تعامل داشته باشد.

  3. کد زیر را در زیر اعلان کلاس ADC اضافه کنید تا یک نمونه از GroveRelay ایجاد شود:

    relay = GroveRelay(5)
    

    این یک رله با استفاده از پین 5 ایجاد می‌کند، پینی که رله را به آن متصل کرده‌اید.

  4. برای آزمایش اینکه آیا رله کار می‌کند، کد زیر را به حلقه while True: اضافه کنید:

    relay.on()
    time.sleep(.5)
    relay.off()
    

    این کد رله را روشن می‌کند، 0.5 ثانیه صبر می‌کند، سپس رله را خاموش می‌کند.

  5. برنامه Python را اجرا کنید. رله هر 10 ثانیه روشن و خاموش خواهد شد، با یک تأخیر نیم ثانیه‌ای بین روشن و خاموش شدن. شما خواهید دید که رله مجازی در برنامه CounterFit بسته و باز می‌شود همانطور که رله روشن و خاموش می‌شود.

    رله مجازی روشن و خاموش می‌شود

کنترل رله بر اساس رطوبت خاک

اکنون که رله کار می‌کند، می‌توان آن را بر اساس خوانش‌های رطوبت خاک کنترل کرد.

وظیفه

رله را کنترل کنید.

  1. سه خط کدی که برای آزمایش رله اضافه کرده‌اید را حذف کنید. آن‌ها را با کد زیر جایگزین کنید:

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

    این کد سطح رطوبت خاک را از سنسور رطوبت خاک بررسی می‌کند. اگر بالای 450 باشد، رله را روشن می‌کند و اگر زیر 450 باشد، آن را خاموش می‌کند.

    💁 به یاد داشته باشید که سنسور رطوبت خاک خازنی به این صورت عمل می‌کند که هرچه سطح رطوبت خاک پایین‌تر باشد، رطوبت بیشتری در خاک وجود دارد و بالعکس.

  2. برنامه Python را اجرا کنید. خواهید دید که رله بسته به سطح رطوبت خاک روشن یا خاموش می‌شود. تنظیمات Value یا Random سنسور رطوبت خاک را تغییر دهید تا تغییر مقدار را مشاهده کنید.

    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.
    

💁 شما می‌توانید این کد را در پوشه code-relay/virtual-device پیدا کنید.

😀 برنامه کنترل رله توسط سنسور رطوبت خاک مجازی شما موفقیت‌آمیز بود!

سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه انسانی حرفه‌ای استفاده کنید. ما هیچ مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.