فهرست مطالب:

دستگاه ثبت دما دما (با ESP8266): 11 مرحله (همراه با تصاویر)
دستگاه ثبت دما دما (با ESP8266): 11 مرحله (همراه با تصاویر)

تصویری: دستگاه ثبت دما دما (با ESP8266): 11 مرحله (همراه با تصاویر)

تصویری: دستگاه ثبت دما دما (با ESP8266): 11 مرحله (همراه با تصاویر)
تصویری: با یه دختر این کارو نکن😰 2024, جولای
Anonim
Image
Image
مواد
مواد

سلام ، خوشحالم که شما را اینجا می بینم. امیدوارم در این قسمت آموزشی اطلاعات مفیدی پیدا کنید. در صورت تمایل می توانید پیشنهادات ، س questionsالات و … را برای من ارسال کنید. برای کاربران تلفن همراه: ویدئو. لطفا نظر خود را در مورد پروژه در قسمت نظرات به من اطلاع دهید ، با تشکر. من اخیراً یک برد NodeMcu (بر اساس esp8266) خریداری کرده ام تا آن را امتحان کنم ، بنابراین این یک پروژه واقعاً پیشرفته نیست. اما کار می کند و چیزی است که من نیاز دارم ، بنابراین اشکالی ندارد. عملکرد اصلی این دیتا لاگر جمع آوری دما و ذخیره آن در سرور است. این به کاربران امکان می دهد داده ها و نمودارها را به صورت آنلاین بررسی کنند ، حتی زمانی که در یک مکان چوب نگار نیستند (برای مثال برای یک ایستگاه هواشناسی). یکی دیگر از ویژگی های مفید به روز رسانی OTA است که در کد موجود است و به کاربر اجازه می دهد نرم افزار را به راحتی به روز کرده و سفارشی کند. من دو سنسور و روش دستیابی آنها را تجزیه و تحلیل می کنم تا تعادل همه جوانب مثبت و منفی را ایجاد کنم.

Spoiler: پس از کمی آزمایش متوجه شدم که یک سنسور دیجیتالی مانند DS18B20 بهترین راه حل است زیرا ثبات و دقت بالاتری را ارائه می دهد. در حال حاضر ضد آب و دارای کابل است.

مرحله 1: مواد

مواد
مواد
مواد
مواد
مواد
مواد

این یک پروژه حداقلی است و تنها چند جزء خارجی دارد ، بنابراین لیست BOM واقعاً کوتاه خواهد بود. با این حال ، بیایید ببینیم چه موادی درخواست می شود:

  • NodeMcu V3 (یا هر پردازنده μ ESP8266 سازگار) ؛
  • RGB led (آند معمولی) ؛
  • مقاومت برای led (1x10Ω ، 1x22Ω ، 1x100Ω ، 1x10kΩ)
  • DS18B20 (دماسنج یکپارچه Maxim) ؛
  • LM35 (دماسنج ابزار تگزاس) ؛
  • باتری خارجی (اختیاری) ؛
  • کابل ؛
  • اتصال دهنده (برای "پیشرفته تر" شدن) ؛
  • جعبه (اختیاری ، دوباره برای "پیشرفته تر شدن") ؛
  • نگهدارنده LED (اختیاری) ؛

توجه: همانطور که گفتم شما باید یکی از دو روش را انتخاب کنید. اگر دماسنج LM35 را انتخاب می کنید ، به چند جزء دیگر نیاز دارید:

  • Attiny45/85؛
  • برنامه نویس AVR (یا Arduino به عنوان ISP) ؛
  • مقاومت (1x1kΩ ، 1x2kΩ ، 1x10kΩ ، 1x18kΩ)
  • اتصال نوار 2.54 میلی متری (اختیاری)
  • دیود (2x1N914)
  • ورق ورق یا PCB ؛

مرحله 2: انتخاب سنسور

انتخاب سنسور
انتخاب سنسور

انتخاب سنسور می تواند گامی دشوار باشد: امروزه تعداد زیادی مبدل وجود دارد (TI 144 عنصر مختلف را ارائه می دهد) آنالوگ و دیجیتال با محدوده دما ، دقت و مورد متفاوت. سنسورهای آنالوگ (46 قسمت از TI موجود است): مزایا:

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

