فهرست مطالب:

ایستگاه هواشناسی دیگر اینترنت اشیا: 8 مرحله
ایستگاه هواشناسی دیگر اینترنت اشیا: 8 مرحله

تصویری: ایستگاه هواشناسی دیگر اینترنت اشیا: 8 مرحله

تصویری: ایستگاه هواشناسی دیگر اینترنت اشیا: 8 مرحله
تصویری: (دوربین مخفی) صحنه هایی که اگرضبط دوربین نمیشد کسی آنرا باور نمی کرد!! 2024, جولای
Anonim
یکی دیگر از ایستگاه های هواشناسی اینترنت اشیا
یکی دیگر از ایستگاه های هواشناسی اینترنت اشیا
یکی دیگر از ایستگاه های هواشناسی اینترنت اشیا
یکی دیگر از ایستگاه های هواشناسی اینترنت اشیا
یکی دیگر از ایستگاه های هواشناسی اینترنت اشیا
یکی دیگر از ایستگاه های هواشناسی اینترنت اشیا
یکی دیگر از ایستگاه های هواشناسی اینترنت اشیا
یکی دیگر از ایستگاه های هواشناسی اینترنت اشیا

موارد زیر هدیه تولد پدرم بود. با الهام از دستورالعمل دیگری که دیدم و در ابتدا قصد داشت به عنوان یک کیت خود ساخته به او ثابت شود. با شروع کار روی این پروژه با او ، من خیلی سریع متوجه شدم که آموزش اولیه ای که از هدیه الهام گرفته است قدیمی است و بسیاری از آموزش های آنلاین دیگر در توضیحات خود دارای شکاف های قابل توجهی هستند. بنابراین تصمیم گرفتم یک ایستگاه آب و هوایی اینترنت اشیا منتشر کنم که امیدوارم از ابتدا تا انتها دنبال کردن آن آسان باشد.

علاوه بر این ، این دستورالعمل به شما نشان می دهد که چگونه از Blynk ، Google Sheets یا هر دو برای نظارت و ضبط قرائت سنسور استفاده کنید. علاوه بر این ، ورودی های کاربرگ Google به طور مستقیم در برگه (بدون نیاز به مراجعه به سرویس شخص ثالث) نوشته می شود.

در مورد صفحه استیونسون ، بسیاری از موارد آنلاین وجود دارد که می توان آنها را به صورت سه بعدی چاپ کرد. https://www.thingiverse.com/thing:1718334. من برای این دستورالعمل روی این مورد کار خواهم کرد.

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

قطعات

  • Wemos LolIn - NodeMCU v3 (1.43 دلار آمریکا)
  • BME280 (سنسور دما ، فشار و رطوبت) (2.40 دلار آمریکا)
  • پنل خورشیدی 6 ولت 1000 میلی آمپر (9.96 دلار آمریکا)
  • 5V 1A Micro USB 18650 باتری لیتیوم باتری شارژر ماژول+حفاظت عملکردهای دوگانه TP4056 (0.99 دلار آمریکا)
  • 4 باتری 1.2M NiMH قابل شارژ
  • نگهدارنده باتری (4 برابر AA ، کنار هم و سر تا سر)
  • پلاگین اتصال Micro USB Male
  • کابل کراوات
  • آجیل بال 3 برابر
  • قطب یا چوب جارو
  • اپوکسی و/یا فوق چسب (در آینده ، سیلیکون ممکن است بهتر کار کند)

نرم افزار

  • برنامه Blynk
  • کاربرگ‌نگار Google (اگر می‌خواهید به داده‌های تاریخی دسترسی داشته باشید)
  • EasyEDA (برای ترسیم شماتیک)
  • آردوینو IDE

ابزارها

  • آهن لحیم کاری
  • لحیم کاری
  • لوله انقباض حرارتی
  • پرینتر سه بعدی
  • تفنگ چسب

مرحله 1: چاپ سه بعدی - صفحه استیونسون

چاپ سه بعدی - صفحه استیونسون
چاپ سه بعدی - صفحه استیونسون
چاپ سه بعدی - صفحه استیونسون
چاپ سه بعدی - صفحه استیونسون
چاپ سه بعدی - صفحه استیونسون
چاپ سه بعدی - صفحه استیونسون

