সুচিপত্র:
- ধাপ 1: Openweather.org থেকে API কী এবং URL পান
- ধাপ 2: সংযোগ চিত্র
- ধাপ 3: Arduino কোড
- ধাপ 4: প্রসেসিং কোড
ভিডিও: (IOT প্রকল্প) ESP8266 এবং Openweather API ব্যবহার করে আবহাওয়ার তথ্য পান: 5 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 07:56
এই নির্দেশে আমরা একটি সহজ আইওটি প্রকল্প তৈরি করতে যাচ্ছি যেখানে আমাদের শহরের আবহাওয়া তথ্য openweather.com/api থেকে আনবে এবং প্রসেসিং সফটওয়্যার ব্যবহার করে এটি প্রদর্শন করবে।
সরবরাহ:
- আরডুইনো
- ESP8266 বা অন্য কোন esp মডিউল
- Arduino IDE
- প্রসেসিং সফটওয়্যার
- ব্রেডবোর্ড
- Jumperwires পুরুষ থেকে পুরুষ এবং পুরুষ থেকে মহিলা
ধাপ 1: Openweather.org থেকে API কী এবং URL পান
- Https://openweathermap.org এ অ্যাকাউন্ট তৈরি করুন (চিত্র 1)
- আপনি লগইন করার পরে API কীগুলিতে যান এবং আপনি ছবিতে দেখানো হিসাবে API কী পাবেন। (চিত্র 2)
- API কী অনুলিপি করুন এবং এটি একটি নোটপ্যাড ফাইলে সংরক্ষণ করুন। (চিত্র 3)
- API বিকল্পে যান (চিত্র 4)
- ছবিতে দেখানো API ডক বিকল্পে যান (চিত্র 5)
- থেকে url অনুলিপি করুন এবং দেখান এবং এটি একটি নোটপ্যাড ফাইলে সংরক্ষণ করুন (চিত্র 6)
ধাপ 2: সংযোগ চিত্র
ধাপ 3: Arduino কোড
Arduino এ এই কোডটি কপি করার আগে নিশ্চিত হয়ে নিন যে আপনি ESP8266 বোর্ডটি Arduino IDE তে ডাউনলোড করেছেন বোর্ড ম্যানেজার ব্যবহার করে।
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত চার* ssid = "আপনার SSID"; const char* password = "Your SSID PASSWORD"; // আপনার ডোমেইনের নাম URL পাথ বা IP ঠিকানা দিয়ে স্ট্রিং openWeatherMapApiKey = "এখানে আপনার API কী আটকান"; // আপনার দেশের কোড এবং সিটি স্ট্রিং সিটি = "মুম্বাই" দিয়ে প্রতিস্থাপন করুন; স্ট্রিং কান্ট্রি কোড = "ইন"; স্ট্রিং ডেটা [16]; // পরীক্ষার উদ্দেশ্যগুলির জন্য ডিফল্ট টাইমার 10 সেকেন্ডে সেট করা আছে // একটি চূড়ান্ত আবেদনের জন্য, ব্লক করা/নিষিদ্ধ স্বাক্ষরিত দীর্ঘ শেষ সময় = 0 এড়াতে এপিআই কল সীমা প্রতি ঘন্টা/মিনিটে পরীক্ষা করুন; // টাইমার সেট 10 মিনিট (600000) // স্বাক্ষরবিহীন লম্বা টাইমারডিল = 600000; // টাইমার সেট করুন 10 সেকেন্ড (10000) স্বাক্ষরবিহীন লম্বা টাইমার ডেলি = 10000; স্ট্রিং jsonBuffer; অকার্যকর সেটআপ () {Serial.begin (115200); WiFi.begin (ssid, password); // সিরিয়াল.প্রিন্টলন ("সংযোগ"); যখন (WiFi.status ()! = WL_CONNECTED) {বিলম্ব (500); // সিরিয়াল.প্রিন্ট ("।"); } // Serial.println (""); // Serial.print ("IP ঠিকানা দিয়ে ওয়াইফাই নেটওয়ার্কের সাথে সংযুক্ত:"); // Serial.println (WiFi.localIP ()); // // Serial.println ("টাইমার 10 সেকেন্ডে সেট করা হয়েছে (টাইমারড্লে ভেরিয়েবল), প্রথম পড়া প্রকাশের আগে 10 সেকেন্ড সময় লাগবে।"); } void loop () {// একটি HTTP GET রিকোয়েস্ট পাঠান যদি ((millis () - lastTime)> timerDelay) {// WiFi কানেকশন স্ট্যাটাস চেক করুন যদি (WiFi.status () == WL_CONNECTED) {String serverPath = "https://api.openweathermap.org/data/2.5/weather?q= " + city +", " + countryCode +" & APPID = " +" d5b56fd07988143ae141503ed9d81742 " +" & units = metric "; jsonBuffer = httpGETRequest (serverPath.c_str ()); // সিরিয়াল.প্রিন্টলন JSONVar myObject = JSON.parse (jsonBuffer); // JSON.typeof (jsonVar) var এর ধরন পেতে ব্যবহার করা যেতে পারে যদি (JSON.typeof (myObject) == "undefined") {//Serial.println(" পার্সিং ইনপুট ব্যর্থ! "); প্রত্যাবর্তন; } // সিরিয়াল.প্রিন্ট ("JSON অবজেক্ট ="); // Serial.println (myObject); // সিরিয়াল.প্রিন্ট ("তাপমাত্রা:"); // Serial.println (myObject ["main"] ["temp"]); // সিরিয়াল.প্রিন্ট ("চাপ:"); // Serial.println (myObject ["main"] ["চাপ"]); // সিরিয়াল.প্রিন্ট ("আর্দ্রতা:"); // Serial.println (myObject ["main"] ["humidity"]); // সিরিয়াল.প্রিন্ট ("বাতাসের গতি:"); // Serial.println (myObject ["wind"] ["speed"]); int temp = myObject ["main"] ["temp"]; long pres = myObject ["main"] ["চাপ"]; int humid = myObject ["main"] ["আর্দ্রতা"]; int wind = myObject ["wind"] ["speed"]; স্ট্রিং দেশ = JSON.stringify (myObject ["sys"] ["দেশ"]; স্ট্রিং city1 = JSON.stringify (myObject ["name"]); স্ট্রিং আবহাওয়া = JSON.stringify (myObject ["weather"] [0] ["description"]); স্ট্রিং আইকন = JSON.stringify (myObject ["weather"] [0] ["icon"]); ডেটা [0] = স্ট্রিং (টেম্প); ডেটা [1] = "/"; ডেটা [2] = স্ট্রিং (প্রেস); ডেটা [3] = "/"; তথ্য [4] = স্ট্রিং (আর্দ্র); ডেটা [5] = "/"; তথ্য [6] = স্ট্রিং (বাতাস); ডেটা [7] = "/"; তথ্য [8] = দেশ; তথ্য [9] = "/"; তথ্য [10] = শহর 1; তথ্য [11] = "/"; তথ্য [12] = আবহাওয়া; তথ্য [13] = "/"; তথ্য [14] = আইকন; তথ্য [15] = "\ n"; জন্য (int i = 0; i0) {// Serial.print ("HTTP রেসপন্স কোড:"); // Serial.println (httpResponseCode); পেলোড = http.getString (); } অন্য {সিরিয়াল.প্রিন্ট ("ত্রুটি কোড:"); Serial.println (httpResponseCode); } // বিনামূল্যে সম্পদ http.end (); ফেরত পেলোড; }
ধাপ 4: প্রসেসিং কোড
এই কোডটি চালানোর আগে প্রদত্ত আইকন চিত্রগুলি ডাউনলোড করুন যা আবহাওয়া দেখানোর জন্য ব্যবহার করা হবে। এবং ছবি এবং কোড একই ফোল্ডারে রাখুন।
আমদানি প্রক্রিয়াকরণ সিরিয়াল।*;
সিরিয়াল myPort; ছবি img; ছবি img2; ছবি img3; ছবি img4; ছবি img5; ছবি img6; ছবি img7; ছবি img8; ছবি img9; ছবি img10; ছবি img11; ছবি img12; ছবি img13; ছবি img14; ছবি img15; ছবি img16; ছবি img17; ছবি img18; int temp; int প্রেস; আর্দ্র আর্দ্রতা; int বাতাস; স্ট্রিং সিটি = ""; স্ট্রিং দেশ = ""; স্ট্রিং আবহাওয়া = ""; স্ট্রিং আইকন = ""; অকার্যকর সেটআপ () {আকার (500, 500); myPort = নতুন সিরিয়াল (এটি, "COM3", 115200); img = loadImage ("01d.png"); img2 = loadImage ("01n.png"); img3 = loadImage ("02d.png"); img4 = loadImage ("02n.png"); img5 = loadImage ("03d.png"); img6 = loadImage ("03n.png"); img7 = loadImage ("04d.png"); img8 = loadImage ("04n.png"); img9 = loadImage ("09d.png"); img10 = loadImage ("09n.png"); img11 = loadImage ("10d.png"); img12 = loadImage ("10n.png"); img13 = loadImage ("11d.png"); img14 = loadImage ("11n.png"); img15 = loadImage ("13d.png"); img16 = loadImage ("13n.png"); img17 = loadImage ("50d.png"); img18 = loadImage ("50n.png"); } অকার্যকর ড্র () {পটভূমি (72, 209, 204); textSize (22); পূরণ (54, 69, 79); পাঠ্য ("তাপমাত্রা:", 25, 100); পাঠ্য (temp +"° C", 200, 100); পাঠ্য ("চাপ:", 25, 150); পাঠ্য (প্রেস + "এইচপিএ", 200, 150); পাঠ্য ("আর্দ্রতা:", 25, 200); পাঠ্য (আর্দ্র+" %", 200, 200); পাঠ্য ("বায়ু:", 25, 250); পাঠ্য (বায়ু+"মি/সেকেন্ড", 200, 250); পাঠ্য ("দেশ/শহর:", 25, 300); পাঠ্য (দেশ + "-" + শহর, 200, 300); পাঠ্য ("আবহাওয়া:", 25, 350); পাঠ্য (আবহাওয়া, 200, 350); যদি (icon.contains ("01d")) {image (img, 380, 15); } অন্যথায় যদি (icon.contains ("01n")) {image (img2, 380, 15); } অন্যথায় যদি (icon.contains ("02d")) {image (img3, 380, 15); } অন্যথায় যদি (icon.contains ("02n")) {image (img4, 380, 15); } অন্যথায় যদি (icon.contains ("03d")) {image (img5, 380, 15); } অন্যথায় যদি (icon.contains ("03n")) {image (img6, 380, 15); } অন্যথায় যদি (icon.contains ("04d")) {image (img7, 380, 15); } অন্যথায় যদি (icon.contains ("04n")) {image (img8, 380, 15); } অন্যথায় যদি (icon.contains ("09d")) {image (img9, 380, 15); } অন্যথায় যদি (icon.contains ("09n")) {image (img10, 380, 15); } অন্যথায় যদি (icon.contains ("10d")) {image (img11, 380, 15); } অন্যথায় যদি (icon.contains ("10n")) {image (img12, 380, 15); } অন্যথায় যদি (icon.contains ("11d")) {image (img13, 380, 15); } অন্যথায় যদি (icon.contains ("11n")) {image (img14, 380, 15); } অন্যথায় যদি (icon == "13d") {image (img15, 380, 15); } অন্যথায় যদি (icon.contains ("13n")) {image (img16, 380, 15); } অন্যথায় যদি (icon.contains ("50d")) {image (img17, 380, 15); } অন্যথায় যদি (icon.contains ("50n")) {image (img18, 380, 15); }} void serialEvent (Serial myPort) {if (myPort.available ()> 0) {String data = myPort.readStringUntil ('\ n'); যদি (data! = null) {data = trim (data); স্ট্রিং আইটেম = বিভক্ত (ডেটা, '/'); যদি (items.length> 1) {temp = int (items [0]); প্রেস = int (আইটেম [1]); আর্দ্র = int (আইটেম [2]); বায়ু = int (আইটেম [3]); city = items [4].replace ("\" "," "); country = items [5].replace (" / "", ""); আবহাওয়া = আইটেম [6].স্থানের ("\" "," "); আইকন = আইটেম [7].স্থানের (" / "", ""); }}}}
প্রস্তাবিত:
স্থানীয় ওয়েব সার্ভারে DHT11 ব্যবহার করে ESP8266 Nodemcu তাপমাত্রা পর্যবেক্ষণ - আপনার ব্রাউজারে ঘরের তাপমাত্রা এবং আর্দ্রতা পান: 6 টি ধাপ
স্থানীয় ওয়েব সার্ভারে DHT11 ব্যবহার করে ESP8266 Nodemcu তাপমাত্রা পর্যবেক্ষণ | আপনার ব্রাউজারে ঘরের তাপমাত্রা এবং আর্দ্রতা পান: হাই বন্ধুরা আজ আমরা একটি আর্দ্রতা তৈরি করব & ESP 8266 NODEMCU ব্যবহার করে তাপমাত্রা পর্যবেক্ষণ ব্যবস্থা & DHT11 তাপমাত্রা সেন্সর। তাপমাত্রা এবং আর্দ্রতা DHT11 সেন্সর থেকে প্রাপ্ত হবে & এটি একটি ব্রাউজারে দেখা যাবে কোন ওয়েবপৃষ্ঠাটি পরিচালিত হবে
গুগল শীট এবং গুগল স্ক্রিপ্ট ব্যবহার করে আবহাওয়ার তথ্য: 7 টি ধাপ
গুগল শীট এবং গুগল স্ক্রিপ্ট ব্যবহার করে আবহাওয়ার তথ্য: এই ব্লগটুটে, আমরা অ্যাডাফ্রুট হুজা ইএসপি 8266 ব্যবহার করে গুগল শীটে এসএইচটি 25 সেন্সরের রিডিং পাঠাতে যাচ্ছি যা ইন্টারনেটে ডেটা পাঠাতে সাহায্য করে। গুগল শীট সেলে ডেটা পাঠানো অনেক দরকারী এবং মৌলিক উপায় যা তথ্য সংরক্ষণ করে
থিংসস্পিক এমকিউটিটি এবং আইএফটিটিটি অ্যাপলেট ব্যবহার করে আবহাওয়ার প্রতিবেদন: 8 টি ধাপ
থিংসস্পিক এমকিউটিটি এবং আইএফটিটিটি অ্যাপলেট ব্যবহার করে আবহাওয়ার প্রতিবেদন: ভূমিকা একটি ক্লাউড-ভিত্তিক আবহাওয়া অ্যাপ্লিকেশন যা দৈনিক আবহাওয়ার প্রতিবেদন ইমেল বিজ্ঞপ্তি হিসাবে প্রদান করে। এই ওয়েব অ্যাপ্লিকেশনটি SHT25 এবং Adafruit Huzzah ESP8266 ব্যবহার করে তাপমাত্রা এবং আর্দ্রতা পরিমাপ করে। এটি আমাদের রিয়েল-টাইম তাপমাত্রা এবং আর্দ্রতা সরবরাহ করে
ওল্ড অ্যালার্ম এবং আরডুইনো ব্যবহার করে আবহাওয়ার পূর্বাভাস ঘড়ি: 13 টি ধাপ (ছবি সহ)
ওল্ড অ্যালার্ম এবং আরডুইনো ব্যবহার করে আবহাওয়ার পূর্বাভাস ঘড়ি: আমার চারপাশে একটি ভাঙা অ্যালার্ম ঘড়ি ছিল এবং এটিকে ঘড়ি এবং আবহাওয়ার পূর্বাভাস স্টেশনে রূপান্তর করার একটি ধারণা নিয়ে এসেছিলাম। তাপমাত্রা, আর্দ্রতা, চাপ) এলসিডি ডিসপ্লে
IoT তৈরি করা সহজ: দূরবর্তী আবহাওয়ার ডেটা ক্যাপচার করা: UV এবং বায়ুর তাপমাত্রা এবং আর্দ্রতা: 7 টি ধাপ
IoT তৈরি করা সহজ: দূরবর্তী আবহাওয়ার ডেটা ক্যাপচার করা: UV এবং বায়ুর তাপমাত্রা এবং আর্দ্রতা: এই টিউটোরিয়ালে আমরা দূরবর্তী ডেটা UV (আল্ট্রা-ভায়োলেট বিকিরণ), বায়ুর তাপমাত্রা এবং আর্দ্রতা হিসাবে ধারণ করব। এই তথ্যগুলো খুবই গুরুত্বপূর্ণ এবং ভবিষ্যতে সম্পূর্ণ আবহাওয়া স্টেশনে ব্যবহার করা হবে।