তাপমাত্রা এক্সকারশনের জন্য ESP32 কোল্ড চেইন ফার্মওয়্যার
কোল্ড-চেইন মনিটরিং ফাঁকে ফাঁকে ব্যর্থ হয়: একটি প্রোব ক্যাল থেকে 2 C সরে যায়, গেটওয়ে টানেলে LTE হারায়, কিংবা একটি defrost চক্র মিথ্যা অ্যালার্ম তোলে আর অপারেটররা বাজার উপেক্ষা করতে শুরু করে। আমরা এমন ESP32 ফার্মওয়্যার বানাই যেখানে তাপমাত্রার রেকর্ডই মূল পণ্য, তাই প্রতিটি এক্সকারশন শনাক্ত হয়, টাইমস্ট্যাম্প পায় এবং অডিটর ও রিকল তদন্তের জন্য পুনরুদ্ধারযোগ্য থাকে।
Challenges specific to Cold Chain
প্রোব ড্রিফট অশনাক্ত থেকে যায়
একটি ভ্যাকসিন ফ্রিজ 4 C লগ করে অথচ আসল পণ্য থাকে 9 C-তে, কারণ NTC থার্মিস্টর কখনো ফিল্ড-ক্যালিব্রেট করা হয়নি এবং বয়সের সাথে ড্রিফট করে, ফলে রেকর্ড কমপ্লায়েন্ট দেখায় যখন লোড নষ্ট হচ্ছে।
LTE ড্রপআউটে রেকর্ড হারায়
Reefer ট্রেইলার ঘণ্টার পর ঘণ্টা ডেড জোন ও ফেরি পার হয়; যে ফার্মওয়্যার শুধু লাইভ MQTT স্ট্রিম করে তা অন্ধ জানালা রেখে যায়, আর একটি অনুপস্থিত 90-মিনিটের ব্লকই হলো ঠিক সেই জানালা যা অডিটর বা বিমাকারী চ্যালেঞ্জ করবে।
Defrost চক্র মিথ্যা অ্যালার্ম তোলে
Evaporator defrost প্রতি ছয় ঘণ্টায় ক্যাবিনেট সেন্সরকে সংক্ষিপ্তভাবে থ্রেশহোল্ডের উপরে নিয়ে যায়, আর তাৎক্ষণিক অ্যালার্ম স্টাফকে ডিভাইস চুপ করাতে অভ্যস্ত করে, ফলে একমাত্র আসল এক্সকারশনটি নয়েজের সাথে উপেক্ষিত হয়।
রিবুটে এক্সকারশন ঘড়ি রিসেট হয়
একটি brownout বা watchdog রিসেট জমা হওয়া time-above-threshold কাউন্টার মুছে দেয়, ফলে যে লোড সঞ্চিতভাবে 40 মিনিট সীমা ভেঙেছিল তা কমপ্লায়েন্ট রিপোর্ট করে কারণ সময়কাল শূন্য থেকে আবার শুরু হয়েছে।
অডিট এক্সপোর্ট রক্ষণযোগ্য নয়
ইনস্পেক্টরদের দরকার ক্যাল সার্টিফিকেট ও gap হিসাবসহ একটানা, tamper-evident রেকর্ড; নীরব ইন্টারপোলেশনসহ ড্যাশবোর্ড থেকে টানা একটি CSV কখনো HACCP, GDP বা FDA 21 CFR Part 11 পর্যালোচনা সন্তুষ্ট করবে না।
How GizanTech solves them
- NVS-এ দুই-বিন্দু ফিল্ড ক্যালিব্রেশন. আমরা প্রতিটি প্রোবের জন্য ice-point ও reference-bath offset/slope কোয়েফিশিয়েন্ট ক্যাল তারিখ ও মেয়াদসহ NVS-এ সংরক্ষণ করি, Steinhart-Hart লিনিয়ারাইজেশন প্রয়োগ করি, এবং মেয়াদ শেষ হওয়া যেকোনো প্রোব ফ্ল্যাগ করি যাতে ড্রিফট করা সেন্সর নীরবে পাস না করে।
- Store-and-forward রিং বাফার. রেকর্ডগুলো প্রথমে monotonic সিকোয়েন্স ID সহ একটি LittleFS/SD রিং বাফারে লেখা হয়, এরপর LTE ফিরলে MQTT-তে ড্রেইন করা হয়, ফলে বহু-ঘণ্টার ডেড জোন শূন্য হারানো নমুনা ও স্পষ্ট gap মার্কারসহ ক্রমানুসারে ব্যাকফিল হয়।
- Defrost-সচেতন এক্সকারশন debounce. অ্যালার্ম ইঞ্জিন একটি state machine দিয়ে পরিচিত defrost জানালা মাস্ক করে এবং latching-এর আগে থ্রেশহোল্ড লঙ্ঘন একটি কনফিগারযোগ্য বিলম্বের (যেমন 8 C, 15 min) বেশি স্থায়ী হতে বাধ্য করে, এতে আসল উষ্ণায়ন না লুকিয়েই evaporator স্পাইক দমন হয়।
- স্থায়ী time-above-threshold অ্যাকুমুলেটর. সঞ্চিত এক্সকারশন টাইমার ও min/max এনভেলপ RTC মেমরিতে থাকে এবং flash-এ চেকপয়েন্ট করা হয়, তাই brownout, OTA বা watchdog রিসেট গণনা রিসেট করে লঙ্ঘন লুকানোর বদলে গণনা পুনরায় চালু করে।
- Gap হিসাবসহ সাইন করা Part 11 এক্সপোর্ট. চাহিদামতো ডিভাইস HMAC-সাইন করা সারি, ক্যাল সার্টিফিকেট ID ও স্পষ্ট no-data স্প্যানসহ একটানা রেকর্ড বের করে, যা অডিট ও রিকলের জন্য HACCP/GDP এবং FDA 21 CFR Part 11 প্রমাণ চাহিদার সাথে পরিষ্কারভাবে মেলে।
| চাহিদা | ফার্মওয়্যার ব্যবস্থা | প্রতিরোধিত ব্যর্থতা | অডিট / রিপোর্টিং সংযোগ |
|---|---|---|---|
| প্রোব নির্ভুলতা +/-0.5 C | দুই-বিন্দু NVS ক্যাল (ice + bath), Steinhart-Hart লিনিয়ারাইজেশন, ক্যাল-মেয়াদ ফ্ল্যাগ | ড্রিফট করা থার্মিস্টর মিথ্যা-কমপ্লায়েন্ট তাপমাত্রা লগ করছে | প্রতিটি এক্সপোর্ট রেকর্ডে ক্যাল সার্টিফিকেট ID ও তারিখ স্ট্যাম্প করা |
| লগিং বিরতি 60 s, ফাঁকহীন | monotonic সিকোয়েন্স ID সহ LittleFS/SD রিং বাফারে ফিক্সড-টিক স্যাম্পলার | লাইভ-শুধু MQTT LTE/ferry ডেড জোনে ডেটা হারাচ্ছে | স্পষ্ট no-data স্প্যানসহ একটানা সিরিজ, কোনো নীরব ইন্টারপোলেশন নয় |
| এক্সকারশন থ্রেশহোল্ড 8 C / 15 min বিলম্ব | অ্যালার্ম latch-এর আগে defrost-জানালা মাস্কিংসহ state-machine debounce | Defrost স্পাইক স্টাফকে বাজার উপেক্ষায় অভ্যস্ত করছে | অ্যালার্ম সারি পর্যালোচনার জন্য লঙ্ঘন শুরু, peak ও বিলম্বের কারণ বহন করে |
| সঞ্চিত লঙ্ঘন সময় রিসেট টিকে থাকে | RTC মেমরিতে time-above-threshold অ্যাকুমুলেটর, flash-এ চেকপয়েন্ট করা | Brownout/OTA কাউন্টার মুছে আসল এক্সকারশন লুকাচ্ছে | অডিট সারাংশে mean-kinetic-temperature ও মোট লঙ্ঘন মিনিট |
| Tamper-evident কমপ্লায়েন্স এক্সপোর্ট | প্রতি-ডিভাইস কী দিয়ে HMAC-সাইন করা সারি, সিকোয়েন্স ID অনুসারে সাজানো | সম্পাদিত বা back-filled CSV Part 11 ইন্টিগ্রিটি চেক ব্যর্থ করছে | Signature + gap লেজার HACCP / GDP / 21 CFR Part 11-এ মেলে |
Go deeper
ESP32 Firmware & IoT Development for other industries
Frequently asked questions
দীর্ঘ LTE ডেড জোনে আপনারা কীভাবে ডেটা ধরে রাখেন?
প্রতিটি নমুনা প্রথমে ডিভাইসে থাকা একটি রিং বাফারে লেখা হয় এবং কানেক্টিভিটি ফিরলেই কেবল ক্লাউডে স্ট্রিম করা হয়, ফলে ঘণ্টাব্যাপী টানেল বা ফেরি পারাপার কোনো রেকর্ড না হারিয়ে ক্রমানুসারে ব্যাকফিল হয়।
ফার্মওয়্যার কি defrost চক্র ও আসল উষ্ণায়নের পার্থক্য বুঝতে পারে?
হ্যাঁ। একটি state machine নির্ধারিত defrost জানালা মাস্ক করে এবং অ্যালার্ম latch করার আগে থ্রেশহোল্ড লঙ্ঘন একটি কনফিগার করা বিলম্বের বেশি স্থায়ী হতে বাধ্য করে, তাই evaporator স্পাইক মিথ্যা এক্সকারশন তৈরি করে না।
তাপমাত্রার রেকর্ড কি FDA 21 CFR Part 11-এর জন্য রক্ষণযোগ্য?
এক্সপোর্ট monotonic সিকোয়েন্স ID, ক্যালিব্রেশন সার্টিফিকেট ID ও স্পষ্ট no-data স্প্যানসহ HMAC-সাইন করা সারি ব্যবহার করে, যা একটি tamper-evident, gap-হিসাবকৃত রেকর্ড দেয় যা Part 11, HACCP ও GDP পর্যালোচনায় মেলে।
প্রোবগুলো কতটা নির্ভুল এবং তা কীভাবে প্রমাণিত হয়?
আমরা প্রতিটি প্রোব NVS-এ সংরক্ষিত একটি দুই-বিন্দু ice-and-bath পদ্ধতিতে ফিল্ড-ক্যালিব্রেট করি এবং প্রতিটি এক্সপোর্ট রেকর্ডে ক্যাল সার্টিফিকেট ID ও মেয়াদ স্ট্যাম্প করি, তাই নির্ভুলতা ধরে নেওয়া নয় বরং ট্রেসযোগ্য।
ডিভাইস রিবুট হলে এক্সকারশন টাইমারের কী হয়?
সঞ্চিত time-above-threshold কাউন্টার RTC মেমরিতে থাকে এবং flash-এ চেকপয়েন্ট করা হয়, তাই brownout, OTA বা watchdog রিসেট গণনা রিসেট করে লঙ্ঘন লুকানোর বদলে গণনা পুনরায় চালু করে।