সব পোস্টে ফিরে যান
Node-Red

ভিজ্যুয়াল প্রোগ্রামিং: Node-RED দিয়ে কোডিং ছাড়াই IoT প্রজেক্ট

কোডিং ছাড়াই Node-RED-এর ভিজ্যুয়াল ইন্টারফেস ব্যবহার করে লো-কোড আইওটি ফ্লো এবং প্রজেক্ট তৈরির পদ্ধতি।

#iot
ভিজ্যুয়াল প্রোগ্রামিং: Node-RED দিয়ে কোডিং ছাড়াই IoT প্রজেক্ট

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

সাধারণত এই কাজগুলো করার জন্য বিশাল বিশাল কোড লিখতে হয়, ব্যাকএন্ড সার্ভার বানাতে হয়, আবার ফ্রন্টএন্ড ডিজাইন করতে হয়। তুমি যদি এই একঘেয়ে লম্বা কোড লেখার হাত থেকে বাঁচতে চাও, তবে তোমার জন্যই তৈরি হয়েছে Node-RED।

চলো, আজ একদম সহজভাবে জেনে নিই এই চমৎকার টুলটি কীভাবে কাজ করে।

১। Node-RED আসলে কী?

সহজ ভাষায়, Node-RED হলো একটি ভিজ্যুয়াল প্রোগ্রামিং টুল বা সফটওয়্যার। এখানে তোমাকে লাইন বাই লাইন কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ লিখতে হবে না। এর বদলে তুমি ব্লকের মতো কিছু আইকন (যাদের নোড বলা হয়) ড্র্যাগ-অ্যান্ড-ড্রপ করে টেনে আনবে, আর একটার সাথে আরেকটা তার দিয়ে জুড়ে দেবে। তাতেই পুরো প্রোগ্রাম তৈরি হয়ে যাবে!

এটি মূলত আইবিএম (IBM) তৈরি করেছিল, যেন হার্ডওয়্যার ডিভাইস, এপিআই (APIs) এবং অনলাইন সার্ভিসগুলোকে খুব সহজে এবং দ্রুত একসাথে কানেক্ট করা যায়। এটি সরাসরি তোমার ব্রাউজার থেকেই চালানো যায়।

২। কেন আমরা Node-RED ব্যবহার করবো?

  • কোডিংয়ের ঝামেলা নেই (Low-Code/No-Code): লজিক তৈরি করতে বা ড্যাশবোর্ড বানাতে প্রায় কোনো কোডই লিখতে হয় না। তুমি চোখের সামনে দেখতে পাচ্ছো ডেটা কোথা থেকে কোথায় যাচ্ছে।
  • MQTT-এর সেরা বন্ধু: MQTT ব্রোকার থেকে ডেটা রিসিভ করা বা সেখানে কমান্ড পাঠানোর জন্য Node-RED-এ রেডিমেড ব্লক আছে। জাস্ট আইপি অ্যাড্রেস আর টপিক বলে দিলেই কাজ শুরু।
  • চমৎকার ড্যাশবোর্ড: এর নিজস্ব ‘ড্যাশবোর্ড’ ফিচার দিয়ে চোখের পলকে সুন্দর সব মিটার, গ্রাফ, সুইচ বা স্লাইডার তৈরি করা যায়। এর জন্য তোমাকে HTML বা CSS এক্সপার্ট হতে হবে না।

৩। কীভাবে কাজ করে?

Node-RED মূলত তিনটি জিনিসের ওপর ভিত্তি করে কাজ করে:

  1. নোড (Nodes): এগুলো হলো তোমার কাজের ব্লক। এটি সাধারণত তিন ধরনের হয়—
  • Input Node: ডেটা গ্রহণ করে (যেমন, MQTT ব্রোকার থেকে আসা টেম্পারেচার ডেটা)।
  • Process/Function Node: ডেটা নিয়ে কাজ করে বা লজিক চেক করে (যেমন, টেম্পারেচার কি ৩০ ডিগ্রির বেশি? তাহলে একটা অ্যালার্ম জেনারেট করো)।
  • Output Node: ফলাফল দেখায় বা অন্য কোথাও পাঠায় (যেমন, ড্যাশবোর্ডে মিটার দেখানো বা মোবাইলে নোটিফিকেশন পাঠানো)।
  1. ওয়্যার (Wires): একটি নোড থেকে আরেকটি নোডে ডেটা পাঠানোর জন্য যে কাল্পনিক তার দিয়ে আমরা এগুলোকে যুক্ত করি।
  2. ফ্লো (Flows): কয়েকটি নোড এবং ওয়্যার মিলে যে সম্পূর্ণ সার্কিট বা লজিক তৈরি হয়, তাকেই বলা হয় ফ্লো।

৪। বাস্তবমুখী উদাহরণ (আগের প্রজেক্টের সাথে মিলিয়ে)

ধরো, আগের প্রজেক্টে আমাদের ESP32 lab/environment/temp টপিকে ল্যাবের টেম্পারেচার (যেমন: ২৫.৫) পাঠাচ্ছিল।

এখন Node-RED-এ তুমি কীভাবে ড্যাশবোর্ড বানাবে?

  • বাম পাশ থেকে একটি MQTT in নোড টেনে ক্যানভাসে আনবে এবং সেখানে টপিকের নামটা বসিয়ে দেবে।
  • এরপর ড্যাশবোর্ড সেকশন থেকে একটি Gauge (মিটার) নোড টেনে আনবে।
  • এবার মাউস দিয়ে প্রথম নোড থেকে একটা তার (Wire) টেনে দ্বিতীয় নোডে লাগিয়ে দেবে।
  • একদম উপরে ডান কোণায় লাল রঙের Deploy বাটনে ক্লিক করবে।

ব্যাস! তোমার কাজ শেষ। এখন ব্রাউজারে ড্যাশবোর্ড উইন্ডো ওপেন করলেই দেখবে লাইভ টেম্পারেচার মিটারের কাঁটা নড়ছে। কোনো কোড লেখার দরকারই পড়লো না!

৫। কীভাবে শুরু করবে?

Node-RED চালানো খুবই সহজ। যেহেতু এটি Node.js-এর ওপর ভিত্তি করে তৈরি, তাই তোমার কম্পিউটারে শুধু Node.js ইন্সটল থাকতে হবে।

তোমার লিনাক্স মিন্ট বা উবুন্টুর টার্মিনালে (কিংবা উইন্ডোজের কমান্ড প্রম্পটে) গিয়ে শুধু নিচের কমান্ডটি লিখলেই এটি গ্লোবালি ইন্সটল হয়ে যাবে:

bash

sudo npm install -g --unsafe-perm node-red

ইন্সটল হওয়ার পর টার্মিনালে শুধু node-red লিখে এন্টার দিলেই এটি চালু হয়ে যাবে। এরপর ব্রাউজারে গিয়ে http://localhost:1880 ঠিকানায় গেলেই তুমি Node-RED এর ক্যানভাস পেয়ে যাবে এবং কাজ শুরু করে দিতে পারবে।

IoT বা এমবেডেড সিস্টেম নিয়ে যারা কাজ করে, তাদের জন্য Node-RED একটি জাদুকরী টুল। এটি শুধু সময় বাঁচায় না, বরং হার্ডওয়্যার আর সফটওয়্যারের মাঝে একটা দারুণ সেতু তৈরি করে দেয়। তোমার পরবর্তী প্রজেক্টের লজিক এবং ড্যাশবোর্ডটি Node-RED দিয়েই বানিয়ে ফেলো, গ্যারান্টি দিচ্ছি— এই ভিজ্যুয়াল প্রোগ্রামিংয়ের মজা একবার পেলে আর ছাড়তে চাইবে না!