فهرست مطالب:
- مرحله 1: نحوه عملکرد I2c
- مرحله 2: کتابخانه
- مرحله 3: رفتار
- مرحله 4: استفاده از I2c
- مرحله 5: استفاده از یک سیم
- مرحله 6: خواندن ضمنی
- مرحله 7: خواندن ساده
- مرحله 8: کامل بخوانید
- مرحله 9: نمودار اتصال
- مرحله 10: آردوینو: OneWire
- مرحله 11: آردوینو: I2c
- مرحله 12: Esp8266 (D1Mini) OneWire
- مرحله 13: Esp8266 (D1Mini) I2c
- مرحله 14: با تشکر
تصویری: DHT12 (سنسور رطوبت و دما ارزان i2c) ، استفاده سریع آسان: 14 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
شما می توانید به روز رسانی و سایر موارد را در سایت من پیدا کنید
من از سنسوری استفاده می کنم که می تواند با 2 سیم (پروتکل i2c) استفاده شود ، اما من سنسور ارزان قیمت را دوست دارم.
این یک کتابخانه Arduino و esp8266 برای سری DHT12 سنسورهای دما و رطوبت بسیار کم هزینه (کمتر از 1 دلار) است که با i2c یا یک اتصال سیم کار می کند.
اگر می خواهید از esp01 استفاده کنید (اگر از سریال فقط 2 پین دارید) برای خواندن رطوبت و دما و نمایش آن بر روی LCD i2c.
AI خواند که گاهی اوقات به نظر می رسد که نیاز به کالیبراسیون دارد ، اما من درختی از این دارم و بسیار شبیه به DHT22 هستم. اگر کالیبراسیون این مشکل را دارید ، مسئله را در github باز کنید و من پیاده سازی را اضافه می کنم.
مرحله 1: نحوه عملکرد I2c
I2C با دو سیم SDA (خط داده) و SCL (خط ساعت) کار می کند.
هر دو این خطوط تخلیه باز هستند ، اما با مقاومت کشیده می شوند.
معمولاً یک استاد و یک یا چند برده در خط وجود دارد ، اگرچه ممکن است چندین استاد وجود داشته باشد ، اما بعداً در مورد آن صحبت خواهیم کرد.
هر دو ارباب و بردگان می توانند داده ها را ارسال یا دریافت کنند ، بنابراین یک دستگاه می تواند در یکی از این چهار حالت باشد: ارسال اصلی ، دریافت اصلی ، ارسال برده ، دریافت برده.
مرحله 2: کتابخانه
کتابخانه من را اینجا می توانید پیدا کنید.
بارگذاری
روی دکمه DOWNLOADS در گوشه بالا سمت راست کلیک کنید ، نام پوشه فشرده نشده DHT12 را تغییر دهید.
بررسی کنید که پوشه DHT حاوی DHT12.cpp و DHT12.h باشد.
پوشه کتابخانه DHT را در پوشه / libraries / خود قرار دهید.
در صورتی که اولین کتابخانه شما باشد ، باید پوشه فرعی کتابخانه ها را ایجاد کنید.
IDE را راه اندازی مجدد کنید.
مرحله 3: رفتار
این کتاب سعی می کند رفتار سنسورهای کتابخانه DHT استاندارد را تقلید کند (و کد زیادی را کپی کند) ، و من کد را برای مدیریت i2c olso به همان شیوه اضافه می کنم.
روش مشابه با سنسور کتابخانه DHT است ، برخی از آنها عملکرد نقطه شبنم را اضافه می کنند.
مرحله 4: استفاده از I2c
برای استفاده با i2c (آدرس پیش فرض و پین پیش فرض SDA SCL) سازنده به شرح زیر است:
DHT12 dht12 ؛
و مقدار پیش فرض SDA SCL pin را بگیرید.
(امکان تعریف مجدد با سازنده مشخص شده برای esp8266 ، مورد نیاز برای ESP-01 وجود دارد). یا
DHT12 dht12 (آدرس uint8_tOrPin)
addressOrPin -> آدرس
برای تغییر آدرس
مرحله 5: استفاده از یک سیم
برای استفاده از یک سیم:
DHT12 dht12 (آدرس uint8_tOrPin ، درست)
addressOrPin -> پین
مقدار boolean انتخاب حالت oneWire یا i2c است.
مرحله 6: خواندن ضمنی
می توانید از آن با "ضمنی" ، "خواندن ساده" یا "کامل خواندن" استفاده کنید: ضمنی ، فقط اولین خواندن یک خواندن واقعی سنسور را انجام می دهد ، خواندن دیگر در 2 ثانیه انجام می شود. فاصله مقدار ذخیره شده برای اولین خواندن است.
// خواندن سنسور دارای 2 ثانیه زمان سپری شده است ، مگر اینکه پارامتر نیرو را عبور دهید
// دما را به صورت سانتیگراد (پیش فرض) float t12 = dht12.readTemperature () بخوانید؛ // دما را به صورت فارنهایت بخوانید (isFahrenheit = true) float f12 = dht12.readTemperature (true) ؛ // قرائت سنسور نیز ممکن است تا 2 ثانیه "قدیمی" باشد (سنسور آن بسیار کند است) float h12 = dht12.readHumidity ()؛ // محاسبه شاخص حرارت در فارنهایت (به طور پیش فرض) float hif12 = dht12.computeHeatIndex (f12، h12)؛ // محاسبه شاخص حرارت در درجه سانتیگراد (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12 ، h12 ، false) ؛ // محاسبه نقطه شبنم در فارنهایت (به طور پیش فرض) شناور dpf12 = dht12.dewPoint (f12 ، h12) ؛ // محاسبه نقطه شبنم در درجه سانتیگراد (isFahreheit = false) float dpc12 = dht12.dewPoint (t12 ، h12 ، false) ؛
مرحله 7: خواندن ساده
خواندن ساده برای به دست آوردن وضعیت خواندن.
// خواندن سنسور دارای 2 ثانیه زمان سپری شده است ، مگر اینکه پارامتر نیرو را عبور دهید
bool chk = dht12.read ()؛ // خواندن درست اشکال ندارد ، مشکل خواندن اشتباه است
// دما را به صورت سانتیگراد بخوانید (به طور پیش فرض)
float t12 = dht12.readTemperature ()؛ // دما را به صورت فارنهایت بخوانید (isFahrenheit = true) float f12 = dht12.readTemperature (true) ؛ // قرائت سنسور نیز ممکن است تا 2 ثانیه "قدیمی" باشد (سنسور آن بسیار کند است) float h12 = dht12.readHumidity ()؛ // محاسبه شاخص حرارت در فارنهایت (به طور پیش فرض) float hif12 = dht12.computeHeatIndex (f12، h12)؛ // محاسبه شاخص حرارت در درجه سانتیگراد (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12 ، h12 ، false) ؛ // محاسبه نقطه شبنم در فارنهایت (به طور پیش فرض) شناور dpf12 = dht12.dewPoint (f12 ، h12) ؛ // محاسبه نقطه شبنم در درجه سانتیگراد (isFahreheit = false) float dpc12 = dht12.dewPoint (t12 ، h12 ، false) ؛
مرحله 8: کامل بخوانید
برای دریافت وضعیت مشخص ، کامل بخوانید.
// خواندن سنسور دارای 2 ثانیه زمان سپری شده است ، مگر اینکه پارامتر نیرو را عبور دهید
DHT12:: ReadStatus chk = dht12.readStatus ()؛ Serial.print (F ("\ n خواندن سنسور:")) ؛ switch (chk) {case DHT12:: OK: Serial.println (F ("OK"))؛ زنگ تفريح؛ مورد DHT12:: ERROR_CHECKSUM: Serial.println (F ("خطای جمع چک")) ؛ زنگ تفريح؛ مورد DHT12:: ERROR_TIMEOUT: Serial.println (F ("خطای زمان پایان")) ؛ زنگ تفريح؛ مورد DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("خطای مهلت زمانی در سیگنال کم ، سعی کنید مقاومت بالا کشیدن را امتحان کنید")) ؛ زنگ تفريح؛ مورد DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("خطای مهلت زمانی در سیگنال کم ، سعی کنید مقاومت کشش کم"))؛ زنگ تفريح؛ مورد DHT12:: ERROR_CONNECT: Serial.println (F ("خطای اتصال")) ؛ زنگ تفريح؛ مورد DHT12:: ERROR_ACK_L: Serial.println (F ("خطای AckL")) ؛ زنگ تفريح؛ مورد DHT12:: ERROR_ACK_H: Serial.println (F ("خطای AckH")) ؛ زنگ تفريح؛ مورد DHT12:: ERROR_UNKNOWN: Serial.println (F ("خطای ناشناخته DETECTED")) ؛ زنگ تفريح؛ مورد DHT12:: هیچ: Serial.println (F ("بدون نتیجه"))؛ زنگ تفريح؛ پیش فرض: Serial.println (F ("خطای ناشناخته")) ؛ زنگ تفريح؛ }
// دما را به صورت سانتیگراد بخوانید (به طور پیش فرض)
float t12 = dht12.readTemperature ()؛ // دما را به صورت فارنهایت بخوانید (isFahrenheit = true) float f12 = dht12.readTemperature (true) ؛ // قرائت سنسور نیز ممکن است تا 2 ثانیه "قدیمی" باشد (سنسور آن بسیار کند است) float h12 = dht12.readHumidity ()؛ // محاسبه شاخص حرارت در فارنهایت (به طور پیش فرض) float hif12 = dht12.computeHeatIndex (f12، h12)؛ // محاسبه شاخص حرارت در درجه سانتیگراد (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12 ، h12 ، false) ؛ // محاسبه نقطه شبنم در فارنهایت (به طور پیش فرض) شناور dpf12 = dht12.dewPoint (f12 ، h12) ؛ // محاسبه نقطه شبنم در درجه سانتیگراد (isFahreheit = false) float dpc12 = dht12.dewPoint (t12 ، h12 ، false) ؛
مرحله 9: نمودار اتصال
با مثال ، نمودار اتصال وجود دارد ، مهم است که از مقاومت کشش صحیح استفاده کنید.
با تشکر از Bobadas ، dplasa و adafruit ، برای به اشتراک گذاشتن کد در github (جایی که من کد و ایده ها را می گیرم).
مرحله 10: آردوینو: OneWire
مرحله 11: آردوینو: I2c
مرحله 12: Esp8266 (D1Mini) OneWire
مرحله 13: Esp8266 (D1Mini) I2c
مرحله 14: با تشکر
زمین بازی آردوینو (https://playground.arduino.cc/Main/DHT12SensorLibrary)
سری پروژه i2c (مجموعه):
- سنسور رطوبت دما
- گسترش دهنده آنالوگ
- گسترش دهنده دیجیتال
- صفحه نمایش ال سی دی
توصیه شده:
M5STACK نحوه نمایش دما ، رطوبت و فشار در M5StickC ESP32 با استفاده از Visuino - آسان برای انجام: 6 مرحله
M5STACK نحوه نمایش دما ، رطوبت و فشار در M5StickC ESP32 با استفاده از Visuino - انجام این کار آسان است: در این آموزش نحوه برنامه نویسی ESP32 M5Stack StickC با Arduino IDE و Visuino برای نمایش دما ، رطوبت و فشار با استفاده از سنسور ENV (DHT12 ، یاد می گیریم. BMP280 ، BMM150)
نحوه استفاده از سنسور رطوبت و دما DHT12 I2C با آردوینو: 7 مرحله
نحوه استفاده از سنسور رطوبت و دما DHT12 I2C با آردوینو: در این آموزش ما نحوه استفاده از سنسور رطوبت و دما DHT12 I2C با آردوینو و نمایش مقادیر روی صفحه نمایش OLED را یاد می گیریم. فیلم را تماشا کنید
سنسور دما و رطوبت خورشیدی آردوینو به اندازه 433 مگاهرتز سنسور اورگان: 6 مرحله
سنسور دما و رطوبت خورشیدی آردوینو به عنوان 433 مگاهرتز سنسور اورگان: این ساختار سنسور دما و رطوبت خورشیدی است. سنسور از سنسور اورگان 433 مگاهرتز تقلید می کند و در دروازه Telldus Net قابل مشاهده است. آنچه شما نیاز دارید: 1x & quot؛ 10-LED سنسور حرکت خورشیدی & quot؛ از Ebay مطمئن شوید که روی آن خمیر 3.7 ولت نوشته شده است
ESP8266 NodeMCU Access Point (AP) برای وب سرور با سنسور دما DT11 و دما و رطوبت چاپ در مرورگر: 5 مرحله
ESP8266 NodeMCU Access Point (AP) برای وب سرور با سنسور دما DT11 و دما و رطوبت چاپ در مرورگر: سلام بچه ها در اکثر پروژه هایی که از ESP8266 استفاده می کنیم و در اکثر پروژه ها از ESP8266 به عنوان وب سرور استفاده می کنیم تا داده ها قابل دسترسی باشند هر دستگاهی از طریق wifi با دسترسی به سرور وب میزبانی شده توسط ESP8266 اما تنها مشکل این است که ما به یک روتر کار برای
DIY MusiLED ، LED های هماهنگ موسیقی با یک کلیک Windows & Linux برنامه (32 بیتی و 64 بیتی). بازآفرینی آسان ، استفاده آسان ، حمل آسان: 3 مرحله
DIY MusiLED ، LED های هماهنگ موسیقی با یک کلیک Windows & Linux برنامه (32 بیتی و 64 بیتی). آسان برای ایجاد مجدد ، آسان برای استفاده ، آسان برای انتقال: این پروژه به شما کمک می کند تا 18 LED (6 قرمز + 6 آبی + 6 زرد) را به برد Arduino خود متصل کرده و سیگنال های زمان واقعی کارت صدا رایانه خود را تجزیه و تحلیل کرده و آنها را به چراغ های LED برای روشن کردن آنها مطابق با جلوه های ضرب (Snare ، High Hat ، Kick)