5.7 KiB
کنترل چراغ خواب خود از طریق اینترنت - سختافزار مجازی IoT و رزبری پای
دستگاه IoT باید کدنویسی شود تا بتواند با test.mosquitto.org از طریق MQTT ارتباط برقرار کند، مقادیر تلهمتری را با خواندن حسگر نور ارسال کند و دستورات کنترل LED را دریافت کند.
در این بخش از درس، شما رزبری پای یا دستگاه مجازی IoT خود را به یک MQTT broker متصل خواهید کرد.
نصب بسته کلاینت MQTT
برای ارتباط با MQTT broker، باید یک کتابخانه MQTT را به صورت بسته pip روی رزبری پای یا محیط مجازی خود (در صورت استفاده از دستگاه مجازی) نصب کنید.
وظیفه
نصب بسته pip
-
پروژه چراغ خواب را در VS Code باز کنید.
-
اگر از دستگاه مجازی IoT استفاده میکنید، مطمئن شوید که ترمینال در حال اجرای محیط مجازی است. اگر از رزبری پای استفاده میکنید، نیازی به استفاده از محیط مجازی ندارید.
-
دستور زیر را اجرا کنید تا بسته pip مربوط به MQTT نصب شود:
pip3 install paho-mqtt
کدنویسی دستگاه
دستگاه آماده کدنویسی است.
وظیفه
کد دستگاه را بنویسید.
-
واردات زیر را به بالای فایل
app.py
اضافه کنید:import paho.mqtt.client as mqtt
کتابخانه
paho.mqtt.client
به برنامه شما اجازه میدهد از طریق MQTT ارتباط برقرار کند. -
کد زیر را بعد از تعریفهای حسگر نور و LED اضافه کنید:
id = '<ID>' client_name = id + 'nightlight_client'
<ID>
را با یک شناسه منحصر به فرد جایگزین کنید که به عنوان نام کلاینت این دستگاه استفاده خواهد شد و بعداً برای موضوعاتی که این دستگاه منتشر و مشترک میشود استفاده میشود. broker test.mosquitto.org عمومی است و توسط افراد زیادی، از جمله دانشآموزان دیگر که این تکلیف را انجام میدهند، استفاده میشود. داشتن یک نام کلاینت MQTT و نام موضوعات منحصر به فرد تضمین میکند که کد شما با کد دیگران تداخل نداشته باشد. شما همچنین به این شناسه نیاز خواهید داشت زمانی که کد سرور را در ادامه این تکلیف ایجاد میکنید.💁 میتوانید از وبسایتی مانند GUIDGen برای ایجاد یک شناسه منحصر به فرد استفاده کنید.
client_name
یک نام منحصر به فرد برای این کلاینت MQTT در broker است. -
کد زیر را زیر این کد جدید اضافه کنید تا یک شیء کلاینت MQTT ایجاد کرده و به MQTT broker متصل شوید:
mqtt_client = mqtt.Client(client_name) mqtt_client.connect('test.mosquitto.org') mqtt_client.loop_start() print("MQTT connected!")
این کد شیء کلاینت را ایجاد میکند، به broker عمومی MQTT متصل میشود و یک حلقه پردازش را شروع میکند که در یک رشته پسزمینه اجرا شده و پیامها را در هر موضوع مشترک گوش میدهد.
-
کد را به همان روشی اجرا کنید که کد بخش قبلی تکلیف را اجرا کردید. اگر از دستگاه مجازی IoT استفاده میکنید، مطمئن شوید که برنامه CounterFit در حال اجرا است و حسگر نور و LED روی پینهای صحیح ایجاد شدهاند.
(.venv) ➜ nightlight python app.py MQTT connected! Light level: 0 Light level: 0
💁 میتوانید این کد را در پوشه code-mqtt/virtual-device یا پوشه code-mqtt/pi پیدا کنید.
😀 شما با موفقیت دستگاه خود را به یک MQTT broker متصل کردید.
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه میشود از ترجمه حرفهای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.