معایب:

  • به ADC (که می تواند بر دقت اندازه گیری تأثیر بگذارد) و سایر اجزای خارجی نیاز دارید. از آنجا که esp8266 فقط یک ADC دارد (و دقیقاً دقیق نیست) پیشنهاد می کنم از یک دستگاه خارجی استفاده کنید.
  • به کابل اختصاصی با رد نویز نیاز دارد زیرا هرگونه ولتاژ القایی می تواند نتیجه را تغییر دهد.

پس از کمی تفکر تصمیم گرفتم از LM35 استفاده کنم ، یک سنسور خطی با ضریب مقیاس +10mV/° C با دقت 0.5 ° C و جریان بسیار کم (حدود 60uA) با ولتاژ کار از 4V تا 30V. برای جزئیات بیشتر ، پیشنهاد می کنم برگه داده را مشاهده کنید: LM35.

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

تقریباً همه اجزای خارجی مورد نیاز ؛

ADC یکپارچه

معایب:

درخواست کتابخانه یا نرم افزار رمزگشایی سیگنال دیجیتال (I2C ، SPI ، Serial ، One Wire ،…) ؛

گران تر ؛

من DS18B20 را انتخاب کردم زیرا مجموعه ای از 5 سنسور ضد آب را در آمازون پیدا کردم و به دلیل این که به طور گسترده در اینترنت ثبت شده است. ویژگی اصلی اندازه گیری 9-12 بیت ، گذرگاه 1 سیم ، ولتاژ تغذیه 3.0 تا 5.5 ، دقت 0.5 درجه سانتی گراد است. مجدداً ، برای جزئیات بیشتر ، برگه داده DS18B20 است.

مرحله 3: LM35

LM35
LM35
LM35
LM35
LM35
LM35

بیایید نحوه استفاده از ADC خارجی و ویژگی دیگر دماسنج LM35 را تجزیه و تحلیل کنیم. یک کابل با سه سیم پیدا کردم ، یکی با سیم و دو بدون سیم. تصمیم گرفتم یک خازن جدا کننده برای تثبیت ولتاژ منبع تغذیه نزدیک سنسور اضافه کنم. برای تبدیل دمای آنالوگ به دیجیتال ، از ریزپردازنده Attiny85 در بسته dip8 استفاده کرده ام (دوباره برای اطلاعات بیشتر به برگه اطلاعات مراجعه کنید: attiny85). مهمترین چیز برای ما ADC 10 بیتی است (در واقع بهترین نیست اما برای من به اندازه کافی دقیق است). برای برقراری ارتباط با Esp8266 ، تصمیم گرفتم از ارتباط سریال استفاده کنم ، در نظر داشته باشید که esp8266 با ولتاژ 3.3 ولت و attiny85 در 5 ولت کار می کند (زیرا به سنسور نیاز دارد). برای دستیابی به این هدف ، از یک تقسیم کننده ولتاژ ساده استفاده کردم (شماتیک را ببینید). برای خواندن دمای منفی ، ما باید برخی از اجزای خارجی (مقاومت 2x1N914 و 1x18k) را اضافه کنیم ، زیرا نمی خواهم از منبع تغذیه منفی استفاده کنم. در اینجا کد وجود دارد: مخزن TinyADC. توجه: برای کامپایل این کد باید نصب کنید attiny to ide (این را در گزینه وارد کنید: https://drazzy.com/package_drazzy.com_index.json) ، اگر نمی دانید چگونه این کار را انجام دهید ، فقط در Google جستجو کنید. یا فایل.hex را مستقیماً بارگذاری کنید.

مرحله 4: DS18B20

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20

من آن سنسورها را از آمازون خریداری کردم (5 هزینه حدود 10 یورو). این دستگاه با روکش فولادی ضد زنگ و کابل به طول 1 متر وارد بازار شد. این سنسور می تواند داده های دما 9 تا 12 بیت را برگرداند. بسیاری از سنسورها را می توان در یک پین متصل کرد زیرا همه آنها دارای یک شناسه منحصر به فرد هستند. برای اتصال DS18B20 به esp8266 فقط می توانید شماتیک (عکس دوم) را دنبال کنید. از آنجا که من تصمیم گرفتم که چوب گیر من دارای سه پروب باشد ، مجبور شدم تشخیص دهم که کدام است. بنابراین فکر کردم رنگی را که از طریق نرم افزار به آدرس آنها مربوط می شود به آنها بدهم. من از لوله ای با قابلیت جمع شدن حرارتی (عکس سوم) استفاده کرده ام.

مرحله 5: کد ESP8266

کد ESP8266
کد ESP8266
کد ESP8266
کد ESP8266

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

  • به روز رسانی OTA: نیازی نیست که esp8266 را هر بار که نیاز به بارگذاری کد دارید به رایانه خود وصل کنید (این کار را فقط برای اولین بار باید انجام دهید) ؛
  • مدیر بی سیم ، در صورت تغییر شبکه بی سیم ، نیازی به بارگیری مجدد طرح ندارید. به سادگی می توانید دوباره پارامترهای شبکه متصل به نقطه دسترسی esp8266 را پیکربندی کنید.
  • انتقال داده Thingspeak ؛
  • هر دو LM35 و DS18B20 پشتیبانی می شوند.
  • رابط کاربری ساده (led RGB نشان دهنده برخی اطلاعات مفید است) ؛

لطفاً از من عذرخواهی کنید زیرا نرم افزار من بهترین نیست و واقعا مرتب نیست. قبل از بارگذاری روی دستگاه ، باید برخی پارامترها را تغییر دهید تا کد با تنظیمات شما مطابقت داشته باشد. در اینجا می توانید نرم افزار را بارگیری کنید. پیکربندی مشترک LM35 و DS18B20 برای به روز رسانی OTA باید تعریف پین ، رمز ، شماره کانال ، کاربر و رمز عبور را تغییر دهید. خط از 15 تا 23.

#قرمز YOURPINHERE خود را #سبز YOURPINHERE را تعریف کنید

#تعریف آبی YOURPINHERE const char* host = "آدرس میزبان را انتخاب کنید"؛ // واقعاً لازم نیست می توانید esp8266-webupdate const char* update_path = "/firmware" را ترک کنید؛ // برای تغییر آدرس برای به روز رسانی ex: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"؛ const char * update_password = "YOURPASSWORDHERE؛ myChannelNumber طولانی بدون امضا = CHANNELNUMBERHERE؛ const char * myWriteAPIKey =" WRITEAPIHERE "؛

مرحله 6: کد ESP8266: کاربر LM35

برای تغذیه دستگاه ADC باید از پین VU و پین G استفاده کنید ، صفحه attiny را به esp8266 وصل کنید. شما باید انتخاب کنید که از کدام پین می خواهید برای ارتباط سریال استفاده کنید (برای حفظ سخت افزار سریال سخت افزار به منظور اشکال زدایی). پین Tx باید انتخاب شود اما واقعاً استفاده نمی شود. (خط 27). SoftwareSerial mySerial (RXPIN ، TXPIN) ؛ در بالا باید موارد زیر را اضافه کنید: #define LM35USER

مرحله 7: ESP8266 کد: DS18B20 کاربر

به عنوان اولین عملیات ، باید آدرس دستگاه را برای هر سنسور مشخص کنید. این کد را در esp کامپایل و برنامه ریزی کنید و نتایج را در سریال جستجو کنید. کد را می توانید در اینجا پیدا کنید (این عنوان را در صفحه جستجو کنید: «آدرسهای داخلی جداگانه DS18B20 را بخوانید»). فقط یک سنسور را برای بدست آوردن آدرس متصل کنید ، نتایج باید چیزی شبیه به این باشد (شماره تصادفی در اینجا! به عنوان مثال): 0x11 ، 0x22 ، 0x33 ، 0xD9 ، 0xB1 ، 0x17 ، 0x45 ، 0x12 سپس باید کد من را در بخش تغییر دهید " پیکربندی برای DS18B20 "(خط 31 تا 36)":

#تعریف ONE_WIRE_BUS ONEWIREPINHERE #تعریف TEMPERATURE_PRECISION TEMPBITPRECISION // (از 9 تا 12) #تعریف تاخیر Dallas READINTERVAL // (در میلی ثانیه ، حداقل 15 ثانیه یا 15000mS است) 0xX ، 0x1x ، 0x1x ، 0x 0x12} ؛ // تغییر با آدرس خود DeviceAddress redSensor = {0x11، 0x22، 0x33، 0xD9، 0xB1، 0x17، 0x45، 0x12}؛ // با آدرس خود تغییر دهید DeviceAddress greenSensor = {0x11، 0x22، 0x33، 0xD9، 0xB1، 0x17، 0x45، 0x12}؛ // تغییر با آدرس خود در بالا باید موارد زیر را اضافه کنید: #define DSUSER

مرحله 8: ESP8266 ترفند کوچک

ESP8266 ترفند کوچک
ESP8266 ترفند کوچک

بعد از کمی آزمایش متوجه شدم که اگر esp8266 را بدون برنامه نویسی وصل کنید ، تا زمانی که یکبار تنظیم مجدد را فشار ندهید ، کد اجرا نمی شود. برای حل این مسئله ، پس از کمی تحقیق ، متوجه شدم که باید یک مقاومت کششی از 3.3V به D3 اضافه کنید. این به پردازنده می گوید که کد را از حافظه فلش بارگیری کند. با این روش ، D3 می تواند مستقیماً برای ورود داده برای سنسورهای DS18B20 استفاده شود.

مرحله 9: اولین بار عملیات

اولین بار عملیات
اولین بار عملیات
اولین بار عملیات
اولین بار عملیات

اگر کد را به درستی بارگذاری کرده اید اما هرگز از کتابخانه مدیر Wifi استفاده نمی کنید ، وقت آن است که اتصال wifi خود را پیکربندی کنید. منتظر بمانید تا LED RGB سریعتر از قبل چشمک بزند ، سپس با تلفن همراه یا رایانه شخصی خود شبکه wifi موسوم به "AutoConnectAp" را جستجو کرده و وصل شوید. پس از اتصال ، یک مرورگر وب را باز کرده و 192.168.4.1 را وارد کنید ، رابط GUI مدیر wifi را خواهید دید (عکسها را ببینید) و "Configure Wifi" را فشار دهید. منتظر esp8266 باشید تا شبکه های wifi را جستجو کنید و مورد نظر را انتخاب کنید. گذرواژه را وارد کرده و "ذخیره" را فشار دهید. Esp8266 راه اندازی مجدد می شود (مهم نیست RGB این بار به دلیل خروجی اطلاعات تصادفی از آن خارج می شود) و به شبکه متصل می شود.

مرحله 10: نتیجه گیری

نتیجه
نتیجه
نتیجه
نتیجه
نتیجه
نتیجه
نتیجه
نتیجه

در پایان ، در اینجا یک نمودار از دیتا لاگر در حال کار هنگام ثبت دمای فریزر من آمده است. به رنگ نارنجی DS18B20 و به رنگ آبی LM35 و مدار آن است. شما می توانید بزرگترین تفاوت دقت را از سنسور دیجیتال تا آنالوگ (با "مدار ADC" ضعیف من) که برخی داده های غیر فیزیکی را ارائه می دهد ، مشاهده کنید. در مجموع ، اگر می خواهید این لاگر را بسازید ، پیشنهاد می کنم از سنسور دمای دیجیتال DS18B20 استفاده کنید. خواندن آسان تر و تقریباً "plug and play" ، پایدارتر و دقیق تر است ، در 3.3V اجرا می شود و برای تعداد زیادی سنسور فقط به یک پین نیاز دارد. با تشکر از توجه ، امیدوارم این پروژه برای شما خوب باشد اطلاعات مفیدی پیدا کرد و برای کسانی که می خواهند به آن پی ببرند ، ای کاش تمام اطلاعات مورد نیاز را در اختیارم قرار می داد. اگر اجازه ندارید همه چیز را بپرسید ، خوشحال می شوم به همه سوالات پاسخ دهم. از آنجا که من انگلیسی زبان نیستم ، اگر چیزی اشتباه است یا قابل درک نیست لطفاً به من اطلاع دهید. اگر از این پروژه خوشتان آمد ، لطفاً به مسابقات رای دهید و/یا نظر بدهید. این مرا تشویق می کند که مطالب جدید را به روز کنم و منتشر کنم. متشکرم.

توصیه شده: