সুচিপত্র:

(IOT প্রকল্প) ESP8266 এবং Openweather API ব্যবহার করে আবহাওয়ার তথ্য পান: 5 টি ধাপ
(IOT প্রকল্প) ESP8266 এবং Openweather API ব্যবহার করে আবহাওয়ার তথ্য পান: 5 টি ধাপ

ভিডিও: (IOT প্রকল্প) ESP8266 এবং Openweather API ব্যবহার করে আবহাওয়ার তথ্য পান: 5 টি ধাপ

ভিডিও: (IOT প্রকল্প) ESP8266 এবং Openweather API ব্যবহার করে আবহাওয়ার তথ্য পান: 5 টি ধাপ
ভিডিও: IOT based Home Automation using NodeMCU with Smartphone, blynk app in Bangla Tutorial 2024, জুলাই
Anonim
(IOT প্রকল্প) ESP8266 এবং Openweather API ব্যবহার করে আবহাওয়ার তথ্য পান
(IOT প্রকল্প) ESP8266 এবং Openweather API ব্যবহার করে আবহাওয়ার তথ্য পান

এই নির্দেশে আমরা একটি সহজ আইওটি প্রকল্প তৈরি করতে যাচ্ছি যেখানে আমাদের শহরের আবহাওয়া তথ্য openweather.com/api থেকে আনবে এবং প্রসেসিং সফটওয়্যার ব্যবহার করে এটি প্রদর্শন করবে।

সরবরাহ:

  1. আরডুইনো
  2. ESP8266 বা অন্য কোন esp মডিউল
  3. Arduino IDE
  4. প্রসেসিং সফটওয়্যার
  5. ব্রেডবোর্ড
  6. Jumperwires পুরুষ থেকে পুরুষ এবং পুরুষ থেকে মহিলা

ধাপ 1: Openweather.org থেকে API কী এবং URL পান

Openweather.org থেকে API কী এবং URL পান
Openweather.org থেকে API কী এবং URL পান
Openweather.org থেকে API কী এবং URL পান
Openweather.org থেকে API কী এবং URL পান
Openweather.org থেকে API কী এবং URL পান
Openweather.org থেকে API কী এবং URL পান
  1. Https://openweathermap.org এ অ্যাকাউন্ট তৈরি করুন (চিত্র 1)
  2. আপনি লগইন করার পরে API কীগুলিতে যান এবং আপনি ছবিতে দেখানো হিসাবে API কী পাবেন। (চিত্র 2)
  3. API কী অনুলিপি করুন এবং এটি একটি নোটপ্যাড ফাইলে সংরক্ষণ করুন। (চিত্র 3)
  4. API বিকল্পে যান (চিত্র 4)
  5. ছবিতে দেখানো API ডক বিকল্পে যান (চিত্র 5)
  6. থেকে 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].স্থানের (" / "", ""); }}}}

প্রস্তাবিত: