تکنولوژی ال ای دی از حدود دهه ۸۰ میلادی شروع شد و مداوم در حال پیشرفت بودهاست. امروزه ال ای دی LED و نورپردازی بسیار پر مصرف و جذاب شده است. در نمای ساختمان، نورپردازی داخلی و ایجاد حسهای زنده بودن اشیاء با نور و حقههای نورپردازی بسیار کاربرد دارد. یکی از این دسته ابزارها ال ای دی های نئوپیکسل NeoPixel LED هستند. این مدل ال ای دی ها از آنجایی که توانایی تولید چندن نور مختلف را دارند به عنوان پیکسل شناخته میشوند. حلقه ال ای دی Led Ring از قطعات ال ای دی RGB نوع SMD ساخته شده است. کارهای جالب و جذابی با این مدل ال ای دیها میتوان انجام داد. در ادامه آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
شیوه عملکرد ساعت حلقه LED NeoPixel Ring
قانون اصلی در این ساعت به این صورت است که ثانیه با نور آبی، دقیقه با نور سبز و ساعت با نور قرمز مشخص میشود. بنابراین هر کدام از LED ال ای دی ها که به رنگ قرمز روشن شده بود، نشان دهنده ساعت است. در این آموزش من از حلقه ال ای دی ۲۴ پیکسل NeoPixel 24 Pixel Ring LED استفاده کردهام. فرمت نمایش ساعت به صورت ۲۴ ساعته میباشد. در این حالت اگر عدد ۶۰ را که نمایان گر دقیقه و ثانیه است، به عدد ۲۴ تقسیم کنیم، با مقدار ۲٫۵ مواجه خواهیم بود. یعنی هر ۲٫۵ ثانیه موقعیت ثانیه شمار مدار ساعت یعنی نور آبی عوض میشود. همچنین هر ۲٫۵ دقیقه موقعیت دقیقه شمار مدار ساعت دیجیتال یعنی نور سبز عوض میشود. نکته بسیار جالب در این مدار، اتصال فقط ۳ پین میباشد. برد اصلی هم که یک Wemos D1 Mini بر پایه ESP8266 است. بنابراین با مصرف انرژی ناچیز میتوان یک باتری
وسایل مورد نیاز:
اتصال به برد Wemos D1 mini
ماژولهای ال ای دی Neopixel با یک پین دیجیتال قابل مدیریت هستند. برای اتصالات علاوه بر برقراری تغذیه مثبت و منفی به برد Wemos نیاز است که پایه DI ماژول حلقه ال ای دی را به پین D5 برد اتصال دهید. همانند تصویر زیر، اتصالات بسیار ساده است.
فراخوانی کتابخانه، مهمترین قسمت
در این آموزش من از کتابخانه نئوپیکسل آدافروت استفاده کردهام. کتابخانه Adafruit_NeoPixel برای مدیریت ماژولهای نئوپیکسل توسعه داده شده است. برای دانلود کافیست به صفحه کالا حلقه ال ای دی ۱۲ تایی LED Neo Pixel Ring RGB مراجعه کرده و از قسمت دانلودها، فایل مربوطه را دانلود کنید. اگر با شیوه آپلود کتابخانه در نرم افزار آردوینو آشنا نیستید، از آموزش نصب کتابخانه در نرم افزار آردوینو Arduino IDE که توسط همکارم نوشته شده است؛ استفاده کنید. کتابخانه بعدی TimeClient میباشد. البته این کتابخانه به صورت پیشفرض و مستقل نمیباشد. بلکه بخشی از کتابخانه جامع Squix Weather Station میباشد. برای نصب این کتابخانه دو روش دارید، اول دانلود کتابخانه Squix Weather Station و سپس کپی کردن فایل TimeClient.h و TimeClient.cpp و قرار دادن در فولدر Sketch برنامه میباشد. روش دوم هم دانلود این دو فایل به صورت مجزا از صفحه کالا حلقه ال ای دی ۱۲ تایی LED Neo Pixel Ring RGB و سپس آدرس دهی در مسیر برنامه آردوینو میباشد. کتابخانه دیگر استفاده شده در این آموزش ESP8266WIFI.h میباشد، که در آموزشهای قبلی از این کتابخانه استفاده کردهام. برای نصب هم علاوه بر دانلود از صفحه کالا برد کنترلی اینترنت اشیاء IOT Wemos Mini D1 همچنین میتوانید از مسیر دانلود کتابخانه در نرم افزار آردوینو این کار را انجام دهید.
کدهای برنامه
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
پس از وارد کردن کدها جهت کامپایل روی آردوینو Arduino IDE، یوزنیم و پسورد وای فای را در کدها وارد کنید. سپس روی برد آپلود کنید. پس از آن از طریق سریال مانیتور نرم افزار آردوینو اتصال برد به وای فای را بررسی کنید. سپس از سرور گوگل، اطلاعات را میخواند و ساعت و دقیقه و ثانیه را نمایش میدهد. با این روش میتوانید عددهای ساعت را در حلقه ال ای دی مشخص کنید.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.
پروژه
اخیرا تصمیم گرفتهایم برای تعامل بیشتر با شما کاربران و ایجاد موقعیتی در راستای رقابت دانش کاربران، در انتهای هر آموزش یک پروژه تعریف میکنیم. به اولین کاربری که به پروژه تعریف شده پاسخ صحیح بدهد، بن خرید به ارزش ۳۰ هزار تومان از فروشگاه دانشجو کیت ارایه خواهد شد. و اما پروژه این آموزش، کاری کنید که ساعت نمایش داده شده به وقت منطقهای تغییر کند. یهی منطقهای که در آن این ساعت به اینترنت متصل میشود، ساعت همان منتظقه را نمایش دهد.
سلام استاد عزیز و زحمت کش
ببخشید برای پروژه ای که تعریف کردید باید از نو کد بنویسیم یا اینکه همینارو تغییر بدیم؟
با سلام
ضمن تشکر از توجه شما، در خصوص پروژه خیر بایستی در کدها تغییرات ایجاد کنید.
سلام چطوری میشه برد رو جوری تنظیم کرد که راس ساعت خاص یه پیام از طریق تلگرام به یه شماره تعریف شده بفرسته؟
و میشه برای ارتباط با تلگرام به جای برد wemos D1 mini از برد uno با شیلد اینترنت یا از uno با شیلد sim900a استفاده کرد که در موارد اضطراری از طریق پیامک و در بعضی موارد از طریق تلگرام پیام ارسال کند؟
با سلام
ضمن تشکر از توجه شما، در خصوص سوال اول نیازی به این آموزش نیست میتوانید هم از طریق ساعت سرور استفاده کنید که از طریق وای فای و اینترنت ساعت را دریافت کند و هم اینکه میتوانید از طریق ماژولهای ساعت این کار را انجام دهید که در این خصوص از دیگر بردها هم میتوانید استفاده کنید. در خصوص سوال دوم هم بله میشود، تمامی این کارها قابل اجراست.
سلام من به الکترونیک خیلی علاقه دارم ولی درسش رو نخوندم میتونم یادبگیرم
با سلام
با توجه به تنوع بردهای ماژولار از جمله همین موارد که در آموزش به آن اشاره شده است، میتوانید اقدام به یادگیری و اجرای پروژه ها به صورت عملی بکنید. در هرجایی هم که مشکل داشتید میتوانید در همین بخش نظرات و مرتبط با آموزش مطرح کنید.
سلام
ببخشید در سایت ٢۴ تای نیست
باید از کجا تهیه کنیم؟؟؟
با سلام
ضمن تشکر از توجه شما، بله حق باشماست، بنده به همکاران واحد فروش سایت اعلام کردم. به زودی محصول اضافه خواهد شد و لینک مربوطه در این آموزش اصلاح میشود.
من وقتی برای برنامه نوسی ندارم فقط راهکارو ارایه میدم برای دریافت کارت هدیه ۳۰ تمنی :ِd
خب به این برنامه دو کتاب خانه TimeLib.h و کتاب خانه Timezone.h رو اضافه میکنیم و بعد
efine NTP_OFFSET 60 * 60
#define NTP_INTERVAL 60 * 1000
#define NTP_ADDRESS “ca.pool.ntp.org”
و بعد از این کلاینت رو و آپ تایم رو مشخص میکنیم
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, NTP_ADDRESS, NTP_OFFSET, NTP_INTERVAL);
و بعد از این متغیر هارو در قالب رشته و کاراکتر تعریف میکنیم
const char * days[] = {“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”} ;
const char * months[] = {“Jan”, “Feb”, “Mar”, “Apr”, “May”, “June”, “July”, “Aug”, “Sep”, “Oct”, “Nov”, “Dec”} ;
const char * ampm[] = {“AM”, “PM”} ;
حال نحوه گفتن زمان منطقه ای در حلقه لوپ
ابتدا
date = “”;
t = “”;
سپس
آپدیت کلاینت متصل به سرور ان تی پی
timeClient.update();
unsigned long epochTime = timeClient.getEpochTime();
و بعد تبدیل زمان دریافتی به زمان جهانی هماهنگ شده یا یو تی سی = بعلت تاخیر و زمان شناور منطقه
time_t local, utc;
utc = epochTime;
حال تبدیل این زمان به زمان منطقه ای
TimeChangeRule usEDT = {“EDT”, Second, Sun, Mar, 2, -300};
TimeChangeRule usEST = {“EST”, First, Sun, Nov, 2, -360};
Timezone usEastern(usEDT, usEST);
local = usEastern.toLocal(utc);
حال ایجاد فرمت زمان و تاریخ در اطلاعات دریافتی
date += days[weekday(local)-1];
date += “, “;
date += months[month(local)-1];
date += ” “;
date += day(local);
date += “, “;
date += year(local);
و زمان
t += hourFormat12(local);
t += “:”;
if(minute(local) < 10)
t += "0";
t += minute(local);
t += " ";
t += ampm[isPM(local)];
و بعد از این میتوان کد ها ی ال ای دی ار جی بی رای جهت نمایش متغیر های بالا قرار داد
با سلام
بابت توضیحات دقیق و ریز به ریز شما تشکر میکنم. در خصوص پروژه همانطور که نوشته شده است، بایستی کدها را تغییر دهید و در یک فایل متنی ارسال کنید. در این صورت بن شما فعال خواهد شد.
سلام آموزش باحالی بود، در مورد این الیدی ها همون RGB هستند؟
با سلام
ضمن تشکر از توجه شما، ساختار این ال ای دی ها شبیه به LED RGB میباشد. ولی نوع آنها متفاوت است. این ماژولهای حلقه ال ای دی با استفاده از یک سیگنال دیجیتال کار میکنند و نیازی به سیم کشی زیاد ندارد. فقط با یک پین کافیست.
سلام میشه درباره سیگنال دهی به این برد کمی بیشتر توضیح بدین
با سلام
ضمن تشکر از توجه شما، این برد به وای فای متصل میشود و از آن طریق به یک سرور که در کدها تعریف شده است، مراجعه و اطلاعات را از آنجا میخواند.
سلام ممنون از آموزش زیباتون
برای من ساعت رو نشون نمیده اما دقیقه و ثانیه رو به ترتیب به رنگ های سبز و آبی نشون میده میخواستم ببینم عیب کار کجاست با تشکر
با سلام
ضمن تشکر از توجه شما، مواقعی که ساعت و دقیقه یک مقدار عددی را نمایش میدهند این اتفاق رخ میدهد. چنانچه اینطور نبود، تغذیه را بررسی کنید.
البته ساعت رو گاهی اوقات نشان نمیده برای مثال ساعت ۱۲ شب نشان میده که البته باز هم متوجه نمیشوم ساعت چند است چون پایین قرار میگیرد اما از اونجایی که گفتید مشکل ممکن است از تغدیه باشه هم مشکل ندارد. لطفا راهنمایی کنید چون گاهی اوقات نشان میده و زمان هایی هم که نشان میده متوجه نمیشم ساعت چند هست.
سریال مانیتور را بازکنید، ساعت را با حلقه تطبیق دهید و نقطه شروع را روی حلقه ال ای دی مشخص کنید، درضمن از حلقه با چند ال ای دی استفاده کردهاید؟
از حلقه ۲۴ ال ای دی استفاده کرده ام
مشابه آموزش.
خب پس در این صورت نیازی به تغییرات در کدها نمیباشد.
با سلام مجدد به استاد محترم
من از این کد وماژول ((wemos)) استفاده کردم دو رنگ ابی وسبز ((دقیقه وثانیه ))رو نشون میده
ساعت یا رنگ قرمز رو نشون نمیده کمک وراهنمایی شما نیاز دارم
سلام
ضمن تشکر از توجه شما، در این خصوص بنده مجددا بررسی کردم، مشکلی ندارد. لطفا دقت کنید که در سطر ۷۷ کدها موارد به صورت زیر باشد
strip.setPixelColor(currentHour / 2, 255, 0, 0);
با سلام
اگه واستون امکانش هست یه ساعت با اردینو که متصل میشد به نت و ساعت ۵ نقطه رو نشون با oled display رو هم اموزش بدید تو این لینک هست نمونه اش . ممنون از زحمات شما
http://www.instructables.com/id/Make-a-WIFI-Word-Clock/
با سلام
ضمن تشکر از توجه شما، در این خصوص موارد را بررسی خواهم کرد و در صورت امکان آموزش مربوطه را منتشر خواهم کرد. در خصوص راه اندازی نمایشگر OLED آموزشهای مربوطه در دیجی اسپارک منتشر شده اند.
ممنون از پاسخ شما ، بیصبرانه منتظر اموزش شما هستم .
تشکر میکنم.
سلام اردینوی من از طریق کامپیوتر اصلا شناسایی نمی شود درایورشو هیچ جا نمی تونم پیداا کنم الان چی کار کنم
با سلام
ضمن تشکر از توجه شما، مدل بردی که استفاده میکنید را بفرمایید.
سلام برد اردینو یونو smd اثلا هیچ عکس العمل نشون نمیده منظورم کامپیوتره ولی چراغ اردینو روشن میشه
اصلا توی manage هیچ چیزی به اسم ardino نشون نمیده
لطفا کمک کنید
سلام مجدد
برای این منظور باید درایور CH340 را نصب کنید. جهت دانلود درایور سالم به لینک برد آردوینو Arduino UNO SMD با تراشه CH340 مراجعه کنید و در قسمت دانلود درایور متناسب با سیستم عاملتان را دانلود و نصب کنید. نصب فایل خیلی ساده است، یک فایل exe هست که اونو ادامه بدهید.
سلام من نصب کردن هنوز شناسایی نمیشود
لطفا در خصوص برد آردوینو UNO در فروشگاه و صفحه محصول مربوطه سوالتان را مطرح کنید تا همکاران فنی در فروشگاه به شما راهنمایی کنند. این پست مربوط به مدار دیگری است.
سلام باید به چه شبکه ای وصل بشه اگر وصل شد چه اتفاقی می افتد؟
سلام مجدد
در این آموزش از طریق وای فای به شبکه متصل میشود. کافیست یوزر و پسوورد وای فای را در کدها وارد کنید.
ایا حتما باید شبکه باشد
در این آموزش بله
سلام
جالب بود، من دارم آموزشهای سایت را چک میکنم، واقعا ازتون ممنونم
سلامت باشید. امیدوارم مفید باشند.
آیا با neo picsel 8عددی هم می شه درست کرد این ساعت رو
با سلام
بله امکان پذیر است.
با تشکر از سایت خوب شما
با سلام
از توجه شما ممنونیم.
سلام
من اشتراک سه ماهه خریدم ولی کدهای این پروژه رو نمی تونم ببینم.؟؟ ( کد راه اندازی نئو پیکسل و روتاری انکودر قابل رویت بود ) تا الان در کل ۵ تا پروژه رویت کردم.
با سلام
اگر کدها را نمیبینید، کش مرورگر را پاک کنید.
سلام وقت بخیر، من میخوام ، یه کیت داشته باشم که ، از ساعت ۱ تا ۳ ، یک ال ای دی رو روشن بذاره و زمانی که به ۳:۰۱ رسید ، ال ای دی خاموش شه ، و ال ای دی دیگه ای روشن شه ، و این ساعت ۸ خاموش شه و ۸:۰۱ دقیقه یک ال ای دی دیگه روشن شه ،
به صورت خلاصه بگم ، ۲۰ حالته باشه و با تعیین دستور ، در محدوده زمانی های خاص طی ۲۴ ساعت ، این ال ای دی ها نوبتی روشن شن
چنین حالتی امکان داره؟ ممنون میشم راهنماییم کنید
با سلام
برای چنین موردی بایستی اقدام به طراحی مدار مورد نظر بکنید.
توی تایتل کلمه neo نوشته شده noe
با سلام
سپاس از همراهی و پیگیری شما
سلام ببخشید میشه به جای حلقه ۲۴ پیکسل از حلقه ۱۲ پیکسل استفاده کرد
با سلام
همانطور که پیش از این هم اعلام شد، بایستی حتما از نوع ۲۴ استفاده کنید.
سلام میشه حلقه ۱۲ پیکسل گذاشت
با سلام
با توجه به کدهایی که برای این پروژه نوشته شده است، خیر پیشنهاد میشود حتما از نوع ۲۴ پیکسل استفاده کنید.