همانطور که قبلاً ذکر شد ، فایلها را از https://www.thingiverse.com/thing:1718334 بارگیری کرده و بیت های مورد نیاز را چاپ کنید. دستورالعمل مونتاژ نیز در پیوند بالا موجود است. من برخی تغییرات را انجام دادم (به نکات زیر مراجعه کنید).

قطعات چاپ شده عبارتند از:

  • Top_Cover_for_m3_tapping.stl
  • Middle_Ring.stl (x5)
  • Middle_Ring_bottom.stl (x1 ، STL پیوست شده در بالا)
  • Solid_Plate.stl (x1)
  • Solid_Plate_Base.stl (x1)
  • Pole_Mount_1in_Round.stl
  • Sensor_Grid.stl
  • Electronics_Mount.stl
  • My_Solar_Cell_Mount.stl (x2 ، STL در بالا پیوست شده است)

دستور مونتاژ به شرح زیر است:

  • سوراخ ها را نخ کنید
  • میله های M3 را به سوکت های رزوه دار پیچ کنید
  • پوشش_بالایی
  • صفحه جامد
  • حلقه های میانی
  • در Sensor_Grid اسلاید کنید
  • قطعه_الکترونیک
  • صفحه جامد_پایین
  • کوه قطب
  • اپلیکیشن My_Solar_Cell_Mounts در بالای Top_Cover قرار دارد

من سوراخ هایی را در صفحات Solid ایجاد کردم تا کابل شارژ پنل خورشیدی به شارژر متصل شود و سپس یکی به کابل اجازه دهد تا از کنترلر به سنسور در Sensor_Grid منتقل شود.

پس از تکمیل ، سنسور طوری برنامه ریزی شد که هر 60 دقیقه قرائت های زیر را انجام دهد:

  • درجه حرارت
  • رطوبت
  • فشار

یادداشت

  • من پایه های سلول خورشیدی را طوری تنظیم کردم که برای نگهداری سلول خورشیدی مناسب تر باشد.
  • وسایل الکترونیکی را بین Pole_Mount و Solid_Plate نصب کردم. به نظر نمی رسد که این امر حفاظت خوبی برای لوازم الکترونیکی ایجاد کند. بنابراین من در Solid_Plate اصلاح کردم به طوری که دامنی داشت که شکاف را می بست و در نتیجه حفاظت بهتری از لوازم الکترونیکی ایجاد می کرد. برخی از عکسهای بالا قبل از انجام این تغییر گرفته شده است.
  • اپوکسی من در حالی که پنل خورشیدی را نگه نداشت ، پایین آمد و سپس آن را با چسب فوق العاده وصل کردم. فکر می کنم مجبور باشم از سیلیکون استفاده کنم.

مرحله 2: مدار

مدار
مدار
مدار
مدار

مدار را همانطور که در شکل نشان داده شده است وصل کنید ، LoLin و BME280 را روی مش سه بعدی چاپ شده مانند عکس نصب کنید.

BME280 -> LiLon

  • VCC -> 3.3 ولت
  • GND -> GND
  • SCL -> D1
  • SDA -> D2

LiLon -> LiLon

D0 -> RST (برای بیدار کردن کنترلر از خواب عمیق لازم است ، اما فقط باید پس از بارگذاری کد به کنترلر متصل شود)

توجه داشته باشید

من برای تهیه یک باتری مناسب LiLon مشکلاتی داشتم. همچنین به دلایلی هیچ موفقیتی در تغذیه از طریق VIN نداشتم. بنابراین من به شرح زیر تغذیه کردم:

  • خروجی TP4056 به کانکتور USB Male وصل شد که سپس به منظور تغذیه آن به سوکت USB برد وصل شد.
  • B- و B+ در TP4056 به نگهدارنده باتری AA متصل بود که باتری های NiMH را در خود داشت.

مرحله 3: اینترنت اشیا - Blynk

اینترنت اشیا - Blynk
اینترنت اشیا - Blynk
اینترنت اشیا - Blynk
اینترنت اشیا - Blynk
اینترنت اشیا - Blynk
اینترنت اشیا - Blynk
اینترنت اشیا - Blynk
اینترنت اشیا - Blynk

"Blynk یک سخت افزار سخت افزاری IoT با برنامه های تلفن همراه قابل تنظیم ، ابر خصوصی ، موتور قوانین و داشبورد تجزیه و تحلیل مدیریت دستگاه است". اساساً به شما امکان می دهد حسگرهای راه دور را از هر نقطه در جهان از طریق اینترنت به طور ایمن مدیریت و نظارت کنید. در حالی که یک سرویس تجاری است ، هر حساب دارای 2000 اعتبار رایگان است. اعتبار شما را قادر می سازد تا سنسورها ، نمایشگرها ، اعلان ها و غیره را با سنسور یا حسگرهای خود مرتبط کنید. در حالی که قیمت اشتراک خارج از محدوده بودجه علاقه مندان است ، اعتبار رایگان برای پروژه ساده ای مانند این کافی است.

برای شروع استفاده از سرویس ، ابتدا باید برنامه Blynk را در تلفن/دستگاه خود بارگیری کنید ، ایجاد و حساب کنید (یا با حساب موجود وارد شوید) و سپس یک پروژه جدید به شرح زیر ایجاد کنید:

  • سخت افزار خود را انتخاب کنید
  • نام پروژه خود را بگذارید (در این مورد من از "ایستگاه هواشناسی" استفاده کردم.
  • روی "ایجاد" کلیک کنید
  • سپس کد Auth را برای شما ایمیل کنید.

نیازی به افزودن ابزارک های مورد نیاز نخواهید داشت. با 2000 اعتبار رایگان خود موارد زیر را اضافه کردم:

  • 3 سنج
  • 1 نمودار فوق العاده

اندازه گیری ها و نمودارها مطابق عکس های پیوست تنظیم شده است ، که به هر کدام پین مجازی مخصوص خود اختصاص داده شده است که بعداً در کد استفاده می شود.

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

برای اطلاعات بیشتر ببین

docs.blynk.cc/#getting-started.

مرحله 4: کد - آماده سازی Arduino IDE

برای تکمیل این پروژه ، کتابخانه های زیر باید به Arduino IDE اضافه شوند:

  • https://github.com/adafruit/Adafruit_BME280_Library (نیاز به سنسور دما ، فشار و رطوبت)
  • https://github.com/adafruit/Adafruit_Sensor
  • https://github.com/esp8266/Arduino (این به شما امکان دسترسی به برد ESP8266 را می دهد)
  • https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (کتابخانه بلینک)
  • https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (HTTPSRedicect برای اتصال به Google Sheets مورد نیاز است)

برای دستورالعمل نصب کتابخانه ها برای Arduino IDE ، به https://www.arduino.cc/fa/guide/libraries مراجعه کنید.

تنظیمات سخت افزاری من به شرح زیر است:

  • برد: NodeMCU 1.0 (ماژول ESP-12E)
  • سرعت بارگذاری: 115200

هنگام استفاده از کد پیوست در مراحل زیر ، لطفاً به نظرات موجود در کد با توجه به افزودن موارد زیر مراجعه کنید:

  • وای فای SID
  • رمز Wifi
  • کلید مجوز Blynk
  • شناسه اسکریپت گوگل
  • کلید اشتراک گذاری برگه Google

مرحله 5: کد - Blynk

من سالها برای کارکردن سنسور BME280 مبارزه کردم تا نمونه ای را پیدا کردم که حاوی خط زیر بود.

status = bme.begin (0x76)؛ // آدرس I2C سنسوری که استفاده می کنم 0x76 است

به نظر می رسد که من باید آدرس سنسور را تنظیم کنم. وقتی این کار را انجام دادم ، همه چیز خوب کار کرد.

Blynk دارای رابط کاربری تلفن همراه واقعاً زیبا است اما محدودیت های زیر را دارد:

  • فقط 2000 اعتبار رایگان ، پروژه هایی که بیش از آن نیاز به اشتراک ماهانه گران قیمت دارند (مگر اینکه شما سرور Blynk خود را میزبانی و نگهداری کنید).
  • مگر اینکه سرور Blynk خود را میزبانی کنید ، نمی توانید داده های تاریخی را صادر کنید.

به دلایل فوق ، من نحوه چگونگی ادغام فرآیند جمع آوری داده های خود را در یک کاربرگ Google بررسی کردم. این مورد در بخش بعدی پوشش داده شده است.

مرحله 6: کد - کاربرگ Google

کد - کاربرگ‌نگار Google
کد - کاربرگ‌نگار Google
کد - کاربرگ‌نگار Google
کد - کاربرگ‌نگار Google
کد - کاربرگ‌نگار Google
کد - کاربرگ‌نگار Google

برای ضبط خوانش های خود به منظور تجزیه و تحلیل داده های تاریخی در آینده ، باید آنها را در نوعی پایگاه داده بنویسید. کتابخانه HTTPSRedirect به ما امکان می دهد این کار را با نوشتن داده های خود در یک کاربرگ Google انجام دهیم.

محدودیت های اصلی این روش به شرح زیر است:

  • بدون رابط کاربری تلفن همراه خوب
  • یک کاربرگ Google می تواند حداکثر 400000 سلول داشته باشد. برای این پروژه این یک مسئله بزرگ نیست زیرا کمی بیش از 11 سال طول می کشد تا به این محدوده برسد.

برگه Google به شرح زیر تنظیم شده است.

یک برگه Google با دو صفحه ایجاد کنید.

صفحه 1: داده ها

برگه اطلاعات به 4 ستون یعنی تاریخ/زمان ، دما ، رطوبت ، فشار (ستون A تا D) نیاز دارد. قالب بندی مناسب ستون ها به عنوان مثال ستون A "تاریخ زمان" باشد تا تاریخ و زمان در سلول ها نشان داده شود.

ورق 2: داشبورد

بر اساس عکس های پیوست ، برگه داشبورد را ایجاد کرده و فرمول های زیر را وارد کنید:

  • B2: = counta (داده ها! B: B) -1
  • B3: = B1+TIMEVALUE (CONCATENATE ("00:" ، متن (G7 ، "0")))
  • B6: = پرس و جو (داده ها! A2: D ، "ترتیب B را با محدودیت A desc 1 انتخاب کنید")
  • C6: = query (داده ها! A2: D ، "C order by A desc limit 1")
  • D6: = query (داده ها! A2: D ، "D order by A desc limit 1")
  • B8: = query (Data! A2: D ، "A order by B desc limit 1")
  • C8: = query (داده ها! A2: D ، "A order by C desc limit 1")
  • D8: = query (Data! A2: D ، "A order by D desc limit 1")
  • B9: = پرس و جو (داده ها! A2: D ، "B order by B B desc limit 1")
  • C9: = پرس و جو (داده ها! A2: D ، "C order order by C desc limit 1")
  • D9: = پرس و جو (داده ها! A2: D ، "D order by D desc limit 1")
  • B11: = پرس و جو (داده ها! A2: D ، "A را انتخاب کنید که در آن B به ترتیب B صعودی 1 نیست")
  • C11: = پرس و جو (داده ها! A2: D ، "A را انتخاب کنید که در آن C با درجه صعودی C 1 نادر نیست")
  • D11: = پرس و جو (داده ها! A2: D ، "A را انتخاب کنید که در آن D به ترتیب صعودی نباشد 1")
  • B12: = پرس و جو (داده ها! A2: D ، "B را انتخاب کنید که B با نظم B صعودی 1 نباشد")
  • C12: = پرس و جو (داده ها! A2: D ، "C را انتخاب کنید که در آن C به ترتیب صعودی نباشد C")
  • D12: = پرس و جو (داده ها! A2: D ، "D را انتخاب کنید که در آن D با صعود D صعودی 1 محدود نباشد")
  • G3: = 4+B2*4+29+17
  • G4: = (G2-G3)/G2
  • G6: = G2/4 G8: = G7*G6
  • G9: = (G8/60)/24
  • G10: = G9/365
  • G11: = ((((((G2-G3)/4)*G7)/60)/24/365)

برگه های Google می تواند حداکثر 400000 سلول داشته باشد. این مورد همراه با این واقعیت که در هر خواندن از 4 سلول استفاده می شود ، برای محاسبه مقدار باقی مانده و زمان اتمام آن استفاده می شود.

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

تصویر صفحه "ویرایشگر نمودار" تنظیمات اصلی نمودار دما را نشان می دهد. نمودارهای دیگر با استفاده از تنظیمات مشابه ایجاد شده اند. تنها تفاوت بین نمودارها حداقل مقادیر محور عمودی بود (که در زبانه سفارشی یافت می شود). برگه سفارشی همچنین دارای سایر تنظیمات مانند نام دسترسی ، عنوان نمودار و غیره است.

ما اکنون به یک اسکریپت گوگل نیاز داریم که به ما امکان می دهد داده های خود را با فراخوانی آدرس اینترنتی بنویسیم.

ایجاد اسکریپت

در نشانی اینترنتی برگه Google ، کلید بین "d /" و " / edit" را یادداشت کنید. این کلید -شرکت-کاربرگ-برگه-شما- و در کد زیر مورد نیاز است.

سپس به Tools> Script Editor بروید و Google App Script را ایجاد کنید ، کد را در فایل GS پیوست چسباند. var ss = SpreadsheetApp.openByUrl را به روز کنید ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit") ؛ برای نشان دادن کلید اشتراک گذاری شما

اکنون با رفتن به Publish> Deploy as Web App ، اسکریپت را منتشر کنید.

نشانی وب برنامه وب فعلی را کپی کرده و در جایی ذخیره کنید که برای استخراج GScriptID (-Your-Google-Script-ID–) به آن نیاز دارید. GScriptID رشته ای بین "s /" و " / exec؟" است. اطمینان حاصل کنید که "هر کسی ، حتی ناشناس" به برنامه دسترسی دارد. در طی این فرآیند از شما خواسته می شود برخی مجوزها را اعطا کنید. مهم است که این موارد را اعطا کنید.

توجه: هر زمان که کد خود را اصلاح می کنید ، باید یک نسخه پروژه "جدید" ایجاد کرده و آن را منتشر کنید ، در غیر این صورت همچنان به همان کد قبلی ضربه می زنید.

اکنون می توانید اسکریپت را با مرور در https://script.google.com/macros/s/-Your-Google-Script-ID–/exec؟Temperature=10&Humidity=11&Pressure=12 آزمایش کنید. هر بار که این پیوند را بازخوانی می کنید ، یک ورودی جدید باید به کاربرگ Google اضافه شود.

این مطلب فوق از آموزش زیر گرفته شده است: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. با این حال ، این آموزش قدیمی است و بنابراین کد مربوط به Arduino در بخش بعدی تغییر کرده است تا آخرین کتابخانه های HTTPSRedirect را در خود جای دهد.

کد آردوینو

کد پیوست را ببینید.

مرحله 7: کد - Blynk & Google Sheets

برای به دست آوردن بهترین نتیجه از هر دو جهان ، می توانید کد را برای صفحات Blynk و Google Sheets ترکیب کنید.

کد پیوست را ببینید.

مرحله 8: نظرات نهایی

نظرات پایانی
نظرات پایانی
نظرات پایانی
نظرات پایانی

هیچ یک از موارد فوق ایده های من نیستند ، بلکه این پروژه ای است که بر اساس ایده ها و کار دیگران ساخته شده است. من از کشیدن آن به طور کلی از یک مکان لذت بردم. استفاده از فناوری ها و ابزارهای مختلف برای انجام یک پروژه سرگرم کننده و کاربردی. من از یادگیری نحوه ذخیره خواندن مطالب خود در یک برگه Google لذت بردم. به همین دلیل می خواهم از ElectronicsGuy (Sujay Phadke) تشکر کنم.

به روز رسانی

پس از اتمام این پروژه باید تنظیمات بی سیم خود را تغییر دهم. من در حال کار بر روی کامپیوتر دیگری بودم. پس از بارگذاری تغییرات ، پروژه متوقف شد. پس از عیب یابی ، به این نتیجه رسیدم که عملکرد عمیق در حال خرابی است. من پروژه را به خانه بردم و در آنجا بارگذاری کردم (با استفاده از همان کد) و کار کرد. بنابراین به این نتیجه رسیدم که باید چیزی در کتابخانه هایی که اضافه کردم تغییر کرده باشد. بنابراین من کتابخانه هایی را که در حال حاضر در رایانه خانگی من وجود دارد به این قسمت پیوست کرده ام. در صورتی که شخص دیگری با این موضوع برخورد کند

توصیه شده: