সুচিপত্র:
- ধাপ 1: আইটেম তালিকা
- ধাপ 2: আপেক্ষিক ভূমিকা
- ধাপ 3: সার্কিট সংযুক্ত করুন
- ধাপ 4: কম্পাইল করার জন্য প্রস্তুত করুন
- ধাপ 5: DHT22 সেন্সর সিরিয়াল পোর্টের জন্য টেস্ট কোড
- ধাপ 6: প্রকল্পের জন্য কোড
- ধাপ 7: বর্ণনা
ভিডিও: Arduino UNO ব্যবহার করে আবহাওয়া কেন্দ্র: 7 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 07:59
তৈরি করেছেন: হ্যাজেল ইয়াং
এই প্রজেক্টটি একটি আবহাওয়া কেন্দ্র যা ডেটা প্রবাহ নিয়ন্ত্রণের জন্য একটি Arduino UNO বোর্ড, ডেটা সংগ্রহ করার জন্য একটি DHT22 সেন্সর এবং ডেটা দেখানোর জন্য একটি OLED স্ক্রিন ব্যবহার করে।
ধাপ 1: আইটেম তালিকা
1. স্ক্রিন: OLED, 1.3 ডিসপ্লে SH1106, I2C সাদা রঙ ---- PID: 18283
2. সেন্সর: ডিজিটাল আর্দ্রতা এবং তাপমাত্রা সেন্সর DHT22 ---- PID: 7375
3. সংযোগ করে: জাম্পার ওয়্যার ---- PID: 10316 বা 10318 বা 10312 (দৈর্ঘ্যের উপর নির্ভর করে) অথবা আপনি কঠিন তার ব্যবহার করতে পারেন 22 AWG ---- PID: 22490
ব্রেডবোর্ড ---- পিআইডি: 10686 বা 10698 বা 103142 (আকারের উপর নির্ভর করে)
4. পাওয়ার: এই কেবলটি কেবল একটি কম্পিউটার ইউএসবি পোর্টের সাথে সংযুক্ত হতে পারে এবং আইডিই এবং আরডুইনো বোর্ডের মধ্যে ডেটা স্থানান্তরের জন্যও কেবল ব্যবহার করা হয়। USB CABLE, A TO B, M/M, 0.5M (1.5FT) ---- PID: 29862
অথবা আপনি এটি বোর্ডকে পাওয়ার জন্য ব্যবহার করতে পারেন: 5V 2A AC/DC অ্যাডাপ্টার ---- PID: 10817।
ধাপ 2: আপেক্ষিক ভূমিকা
পর্দার ভূমিকা: 1.3 OLED ডিসপ্লে হোয়াইট
1. আপনি ডকুমেন্ট খুঁজে পেতে পারেন যা মৌলিক সেটআপ এবং বর্ণনা দেখায়:
সেন্সরের ভূমিকা: আর্দ্রতা এবং তাপমাত্রা সেন্সর DHT22 1. আপনি ডকুমেন্ট খুঁজে পেতে পারেন যা বর্ণনা দেখায়:
ধাপ 3: সার্কিট সংযুক্ত করুন
DHT22 সেন্সর পিন ২ তে সিরিয়াল ডেটা পাঠায়। সুতরাং, দ্বিতীয় পিনটি বাম থেকে সংযুক্ত করুন, "SDA" পিনটি পিন 2 এর সাথে সংযুক্ত হওয়া উচিত।
SSH1106 ডিসপ্লের জন্য, এটি প্রেরণের জন্য এনালগ পিন ব্যবহার করে। স্ক্রিনের সার্কিটরি হবে আরডুইনো এর "A5" এর সাথে "এসসিএল" পিন এবং আরডুইনো এর "A4" এর জন্য "SDA" পিন। যখন পিক্সেল পজিশন ডেটা ক্রমাগত প্রেরণ করা হয়, তখন প্রোগ্রামে ডিসপ্লে ফাংশনটি সেন্সর থেকে ডেটা পড়ার পরে একবারই কমান্ডটি ট্রিগার করে।
সেন্সর এবং স্ক্রিন উভয়ই ডিসি পাওয়ার ইনপুট হিসাবে Arduino- তে পাওয়ার জন্য 3.3V ব্যবহার করতে পারে। ক্ষমতার জন্য, আমাদের উভয় "VCC" পিনকে Arduino এর "3.3V" এর সাথে সংযুক্ত করতে হবে। এবং "GND" পিনগুলি কেবল Arduino বোর্ডে "GND" পিনের সাথে সংযুক্ত হতে পারে।
ইউএসবি এ থেকে বি কেবল ব্যবহার করুন, অরুডিনোকে কম্পিউটারে সংযুক্ত করুন।
ধাপ 4: কম্পাইল করার জন্য প্রস্তুত করুন
Olikraus থেকে SSH1106 স্ক্রিনের জন্য "u8glib"।
Adafruit থেকে DHT22 সেন্সরের জন্য "DHT সেন্সর লাইব্রেরি"। আপনার দুটি লাইব্রেরি ডাউনলোড করা উচিত: DHT22 সেন্সর লাইব্রেরি:
U8glib:
এবং আইডিইতে "ম্যানেজ লাইব্রেরি" ব্যবহার করুন যাতে সেগুলো আনজিপ করা যায়। লাইব্রেরি পরিচালনার অনলাইন নির্দেশনা:
ধাপ 5: DHT22 সেন্সর সিরিয়াল পোর্টের জন্য টেস্ট কোড
DHT22 সেন্সর সিরিয়াল পোর্টের জন্য টেস্ট কো (যা DHT22 লাইব্রেরির ভিতরে আছে >> উদাহরণ):
(আপনি এই অংশটি এড়িয়ে যেতে পারেন।)
এটি কেবলমাত্র DHT22 সেন্সর পরীক্ষা করার জন্য ডেটা স্বাভাবিকভাবে পড়ে।
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
#DHTPIN সংজ্ঞায়িত করুন 2
#DHTTYPE DHT22 নির্ধারণ করুন
DHT dht (DHTPIN, DHTTYPE);
অকার্যকর সেটআপ() {
Serial.begin (9600);
Serial.println (F ("DHT22 test!"));
dht.begin ();
}
অকার্যকর লুপ () {
// পরিমাপের মধ্যে কয়েক সেকেন্ড অপেক্ষা করুন।
বিলম্ব (2000);
// পড়ার তাপমাত্রা বা আর্দ্রতা প্রায় 250 মিলিসেকেন্ড লাগে!
// সেন্সর রিডিং 2 সেকেন্ড পর্যন্ত 'পুরানো' হতে পারে (এটি একটি খুব ধীর সেন্সর)
ভাসা h = dht.readHumidity ();
// সেলসিয়াস হিসাবে তাপমাত্রা পড়ুন (ডিফল্ট)
float t = dht.readTemperature ();
// ফারেনহাইট হিসাবে তাপমাত্রা পড়ুন (isFahrenheit = true)
float f = dht.readTemperature (সত্য);
// কোন পাঠ ব্যর্থ হয়েছে কিনা তা পরীক্ষা করুন এবং তাড়াতাড়ি বেরিয়ে আসুন (আবার চেষ্টা করার জন্য)।
যদি (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("DHT সেন্সর থেকে পড়তে ব্যর্থ!"));
প্রত্যাবর্তন;
}
// ফারেনহাইটে তাপ সূচক গণনা করুন (ডিফল্ট)
float hif = dht.computeHeatIndex (f, h);
// সেলসিয়াসে তাপ সূচক গণনা করুন (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
সিরিয়াল.প্রিন্ট (F ("আর্দ্রতা:"));
সিরিয়াল.প্রিন্ট (জ);
সিরিয়াল.প্রিন্ট (F ("% তাপমাত্রা:"));
সিরিয়াল.প্রিন্ট (টি);
Serial.print (F ("° C"));
Serial.print (f);
Serial.print (F ("° F তাপ সূচক:"));
Serial.print (hic);
Serial.print (F ("° C"));
Serial.print (hif);
Serial.println (F ("° F"));
}
// প্রোগ্রাম কম্পাইল করার পর, টুলস >> সিরিয়াল মনিটর ক্লিক করে ডেটা চেক করুন।
// পরীক্ষা কার্যক্রম শেষ।
ধাপ 6: প্রকল্পের জন্য কোড
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
#DHTPIN সংজ্ঞায়িত করুন 2
#DHTTYPE DHT22 নির্ধারণ করুন
#অন্তর্ভুক্ত "U8glib.h"
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
DHT সেন্সর (DHTPIN, DHTTYPE);
অকার্যকর ড্র (অকার্যকর) {
u8g.setFont (u8g_font_unifont);
float h = sensor.readHumidity ();
// সেলসিয়াস হিসাবে তাপমাত্রা পড়ুন (ডিফল্ট)
float t = sensor.readTemperature ();
// কোন পাঠ ব্যর্থ হয়েছে কিনা তা পরীক্ষা করুন এবং তাড়াতাড়ি বেরিয়ে আসুন (আবার চেষ্টা করার জন্য)।
যদি (isnan (h) || isnan (t)) {
u8g.print ("ত্রুটি।");
জন্য (;;);
প্রত্যাবর্তন;
}
u8g.setPrintPos (4, 10);
u8g.print ("তাপমাত্রা (C):");
u8g.setPrintPos (4, 25);
u8g.print (t);
u8g.setPrintPos (4, 40);
u8g.print ("আর্দ্রতা (%):");
u8g.setPrintPos (4, 55);
u8g.print (h);
}
অকার্যকর সেটআপ (অকার্যকর) {
u8g.setRot180 ();
Serial.begin (9600);
sensor.begin ();
}
অকার্যকর লুপ (অকার্যকর) {
// ছবি লুপ
u8g.firstPage ();
কর {
আঁকা ();
} যখন (u8g.nextPage ());
// কিছু বিলম্ব বিলম্বের পরে ছবিটি পুনর্নির্মাণ করুন (2000);
}
// মূল প্রোগ্রামের সমাপ্তি।
ধাপ 7: বর্ণনা
তারপরে, আরডুইনো বোর্ডের জন্য পিন সার্কিট্রি শুরু করুন। কারণ সেন্সর লাইব্রেরিতে বস্তু ঘোষণার জন্য ডেটা প্রয়োজন।
এবং আপনি "Serial.print ()" নামক ফাংশন ব্যবহার করে ডিজিটাল পিন 2 এর মাধ্যমে আউটপুট ডেটা পর্যবেক্ষণ করে সেন্সরের ডেটা পরীক্ষা করতে পারেন। যেহেতু ডেটা ট্রান্সমিশনের ফ্রিকোয়েন্সি মোটামুটি 1 প্রতি 2 সেকেন্ডে পড়ছে (যা 0.5 Hz), যখন Arduino IDE তে প্রোগ্রাম করা হয়, তখন আমাদের লুপ ফাংশনের ভিতরে বিলম্ব 2 সেকেন্ডের বেশি সেট করতে হবে। সুতরাং লুপ ফাংশনের ভিতরে একটি "বিলম্ব (2000)" আছে। এটি নিশ্চিত করে যে ডেটা ঘন ঘন রিফ্রেশ হবে। "ড্র" ফাংশনে, সিরিয়াল ডেটা পোর্ট থেকে ডেটা পান এবং তাদের "readHumidity" এবং "readTemperature" ফাংশন ব্যবহার করে ভাসমান সংখ্যায় রাখুন।
"U8glib" ফাইলে প্রিন্ট ফাংশন ব্যবহার করে আর্দ্রতা এবং তাপমাত্রা মুদ্রণ করুন। আপনি "setPrintPos" ফাংশনে নম্বর পরিবর্তন করে অবস্থান সামঞ্জস্য করতে পারেন। প্রিন্ট ফাংশন সরাসরি টেক্সট এবং সংখ্যা দেখাতে পারে।
হার্ডওয়্যার সেট আপ করতে, সিরিয়াল পোর্টকে 10 সেকেন্ড বিলম্ব দিন। তারপর সেন্সরের জন্য শুরু ফাংশন কল করুন। আমার সার্কিট অনুযায়ী, আমার পর্দা উল্টো ছিল। তাই আমি ডিসপ্লে ঘোরানোর জন্য একটি "setRot180" ফাংশনও অন্তর্ভুক্ত করেছি।
Arduino বোর্ডের লুপ ফাংশন হল মূল কাজ। এটি প্রতিবার সেন্সর রিফ্রেশ করার সময় টেক্সট এবং ডেটা প্রদর্শনের জন্য ড্র ফাংশনকে কল করে রাখে।
পর্দা এই মত দেখাচ্ছে:
আপনি আপনার কম্পিউটার থেকে আরডুইনো ইউএনও সংযোগ বিচ্ছিন্ন করতে পারেন এবং এটি 5V ডিসি পাওয়ার অ্যাডাপ্টার ব্যবহার করে তার 2.1 মিমি পাওয়ার জ্যাকের সাথে সংযোগ স্থাপন করতে পারেন। এটি প্রোগ্রামটিকে তার ড্রাইভের ভিতরে সঞ্চয় করে এবং চালিত হওয়ার পর প্রোগ্রামটি আবার ধারাবাহিকভাবে চালাতে পারে।
প্রস্তাবিত:
ESP8266 এবং ESP32 DIY ব্যবহার করে পেশাদার আবহাওয়া কেন্দ্র: 9 টি ধাপ (ছবি সহ)
ESP8266 এবং ESP32 DIY ব্যবহার করে পেশাগত আবহাওয়া কেন্দ্র: LineaMeteoStazione একটি সম্পূর্ণ আবহাওয়া স্টেশন যা সেন্সিরিয়নের পেশাদার সেন্সরগুলির পাশাপাশি কিছু ডেভিস যন্ত্র যন্ত্র (রেইন গেজ, অ্যানিমোমিটার) দিয়ে ইন্টারফেস করা যেতে পারে।
জাভাতে BME280 সহ রাস্পবেরি পাই ব্যবহার করে ব্যক্তিগত আবহাওয়া কেন্দ্র: 6 টি ধাপ
জাভাতে BME280 এর সাথে রাস্পবেরি পাই ব্যবহার করে ব্যক্তিগত আবহাওয়া কেন্দ্র: একটি জানালার মাধ্যমে খারাপ আবহাওয়া সবসময় খারাপ দেখায়। আমরা আমাদের হিটিং এবং এ/সি সিস্টেমের উপর আরও ভাল নিয়ন্ত্রণ চেয়েছিলাম। একটি ব্যক্তিগত আবহাওয়া স্টেশন নির্মাণ একটি grea
ওয়েমোস ডি 1 মিনি, বিএমই 280 এবং সেন্সেট ব্যবহার করে আবহাওয়া কেন্দ্র।: 6 টি ধাপ
ওয়েমস ডি 1 মিনি, বিএমই 280 এবং সেনসেট ব্যবহার করে আবহাওয়া কেন্দ্র: পূর্ববর্তী পোস্টগুলিতে আমি একটি আবহাওয়া স্টেশন তৈরির বিভিন্ন পদ্ধতি ভাগ করেছি। যদি আপনি এটি পরীক্ষা না করেন তবে এখানে একটি লিঙ্ক আছে এই নির্দেশাবলীতে আমি দেখাবো কিভাবে ওয়েমোস এবং সেন্সেট নামে একটি আইওটি প্ল্যাটফর্ম ব্যবহার করে একটি সাধারণ আবহাওয়া কেন্দ্র তৈরি করা যায়।
পাইথনে BME280 সহ রাস্পবেরি পাই ব্যবহার করে আবহাওয়া কেন্দ্র: 6 টি ধাপ
পাইথনে BME280 এর সাথে রাস্পবেরি পাই ব্যবহার করে আবহাওয়া কেন্দ্র প্রাকৃতিক দুর্যোগ (খরা, চরম
একক বোর্ড ব্যবহার করে আবহাওয়া কেন্দ্র - SLabs -32: 5 ধাপ
ওয়েদার স্টেশন একক বোর্ড ব্যবহার করে আমরা একই সাথে কারেনও পাই