مقدمه
در این پروژه، نحوه ی ساخت یک ماگ هوشمند با استفاده از آردوینو و LED های RGB را فرا می گیرید. رنگ کف این ماگ با توجه به دمای نوشیدنی داخل آن تغییر می کند.
آنچه در این آموزش یاد میگیرید
- اندازه گیری دمای اجسام با سنسور DS18B20 و آردوینو
- کنترل رنگ LED های RGB با PWM
- ساخت یک ماگ جذاب
سنسور DS18B20 چیست؟
سنسور DS18B20 یک دماسنج دیجیتال با دقت 9 تا 12 بیت است که دمای محیط را بر حسب درجه ی سلسیوس اندازیه گیری می کند. این سنسور دارای 3 پایه است. 2 پایه ی آن برای تغذیه ی سنسور و 1 پایه ی دیگر خروجی سنسور می باشد.
ارتباط این سنسور با آردوینو یک ارتباط تک سیمه است.
نکته ی جالب راجع به این سنسور این است که این سنسور بدون وصل کردن پایه ی تغذیه نیز کار می کند. برای این کار فقط کافیست پایه های خروجی و زمین سنسور وصل باشند. (parasite power)
هر سنسور DS18B20 دارای یک کد سریال 64 بیت یکتا است. این خاصیت به کاربر این امکان را می دهد که از چند سنسور دما روی تنها یک خط (یک سیم) استفاده کند و خرجی چند سنسور را فقط با یک سیم دریافت کند. در نتیجه برای خواندن خروجی چند سنسور، فقط به یک پایه ی آردوینو نیاز است.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
ساخت ماگ هوشمند با آردوینو: سیم بندی
ظرفیت باتری به تعداد ال ای دی های شما بستگی دارد.
ال ای دی هایی که ما استفاده کردیم، کاتد مشترک هستند. اگر از ال ای دی آنود مشترک استفاده می کنید، باید کدتان را کمی تغییر دهید.
نکته
برخی از ال ای دی های RGB نیاز به مقاومت دارند. در این صورت آن ها را مستقیما به پایه ی آردوینو وصل نکنید.
نکته
بهتر است پایه ی خروجی و تغذیه ی سنسور دما را با یک مقاومت 4.7 کیلو اهم به یکدیگر وصل کنید. (این کار ضروری نیست)
ساخت ماگ هوشمند با آردوینو: کد
/********************************************************************/
// First we include the libraries
#include "OneWire.h"
#include "DallasTemperature.h"
/********************************************************************/
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
/********************************************************************/
// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
/********************************************************************/
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
/********************************************************************/
float temp;
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library
sensors.begin();
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
/********************************************************************/
Serial.print(" Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperature readings
Serial.println("DONE");
/********************************************************************/
Serial.print("Temperature is: ");
Serial.print(sensors.getTempCByIndex(0));temp= sensors.getTempCByIndex(0); Serial.print(" "); Serial.println(temp);// Why "byIndex"?
// You can have more than one DS18B20 on the same bus.
// 0 refers to the first IC on the wire
if (analogRead(A0)>100)
{ if (temp>50)
temp=100;
if (temp<30) temp=0; temp=(12.5)*(temp-30); Serial.println(temp); if (temp>255)
temp=255;
if (temp<0)
temp=0;
analogWrite(6,temp);
analogWrite(9,temp);
analogWrite(3,255-temp);
analogWrite(11,255-temp);}
else
{analogWrite(6,0);
analogWrite(9,0);
analogWrite(3,0);
analogWrite(11,0);}
delay(100);
}
کد زیر، رنگ RGB را محاسبه می کند. با توجه به سرعت انتقال حرارت ماگ خود، کمی با اعداد آن بازی کنید تا به نتیجه ی دلخواه برسید.
if (temp>50)
temp=100;
if (temp<30)
temp=0;
temp=(12.5)*(temp-30);
سرهم بندی
ابتدا باید کف ماگ خود را سوراخ کنید. تعداد سوراخ ها بسته به مدار شما متفاوت است. ما 3 سوراخ در کف ماگ ایجاد کردیم. یکی برای سنسور دما و دو سوراخ دیگر برای اتصال پیچ ها (الکترود ها). حتی می توانید این پروژه را بدون سوراخ کردن هم انجام دهید.
می توانید یکی از الکترود ها را به یک کلید وصل کنید.
بعد از نصب دماسنج و الکترود ها، باید آن ها را آب بندی کنید. پس از آن باید یک قاب برای زیر ماگ خود بسازید. این قاب باید ضد آب باشد و در برابر سرما و گرما مقاوم باشد.
برای ایجاد پوسته ها ی زیر ماگ، ابتدا باید قطر ماگ خود را به صورت دقیق اندازه بگیرید. سپس دایره ای دقیقا به همان اندازه از جنس پلکسی گلس ببرید. (می توانید از برش لیزر استفاده کنید) ما از پلکسی به ضخامت 3 میلی متر استفاده کردیم.
دقت کنید که یکی از پوسته ها باید به رنگی باشد که نور ال ای دی ها از آن عبور کند. پوسته ی دیگر را می توانید به رنگ دلخواه خود انتخاب کنید.
یک گام جلوتر
امکانات ماگ هوشمند خود را افزایش دهید.
- برای ماگ خود یک علامت هشدار تعریف کنید که مثلا اگر نوشیدنی شما به دمای مناسبی برای نوشیدن رسید، رنگ ال ای دی ها سبز شود.
- به زیر ماگ خود المنت اضافه کنید کنید تا هروقت نوشیدنی شما از حد مورد انتظار سردتر شد، ماگ به صورت خودکار نوشیدنی را گرم کند. (حتما نکات ایمنی را رعایت کنید!)
Comments (2)
سلام ضمن عرض خسته نباشید بنده این کد شمارو روی میکرو پرو ریختم اما توی سریال مانیتورینگ دمای محیط رو -127 میزنه
سنسور دمای من LM35 هستش میخواستم بدونم کجای کد رو دستکاری کنم تا بتونم به دمای دقیقم برسم؟
سلام دوست عزیز
سنسور دمای استفاده شده در این آموزش سنسور DS18B20 بوده و کد و همچنین سیمبندی که انجام شده مخصوص این سنسور بوده. برای اینکه با یه سنسور دما دیگه هم به نتیجه مطلوب برسید لازمه کاملا کد و سیمبندی رو مطابق با سنسور خودتون تغییر بدید. میتونید برای اطلاع از نحوه کار کردن با سنسور دمای lm35 میتونید از لینکهای زیر استفاده کنید:
“https://create.arduino.cc/projecthub/infoelectorials/project-003-arduino-lm35-temperature-sensor-project-0a43ba”
“https://www.instructables.com/Arduino-Temperature-Sensor-Using-LM35/”