সুচিপত্র:

রাস্পবেরী পাই MQTT ব্যবহার করে ESP8266 এর সাথে কথা বলছে: 8 টি ধাপ
রাস্পবেরী পাই MQTT ব্যবহার করে ESP8266 এর সাথে কথা বলছে: 8 টি ধাপ

ভিডিও: রাস্পবেরী পাই MQTT ব্যবহার করে ESP8266 এর সাথে কথা বলছে: 8 টি ধাপ

ভিডিও: রাস্পবেরী পাই MQTT ব্যবহার করে ESP8266 এর সাথে কথা বলছে: 8 টি ধাপ
ভিডিও: Standards and Security in MQTT 2024, জুলাই
Anonim
রাস্পবেরি পাই MQTT ব্যবহার করে ESP8266 এর সাথে কথা বলছে
রাস্পবেরি পাই MQTT ব্যবহার করে ESP8266 এর সাথে কথা বলছে

এই প্রজেক্টে, আমি MQTT প্রোটোকল কি এবং এটি কিভাবে ডিভাইসের মধ্যে যোগাযোগের জন্য ব্যবহার করা হয় তা ব্যাখ্যা করবো তারপর, একটি ব্যবহারিক প্রদর্শনী হিসাবে, আমি কিভাবে একটি ক্লায়েন্ট এবং ব্রোকার সিস্টেম সেটআপ করব, যেখানে একটি ESP8266 মডিউল এবং RPi টক একে অপরের কাছে বা একটি বোতাম চাপলে বার্তা পাঠান।

প্রয়োজনীয় উপাদান

1. রাস্পবেরি পাই 3

2. NodeMCU

3. LED

4. বোতাম

5. প্রতিরোধক (10k, 475 ohm)

ধাপ 1: এমকিউটিটি কী এবং এটি কীভাবে কাজ করে

এমকিউটিটি

MQTT একটি মেশিন-টু-মেশিন (M2M) ডেটা ট্রান্সফার প্রোটোকল। MQTT তৈরি করা হয়েছিল অনেক ডিভাইস থেকে ডেটা সংগ্রহ করা এবং তারপর সেই তথ্যটি আইটি অবকাঠামোতে পরিবহনের লক্ষ্যে। এটি লাইটওয়েট, এবং তাই দূরবর্তী পর্যবেক্ষণের জন্য আদর্শ, বিশেষ করে M2M সংযোগগুলির জন্য যেখানে একটি ছোট কোড পদচিহ্ন প্রয়োজন বা যেখানে নেটওয়ার্ক ব্যান্ডউইথ সীমিত।

কিভাবে MQTT কাজ করে

এমকিউটিটি একটি প্রকাশ/সাবস্ক্রাইব প্রোটোকল যা এজ-অফ-নেটওয়ার্ক ডিভাইসগুলিকে একটি ব্রোকারের কাছে প্রকাশ করতে দেয়। ক্লায়েন্টরা এই ব্রোকারের সাথে সংযোগ স্থাপন করে, যা তারপর দুটি ডিভাইসের মধ্যে যোগাযোগের মধ্যস্থতা করে। প্রতিটি ডিভাইস নির্দিষ্ট বিষয়গুলিতে সাবস্ক্রাইব করতে বা নিবন্ধন করতে পারে। যখন অন্য ক্লায়েন্ট সাবস্ক্রাইব করা বিষয়ে একটি বার্তা প্রকাশ করে, তখন দালাল সাবস্ক্রাইব করা যেকোনো ক্লায়েন্টকে মেসেজ ফরওয়ার্ড করে।

MQTT দ্বিমুখী, এবং রাষ্ট্রীয় অধিবেশন সচেতনতা বজায় রাখে। যদি একটি এজ-অফ-নেটওয়ার্ক ডিভাইস কানেক্টিভিটি হারিয়ে ফেলে, সব সাবস্ক্রাইব করা ক্লায়েন্টকে MQTT সার্ভারের "লাস্ট উইল অ্যান্ড টেস্টামেন্ট" ফিচারের মাধ্যমে জানানো হবে যাতে সিস্টেমের যেকোনো অনুমোদিত ক্লায়েন্ট নতুন মূল্য প্রকাশ করতে পারে। নেটওয়ার্ক ডিভাইস, দ্বিমুখী সংযোগ বজায় রাখা।

প্রকল্পটি 3 ভাগে বিভক্ত

প্রথমত, আমরা RPi এ MQTT সার্ভার তৈরি করি এবং কিছু লাইব্রেরি ইনস্টল করি।

দ্বিতীয়ত, আমরা MQTT- এর সাথে কাজ করার জন্য NodeMCU- এর জন্য Arduino IDE তে লাইব্রেরি ইনস্টল করব, কোড আপলোড করব এবং সার্ভার কাজ করছে কিনা তা পরীক্ষা করে দেখব।

অবশেষে, আমরা Rpi তে একটি স্ক্রিপ্ট তৈরি করি, NodeMCU- এ প্রয়োজনীয় কোড আপলোড করি এবং সার্ভার এবং ক্লায়েন্ট উভয় দিক থেকে এলইডি নিয়ন্ত্রণ করতে পাইথন স্ক্রিপ্ট চালাই। এখানে, সার্ভার হল RPi এবং ক্লায়েন্ট হল NodeMCU।

ধাপ 2: রাস্পবেরি পাই

রাস্পবেরি পাই
রাস্পবেরি পাই
রাস্পবেরি পাই
রাস্পবেরি পাই
রাস্পবেরি পাই
রাস্পবেরি পাই
রাস্পবেরি পাই
রাস্পবেরি পাই

1. RPi এ সর্বশেষ MQTT সার্ভার এবং ক্লায়েন্ট ইনস্টল করার জন্য, নতুন সংগ্রহস্থল ব্যবহার করার জন্য আপনাকে প্রথমে রিপোজিটরি প্যাকেজ সাইনিং কী আমদানি করতে হবে।

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key যোগ করুন মশা-repo.gpg.key

2. সংগ্রহস্থল apt জন্য উপলব্ধ করুন।

cd /etc/apt/sources.list.d/

3. আপনি ডেবিয়ানের কোন সংস্করণ ব্যবহার করছেন তার উপর নির্ভর করে।

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt- আপডেট পান

4. কমান্ড ব্যবহার করে Mosquitto সার্ভার ইনস্টল করুন।

sudo apt-get install মশা

আপনি যদি এইভাবে মশার ইনস্টল করতে ত্রুটি পেয়ে থাকেন।

#################################################################

নিম্নোক্ত প্যাকেজগুলির উপর নির্ভরশীলতা নেই: মশা: নির্ভর করে: libssl1.0.0 (> = 1.0.1) কিন্তু এটি ইনস্টলযোগ্য নয় নির্ভর করে: libwebsockets3 (> = 1.2) কিন্তু এটি ইনস্টলযোগ্য নয় E: সমস্যাগুলি সংশোধন করতে অক্ষম, আপনি ভেঙে পড়েছেন প্যাকেজ

#################################################################

তারপরে সমস্যাগুলি সমাধান করতে এই কমান্ডটি ব্যবহার করুন।

sudo apt-ফিক্স-ভাঙা ইনস্টল

5. MQTT সার্ভার ইনস্টল করার পর, কমান্ড ব্যবহার করে ক্লায়েন্ট ইনস্টল করুন

sudo apt-get install মশা-ক্লায়েন্ট

আপনি কমান্ড ব্যবহার করে পরিষেবাগুলি পরীক্ষা করতে পারেন।

systemctl স্ট্যাটাস মশারি। সেবা

যেহেতু আমাদের MQTT সার্ভার এবং ক্লায়েন্ট ইনস্টল করা আছে। এখন, আমরা সাবস্ক্রাইব এবং প্রকাশের মাধ্যমে এটি পরীক্ষা করতে পারি। সাবস্ক্রাইব এবং পাবলিশ করার জন্য আপনি কমান্ড চেক করতে পারেন অথবা নিচে দেওয়া ওয়েবসাইট ভিজিট করতে পারেন।

মশা সাব

মশা পাব

পাহো-এমকিউটিটি লাইব্রেরি ইনস্টল করতে নিচের কমান্ডটি ব্যবহার করুন।

sudo pip ইনস্টল paho-mqtt

পাহো

ধাপ 3: স্ট্যাটিক আইপি ঠিকানা কিভাবে সেটআপ করবেন

কিভাবে স্ট্যাটিক আইপি ঠিকানা সেটআপ করবেন
কিভাবে স্ট্যাটিক আইপি ঠিকানা সেটআপ করবেন

ডিরেক্টরিতে যান cd /etc এবং যেকোনো এডিটর ব্যবহার করে dhcpcd.conf ফাইল খুলুন। শেষে এই চার লাইন লিখুন।

ইন্টারফেস eth0 স্ট্যাটিক ip_address = 192.168.1.100 // ip আপনি ব্যবহার করতে চান

ইন্টারফেস wlan0

স্ট্যাটিক ip_address = 192.168.1.68

স্ট্যাটিক রাউটার = 192.168.1.1 // আপনার ডিফল্ট গেটওয়ে

স্ট্যাটিক domain_name_servers = 192.168.1.1

এর পরে এটি সংরক্ষণ করুন এবং আপনার পাই পুনরায় বুট করুন।

ধাপ 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

NodeMCU এর জন্য Arduino IDE তে প্রয়োজনীয় লাইব্রেরি ইনস্টল করুন

1. স্কেচে যান ==> লাইব্রেরি অন্তর্ভুক্ত করুন ==> লাইব্রেরি পরিচালনা করুন।

2. mqtt অনুসন্ধান করুন এবং Adafruit দ্বারা লাইব্রেরি ইনস্টল করুন অথবা আপনি যে কোন লাইব্রেরি ইনস্টল করতে পারেন।

3. এটি স্লিপডগ লাইব্রেরির উপর নির্ভর করে তাই আমাদেরও এই লাইব্রেরির প্রয়োজন।

প্রোগ্রামটি উপরে দেওয়া হয়েছে, শুধু এটি কাজ করে কি না তা যাচাই করার জন্য। এখানে আমি আরপিআই তে কোন স্ক্রিপ্ট তৈরি করিনি। আমরা শুধু সাবস্ক্রাইব এবং প্রকাশ করার জন্য কমান্ড ব্যবহার করছি। আমরা পরে নিয়ন্ত্রণের জন্য স্ক্রিপ্ট তৈরি করব।

Mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"

Mosquitto_pub -h raspberrypi -t "/leds/pi" -m "OFF"

Mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"

Mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"

Mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"

Mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"

-h ==> হোস্টের নাম- t ==> বিষয়

-এম ==> বার্তা

Mqtt_check প্রোগ্রাম চেক করার পর NodeMCU তে সম্পূর্ণ প্রোগ্রাম আপলোড করুন

ধাপ 5: পাইথন স্ক্রিপ্ট

পাইথন স্ক্রিপ্ট
পাইথন স্ক্রিপ্ট
পাইথন স্ক্রিপ্ট
পাইথন স্ক্রিপ্ট

আমি উপরে আলোচনা করেছি আমরা বোতাম ব্যবহার করে এলইডি নিয়ন্ত্রণের জন্য পাইথন স্ক্রিপ্ট প্রয়োজন। সুতরাং, আমরা স্ক্রিপ্ট তৈরি করতে যাচ্ছি। স্ক্রিপ্ট উপরে দেওয়া আছে।

যখন আপনি স্ক্রিপ্টটি চালাবেন তখন আপনার স্ক্রিপ্টটি ছবিতে দেখানো মতো হওয়া উচিত, যদি ফলাফল কোড শূন্য না হয় তবে সেগুলি একটি ত্রুটি যা আপনি পাহো ওয়েবসাইটে ত্রুটি পরীক্ষা করতে পারেন।

ধাপ 6: সংযোগ এবং সার্কিট ডায়াগ্রাম

সংযোগ এবং সার্কিট ডায়াগ্রাম
সংযোগ এবং সার্কিট ডায়াগ্রাম
সংযোগ এবং সার্কিট ডায়াগ্রাম
সংযোগ এবং সার্কিট ডায়াগ্রাম

বোতাম ইন্টারফেসিং, NodeMCU সঙ্গে LED

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> পিন 1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> ক্যাথোড (-ve)

GPIO5 (D1) ===> Anode (+ve)

বাটনের ইন্টারফেসিং, আরপিআই সহ এলইডি

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> ক্যাথোড (-ve)

GPIO 24 ===> Anode (+ve)

ধাপ 7: ফলাফল

Image
Image
ফলাফল
ফলাফল

নিশ্চিত করুন যে আপনার স্ক্রিপ্ট চলছে অন্যথায় এটি বোতাম ব্যবহার করে নেতৃত্ব নিয়ন্ত্রণ করতে সক্ষম হবে না।

প্রস্তাবিত: