সুচিপত্র:
- সরবরাহ
- ধাপ 1: তাপমাত্রা এবং আর্দ্রতা পরিমাপ করুন
- পদক্ষেপ 2: প্রকল্প তৈরি করুন এবং কনফিগার করুন
- ধাপ 3: লাইব্রেরি ইনস্টল করুন
- ধাপ 4: একটি DHT11 সেন্সর সংযুক্ত করুন
- ধাপ 5: ক্লাউডে ডেটা পাঠানো
- ধাপ 6: ডায়াগনস্টিকস
- ধাপ 7: প্রকল্পটি শুরু করুন এবং ডিবাগ করুন
- ধাপ 8: ড্যাশবোর্ড কনফিগারেশন
- ধাপ 9: উপসংহার
ভিডিও: একটি ESP8266- ভিত্তিক বোর্ডের সাথে ক্লাউডে একটি DHT11/DHT22 সেন্সর সংযুক্ত করা: 9 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
আগের নিবন্ধে, আমি আমার ESP8266- ভিত্তিক NodeMCU বোর্ডকে Cloud4RPi পরিষেবার সাথে সংযুক্ত করেছি। এখন, এটি একটি বাস্তব প্রকল্পের সময়!
সরবরাহ
হার্ডওয়্যারের প্রয়োজনীয়তা:
- ESP8266 চিপের উপর ভিত্তি করে যে কোন বোর্ড (উদাহরণস্বরূপ, NodeMCU)
- একটি DHT11 বা DHT22 সেন্সর
সফটওয়্যার এবং সেবা:
- অ্যাডাফ্রুট দ্বারা ডিএইচটি সেন্সর লাইব্রেরি - v1.3.7
- Adafruit ইউনিফাইড সেন্সর - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - IoT ডিভাইসের জন্য ক্লাউড কন্ট্রোল প্যানেল
- VSCode এর জন্য PlatformIO IDE
ধাপ 1: তাপমাত্রা এবং আর্দ্রতা পরিমাপ করুন
আমার ইতিমধ্যে একটি DHT11 সেন্সর ছিল, তাই আমি এটি তাপমাত্রা এবং আর্দ্রতা পরিমাপের জন্য ব্যবহার করার সিদ্ধান্ত নিয়েছি। সেন্সর ডেটা পড়ার জন্য একটি Arduino লাইব্রেরি বেছে নেওয়া যাক।
আরডুইনো রেজিস্ট্রিতে বেশ কয়েকটি লাইব্রেরি রয়েছে, যেখান থেকে আমি সবচেয়ে জনপ্রিয় একটি বেছে নিয়েছি।
তাদের গিটহাব সংগ্রহস্থল অনুসারে, আমাদের একটি অ্যাডাফ্রুট ইউনিফাইড সেন্সর প্যাকেজ যুক্ত করতে হবে।
পদক্ষেপ 2: প্রকল্প তৈরি করুন এবং কনফিগার করুন
আমি ইতিমধ্যে বর্ণনা করেছি কিভাবে একটি প্ল্যাটফর্মআইও প্রকল্প তৈরি করা যায় এবং প্রথম অংশে লাইব্রেরি ইনস্টল করা যায়। আমার প্রকল্পের নাম "MyNodeMCU"। কাঠামো উপরে দেখানো হয়েছে।
এই প্রকল্পটি একটি সামান্য পরিবর্তিত Cloud4RPi উদাহরণ।
Platform.io ফাইলটি নিম্নরূপ দেখাচ্ছে:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] প্ল্যাটফর্ম = espressif8266 ফ্রেমওয়ার্ক = arduino বোর্ড = nodemcuv2
ধাপ 3: লাইব্রেরি ইনস্টল করুন
লাইব্রেরি ইনস্টলেশন বেশ সহজ। আপনি এটি IDE এর গ্রাফিক্যাল ইন্টারফেস থেকে করতে পারেন, অথবা platform.io ফাইলের lib_deps বিভাগে প্রয়োজনীয় লাইব্রেরির নাম যোগ করে:
; … lib_deps = cloud4rpi-ESP-Arduino Adafruit ইউনিফায়েড সেন্সর DHT সেন্সর গ্রন্থাগার build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = 0 -D SSID_NAME = / "_ YOUR_WIFI _ \" -D SSID_PASSWORD = / "_ YOUR_WIFI_PASS _ \" - D CLOUD4RPI_TOKEN = / "_ YOUR_DEVICE_TOKEN _ \"
যোগ করা লাইব্রেরিগুলি স্বয়ংক্রিয়ভাবে একটি প্রকল্পের সাবফোল্ডারে ইনস্টল করা হবে।
Main.cpp হেডার নিম্নরূপ দেখায়:
#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #DHT.h
ধাপ 4: একটি DHT11 সেন্সর সংযুক্ত করুন
Adafruit একটি DHTtester.ino সেন্সর সংযোগের উদাহরণ প্রদান করে।
এই কোডটি একটি সেন্সর আরম্ভ করে এবং পরিমাপের ফলাফল সংরক্ষণ করার জন্য একটি কাঠামো সংজ্ঞায়িত করে (যদি এটি সফল হয়):
#DHTPIN 2 সংজ্ঞায়িত করুন // ডিজিটাল পিন DHT সেন্সরের সাথে সংযুক্ত#DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE) সংজ্ঞায়িত করুন; dht.begin (); //… struct DHT_Result {float h; ভাসা t; }; DHT_ ফলাফল dhtResult;
পরবর্তী ফাংশন দেখায় কিভাবে সেন্সর ডেটা পড়তে হয় এবং উপরে বর্ণিত ডেটা স্ট্রাকচারে এটি সংরক্ষণ করতে হয়
অকার্যকর readSensors () {float h = dht.readHumidity (); // সেলসিয়াস হিসাবে তাপমাত্রা পড়ুন (ডিফল্ট) float t = dht.readTemperature ();
// কোন পড়া ব্যর্থ হয়েছে কিনা তা পরীক্ষা করুন এবং প্রস্থান করুন
যদি (isnan (h) || isnan (t)) {Serial.println (F ("DHT সেন্সর থেকে পড়তে ব্যর্থ!")); প্রত্যাবর্তন; } dhtResult.h = h; dhtResult.t = t; }
ধাপ 5: ক্লাউডে ডেটা পাঠানো
একবার আমাদের সেই ডেটা হয়ে গেলে, পরবর্তী ধাপ হল ক্লাউড 4 আরপিআই পরিষেবাতে পাঠানো।
Arduino পৃষ্ঠার জন্য Cloud4RPi লাইব্রেরি API বর্ণনা করে, যা ব্যবহৃত পদ্ধতিগুলির একটি সেট:
- ভেরিয়েবল তৈরি করুন, পড়ুন এবং আপডেট করুন,
- MQTT প্রোটোকল ব্যবহার করে ক্লাউডে পরিবর্তনশীল মান পাঠান।
লাইব্রেরি তিনটি ভেরিয়েবল টাইপ সমর্থন করে: বুল, নিউমেরিক এবং স্ট্রিং।
ক্লাউড 4rpi.io ওয়েবসাইট থেকে ডিভাইস টোকেন ব্যবহার করে একটি API উদাহরণ তৈরির মাধ্যমে লাইব্রেরির কর্মপ্রবাহ শুরু হয় (বিস্তারিত জানতে নিবন্ধের অংশ 1 দেখুন)।
#if সংজ্ঞায়িত (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #অন্যথায় Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #যদি শেষ
তারপরে, DHT11 রিডিংয়ের জন্য ভেরিয়েবল ঘোষণা করুন:
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
তারপরে, সেন্সর থেকে ডেটা পান, সেগুলি ভেরিয়েবলে সংরক্ষণ করুন এবং ডেটা ক্লাউড 4 আরপিআইতে প্রকাশ করুন:
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
তাপমাত্রা এবং আর্দ্রতা দ্রুত পরিবর্তন হয় না, তাই প্রতি 5 মিনিটে একাধিক মান পাঠানোর প্রয়োজন হয় না।
ধাপ 6: ডায়াগনস্টিকস
Cloud4RPi পরিবর্তনশীল মান সহ ডায়াগনস্টিক ডেটা সমর্থন করে। আমি ডায়াগনস্টিক ডেটা হিসাবে আপটাইম, ওয়াই-ফাই সিগন্যাল শক্তি এবং আইপি ঠিকানা ব্যবহার করেছি:
c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // ওয়াইফাই সংকেত শক্তি c4r.declareDiagVariable ("আপটাইম");
দ্রষ্টব্য: যে মিলিস ফাংশনটি আমি ব্যবহার করি তা আপটাইম রিসেট করতে প্রতি ~ 50 দিনে শূন্য হয়। যা আমার প্রকল্পের জন্য যথেষ্ট বেশী।
নিম্নলিখিত কোড ডায়াগনস্টিক ভেরিয়েবল মান সেট করে:
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP ()। toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
আপটাইম হিউম্যান রিডেবল ফাংশন মিলিসেকেন্ডকে সুবিধাজনক আকারে রূপান্তর করে:
স্ট্রিং আপটাইম হিউম্যান রিডেবল (স্বাক্ষরবিহীন লম্বা মিলিসেকেন্ড) {স্ট্যাটিক চর uptimeStr [32]; স্বাক্ষরবিহীন দীর্ঘ সেকেন্ড = মিলিসেকেন্ড / 1000; স্বাক্ষরবিহীন দীর্ঘ মিনিট = সেকেন্ড / 60; স্বাক্ষরবিহীন int ঘন্টা = মিনিট / 60; স্বাক্ষরবিহীন int দিন = ঘন্টা / 24; সেকেন্ড -= মিনিট * 60; মিনিট -= ঘন্টা * 60; ঘন্টা -= দিন * 24; sprintf (uptimeStr, "%d দিন%2.2d:%2.2d:%2.2d", (বাইট) দিন, (বাইট) ঘন্টা, (বাইট) মিনিট, (বাইট) সেকেন্ড); রিং স্ট্রিং (uptimeStr); }
ফাংশনটি একটি অদ্ভুত বড় সংখ্যার পরিবর্তে এই 5 দিনের মত 10:23:14 একটি স্ট্রিং আউটপুট করে।
ধাপ 7: প্রকল্পটি শুরু করুন এবং ডিবাগ করুন
তৈরি করা কোডটি কম্পাইল করে এবং এটিকে নোডএমসিইউতে ফ্ল্যাশ করার পরে, ডিভাইসটি একটি ক্লাউড পরিষেবার সাথে সংযোগ স্থাপন করে এবং ডেটা পাঠানো শুরু করে।
আপনি CLOUD4RPI_DEBUG প্রিপ্রসেসর ভেরিয়েবলকে 1 তে সেট করে লগিং ভার্বোসিটি বৃদ্ধি করতে পারেন (platform.io ফাইলে build_flags বিভাগে -D CLOUD4RPI_DEBUG = 1 যোগ করুন)।
পরবর্তী, cloud4rpi.io সাইটটি খুলুন এবং অনলাইনে নতুন ডিভাইসটি লক্ষ্য করুন। ডিভাইস থেকে প্রাপ্ত সমস্ত পরিবর্তনশীল মান দেখতে এটি খুলুন: সেন্সর এবং ডায়াগনস্টিকস।
ধাপ 8: ড্যাশবোর্ড কনফিগারেশন
এই ধাপে, ক্লাউডে ডেটা সংযোগ চালু আছে। এখন, ডেটার চাক্ষুষ উপস্থাপনা কনফিগার করা যাক।
আমি নিম্নলিখিত ড্যাশবোর্ড তৈরি করতে ড্যাশবোর্ড কনফিগারেশন UI ব্যবহার করেছি।
ড্যাশবোর্ড শেয়ার করা যায়, তাই আমি তাৎক্ষণিকভাবে এটি আমার বন্ধুর সাথে শেয়ার করি।
ধাপ 9: উপসংহার
সম্পূর্ণ প্রকল্পের কোড সারমর্ম পাওয়া যায়।
এখন এ পর্যন্তই!
প্রশ্ন এবং পরামর্শ মন্তব্যে স্বাগত।
প্রস্তাবিত:
কিভাবে একটি ESP32 কে IoT ক্লাউডে সংযুক্ত করবেন: 8 টি ধাপ
কিভাবে একটি ESP32 কে IoT ক্লাউডের সাথে সংযুক্ত করবেন: এই নির্দেশনাটি Arduino এবং ESP8266 এর মতো হার্ডওয়্যারকে ক্লাউডে সংযুক্ত করার বিষয়ে একটি ধারাবাহিক নিবন্ধে আসে। আমি আপনাকে ব্যাখ্যা করতে যাচ্ছি কিভাবে আপনার ESP32 চিপকে ক্লাউডের সাথে AskSensors IoT পরিষেবা দিয়ে সংযুক্ত করা যায়। কেন ESP32? বড় সাফল্যের পর
ESP8266: 7 ধাপ ব্যবহার করে ক্লাউডে আরডুইনো ওয়াইফাই সংযুক্ত করা
ESP8266 ব্যবহার করে ক্লাউডে আরডুইনো ওয়াইফাই সংযুক্ত করা: এই টিউটোরিয়ালে আমরা আপনাকে ব্যাখ্যা করব কিভাবে ওয়াইফাই এর মাধ্যমে আপনার আরডুইনোকে আইওটি ক্লাউডে সংযুক্ত করা যায়। AskSensors ক্লাউডের সাথে যোগাযোগ করতে।
IoT বুনিয়াদি: Mongoose OS ব্যবহার করে ক্লাউডে আপনার IoT সংযুক্ত করা: 5 টি ধাপ
আইওটি বুনিয়াদি: মঙ্গুজ ওএস ব্যবহার করে ক্লাউডের সাথে আপনার আইওটি সংযুক্ত করা: আপনি যদি একজন ব্যক্তি যিনি টিঙ্কারিং এবং ইলেকট্রনিক্সের মধ্যে থাকেন, প্রায়শই, আপনি ইন্টারনেট অফ থিংস শব্দটি দেখতে পাবেন, সাধারণত আইওটি হিসাবে সংক্ষিপ্ত, এবং এটি ডিভাইসের একটি সেট বোঝায় যা ইন্টারনেটের সাথে সংযুক্ত হতে পারে! এমন একজন মানুষ হয়ে
টুইটারকে একটি Eclipse প্রকল্পের সাথে Twitter4J API- এর সাথে সংযুক্ত করা: 5 টি ধাপ
Twitter4J API- এর সাথে একটি Eclipse প্রজেক্টের সাথে টুইটারের সংযোগ: এই ইন্সট্রাক্টেবল ব্যাখ্যা করে কিভাবে আপনার Eclipse প্রজেক্টের সাথে আপনার টুইটার অ্যাকাউন্টকে সংযুক্ত করতে হয়, এবং টুইটারে পড়া এবং লেখার স্বয়ংক্রিয় করার জন্য টুইটার 4J অ্যাপ্লিকেশন প্রোগ্রাম ইন্টারফেস (API) কিভাবে আমদানি করতে হয় । এই নির্দেশযোগ্য
মাটি আর্দ্রতা সেন্সর এবং ESP8266 কে AskSensors IoT ক্লাউডে কিভাবে সংযুক্ত করবেন: 10 টি ধাপ
কিভাবে মাটির আর্দ্রতা সেন্সর এবং ESP8266 কে AskSensors IoT Cloud এর সাথে সংযুক্ত করবেন: এই নির্দেশনাটি আপনাকে দেখায় কিভাবে আপনার মাটির আর্দ্রতা সেন্সর এবং ESP8266 কে IoT ক্লাউডের সাথে সংযুক্ত করতে হয়। যা পানির ভলিউমেট্রিক কন্টেন্ট পরিমাপ করে