সুচিপত্র:

থিংসস্পিক এমকিউটিটি এবং আইএফটিটিটি অ্যাপলেট ব্যবহার করে আবহাওয়ার প্রতিবেদন: 8 টি ধাপ
থিংসস্পিক এমকিউটিটি এবং আইএফটিটিটি অ্যাপলেট ব্যবহার করে আবহাওয়ার প্রতিবেদন: 8 টি ধাপ

ভিডিও: থিংসস্পিক এমকিউটিটি এবং আইএফটিটিটি অ্যাপলেট ব্যবহার করে আবহাওয়ার প্রতিবেদন: 8 টি ধাপ

ভিডিও: থিংসস্পিক এমকিউটিটি এবং আইএফটিটিটি অ্যাপলেট ব্যবহার করে আবহাওয়ার প্রতিবেদন: 8 টি ধাপ
ভিডিও: জাপান, একটি উত্পাদনকারী দেশ, বেঁচে থাকার একটি উপায় আছে কি? 2024, জুলাই
Anonim
থিংসস্পিক এমকিউটিটি এবং আইএফটিটিটি অ্যাপলেট ব্যবহার করে আবহাওয়ার প্রতিবেদন
থিংসস্পিক এমকিউটিটি এবং আইএফটিটিটি অ্যাপলেট ব্যবহার করে আবহাওয়ার প্রতিবেদন

ভূমিকা

একটি ক্লাউড-ভিত্তিক আবহাওয়া অ্যাপ্লিকেশন দৈনন্দিন আবহাওয়ার প্রতিবেদন ইমেল বিজ্ঞপ্তি হিসাবে প্রদান করে। এই ওয়েব অ্যাপ্লিকেশনটি SHT25 এবং Adafruit Huzzah ESP8266 ব্যবহার করে তাপমাত্রা এবং আর্দ্রতা পরিমাপ করে। এটি আমাদের রিয়েল-টাইম তাপমাত্রা এবং আর্দ্রতা ডেটা এবং প্রতি ঘন্টা বিশ্লেষণ সরবরাহ করে। থিংসস্পিক এমকিউটিটি এপিআই ব্যবহার করে ডেটা পাঠানো হয় এবং পরে যখনই তাপমাত্রা আইএফটিটিটি প্রোটোকল ব্যবহার করে নির্ধারিত থ্রেশহোল্ডে পৌঁছে তখন আমরা ব্যবহারকারীকে একটি ইমেল বিজ্ঞপ্তি প্রদান করছি। SHT25 হল একটি তাপমাত্রা এবং আর্দ্রতা সেন্সর যা Sensirion দ্বারা তৈরি। SHT25 around 2% RH এর কাছাকাছি উচ্চ স্তরের নির্ভুলতা প্রদান করে। এর আর্দ্রতা পরিসীমা 0 থেকে 100% এবং তাপমাত্রার পরিসীমা -40 থেকে 125 ° C এর মধ্যে। এটি সেন্সর রেসপন্স টাইমের 8 সেকেন্ডের সাথে অনেক বেশি নির্ভরযোগ্য এবং দ্রুত।

বৈশিষ্ট্য

  • থিং স্পিক এমকিউটিটি এপিআই ব্যবহার করে আপনাকে রিয়েল-টাইম বিশ্লেষণ এবং পরিসংখ্যান সরবরাহ করে
  • IFTTT ব্যবহার করে একটি নির্ধারিত সময়ে ব্যবহারকারীকে একটি ইমেল বিজ্ঞপ্তি প্রদান করা হয়
  • টাস্ক শিডিউলার সেন্সর থেকে ডেটা আনা, সেন্সর রিডিং প্রকাশ করা, এমকিউটিটি বিষয় সাবস্ক্রাইব করার মতো কাজের সময়সূচী করতে ব্যবহৃত হয়
  • এটি সেন্সর রিডিং আনতে I2C প্রোটোকল ব্যবহার করে যা আরও সঠিক, সম্প্রসারণযোগ্য এবং মাপযোগ্য
  • স্লিপ মোড যখন ডিভাইসটি নিষ্ক্রিয় থাকে বা কোন টাস্ক কলব্যাক বলা হয় না।
  • কার্যকর কাজের সময়সূচী ঝামেলা মুক্ত ব্যবহার প্রদান করে
  • একটি পৃথক ওয়েবপেজ হোস্ট করা হয় যেখানে ব্যবহারকারীকে তার ব্যবহারকারীর পরিচয়পত্র প্রদান করতে হয় যাতে প্রতিবার অন্য ওয়াইফাই নেটওয়ার্কের নাগালে আপনার ডিভাইসটি ঝলকানি এড়াতে পারে।
  • SPIFFS আমাদের ওয়েবপৃষ্ঠা সংরক্ষণ করতে ব্যবহৃত হয় যাতে আমাদের কোড পাঠযোগ্য এবং কম আনাড়ি হয়

