পানি ইউটিলিটি টেলিমেট্রির জন্য ESP32 ফার্মওয়্যার ও IoT
পানি ইউটিলিটির RTU বসে থাকে প্লাবিত পিট, মেইনস পাওয়ারবিহীন চেম্বার আর cellular কভারেজের প্রান্তে থাকা রিজার্ভয়ার সাইটে। আমরা এমন ESP32-ভিত্তিক টেলিমেট্রি ইউনিট বানাই যা এই পরিবেশে টিকে থাকে, আপনার বিদ্যমান যন্ত্রের অ্যানালগ ও Modbus প্রোটোকল বোঝে, এবং স্থানীয়ভাবে বাফার করে—যাতে একটি লিংক বিচ্ছিন্ন হলেও ফ্লো টোটাল বা টার্বিডিটি অ্যালার্ম কখনো হারিয়ে না যায়।
Challenges specific to Water Utilities
কমিউনিকেশন গ্যাপের পর ফ্লো টোটালাইজার বিচ্যুত হয়
পালস-আউটপুট মিটার আউটেজের সময়ও গণনা চালিয়ে যায়, কিন্তু সরল আপলিংক শুধু সর্বশেষ রিডিংটাই আবার পাঠায়, ফলে মডেম অফলাইন থাকাকালীন প্রবাহিত প্রতিটি লিটার বিলিং/অ্যাবস্ট্রাকশন ভলিউম থেকে হারিয়ে যায়।
4-20mA প্রেশার লুপ নয়েসকে অ্যালার্ম ধরে নেয়
পাম্প-স্টার্ট সার্জ ও ওয়াটার হ্যামার লুপ কারেন্টে স্পাইক তোলে, আর প্রতি-চ্যানেল ডিবাউন্স ও স্লিউ লিমিটিং ছাড়া RTU ভুয়া লো/হাই-প্রেশার অ্যালার্ম দেয়, যা সিস্টেমের প্রতি অপারেটরের আস্থা নষ্ট করে।
রিজার্ভয়ার সাইটে মেইনস নেই, সিগন্যাল দুর্বল
দূরবর্তী রিজার্ভয়ারের লেভেল সেন্সর cellular কভারেজের প্রান্তে সোলার আর ছোট ব্যাটারিতে চলে, ফলে সবসময় চালু TCP মডেম ব্যাটারি নিঃশেষ করে দেয় এবং সাইট দিনের পর দিন বন্ধ হয়ে যায়।
স্যাম্পলের মাঝখানে টার্বিডিটি ইভেন্ট মিস হয়
পাওয়ার বাঁচাতে বেছে নেওয়া ধীর পোলিং ইন্টারভ্যালের কারণে মেইন ব্রেক বা ব্যাকওয়াশ থেকে আসা স্বল্পস্থায়ী টার্বিডিটি স্পাইক দুটি স্যাম্পলের মাঝে পুরোপুরি পার হয়ে যায়, আর নিয়ন্ত্রক exceedance কখনো নথিভুক্ত হয় না।
Modbus যন্ত্রের রেজিস্টার ম্যাপ পরস্পরবিরোধী
প্রতিটি magflow, অ্যানালাইজার ও প্রেশার ট্রান্সমিটার আলাদা Modbus রেজিস্টার লেআউট, স্কেলিং ও বাইট অর্ডার দেখায়, তাই একটি ফার্মওয়্যার বিল্ড মিশ্র ব্রাউনফিল্ড সাইটে রিওয়ার্ক ছাড়া খুব কমই বসানো যায়।
How GizanTech solves them
- পালস-নির্ভুল ফ্লো হিসাব. আমরা হার্ডওয়্যার ISR-এ ফ্লো-মিটার পালস গণনা করি এবং NVS-এ একটি 64-bit নন-ভোলাটাইল টোটালাইজার রাখি, ফলে যেকোনো রিবুট বা কমিউনিকেশন গ্যাপের পর ক্রমবর্ধমান ভলিউম হুবহু পুনর্গঠিত হয় এবং মিটার রেজিস্টারের সাথে মিলে যায়।
- কন্ডিশন্ড 4-20mA অ্যাকুইজিশন. প্রতিটি লুপ একটি প্রিসিশন সেন্স রেজিস্টরের মাধ্যমে পড়া হয় ও ওভারস্যাম্পল করা হয়, এরপর কনফিগারযোগ্য স্লিউ ও ডিবাউন্সসহ মিডিয়ান-ফিল্টার করা হয়, যাতে পাম্প সার্জ ও হ্যামার ট্রানজিয়েন্ট আর ভুয়া প্রেশার অ্যালার্ম না ঘটায়।
- সোলার-সচেতন ডিউটি সাইক্লিং. রিজার্ভয়ার সাইটে ESP32 স্যাম্পলের মাঝে ডিপ-স্লিপে যায় এবং শুধু বাফার খালি করতে cellular/LoRaWAN রেডিও জাগায়, ফলে গড় টান এত কম থাকে যে ছোট সোলার-প্লাস-ব্যাটারি নোডে অনির্দিষ্টকাল চলতে পারে।
- ইভেন্ট-ট্রিগারড টার্বিডিটি ক্যাপচার. টার্বিডিটি দ্রুত স্যাম্পল করা হয় এবং স্থানীয়ভাবে রেট-অফ-চেঞ্জ ও অ্যাবসোলিউট থ্রেশহোল্ডের সাথে তুলনা করা হয়, ফলে একটি স্পাইক পরবর্তী নির্ধারিত পোলের অপেক্ষা না করে তাৎক্ষণিক আপলিংক ও হাই-রেজোলিউশন বার্স্ট বাধ্য করে।
- প্রতি-যন্ত্র Modbus প্রোফাইল. একটি JSON-চালিত Modbus RTU মাস্টার কনফিগ সময়ে প্রতিটি ডিভাইসের রেজিস্টার, স্কেলিং ও ওয়ার্ড অর্ডার ম্যাপ করে, ফলে একটি ফার্মওয়্যার ইমেজ রিকম্পাইল ছাড়াই মিশ্র magflow, অ্যানালাইজার ও ট্রান্সমিটার ফ্লিটকে সেবা দেয়।
| টেলিমেট্রি পয়েন্ট | সেন্সর প্রোটোকল | স্যাম্পল রেট | অ্যালার্ম থ্রেশহোল্ড আচরণ | কমিউনিকেশন লিংক ও ফেইলওভার |
|---|---|---|---|---|
| ফ্লো | পালস (open-collector, K-factor) | ISR-গণিত, প্রতি 5 s টোটালাইজড | 60 s পর লো/জিরো-ফ্লো ল্যাচড, নো-পালস ওয়াচডগ | Cellular LTE-M প্রাইমারি, পুনঃসংযোগে সম্পূর্ণ পালস কাউন্টের store-and-forward |
| প্রেশার | 4-20mA লুপ (150R-এ সেন্সড) | 10 Hz ওভারস্যাম্পল, 1 s মিডিয়ান | 5 s ডিবাউন্স ও স্লিউ লিমিটসহ হাই/লো ব্যান্ড | Cellular LTE-M, ড্রপআউটের সময় NVS-এ বাফারড MQTT QoS 1 |
| রিজার্ভয়ার লেভেল | Modbus RTU (RS-485) বা 4-20mA | প্রতি 60 s, রিডের মাঝে ডিপ-স্লিপ | রেট-অফ-ফল লিক ফ্ল্যাগসহ Hi-hi/lo-lo লেভেল | সোলার নোডে LoRaWAN প্রাইমারি, SF সর্বোচ্চ হলে cellular fallback |
| টার্বিডিটি | Modbus RTU অ্যানালাইজার (NTU রেজিস্টার) | 15 s পোল, ইভেন্টে 1 s বার্স্ট | রেট-অফ-চেঞ্জ + অ্যাবসোলিউট NTU তাৎক্ষণিক আপলিংক বাধ্য করে | Cellular LTE-M, দুই লিংক ব্যর্থ হলে স্থানীয় SD রিং-বাফার |
Go deeper
ESP32 Firmware & IoT Development for other industries
Frequently asked questions
আমাদের বিদ্যমান 4-20mA ও Modbus যন্ত্র প্রতিস্থাপন না করেই কি পড়তে পারবেন?
হ্যাঁ। ESP32 RTU সরাসরি 4-20mA লুপ সেন্স করে এবং RS-485-এ Modbus RTU মাস্টার হিসেবে কাজ করে, ফলে বিদ্যমান magflow, প্রেশার ট্রান্সমিটার ও টার্বিডিটি অ্যানালাইজার জায়গায় থাকে এবং রিওয়্যারিং নয়, কনফিগ দিয়ে ম্যাপ করা হয়।
দূরবর্তী সাইটে cellular লিংক বিচ্ছিন্ন হলে রিডিংগুলোর কী হয়?
প্রতিটি স্যাম্পল এবং সম্পূর্ণ ফ্লো পালস কাউন্ট নন-ভোলাটাইল store-and-forward বাফারিংয়ে লেখা হয়। লিংক ফিরলে ব্যাকলগ ক্রমানুসারে আপলোড হয়, ফলে ফ্লো টোটাল হুবহু মিলে যায় এবং কোনো অ্যালার্ম ইভেন্ট নীরবে হারায় না।
রিজার্ভয়ার বা পিট সাইটের জন্য cellular ও LoRaWAN-এর মধ্যে কীভাবে বেছে নেন?
আমরা পাওয়ার বাজেট ও কভারেজ অনুযায়ী বাছাই করি: সোলার/ব্যাটারি রিজার্ভয়ার নোড ডিফল্টভাবে লো-ডিউটি LoRaWAN ব্যবহার করে cellular fallback-সহ, আর মেইনস বা সার্জ-প্রোটেক্টেড চেম্বার সাইট টার্বিডিটি বার্স্ট পাঠানোর ব্যান্ডউইডথের জন্য LTE-M ব্যবহার করে।
ফার্মওয়্যার কি আমাদের SCADA বা হিস্টোরিয়ানের সাথে ইন্টিগ্রেট হবে?
ইউনিটটি QoS 1 ও টাইমস্ট্যাম্পড পেলোডসহ MQTT পাবলিশ করে, এবং Modbus TCP স্লেভ রেজিস্টারও এক্সপোজ করতে পারে, ফলে মাঝখানে কোনো কাস্টম প্রোটোকল গেটওয়ে ছাড়াই ডেটা আপনার বিদ্যমান SCADA, হিস্টোরিয়ান বা ক্লাউড ব্রোকারে পৌঁছায়।
পাম্প সার্জ থেকে ভুয়া প্রেশার অ্যালার্ম কীভাবে আটকান?
প্রেশার লুপ 10 Hz-এ ওভারস্যাম্পল করা হয়, 1 s-এ মিডিয়ান-ফিল্টার করা হয়, এবং কনফিগারযোগ্য স্লিউ লিমিটিং ও ডিবাউন্স দিয়ে গেট করা হয়, ফলে ওয়াটার হ্যামার ও পাম্প-স্টার্ট ট্রানজিয়েন্ট হাই/লো অ্যালার্ম লজিকে পৌঁছানোর আগেই বাতিল হয়।