فهرست مطالب:

JAWS: فقط یک ایستگاه هواشناسی دیگر: 6 قدم
JAWS: فقط یک ایستگاه هواشناسی دیگر: 6 قدم

تصویری: JAWS: فقط یک ایستگاه هواشناسی دیگر: 6 قدم

تصویری: JAWS: فقط یک ایستگاه هواشناسی دیگر: 6 قدم
تصویری: Одна в городе_Рассказ_Слушать 2024, نوامبر
Anonim
JAWS: در حال آماده سازی مواردمان هستیم
JAWS: در حال آماده سازی مواردمان هستیم
JAWS: در حال آماده سازی مواردمان هستیم
JAWS: در حال آماده سازی مواردمان هستیم
JAWS: در حال آماده سازی مواردمان هستیم
JAWS: در حال آماده سازی مواردمان هستیم

ساخت چنین JAWS بسیار ساده است.

شما سنسورهای خود را می گیرید ، آنها را روی تخته می اندازید و شروع به استفاده از کتابخانه های همراه سنسورها می کنید.

اجازه دهید با راه اندازی برنامه شروع کنیم.

از آنجا که من به زبان هلندی (زبان مادری) صحبت می کنم ، همه داده ها و بسیاری از متغیرهایی که استفاده می کنم به زبان هلندی است. بنابراین اکنون این شانس را دارید که زبان دیگری را بیاموزید…

ما از JAWS چه می خواهیم؟

آسان: ما می خواهیم صفحه ای را تماشا کنیم که زمان واقعی ، تاریخ ، افتری ها (طلوع آفتاب ، غروب آفتاب ، طول روز و ظهر نجومی) را به ما نشان دهد.

در کنار آن ، دیدن دمای داخل و خارج ، رطوبت نسبی و نقطه شبنم و فشار هوا بسیار خوب است.

برای سهولت کار ، از درجه سانتی گراد برای دما و hPa (= mBar) برای فشار استفاده می کنم. بنابراین هیچ کس مجبور نیست از فارنهایت یا پوند در هر فرلون مربع بازپرداخت کند …

در حال حاضر ، فقط این داده ها در دسترس هستند…

در آینده ، سرعت هوا ، جهت باد و بارش را اضافه می کنم.

ایده این است که من یک کلبه آب و هوای بیرون دارم و همه داده ها بیش از 2.4 گیگاهرتز به واحد داخلی ارسال می شود.

مرحله 3: JAWS: نرم افزار

JAWS: نرم افزار
JAWS: نرم افزار

برای دسترسی به نرم افزار ما ، بیشتر کتابخانه های موجود را می توان یافت.

در JAWS از موارد زیر استفاده می کنم:

  1. SPI.h: کتابخانه اصلی Arduino برای پروتکل 4 سیم. او برای سپر TFT استفاده می شود
  2. Adafruit_GFX.h و MCUfriend_kbv.h: هر دو برای گرافیک و صفحه استفاده می شوند. اینها نوشتن متن ، ترسیم خطوط و کادرها روی صفحه TFT را بسیار آسان می کند.
  3. dht.h: برای DHT ما: از این کتابخانه می توان برای DHT11 (آبی) و DHT22 استفاده کرد.
  4. Wire.h: کتابخانه آردوینو برای سهولت ارتباط سریال. برای ساعت و کارت SD استفاده می شود.
  5. SD.h: باز هم نسخه اصلی آردوینو ، برای نوشتن و خواندن از روی کارت SD.
  6. TimeLord.h: این مورد را برای نگه داشتن زمان ، محاسبه غروب یا طلوع خورشید از هر موقعیت جغرافیایی استفاده می کنم. همچنین ساعت را برای DST (تابستان یا زمستان) تنظیم کرد.

بیایید با ساعت شروع کنیم.