ধাপ 1: হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন

হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন
হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন
হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন
হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন

হার্ডওয়্যার স্পেসিফিকেশন

  • Adafruit esp8266 Huzzah বোর্ড
  • হুজ্জা বোর্ড শিল্ড
  • SHT25 সেন্সর মডিউল
  • I2C কেবল

সফটওয়্যার স্পেসিফিকেশন

  • Arduino IDE
  • IFTTT থিংক স্পিক
  • MQTT API

ধাপ 2: ব্যবহারকারীর শংসাপত্র সংরক্ষণ করা

ব্যবহারকারীর শংসাপত্র সংরক্ষণ করা
ব্যবহারকারীর শংসাপত্র সংরক্ষণ করা
ব্যবহারকারীর শংসাপত্র সংরক্ষণ করা
ব্যবহারকারীর শংসাপত্র সংরক্ষণ করা

এখানে আমরা তাপমাত্রা এবং আপেক্ষিক আর্দ্রতার রিয়েল-টাইম মান পড়তে এবং এই মানগুলি ক্লাউডে পোস্ট করার জন্য SHT25 I2C সেন্সর ব্যবহার করছি। সময়ে সময়ে আপডেট হওয়া সেন্সর মান পেতে এবং এই আপডেটগুলি একই সাথে পোস্ট করার জন্য আমরা Arduino এর টাস্ক শিডিউলার লাইব্রেরি ব্যবহার করছি। ক্লাউড অপারেশনের জন্য, আমরা ThingSpeak MQTT API ব্যবহার করছি। পরে আমরা আইএফটিটিটি অ্যাপলেট ব্যবহার করে ব্যবহারকারীকে রিয়েল-টাইম আবহাওয়া রিপোর্ট প্রদান করছি। আপনি আপনার নিজস্ব আবহাওয়া স্টেশন করতে এই ধাপগুলি অনুসরণ করতে পারেন। সুতরাং, DIY।

আরও এগিয়ে যাওয়ার আগে। আমাদের ব্যবহারকারীর পরিচয়পত্র সংরক্ষণ করতে হবে। এই উদ্দেশ্যে, আমরা 192.169.1.4 এ একটি ওয়েব সার্ভার হোস্ট করছি। আমরা আমাদের ওয়েব ফর্ম SPIFFS- এ সংরক্ষণ করেছি। একবার ডিভাইসটি শুরু হয়ে গেলে এটি 60 সেকেন্ডের জন্য একটি ওয়েব সার্ভার হোস্ট করে। ব্যবহারকারীর এই পদক্ষেপগুলি অনুসরণ করা উচিত।

  • AP ESPuser এর সাথে সংযোগ করুন, এটি আপনার উপলব্ধ ওয়াইফাই নেটওয়ার্ক তালিকায় তালিকাভুক্ত। এই AP এর সাথে সংযোগ করুন এবং পাসওয়ার্ড লিখুন "*******"
  • একবার এটি সংযুক্ত হয়ে গেলে, আপনার ব্রাউজারে যান আইপি 192.168.1.4 লিখুন।
  • ইনপুট ক্ষেত্রে আপনার স্থানীয় ওয়াইফাই এর SSID এবং পাসওয়ার্ড লিখুন এবং SUBMIT লিখুন
  • এই শংসাপত্রগুলি EEPROM এ সংরক্ষণ করা হবে
  • 60 সেকেন্ডের পরে ডিভাইস স্বয়ংক্রিয়ভাবে AP থেকে সংযোগ বিচ্ছিন্ন হয়ে যাবে
  • পরের বার যখন আপনি ডিভাইসটি চালু করবেন, ব্যবহারকারীকে এই পদ্ধতিটি অনুসরণ করতে হবে না, ডিভাইসটি স্বয়ংক্রিয়ভাবে EEPROM থেকে ব্যবহারকারীর শংসাপত্র আনবে এবং I2C ইন্টারফেস থেকে সেন্সর রিডিং পেতে এবং এটি ক্লাউডে পোস্ট করা চালিয়ে যাবে

// --------- AP কনফিগ ------------ // IPAddress ap_local_IP (192, 168, 1, 4); IPAddress ap_gateway (192, 168, 1, 254); IPAddress ap_subnet (255, 255, 255, 0);

সিরিয়াল.প্রিন্ট ("অ্যাক্সেস পয়েন্ট কনফিগার করা …");

WiFi.softAPConfig (ap_local_IP, ap_gateway, ap_subnet);

সিরিয়াল.প্রিন্ট ("ব্যবহারকারীর শংসাপত্র স্থাপন");

WiFi.softAP (ssidAP, passAP);

server.on ("/", handleRoot);

server.onNotFound (onHandleNotFound);

server.begin ();

APTimer = মিলিস ();

while (millis ()-APTimer <APInterval) {

server.handleClient ();

}

// **************************** হ্যান্ডেল রুট ****************** ********* // অকার্যকর হ্যান্ডেল রুট () {

যদি (server.hasArg ("ssid") && server.hasArg ("পাসওয়ার্ড"))

{

// যদি সমস্ত ফর্ম ক্ষেত্রগুলিতে ডেটা কল থাকে

handelSubmit ()

handleSubmit (); }

অন্য {

// ফর্মটি পুনরায় প্রদর্শন করুন

// স্পিফগুলিতে থাকা ফাইলটি পড়ুন

ফাইল ফাইল = SPIFFS.open ("/webform.html", "r");

server.streamFile (ফাইল, "টেক্সট/এইচটিএমএল");

// ফাইলটি বন্ধ করতে ভুলবেন না

file.close ();

}}

// স্ট্যাটাস চেক করুন এতে আর্গুমেন্ট ssid এবং পাসওয়ার্ড আছে

// তারপর ROM- এ শংসাপত্র লিখুন

ROMwrite (স্ট্রিং (server.arg ("ssid")), স্ট্রিং (server.arg ("পাসওয়ার্ড")))

ধাপ 3: SPIFFS এ আপনার ওয়েবফর্ম সেট আপ করা

SPIFFS

সিরিয়াল পেরিফেরাল ইন্টারফেস ফ্ল্যাশ ফাইল সিস্টেম, অথবা সংক্ষেপে SPIFFS। এটি একটি SPI ফ্ল্যাশ চিপ সহ মাইক্রোকন্ট্রোলারের জন্য একটি হালকা ওজনের ফাইল সিস্টেম। ESP8266 এর অনবোর্ড ফ্ল্যাশ চিপে আপনার ওয়েব পেজের জন্য প্রচুর জায়গা আছে, বিশেষ করে যদি আপনার 1MB, 2MB বা 4MB ভার্সন থাকে। আমরা ফ্ল্যাশ সিস্টেমে আমাদের ওয়েবপেজও সংরক্ষণ করেছি। স্পিফগুলিতে ডেটা আপলোড করার জন্য আমাদের কয়েকটি পদক্ষেপ অনুসরণ করতে হবে

  1. টুলটি ডাউনলোড করুন:
  2. আপনার Arduino স্কেচবুক ডিরেক্টরিতে, সরঞ্জাম ডিরেক্টরি তৈরি করুন যদি এটি এখনও বিদ্যমান না থাকে
  3. টুলস ডিরেক্টরিতে টুলটি আনপ্যাক করুন (পথটি /Arduino/tools/ESP8266FS/tool/esp8266fs.jar এর মত দেখাবে)
  4. Arduino IDE পুনরায় চালু করুন
  5. একটি স্কেচ খুলুন (অথবা একটি নতুন তৈরি করুন এবং এটি সংরক্ষণ করুন)
  6. স্কেচ ডিরেক্টরিতে যান (স্কেচ নির্বাচন করুন> স্কেচ ফোল্ডার দেখান)
  7. সেখানে ফাইল সিস্টেমে ডেটা এবং যে কোনো ফাইল নামক একটি ডিরেক্টরি তৈরি করুন। আমরা ওয়েবফর্ম.এইচটিএমএল নামে আমাদের এইচটিএমএল পেজ আপলোড করেছি
  8. নিশ্চিত করুন যে আপনি একটি বোর্ড, পোর্ট এবং বন্ধ সিরিয়াল মনিটর নির্বাচন করেছেন
  9. সরঞ্জাম> ESP8266 স্কেচ ডেটা আপলোড নির্বাচন করুন। এটি ESP8266 ফ্ল্যাশ ফাইল সিস্টেমে ফাইল আপলোড করা শুরু করবে। হয়ে গেলে, IDE স্ট্যাটাস বার SPIFFS ইমেজ আপলোড করা বার্তা প্রদর্শন করবে।

ফাইল ফাইল = SPIFFS.open ("/webform.html", "r");

server.streamFile (ফাইল, "টেক্সট/এইচটিএমএল");

// ফাইলটি বন্ধ করতে ভুলবেন না

file.close ();

ধাপ 4: টাস্ক সময়সূচী

এই টিউটোরিয়ালে, আমরা দুটি অপারেশন করছি:

  • I2C প্রোটোকল ব্যবহার করে SHT25 থেকে ডেটা পড়ুন
  • ThingSpeak MQTT API ব্যবহার করে ক্লাউডে আপডেট হওয়া ডেটা পোস্ট করুন

এটি অর্জনের জন্য আমরা TaskScheduler লাইব্রেরি ব্যবহার করছি। আমরা দুটি ভিন্ন কন্ট্রোল অপারেশন উল্লেখ করে দুটি ভিন্ন কাজ নির্ধারণ করেছি। এটি নিম্নরূপ করা হয়

  • টাস্ক 1 হল সেন্সর ভ্যালু পড়ার জন্য এই টাস্কটি 1 সেকেন্ড পর্যন্ত চলে যতক্ষণ না এটি 10 সেকেন্ডের সময়সীমা শেষ হয়।
  • যখন টাস্ক 1 তার সময় শেষ হয়ে যায় তখন আমরা স্থানীয় ওয়াইফাই এবং এমকিউটিটি ব্রোকারের সাথে সংযোগ স্থাপন করি।
  • এখন টাস্ক 2 সক্ষম করা হয়েছে এবং আমরা টাস্ক 1 টি অক্ষম করছি টাস্ক 2 থিংক স্পিক এমকিউটিটি ব্রোকারের কাছে সেন্সর ডেটা প্রকাশ করার জন্য এই কাজটি 20 সেকেন্ডের জন্য চলে যতক্ষণ না এটি 20 সেকেন্ডের সময়সীমা শেষ হয়
  • যখন টাস্ক 2 তার সময়সীমা পৌঁছায় তখন টাস্ক 1 আবার সক্ষম হয় এবং টাস্ক 2 অক্ষম হয়। এখানে আবার, আমরা আপডেট করা মান পাচ্ছি এবং প্রক্রিয়াটি চলছে
  • যখন কোনও কলব্যাক বলা হয় না বা ডিভাইসটি নিষ্ক্রিয় থাকে তখন এটি হালকা ঘুমের দিকে যায় এইভাবে শক্তি সঞ্চয় করে।

// --------- টাস্ক কলব্যাকের জন্য প্রোটোটাইপ ------------ //

অকার্যকর কাজ I2CCallback ();

অকার্যকর কাজ I2CDisable ();

অকার্যকর টাস্ক ওয়াইফাই কলব্যাক ();

অকার্যকর টাস্ক ওয়াইফাইডিসেবল ();

//---------কাজ------------//

টাস্ক tI2C (2 * TASK_SECOND, TASK_FOREVER, & taskI2CCallback, & ts, false, NULL, & taskI2CDisable);

টাস্ক tWiFi (20* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);

// tI2C tI2C.enable () সক্ষম করুন;

ধাপ 5: SHT25 থেকে তাপমাত্রা এবং আর্দ্রতার মান পড়া

SHT25 থেকে তাপমাত্রা এবং আর্দ্রতার মান পড়া
SHT25 থেকে তাপমাত্রা এবং আর্দ্রতার মান পড়া

I2C একটি দুই-তারের ইন্টারফেস যা মাস্টার ডিভাইসের সাথে যোগাযোগের জন্য কেবল দুটি তার ব্যবহার করে। একটি হল এসসিএল (সিরিয়াল ক্লক) এবং অন্যটি এসডিএ (সিরিয়াল ডেটা)। প্রতিটি স্লেভ ডিভাইসের একটি অনন্য ঠিকানা আছে। SHT 25 এর একটি 8-বিট ঠিকানা রয়েছে এবং এটি 0x44 ঠিকানা দ্বারা অ্যাক্সেস করা যায়। এটির 8 বিট ঠিকানা আছে যেখানে 7 বিট প্রকৃত ঠিকানা এবং যখন ডানদিকের এলএসবি বিট 0 ডিভাইস থেকে পড়া বা লেখার সংকেত দিতে ব্যবহৃত হয়। যদি বিট 0 সেট করা হয় 1 তাহলে মাস্টার ডিভাইসটি স্লেভ I2C ডিভাইস থেকে পড়বে। I2C অনেক বেশি নির্ভরযোগ্য, স্কেলেবল এবং দ্রুত এবং এমনকি এটির অনেকগুলি অপারেশন রয়েছে যা এটিকে অনেক বেশি শক্তি দক্ষ করে তোলে

আমরা Wire.h লাইব্রেরি ব্যবহার করছি তাপমাত্রা এবং আর্দ্রতার মান পড়তে। এই লাইব্রেরি সেন্সর এবং মাস্টার ডিভাইসের মধ্যে i2c যোগাযোগের সুবিধা দেয়। 0x44 হল SHT25 এর জন্য I2C ঠিকানা। SHT25 অপারেশনের একটি ভিন্ন মোডে কাজ করে। আপনি এর জন্য ডেটশীট উল্লেখ করতে পারেন। আমরা একক শট অপারেশনের জন্য যথাক্রমে 0x2C এবং 0x06 MSB এবং LSB হিসাবে ব্যবহার করছি

ধাপ 6: ThingSpeak MQTT API ব্যবহার করে ThingSpeak- এর মান প্রকাশ করা

ThingSpeak MQTT API ব্যবহার করে ThingSpeak- এর মান প্রকাশ করা
ThingSpeak MQTT API ব্যবহার করে ThingSpeak- এর মান প্রকাশ করা

আমাদের তাপমাত্রা এবং আর্দ্রতার মানগুলি ক্লাউডে পোস্ট করার জন্য আমরা ThingSpeak MQTT API ব্যবহার করছি। ThingSpeak একটি IoT প্ল্যাটফর্ম। ThingSpeak হল একটি ফ্রি ওয়েব সার্ভিস যা আপনাকে ক্লাউডে সেন্সর ডেটা সংগ্রহ এবং সঞ্চয় করতে দেয়। এমকিউটিটি হল একটি সাধারণ প্রোটোকল যা আইওটি সিস্টেমে নিম্ন স্তরের ডিভাইস এবং সেন্সর সংযুক্ত করতে ব্যবহৃত হয়। MQTT একটি দালালের কাছে এবং তার কাছ থেকে সংক্ষিপ্ত বার্তা প্রেরণের জন্য ব্যবহৃত হয়। ThingSpeak সম্প্রতি একটি MQTT ব্রোকার যুক্ত করেছে যাতে ডিভাইসগুলি ThingSpeak- এ বার্তা পাঠাতে পারে। আপনি এই পোস্ট থেকে থিংসস্পিক চ্যানেল সেট আপ করার পদ্ধতি অনুসরণ করতে পারেন

থিংসস্পিক এমকিউটিটি

MQTT হল একটি পাবলিশ/সাবস্ক্রাইব আর্কিটেকচার যা মূলত ব্যান্ডউইথ এবং পাওয়ার-সীমাবদ্ধ ডিভাইসগুলিকে ওয়্যারলেস নেটওয়ার্কের সাথে সংযুক্ত করার জন্য তৈরি করা হয়েছে। এটি একটি সহজ এবং লাইটওয়েট প্রোটোকল যা টিসিপি/আইপি সকেট বা ওয়েবসকেটের উপর চলে। MQTT ওভার ওয়েবসকেটস SSL দিয়ে সুরক্ষিত করা যায়। পাবলিশ/সাবস্ক্রাইব আর্কিটেকচার সার্ভারকে ক্রমাগত ভোট দেওয়ার প্রয়োজন ছাড়াই ক্লায়েন্ট ডিভাইসে বার্তাগুলিকে ধাক্কা দিতে সক্ষম করে। একটি বিষয়ে দালালের জন্য রাউটিং তথ্য রয়েছে। প্রতিটি ক্লায়েন্ট যে বার্তা পাঠাতে চায় সেগুলি একটি নির্দিষ্ট বিষয়ে প্রকাশ করে এবং প্রতিটি ক্লায়েন্ট যে বার্তা পেতে চায় তা একটি নির্দিষ্ট বিষয়ে সাবস্ক্রাইব করে

ThingSpeak MQTT ব্যবহার করে প্রকাশ করুন এবং সাবস্ক্রাইব করুন

  • চ্যানেল ফিড চ্যানেল প্রকাশ /প্রকাশ /
  • একটি নির্দিষ্ট ক্ষেত্র চ্যানেলে প্রকাশ/প্রকাশ/ক্ষেত্র/ক্ষেত্র/
  • চ্যানেল ফিল্ড চ্যানেল সাবস্ক্রাইব করুন/সাবস্ক্রাইব করুন //
  • বেসরকারী চ্যানেল ফিড চ্যানেলগুলিতে সাবস্ক্রাইব করুন // সাবস্ক্রাইব/ক্ষেত্র/ক্ষেত্র/
  • একটি চ্যানেলের সকল ক্ষেত্রে সাবস্ক্রাইব করুন। চ্যানেল // সাবস্ক্রাইব/ফিল্ড/ফিল্ড/

অকার্যকর টাস্ক ওয়াইফাই কলব্যাক ()

{

Serial.println ("taskWiFiCallbackStarted");

Serial.print ("এই কাজের জন্য সময়সীমা: / t");

Serial.println (tWiFi.getTimeout ());

যদি (! mqttCli.connected ())

{

Serial.println ("ক্লায়েন্ট সংযুক্ত নয়");

MQTT () পুনরায় সংযোগ করুন;

}

স্ট্রিং topicString = "চ্যানেল/"+স্ট্রিং (channelID)+"/প্রকাশ/"+স্ট্রিং (writeAPIKey);

int topicLength = topicString.length ()+1;

char topicBuffer [topicLength];

topicString.toCharArray (topicBuffer, topicLength+1);

Serial.println (topicBuffer);

স্ট্রিং dataString = String ("field1 =" + String (tempC, 1) + "& field2 =" + String (tempF, 1) + "& field3 =" + String (humid, 1));

int dataLength = dataString.length ()+1;

বাইট dataBuffer [dataLength];

dataString.getBytes (dataBuffer, dataLength);

mqttCli.beginPublish (topicBuffer, dataLength, false);

Serial.println (mqttCli.write (dataBuffer, dataLength)? "Published": "প্রকাশিত ব্যর্থ");

mqttCli.endPublish ();

//mqttCli.loop ();

}

ধাপ 7: আবহাওয়া রিপোর্ট ইমেল বিজ্ঞপ্তি

আবহাওয়া রিপোর্ট ইমেল বিজ্ঞপ্তি
আবহাওয়া রিপোর্ট ইমেল বিজ্ঞপ্তি
আবহাওয়া রিপোর্ট ইমেল বিজ্ঞপ্তি
আবহাওয়া রিপোর্ট ইমেল বিজ্ঞপ্তি

আমরা ব্যবহারকারীকে রিয়েল-টাইম আবহাওয়া প্রতিবেদন ইমেল বিজ্ঞপ্তি দিতে IFTTT অ্যাপলেট ব্যবহার করছি। সুতরাং, আমরা এটি ThingSpeak এর মাধ্যমে বাস্তবায়ন করেছি। আমরা তাপমাত্রা এবং আর্দ্রতার 5-ফাই মান গড় করছি। যখনই শেষ এন্ট্রির মান গড় মানের চেয়ে বেশি হবে। এটি একটি ইমেইল বিজ্ঞপ্তি ট্রিগার করবে "এটি একটি গরম দিন"। এবং যখন এটি গড় মানের চেয়ে কম হয়। এটি একটি ইমেল বিজ্ঞপ্তি ট্রিগার করবে "কি সুন্দর দিন"। প্রতিদিন সকাল ১০ টার দিকে (IST) আমরা একটি ইমেইল বিজ্ঞপ্তি পাচ্ছি

channelID = ******;

iftttURL = 'https://maker.ifttt.com/****************';

moistData = thingSpeakRead (channelID, 'Fields', 3, 'NumDays', 5); tempData = thingSpeakRead (channelID, 'Fields', 1, 'NumDays', 5);

perHumid = সর্বোচ্চ (আর্দ্রতা ডেটা) -মিন (আর্দ্রতা ডেটা);

humidValue = 0.1*perHumid+min (আর্দ্রতা ডেটা);

perTemp = সর্বোচ্চ (tempData) -min (tempData);

tempValue = 0.1*perTemp+min (tempData);

urlTemp = strcat ('https://api.thingspeak.com/channels/', স্ট্রিং (channelID), '/fields/1/last.txt');

urlHumid = strcat ('https://api.thingspeak.com/channels/', স্ট্রিং (channelID), '/fields/3/last.txt'); lastTempValue = str2num (webread (urlTemp)); lastHumidValue = str2num (webread (urlHumid));

যদি (lastTempValue

যদি (lastTempValue> tempValue || lastHumidValue> humidValue)

plantMessage = 'It's a hot day।'; ওয়েবরাইট (iftttURL, 'value1', plantMessage, 'value2', lastTempValue, 'value3', lastHumidValue); শেষ

ধাপ 8: সামগ্রিক কোড

সামগ্রিক কোড
সামগ্রিক কোড
সামগ্রিক কোড
সামগ্রিক কোড
সামগ্রিক কোড
সামগ্রিক কোড

সামগ্রিক কোড

এই GitHub সংগ্রহস্থলে সামগ্রিক কোড পাওয়া যায়

সীমাবদ্ধতা

  • ডেটা প্রকাশের ক্ষেত্রে কিছু সমস্যা রয়েছে, যাতে প্রচুর পরিমাণে ডেটা প্রকাশ করা যায়।
  • SPIFFS- এ নতুন ডেটা আপলোড করার আগে SPIFFS ফরম্যাট করা উচিত।
  • আপনি অবশ্যই বিলম্ব () ফাংশন ব্যবহার করবেন না। বিলম্ব () ব্যাকগ্রাউন্ড অপারেশনকে বাধা দেয়। পরিবর্তে, মিলিস () ব্যবহার করে বিলম্ব তৈরি করুন যদি এটি প্রয়োজন হয়

ক্রেডিট

  • ESP826 ওয়েব সার্ভার
  • কাজের সূচি
  • SHT 25
  • ThingSpeak MQTT API
  • IFTTT
  • PubSubClient

প্রস্তাবিত: