آموزش های کاربردیبایگانی مطالبخانه هوشمند

ساخت پنل لمسی هوشمند برای اتوماسیون خانگی

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

پنل لمسی هوشمند

صفحه لمسی مبتنی بر Arduino می‌تونه دمای اتاق رو روی صفحه نمایش پنل لمسی هوشمند نشون بده.

اموزش ساخت پنل لمسی هوشمند با بورد arduino


برای ساخت این پروژه ابتدا باید قطعاتی که در جدول نشون داده شده رو تهیه کنیم. برای ساخت این پروژه از شیلد نمایشگر لمسی TFT (6 سانتیمتر) استفاده کردیم.

نمایشگر لمسی TFT


قطعات مورد نیاز برای ساخت پنل لمسی Arduino

قطعاتی که برای انجام این پروژه به اون ها نیاز خواهید داشت رو در تصویر بالا و همچنین لیست زیر می تونید مشاهده کنید.

قطعات مورد نیاز

  • Arduino Uno – برای برنامه‌نویسی


  • نمایشگر لمسی TFT (6 سانتی‌متری) – MCUfriend ST7789V


  • ماژول رله 2 کاناله – برای خاموش و روشن کردن دو دستگاه


  • بلوتوث HC-05 – کنترل به صورت بی‌سیم (اختیاری)


  • سیم جامپر – اتصالات مداری


  • جعبه تابلو برق – محفظه


  • ترمیستور NTC 103 – نمایش دما (اختیاری)


کتابخانه Arduino

در قدم اول، کتابخانه‌های مورد نیاز رو در Arduino IDE نصب کنین. برای انجام این کار، به منوی Sketch برید و روی گزینه Manage libraries کلیک کنین. سپس نام کتابخانه رو جست‌وجو کنین و روی install کلیک کنین. کتابخانه‌هایی که برای ساخت این پروژه بهشون نیاز داریم عبارتند از:  Adafruit GFX، TouchScreen و NTC thermistor. این کتابخانه‌ها رو نصب کنین (تصاویر پایین به ترتیب). هر صفحه نمایش لمسی کتابخانه‌های مخصوص به خودش رو داره. در اینجا ما از MCUFriend 6cm TFT LCD Library ST7789V استفاده کردیم.

نحوه باز کردن محیط کتابخانه arduino IDE
نحوه باز کردن محیط کتابخانه
طریقه نصب نصب کتابخانه Adafruit GFX
نصب کتابخانه Adafruit GFX
طریقه نصب کتابخانه Touchscreen
نصب کتابخانه Touchscreen
روش نصب کتابخانه برای سنسور دما
نصب کتابخانه برای سنسور دما

کدنویسی

پس از نصب کتابخانه‌های مورد نیاز، کدنویسی Arduino رو شروع می‌کنیم. در بخش اول کد، کتابخانه‌های مورد نیاز رو مقداردهی می‌کنیم.

#include <Adafruit_GFX.h>
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;
#include <TouchScreen.h>
#define MINPRESSURE 5
#define MAXPRESSURE 1000
int command=0;

//temp part

SmoothThermistor smoothThermistor(A4);

برای دریافت نقطه لمسی روی نمایشگر LCD در مختصات X و Y یک تابع ایجاد کنین.

int pixel_x, pixel_y; //Touch_getXY() updates global vars
bool Touch_getXY(void)
{
TSPoint p = ts.getPoint();
pinMode(YP, OUTPUT); //restore shared pins
pinMode(XM, OUTPUT);
digitalWrite(YP, HIGH); //because TFT control pins
digitalWrite(XM, HIGH);
bool pressed = (p.z > MINPRESSURE && p.z < MAXPRESSURE);
if (pressed) {
pixel_x = map(p.x, TS_LEFT, TS_RT, 0, tft.width()); //.kbv makes sense to me
pixel_y = map(p.y, TS_TOP, TS_BOT, 0, tft.height());
}
return pressed;
}

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

#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#define GRAY 0x8410
#define ORANGE 0xFA60
#define LIME 0x07FF
#define AQUA 0x04FF
#define PINK 0xF8FF
#define WALL 0x4E72
#define MAROON 0xC845
#define GREE 0x5DC0

در مرحله بعد، یک تابع setup ایجاد کنین؛ در این تابع کدهایی برای نشان دادن کلیدها و دیگر اجزای نمایشگر اضافه می‌کنیم.

Adafruit_GFX_Button *buttons[] = {&on_btn, &off_btn,&on_btn1, &off_btn1, NULL};


bool update_button(Adafruit_GFX_Button *b, bool down)
{
b->press(down && b->contains(pixel_x, pixel_y));
if (b->justReleased())
b->drawButton(false);
if (b->justPressed())
b->drawButton(true);
return down;
}


bool update_button_list(Adafruit_GFX_Button **pb)
{
bool down = Touch_getXY();
for (int i = 0 ; pb[i] != NULL; i++) {
update_button(pb[i], down);
}
return down;
}

void loop(void)
{

command=Serial.read();


update_button_list(buttons); //use helper function
if (on_btn.justPressed()or command== 'a') {

Serial.println("on");
}
if (off_btn.justPressed()or command=='c') {

Serial.println("on");
}
if (on_btn1.justPressed()or command=='d') {

Serial.println("automode");
}
if (off_btn1.justPressed() or command=='e') {

Serial.println("manual mode");
}


}

البته باید یک تابع دیگه برای چک کردن وضعیت کلیدها و اختصاص تسک به اونا ایجاد کنیم. برای مثال، اگر یه کلید رو لمس کردیم، تسک اختصاص یافته حالت رله رو به روشن یا خاموش تغییر می‌ده.

لینک دانلود فایل کد نوشته شده ?

بخش کدنویسی در اینجا به پایان می‌رسه. کد رو با نام touch_switch.ino ذخیره کنین. سپس کد را کامپایل کنین و اون رو در بورد Arduino Uno بارگذاری کنین. مرحله بعدی توسعه اپلیکیشن هست.

ساخت دوربین شناسایی چهره


توسعه اپلیکیشن اندروید

ما برای توسعه اپلیکیشن از MIT App Inventor استفاده کردیم. در قدم اول، باید یک حساب Google معتبر داشته باشین. بعد، برای شروعِ پروژه MIT App Inventor به لینک https://appinventor.mit.edu برید. در این لینک بالا، سمت راست صفحه دو تا tab به نام‌های Designer و Blocks می‌بینین.

Designer رو باز کنین و یک layout برای اپلیکیشن ایجاد کنین و بعد چهار تا کلید، یک list picker و یک Bluetooth client به اون اضافه کنین.(تصویر پایین)

طراحی اپ پنل لمسی

 

در مرحله بعد، Blocks رو در MIT App Inventor باز کنین. code block ها رو انتخاب کنین و جایگذاری کنین (شکل پایین). پروژه رو به اسم TouchSwitch.apk ذخیره کنین و این فایل .apk رو در تلفن اندروید خودتون نصب کنین. یا می تونید فایلی که از قبل براتون اماده کردم رو در انتهای مقاله دانلود کنید.

لینک دانلود فایل نصبی اندروید ?

طراحی اپ اندروید پنل لمسی با MIT App Inventor


اتصالات پنل لمسی با بورد Arduino

حالا باید قطعات رو به هم متصل کنیم و همه اونا رو به همراه ماژول‌های رله در switch box یا محفظه جای بدیم. دیاگرام مدار در (شکل پایین) نشون داده شده. اتصالات میان Arduino و سایر قطعات در جدول نشون داده شدند.

طریقه انجام اتصالات پنل لمسی arduino برای اتوماسیون خانگی

بعد از اتصال Arduino به سایر قطعات، شیلد نمایشگر لمسی TFT رو روی بورد Arduino Uno نصب کنین. سپس همه قطعات رو به علاوه بورد Arduino، شیلد نمایشگر لمسی TFT و ماژول رله رو در یک جعبه پلاستیکی مناسب جای بدین. نمایشگر لمسی TFT رو با دقت درون محفظه قرار بدین.

قرار دادن نمایشگر لمسی TFT و بورد arduino در باکس

قرار دادن نمایشگر لمسی TFT و بورد arduino در باکس


تست نهایی جمع بندی ساخت پنل لمسی Arduino

اتصالات رو با دقت چک کنین چون اگه یکی از اونا اشتباه باشه ممکنه در نهایت مدار الکتریکی (Short circuit) داشته باشین. بعد از اینکه از اتصالات مطمئن شدین، Arduino و ماژول رله رو با 5V DC روشن کنین و بعد وسایل AC رو که به رله متصل هستن رو وصل کنین تا روشن بشن. زمانی‌ که کلید off روی پنل لمسی رو می‌زنین، رله وسایل برقی که بهش وصل شدن رو خاموش می‌کنه. و وقتی کلید on رو می‌زنین، رله وسایل برقی که بهش وصل هستن رو روشن می‌کنه.

کنترل دستگاه های منزل با گوشی همراه

هدف از ساخت این پروژه، کنترل دو تا وسیله برقی بود. اول، دو تا کلید کنترل (خاموش و روشن) در اولین ردیف از پنل لمسی برای اولین وسیله و کلیدهای کنترل در ردیف بعدی برای وسیله دوم هستن.

به دنبال اون می‌شه وسایل برقی رو از طریق اپلیکیشن اندروید کنترل کرد. اپلیکیشن TouchSwitch رو باز کنین و روی آیکون Bluetooth کلیک کنین تا موبایل رو به Bluetooth HC-05 وصل کنین. بعد روی کلید on/off اپلیکیشن کلیک کنین تا به صورت بی‌سیم وسایل برقی رو کنترل کنین.

این مقاله چطور بود ؟
+1
5
+1
2
+1
0
مشاهده بیشتر

محمد حسنی

علاقمند به حوزه IoT و الکترونیک. در حال حاضر به مدت یکسال است که در تیم سخت افزار سازان نام آور به تولید محتوا مشغول هستم.

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا