সুচিপত্র:

NodeMCU MQTT Iot Project - Switch Button: 4 ধাপ
NodeMCU MQTT Iot Project - Switch Button: 4 ধাপ

ভিডিও: NodeMCU MQTT Iot Project - Switch Button: 4 ধাপ

ভিডিও: NodeMCU MQTT Iot Project - Switch Button: 4 ধাপ
ভিডিও: MQTT ESP8266 NodeMCU Home Automation System with cheapest Cloud MQTT broker Reyax RYC1001 - IoT 2021 2024, জুলাই
Anonim
Image
Image

OSOYOO NodeMCU IOT স্টার্টার কিট

অনুগ্রহ করে ফেসবুকে আমাদের অনুসরণ করুন, আমাদের নতুন প্রকাশিত আইটেমটি খুঁজুন এবং কীভাবে আমাদের পণ্যগুলি সৃজনশীলভাবে ব্যবহার করবেন সে সম্পর্কে আপনার ধারণা এবং ভিডিও শেয়ার করুন। আপনি আমাদের কাছ থেকে নগদ ফেরত বা উপহার পেতে পারেন! ফেসবুক:

ইউটিউব:

এই পাঠে, আমরা নোডএমসিইউতে একটি সুইচ বোতাম সংযুক্ত করব এবং সুইচ স্ট্যাটাসটি একটি এমকিউটিটি ব্রোকারের কাছে প্রেরণ করব। যখন বোতামটি চাপানো হয়, NodeMCU MQTT ব্রোকারের কাছে "চাপানো" বোতামের স্থিতি প্রকাশ করবে এবং MQTT ক্লায়েন্ট এই বার্তাগুলিতে সাবস্ক্রাইব করবে। যখন পুশ বাটন রিলিজ করা হয়, "চাপানো হয় না" পাঠানো হবে।

ধাপ 1: প্রস্তুতি

সংযোগ গ্রাফ
সংযোগ গ্রাফ

হার্ডওয়্যার:

NodeMCU বোর্ড x 1

সুইচ বোতাম x 1

1K রোধ x 1

ব্রেডবোর্ড x 1

জাম্পার তার

সফটওয়্যার:

Arduino IDE (সংস্করণ 1.6.4+)

ESP8266 বোর্ড প্যাকেজ এবং সিরিয়াল পোর্ট ড্রাইভার

MQTT ক্লায়েন্ট (MQTTBox এখানে)

Arduino লাইব্রেরি: PubSubClient

ধাপ 2: সংযোগ গ্রাফ

এই পাঠে, আমরা সুইচ নিয়ন্ত্রণ করতে D2 (GPIO4) ব্যবহার করি, দয়া করে সংযোগ গ্রাফ অনুযায়ী হার্ডওয়্যার সেটআপ করুন।

দ্রষ্টব্য: 1k প্রতিরোধক একটি পুল ডাউন রোধ হিসাবে ব্যবহার করছে, যেমন একটি সার্কিটে, যখন সুইচটি বন্ধ হয়ে যায়, NodeMCU ইনপুট একটি যৌক্তিক উচ্চ মূল্যে থাকে, কিন্তু যখন সুইচটি খোলা থাকে, তখন পুল-ডাউন রোধকারী ইনপুট ভোল্টেজকে টেনে নেয় মাটিতে নিচে (যৌক্তিক শূন্য মান), ইনপুটে একটি অনির্ধারিত অবস্থা প্রতিরোধ।

ধাপ 3: কোড

কোড
কোড
কোড
কোড

Arduino IDE তে নিচের কোডটি কপি করুন:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) NodeMCU MQTT ক্লায়েন্টকে ওয়াইফাই * টিউটোরিয়াল ইউআরএলের মাধ্যমে সুইচ বাটন স্ট্যাটাস পাঠায়: * CopyRight www.osoyoo.com *

int BUTTON_PIN = D2; // বাটন GPIO পিন D1 এর সাথে সংযুক্ত

// আপনার নেটওয়ার্কের জন্য উপযুক্ত মান দিয়ে এগুলি আপডেট করুন। const char*ssid = "********"; // আপনার ওয়াইফাই ssid এখানে রাখুন const char*password = "********"; // এখানে আপনার ওয়াইফাই পাসওয়ার্ড দিন। const char* mqtt_server = "broker.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

PubSubClient ক্লায়েন্ট (espClient); দীর্ঘ lastMsg = 0; char msg [50];

অকার্যকর setup_wifi () {

বিলম্ব (100); // আমরা একটি ওয়াইফাই নেটওয়ার্ক Serial.print ("এর সাথে সংযোগ স্থাপন") এর সাথে সংযোগ করে শুরু করি; Serial.println (ssid); WiFi.begin (ssid, password); যখন (WiFi.status ()! = WL_CONNECTED) {বিলম্ব (500); সিরিয়াল.প্রিন্ট ("।"); } randomSeed (মাইক্রো ()); Serial.println (""); Serial.println ("ওয়াইফাই সংযুক্ত"); Serial.println ("IP ঠিকানা:"); Serial.println (WiFi.localIP ()); }

অকার্যকর কলব্যাক (গৃহস্থালি* বিষয়, বাইট* পেলোড, স্বাক্ষরবিহীন int দৈর্ঘ্য)

{} // শেষ কলব্যাক

অকার্যকর পুনরায় সংযোগ () {

// লুপ যতক্ষণ না আমরা পুনরায় সংযোগ করছি (! Client.connected ()) {Serial.print ("MQTT সংযোগের চেষ্টা …"); // একটি এলোমেলো ক্লায়েন্ট আইডি তৈরি করুন String clientId = "ESP8266Client-"; clientId += স্ট্রিং (এলোমেলো (0xffff), HEX); // সংযোগ করার চেষ্টা // যদি আপনার MQTT ব্রোকারের ক্লায়েন্ট আইডি, ব্যবহারকারীর নাম এবং পাসওয়ার্ড থাকে // অনুগ্রহ করে নিচের লাইনটি পরিবর্তন করুন যদি (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("সংযুক্ত"); // একবার এমকিউটিটি ব্রোকারের সাথে সংযুক্ত হলে, যদি কোন ক্লায়েন্ট সাবস্ক্রাইব ("OsoyooCommand") সাবস্ক্রাইব কমান্ড; } অন্য {সিরিয়াল.প্রিন্ট ("ব্যর্থ, rc ="); Serial.print (client.state ()); Serial.println ("5 সেকেন্ডের মধ্যে আবার চেষ্টা করুন"); // বিলম্ব পুনরায় চেষ্টা করার আগে 5 সেকেন্ড অপেক্ষা করুন (5000); }}} // শেষ পুনরায় সংযোগ ()

অকার্যকর সেটআপ() {

Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (কলব্যাক); pinMode (BUTTON_PIN, INPUT); }

অকার্যকর লুপ () {

যদি (! client.connected ()) {reconnect (); } client.loop (); দীর্ঘ এখন = মিলিস (); int অবস্থা; // প্রতি 2 সেকেন্ডে বার্তা পাঠান যদি (এখন - lastMsg> 2000) {lastMsg = now; অবস্থা = ডিজিটাল রিড (BUTTON_PIN); স্ট্রিং মেসেজ = "বোতামের অবস্থা:"; if (status == HIGH) {msg = msg+ "চাপা"; চর বার্তা [58]; msg.toCharArray (বার্তা, 58); Serial.println (বার্তা); // MQTT ব্রোকার client.publish এ সেন্সর ডেটা প্রকাশ করুন ("OsoyooData", বার্তা); } else {msg = msg+ "Not press"; চর বার্তা [58]; msg.toCharArray (বার্তা, 58); Serial.println (বার্তা); // MQTT ব্রোকার client.publish এ সেন্সর ডেটা প্রকাশ করুন ("OsoyooData", বার্তা); }}}

নিম্নলিখিত অপারেশন হিসাবে আপনার নিজের ওয়াইফাই এবং MQTT সেটিংস ফিট করার জন্য কোড সম্পাদনা করুন: 1) হটস্পট কনফিগারেশন: কোড লাইন নিচে খুঁজুন, সেখানে আপনার নিজের ssid এবং পাসওয়ার্ড রাখুন।

const char* ssid = "your_hotspot_ssid"; const char* password = "your_hotspot_password";

2) MQTT সার্ভার অ্যাড্রেস সেটিং: mqtt_server ভ্যালুর উপরে সেট করতে আপনি নিজের MQTT ব্রোকার ইউআরএল বা আইপি অ্যাড্রেস ব্যবহার করতে পারেন। প্রজেক্টটি পরীক্ষা করার জন্য আপনি কিছু বিখ্যাত ফ্রি MQTT সার্ভার ব্যবহার করতে পারেন যেমন “broker.mqtt-dashboard.com”, “iot.eclipse.org” ইত্যাদি।

const char* mqtt_server = "broker.mqtt-dashboard.com";

MQTT ক্লায়েন্ট সেটিংস

যদি (client.connect (clientId.c_str ()))

প্রতি

যদি (client.connect (clientId, userName, passWord)) // আপনার clientId/userName/passWord এখানে রাখুন

যদি তা না হয়, তবে সেগুলিকে ডিফল্ট হিসাবে রাখুন এটি করার পরে, নীচের মত কোরসপন্ডিং বোর্ডের ধরন এবং পোর্টের ধরন নির্বাচন করুন, তারপর NodeMCU তে স্কেচ আপলোড করুন।

  • বোর্ড: "NodeMCU 0.9 (ESP-12 মডিউল)"
  • CPU ফ্রিকোয়েন্সি: "80MHz" ফ্ল্যাশ সাইজ:"
  • 4M (3M SPIFFS)”
  • আপলোড গতি:”115200
  • পোর্ট: আপনার NodeMCU এর জন্য আপনার নিজের সিরিয়াল পোর্ট নির্বাচন করুন

ধাপ 4: MQTT ক্লায়েন্ট সেটিংস

MQTT ক্লায়েন্ট সেটিংস
MQTT ক্লায়েন্ট সেটিংস
MQTT ক্লায়েন্ট সেটিংস
MQTT ক্লায়েন্ট সেটিংস

আপনি যদি MQTT ক্লায়েন্টকে কনফিগার করতে না জানেন, তাহলে আমাদের শেষ নিবন্ধটি দেখুন:

বিষয় সেটিংস: প্রকাশের বিষয়: OsoyooCommand

সাবস্ক্রাইব করার বিষয়: OsoyooData

চলমান ফলাফল

একবার আপলোড হয়ে গেলে, যদি ওয়াইফাই হটস্পট নাম এবং পাসওয়ার্ড সেটিং ঠিক থাকে এবং MQTT ব্রোকার সংযুক্ত থাকে, সিরিয়াল মনিটর খুলুন, আপনি নিম্নলিখিত ফলাফল দেখতে পাবেন: এই বোতাম টিপতে থাকুন, সিরিয়াল মনিটর প্রতি 2 সেকেন্ডে "বোতাম অবস্থা: চাপানো" আউটপুট করবে; একবার এই বোতামটি ছেড়ে দিলে, সিরিয়াল মনিটর প্রতি 2 সেকেন্ডে "বোতাম স্ট্যাটাস: চাপানো হবে না" আউটপুট করবে।

প্রস্তাবিত: