সুচিপত্র:

JAWS: শুধু আরেকটি ওয়েদার স্টেশন: Ste টি ধাপ
JAWS: শুধু আরেকটি ওয়েদার স্টেশন: Ste টি ধাপ

ভিডিও: JAWS: শুধু আরেকটি ওয়েদার স্টেশন: Ste টি ধাপ

ভিডিও: JAWS: শুধু আরেকটি ওয়েদার স্টেশন: Ste টি ধাপ
ভিডিও: একটি XXL ভিডিওতে সমস্ত চাকরির মতো দেখতে এটিই৷ 2024, নভেম্বর
Anonim
JAWS: আমাদের জিনিস প্রস্তুত করা।
JAWS: আমাদের জিনিস প্রস্তুত করা।
JAWS: আমাদের জিনিস প্রস্তুত করা।
JAWS: আমাদের জিনিস প্রস্তুত করা।
JAWS: আমাদের জিনিস প্রস্তুত করা।
JAWS: আমাদের জিনিস প্রস্তুত করা।

এই ধরনের JAWS তৈরি করা বেশ সহজ।

আপনি আপনার সেন্সরগুলি পান, আপনি সেগুলি বোর্ডে একসাথে নিক্ষেপ করেন এবং আপনি সেন্সরগুলির সাথে আসা লাইব্রেরিগুলি ব্যবহার করতে শুরু করেন।

প্রোগ্রামটির সেটআপ দিয়ে শুরু করা যাক।

যেহেতু আমি ডাচ ভাষাভাষী (নেটিভ স্পিকার) সমস্ত ডেটা এবং আমি যে ভেরিয়েবল ব্যবহার করি তার বেশিরভাগই ডাচ ভাষায়। তাই এখন আপনার কাছে অন্য ভাষা শেখার সুযোগ আছে …

JAWS থেকে আমরা কি চাই?

সহজ: আমরা এমন একটি পর্দা দেখতে চাই যা আমাদের প্রকৃত সময়, তারিখ, ইফেমেরাইডস (সূর্য ওঠা, সূর্য ডুবে যাওয়া, দিনের দৈর্ঘ্য এবং জ্যোতির্বিজ্ঞানিক দুপুর) দেখায়।

এর পরে, ভিতরের এবং বাইরের তাপমাত্রা, আপেক্ষিক আর্দ্রতা এবং শিশিরবিন্দু এবং বাতাসের চাপ দেখে ভাল লাগবে।

জিনিসগুলিকে সহজ করার জন্য, আমি তাপমাত্রার জন্য সেন্টিগ্রেড এবং চাপের জন্য hPa (= mBar) ব্যবহার করি। সুতরাং কাউকে ফারেনহাইট বা প্রতি পাউন্ড প্রতি পাউন্ড থেকে হিসাব করতে হবে না …

এই সময়ে, শুধুমাত্র এই ডেটা পাওয়া যায় …

ভবিষ্যতে, আমি বাতাসের গতি, বাতাসের দিক এবং বৃষ্টিপাত যোগ করব।

ধারণা হল যে আমার একটি বাইরের আবহাওয়া কুঁড়েঘর থাকবে এবং সমস্ত তথ্য 2.4GHz এর বেশি ইনডোর ইউনিটে পাঠানো হবে।

ধাপ 3: JAWS: সফটওয়্যার।

JAWS: সফটওয়্যার।
JAWS: সফটওয়্যার।

আমাদের সফ্টওয়্যার পেতে, অধিকাংশ বিদ্যমান লাইব্রেরি সঙ্গে পাওয়া যাবে।

JAWS এ আমি নিম্নলিখিতগুলি ব্যবহার করি:

  1. SPI.h: 4 টি ওয়্যার প্রোটোকলের জন্য Arduino থেকে আসল লাইব্রেরি। তার এটি টিএফটি-ieldালের জন্য ব্যবহৃত হয়
  2. Adafruit_GFX.h এবং MCUfriend_kbv.h: উভয়ই গ্রাফিক্স এবং স্ক্রিনের জন্য ব্যবহৃত। এগুলি টিএফটি-স্ক্রিনে পাঠ্য লেখা, লাইন আঁকতে এবং বাক্সগুলি তৈরি করা খুব সহজ করে তোলে।
  3. dht.h: আমাদের DHT এর জন্য: এই লাইব্রেরিটি DHT11 (নীল এক) এবং DHT22 এর জন্য ব্যবহার করা যেতে পারে।
  4. Wire.h: সিরিয়াল যোগাযোগ সহজ করতে Arduino লাইব্রেরি। এটি ঘড়ি এবং এসডি কার্ডের জন্য ব্যবহৃত হয়।
  5. SD.h: আবার একটি Arduino মূল, এসডি কার্ড থেকে লিখতে এবং পড়তে।
  6. TimeLord.h: এটি আমি সময় বজায় রাখার জন্য, সূর্যের অস্তিত্ব বা সূর্যের উদয় গণনার জন্য ব্যবহার করি। এটি ডিএসটি (গ্রীষ্ম বা শীতকাল) এর জন্য ঘড়িও সেট করে।

ঘড়ি দিয়ে শুরু করা যাক।

একটি ঘড়ি পড়ার সময়, ঘড়ি মডিউলের ভিতরে বিভিন্ন রেজিস্টার থেকে আপনি যে ভেরিয়েবলগুলি পান তা প্রয়োজন। যখন আমরা সেগুলিকে কেবল সংখ্যার চেয়ে বেশি করি, আমরা নিম্নলিখিত লাইনগুলি ব্যবহার করতে পারি:

const int DS1307 = 0x68; const char* days = {"Zo।", "Ma।", "Di.", "Wo।", "Do.", "Vr।", "Za।"};

const char* months = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};

n

টাইমলর্ডের সাথে, আমি এটি আমার জায়গার জন্য ডেটা হিসাবে পাই: (লোকারেন, বেলজিয়াম)

টাইমলর্ড লোকারেন; এটি Lokeren. Position সেট আপ (51.096, 3.99); দ্রাঘিমাংশ এবং অক্ষাংশ

Lokeren. TimeZone (+1*60); GMT +1 = +1 x 60 মিনিট

Lokeren. DstRules (3, 4, 10, 4, 60); ডিএসটি তৃতীয় মাস থেকে, চতুর্থ সপ্তাহ থেকে দশম মাস, চতুর্থ সপ্তাহ, +60 মিনিট

int jaar = বছর +2000;

বাইট সানরাইজ = {0, 0, 12, মাসের দিন, মাস, বছর}; প্রতিদিন 00 ঘন্টা থেকে গণনা শুরু করুন

বাইট সানসেট = {0, 0, 12, মাসের দিন, মাস, বছর}; উপরের মতই

বাইট মান = {0, 0, 12, মাসের দিন, মাস, বছর}; উপরের মতই

ভাসমান পর্যায়;

এখান থেকে, গণনা করা হয়।

ফেজ = Lokeren. MoonPhase (maan);

Lokeren. SunRise (সূর্যোদয়);

Lokeren. SunSet (sunSet);

Lokeren. DST (সূর্যোদয়);

Lokeren. DST (সানসেট);

int ZonOpUur = সূর্যোদয় [tl_hour];

int ZonOpMin = sunRise [tl_minute];

int ZonOnUur = sunSet [tl_hour];

int ZonOnMin = sunSet [tl_minute];

টাইমলর্ডে কীভাবে জিনিসগুলি গণনা করা হয় তার উদাহরণ এটি। এই লাইব্রেরির সাহায্যে আপনি সূর্যাস্ত ও সূর্যোদয়ের (বেশ) সঠিক সময় পাবেন।

শেষে, আমি এই নির্দেশাবলীর সাথে পুরো প্রোগ্রামটি রাখব। এটা বেশ সোজা-সামনের দিকে।

ধাপ 4: আরো সফটওয়্যার …

আরো সফটওয়্যার…
আরো সফটওয়্যার…
আরো সফটওয়্যার…
আরো সফটওয়্যার…

সফটওয়্যার সম্পর্কে আরো…

সফটওয়্যারে আমাদের তিনটি বড় অংশ রয়েছে।

1) আমরা আমাদের বিভিন্ন সেন্সর থেকে কিছু কাঁচা তথ্য পাই: আমাদের ঘড়ি, DHTs এবং BMP180 থেকে। এটাই আমাদের ইনপুট।

2) আমাদের ডেটা (1 এবং 0) থেকে এমন কিছুতে অনুবাদ করতে হবে যা বোধগম্য। এর জন্য, আমরা আমাদের লাইব্রেরি এবং ভেরিয়েবল ব্যবহার করি।

3) আমরা আমাদের ডেটা পড়তে এবং সংরক্ষণ করতে চাই। এটা আমাদের আউটপুট।

আমাদের লুপে (), আমরা অনেক "GOTO" পাই: আমরা বিভিন্ন লাইব্রেরিতে ঝাঁপিয়ে পড়ি। আমরা একটি সেন্সর থেকে আমাদের ডেটা পাই, ডেটা পাই এবং সেগুলি (বেশিরভাগ ক্ষেত্রে) একটি ভাসমান ডেটা ভেরিয়েবলে সংরক্ষণ করি। আমরা আমাদের ভেরিয়েবল-নামগুলি বুদ্ধিমানের সাথে নির্বাচন করি, x বা y দিয়ে নয় বরং "tempOutside" বা "চাপ" বা এর মতো জিনিসগুলির মতো নাম দিয়ে। তাদের আরও পাঠযোগ্য করার জন্য। ঠিক আছে, এটি এটি ভেরিয়েবল-ব্যবহার এবং আরও মেমরি-গ্রহণের উপর কিছুটা ভারী করে তোলে।

এখানে কৌশলটি আসে: যখন আমাদের ভেরিয়েবলগুলি স্ক্রিনে দৃশ্যমান হয়, তখন এটি কেবল তাদের সঠিক অবস্থানে রাখে।

এখানে ব্যবহৃত দুটি লাইব্রেরি, Adafruit_GFX.h এবং MCUfriend_kbv.h- এ রঙ, ফন্ট এবং লাইন আঁকার ক্ষমতা ব্যবহার করার জন্য একটি চমৎকার কাজ রয়েছে। প্রথম উদাহরণে, আমি এই লাইব্রেরিগুলির সাথে একটি 12864- স্ক্রিন ব্যবহার করেছি, পরে আমি এটি tft- স্ক্রিনে পরিবর্তন করেছি। আমাকে যা করতে হয়েছিল তা হল বাক্স, আয়তক্ষেত্র এবং লাইন স্থাপন করা, এবং নিশ্চিত করুন যে ডেটা সঠিক জায়গায় এসেছে। এর জন্য, আপনি setCursor এবং tft. Write কমান্ড হিসেবে ব্যবহার করতে পারেন। সহজ এটা আছে. রঙগুলি ভেরিয়েবল হিসাবেও সেট করা যেতে পারে, সেই লাইব্রেরিতে অনেকগুলি উদাহরণ রয়েছে কিভাবে সেগুলি চয়ন করতে হয়।

এসডি-কার্ডে লেখার জন্য, আমাদের কিছু সহজ কৌশলও দরকার।

উদাহরণস্বরূপ, আমরা ঘড়ি থেকে আমাদের ডেটা আলাদা ঘন্টা, মিনিট এবং সেকেন্ড হিসাবে পড়ি। তাপমাত্রা DHT. তাপমাত্রা এবং DHTT. তাপমাত্রা, অভ্যন্তরীণ বা বাইরের মধ্যে পার্থক্য করতে।

যখন আমরা তাদের SD কার্ডে রাখতে চাই, আমরা একটি স্ট্রিং ব্যবহার করি: আমরা প্রতিটি লুপ একটি খালি স্ট্রিং হিসাবে শুরু করি:

পরিবর্তনশীল স্ট্রিং = ""; তারপরে আমরা এটি আমাদের সমস্ত ডেটা দিয়ে পূরণ করতে পারি:

variablestring = variablestring + hours + ":" + মিনিট + ":" + সেকেন্ড। এটি 12:00:00 এর মত স্ট্রিং দেয়।

যেহেতু আমরা এটি একটি TXT- ফাইল হিসেবে লিখি (Arduino.cc এ SD.h দেখুন), পরবর্তী ভেরিয়েবলের জন্য আমরা একটি ট্যাব যোগ করি, তাই এটি এক্সেলে আমদানি করা সহজ।

সুতরাং আমরা এখানে আসি: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature।

ইত্যাদি।

ধাপ 5: কিছু স্ক্রিনশট…

কিছু স্ক্রিনশট…
কিছু স্ক্রিনশট…
কিছু স্ক্রিনশট…
কিছু স্ক্রিনশট…
কিছু স্ক্রিনশট…
কিছু স্ক্রিনশট…

আমরা আমাদের ডেটাসেটগুলি "ওভারলোড" করি না তা নিশ্চিত করার জন্য, আমি প্রতি 10 মিনিটে মাত্র একবার ডেটা লিখেছিলাম। আমাদের প্রতিদিন 144 টি এন্ট্রি দেওয়া খারাপ নয়, আমি মনে করি।

এবং অবশ্যই, আপনি সেই ডেটা প্রক্রিয়া করা চালিয়ে যেতে পারেন: আপনি গড় তৈরি করতে পারেন, আপনি ম্যাক্সিমা এবং মিনিমা দেখতে পারেন, আপনি গত বছরগুলির সাথে তুলনা করতে পারেন …

আবহাওয়া অফিসগুলি সাধারণত দিনের এবং রাতের গড় তৈরি করে, তাপমাত্রার জন্য: দিনের সময় সকাল at টায় শুরু হয় এবং রাত 8 টা পর্যন্ত চলে।

বাতাস, চাপ এবং বৃষ্টিপাতের জন্য, গড় মধ্যরাত থেকে মধ্যরাত পর্যন্ত নেওয়া হয়।

ধাপ 6: শেষ?

সমাপ্ত?
সমাপ্ত?
সমাপ্ত?
সমাপ্ত?

সত্যিই না … যেমন আমি বলেছিলাম আমি অবশেষে বায়ু-গতি এবং বায়ু-নির্দেশক সেন্সরটি বাকি JAWS এর সাথে কাজ করতে চাই।

আমি যে সামান্য নির্মাণ করেছি তা প্রায় 4 মিটার উঁচু। আবহাওয়াবিদ 10 মিটার উঁচু থেকে বাতাসের গতি পান। আমার জন্য একটু বেশি …

আমি আশা করি আপনি এটি পড়ে উপভোগ করেছেন!

Adafruit-GFX এখানে ব্যাখ্যা করা হয়েছে:

MCUFRIEND_kbv.h এখানে পাওয়া যাবে:

BMP 120 (BMP085 এর মতো) সম্পর্কে আরও:

DHT22 সম্পর্কে:

প্রস্তাবিত: