# ইন্টারনেটের মাধ্যমে আপনার নাইটলাইট নিয়ন্ত্রণ করুন - ভার্চুয়াল IoT হার্ডওয়্যার এবং র‍্যাস্পবেরি পাই IoT ডিভাইসটি *test.mosquitto.org* এর সাথে MQTT ব্যবহার করে যোগাযোগ করার জন্য কোড করা প্রয়োজন, যাতে এটি লাইট সেন্সরের রিডিং সহ টেলিমেট্রি মান পাঠাতে পারে এবং LED নিয়ন্ত্রণের জন্য কমান্ড গ্রহণ করতে পারে। এই পাঠের এই অংশে, আপনি আপনার র‍্যাস্পবেরি পাই বা ভার্চুয়াল IoT ডিভাইসটিকে একটি MQTT ব্রোকারের সাথে সংযুক্ত করবেন। ## MQTT ক্লায়েন্ট প্যাকেজ ইনস্টল করুন MQTT ব্রোকারের সাথে যোগাযোগ করার জন্য, আপনাকে আপনার পাই বা ভার্চুয়াল ডিভাইস ব্যবহার করলে ভার্চুয়াল এনভায়রনমেন্টে একটি MQTT লাইব্রেরি পিপ প্যাকেজ ইনস্টল করতে হবে। ### কাজ পিপ প্যাকেজ ইনস্টল করুন 1. VS Code-এ নাইটলাইট প্রকল্পটি খুলুন। 1. যদি আপনি একটি ভার্চুয়াল IoT ডিভাইস ব্যবহার করেন, নিশ্চিত করুন যে টার্মিনালটি ভার্চুয়াল এনভায়রনমেন্ট চালাচ্ছে। যদি আপনি একটি র‍্যাস্পবেরি পাই ব্যবহার করেন, তবে ভার্চুয়াল এনভায়রনমেন্ট ব্যবহার করা হবে না। 1. MQTT পিপ প্যাকেজ ইনস্টল করতে নিচের কমান্ডটি চালান: ```sh pip3 install paho-mqtt ``` ## ডিভাইস কোড করুন ডিভাইসটি কোড করার জন্য প্রস্তুত। ### কাজ ডিভাইস কোড লিখুন। 1. `app.py` ফাইলের শীর্ষে নিচের ইমপোর্টটি যোগ করুন: ```python import paho.mqtt.client as mqtt ``` `paho.mqtt.client` লাইব্রেরি আপনার অ্যাপকে MQTT এর মাধ্যমে যোগাযোগ করতে সাহায্য করে। 1. লাইট সেন্সর এবং LED এর ডেফিনিশনের পরে নিচের কোডটি যোগ করুন: ```python id = '' client_name = id + 'nightlight_client' ``` `` এর জায়গায় একটি ইউনিক আইডি বসান, যা এই ডিভাইস ক্লায়েন্টের নাম হিসেবে ব্যবহৃত হবে এবং পরে এই ডিভাইস যে টপিকগুলোতে পাবলিশ এবং সাবস্ক্রাইব করবে সেগুলোর জন্য ব্যবহৃত হবে। *test.mosquitto.org* ব্রোকারটি পাবলিক এবং এটি অনেক মানুষ ব্যবহার করে, যার মধ্যে এই অ্যাসাইনমেন্টে কাজ করা অন্যান্য শিক্ষার্থীরাও রয়েছে। একটি ইউনিক MQTT ক্লায়েন্ট নাম এবং টপিক নাম ব্যবহার করলে আপনার কোড অন্য কারও সাথে সংঘর্ষ করবে না। এই আইডিটি আপনাকে এই অ্যাসাইনমেন্টের পরবর্তী অংশে সার্ভার কোড তৈরি করার সময়ও প্রয়োজন হবে। > 💁 আপনি [GUIDGen](https://www.guidgen.com) এর মতো একটি ওয়েবসাইট ব্যবহার করে একটি ইউনিক আইডি তৈরি করতে পারেন। `client_name` হল ব্রোকারে এই MQTT ক্লায়েন্টের জন্য একটি ইউনিক নাম। 1. MQTT ক্লায়েন্ট অবজেক্ট তৈরি করতে এবং MQTT ব্রোকারের সাথে সংযোগ করতে নিচের কোডটি এই নতুন কোডের নিচে যোগ করুন: ```python mqtt_client = mqtt.Client(client_name) mqtt_client.connect('test.mosquitto.org') mqtt_client.loop_start() print("MQTT connected!") ``` এই কোডটি ক্লায়েন্ট অবজেক্ট তৈরি করে, পাবলিক MQTT ব্রোকারের সাথে সংযোগ স্থাপন করে এবং একটি প্রসেসিং লুপ শুরু করে যা একটি ব্যাকগ্রাউন্ড থ্রেডে চলে এবং সাবস্ক্রাইব করা টপিকগুলোতে বার্তা শোনে। 1. আগের অংশের কোড চালানোর মতো একইভাবে কোডটি চালান। যদি আপনি একটি ভার্চুয়াল IoT ডিভাইস ব্যবহার করেন, তবে নিশ্চিত করুন যে CounterFit অ্যাপটি চালু রয়েছে এবং লাইট সেন্সর এবং LED সঠিক পিনে তৈরি করা হয়েছে। ```output (.venv) ➜ nightlight python app.py MQTT connected! Light level: 0 Light level: 0 ``` > 💁 আপনি এই কোডটি [code-mqtt/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/virtual-device) ফোল্ডারে বা [code-mqtt/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/pi) ফোল্ডারে খুঁজে পেতে পারেন। 😀 আপনি সফলভাবে আপনার ডিভাইসটিকে একটি MQTT ব্রোকারের সাথে সংযুক্ত করেছেন। --- **অস্বীকৃতি**: এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতা নিশ্চিত করার চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।