هنگام خواندن ساعت ، به متغیرهایی که از رجیسترهای مختلف داخل ماژول ساعت دریافت می کنید ، نیاز دارید. وقتی آنها را بیشتر از اعداد بسازیم ، می توانیم از خطوط زیر استفاده کنیم:

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

با TimeLord ، این را به عنوان داده ، برای محل من دریافت می کنیم: (لوکرن ، بلژیک)

TimeLord Lokeren؛ راه اندازی آن Lokeren. Position (51.096 ، 3.99) ؛ طول و عرض جغرافیایی

Lokeren. TimeZone (+1*60) ؛ GMT +1 = +1 60 60 دقیقه

Lokeren. DstRules (3 ، 4 ، 10 ، 4 ، 60) ؛ DST از ماه سوم ، هفته چهارم تا ماه دهم ، هفته چهارم ، +60 دقیقه

int jaar = سال +2000؛

بایت sunRise = {0 ، 0 ، 12 ، روز ماه ، ماه ، سال}؛ شروع به محاسبه هر روز از 00 ساعت کنید

بایت sunSet = {0 ، 0 ، 12 ، روز ماه ، ماه ، سال}؛ مانند بالا

بایت maan = {0 ، 0 ، 12 ، روز ماه ، ماه ، سال}؛ مانند بالا

فاز شناور ؛

از اینجا ، محاسبات انجام می شود.

فاز = Lokeren. MoonPhase (maan) ؛

Lokeren. SunRise (طلوع آفتاب) ؛

Lokeren. SunSet (sunSet) ؛

Lokeren. DST (طلوع آفتاب) ؛

Lokeren. DST (sunSet) ؛

int ZonOpUur = طلوع آفتاب [tl_hour]؛

int ZonOpMin = sunRise [tl_minute] ؛

int ZonOnUur = sunSet [tl_hour] ؛

int ZonOnMin = sunSet [tl_minute] ؛

این مثال نحوه محاسبه همه چیز در TimeLord است. با استفاده از این کتابخانه ، زمان دقیق (غروب آفتاب و طلوع آفتاب) را دریافت می کنید.

در پایان ، من کل برنامه را با این دستورالعمل قرار می دهم. تقریباً مستقیم است

مرحله 4: نرم افزار بیشتر…

نرم افزار بیشتر…
نرم افزار بیشتر…
نرم افزار بیشتر…
نرم افزار بیشتر…

اطلاعات بیشتر در مورد نرم افزار…

ما سه بخش بزرگ در نرم افزار داریم.

1) ما برخی از داده های خام را از سنسورهای مختلف خود دریافت می کنیم: از ساعت ، DHT و BMP180. این ورودی ماست.

2) ما باید داده ها را به (1 و 0) به چیزی که منطقی است ترجمه کنیم. برای این منظور از کتابخانه ها و متغیرهای خود استفاده می کنیم.

3) ما می خواهیم اطلاعات خود را بخوانیم و ذخیره کنیم. این خروجی ماست. برای استفاده فوری ، LCD-TFT خود را داریم ، برای استفاده بعدی ، داده های ذخیره شده خود را روی کارت SD خود داریم.

در حلقه () ما مقدار زیادی "GOTO" به دست می آوریم: به کتابخانه های مختلف می رویم. ما داده های خود را از یکی از سنسورها دریافت می کنیم ، داده ها را دریافت می کنیم و آنها را (عمدتاً) در یک متغیر داده شناور ذخیره می کنیم. ما نام متغیرهای خود را عاقلانه انتخاب می کنیم ، نه با x یا y بلکه با نام هایی مانند "tempOutside" یا "press" یا مواردی از این دست. تا خواناتر شوند. خوب ، این کار را در استفاده از متغیرها کمی سنگین تر و حافظه بیشتری را مصرف می کند.

در اینجا یک ترفند وجود دارد: وقتی متغیرهای خود را روی صفحه قابل مشاهده می کنیم ، فقط آنها را در موقعیت مناسب قرار می دهیم.

دو کتابخانه مورد استفاده در اینجا ، Adafruit_GFX.h و MCUfriend_kbv.h دارای مجموعه ای زیبا برای استفاده از رنگ ها ، فونت ها و قابلیت ترسیم خطوط هستند. در مرحله اول ، من از صفحه 12864 با این کتابخانه ها استفاده کردم ، بعداً آن را در صفحه tft تغییر دادم. تنها کاری که باید انجام می دادم این بود که جعبه ها ، مستطیل ها و خطوط را قرار دهم و مطمئن شوم که داده ها در جای مناسب ظاهر شده اند. برای این کار می توانید از setCursor و tft. Write به عنوان دستور استفاده کنید. آسان انجام می دهد. رنگها را می توان به عنوان متغیرها نیز تنظیم کرد ، نمونه های زیادی در نحوه انتخاب آنها در کتابخانه ها وجود دارد.

برای نوشتن روی کارت SD ، ما نیز به ترفندهای ساده نیاز داریم.

به عنوان مثال ، ما داده های خود را از ساعت به عنوان ساعت ، دقیقه و ثانیه جداگانه می خوانیم. درجه حرارت عبارت است از DHT.temperature و DHTT.temperature ، برای تمایز بین داخلی یا خارجی.

وقتی می خواهیم آنها را روی کارت SD قرار دهیم ، از یک رشته استفاده می کنیم: هر حلقه را به عنوان یک رشته خالی شروع می کنیم:

variablestring = ""؛ سپس می توانیم آن را با تمام داده های خود پر کنیم:

variablestring = variablestring + ساعت + ":" + دقیقه + ":" + ثانیه. این رشته را مانند ساعت 12:00:00 نشان می دهد.

از آنجا که ما آن را به عنوان یک فایل TXT می نویسیم (SD.h را در Arduino.cc ببینید) ، برای متغیرهای بعدی یک برگه اضافه می کنیم ، بنابراین وارد کردن آن در Excel آسان تر است.

بنابراین می رسیم به: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. دما.

و غیره

مرحله 5: برخی از اسکرین شات ها…

چند تصویر از صفحه…
چند تصویر از صفحه…
چند تصویر از صفحه…
چند تصویر از صفحه…
چند تصویر از صفحه…
چند تصویر از صفحه…

برای اطمینان از اینکه ما مجموعه داده های خود را "بیش از حد" بار نمی کنیم ، من فقط هر 10 دقیقه یکبار داده ها را نوشتم. به ما 144 ورودی در روز می دهد. فکر نمی کنم بد باشد.

و البته ، می توانید به پردازش آن داده ها ادامه دهید: می توانید میانگین ها را ایجاد کنید ، می توانید حداکثرها و حداقلها را جستجو کنید ، می توانید با سالهای گذشته مقایسه کنید…

دفاتر مترو معمولاً به طور متوسط روز و شب را برای دما تعیین می کنند: روز از ساعت 8 صبح شروع می شود و تا 8 بعد از ظهر ادامه می یابد.

برای باد ، فشار و بارش ، میانگین ها از نیمه شب تا نیمه شب گرفته می شود.

مرحله ششم: تمام شد؟

تمام شده؟
تمام شده؟
تمام شده؟
تمام شده؟

نه واقعا … همانطور که گفتم می خواهم بالاخره سنسور سرعت و جهت باد را با بقیه JAWS کار کنم.

ساختمان کوچکی که من ساخته ام ارتفاع آن حدود 4 متر است. هواشناسان سرعت باد را از ارتفاع 10 متر اعلام کردند. برای من کمی بالاست…

امیدوارم از خواندن این مطلب لذت برده باشید!

Adafruit-GFX در اینجا توضیح داده شده است:

MCUFRIEND_kbv.h را در اینجا پیدا کنید:

اطلاعات بیشتر در مورد BMP 120 (همان BMP085):

درباره DHT22:

توصیه شده: