فهرست مطالب:
- تدارکات
- مرحله 1: IDE Arduino خود را برای پشتیبانی از ESP32 تنظیم کنید
- مرحله 2: ماتریس LED را به ESP32 وصل کنید
- مرحله 3: ترکیب آن
- مرحله 4: Arduino IDE و فایل INO
- مرحله 5: کد
تصویری: ESP32 پیمایش WordClock در ماتریس LED: 5 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
در این پروژه من یک Scrolling WordClock با ESP32 ، LED Matrix و یک جعبه سیگار برگ ایجاد می کنم.
WordClock یک ساعت است که زمان را مشخص می کند و نه فقط آن را روی صفحه چاپ می کند یا عقربه هایی دارد که می توانید بخوانید. این ساعت به شما می گوید که 10 دقیقه از 3 بعد از ظهر یا ظهر گذشته است. من حتی برنامه ریزی کردم که از نام Prevening (از نظریه بیگ بنگ) برای مدت زمان مبهم بین بعد از ظهر و عصر استفاده کند. شروع ساعت 4 بعد از ظهر
ESP32 فوق العاده است ، بسیار سرگرم کننده و بسیار ارزان هستند ، اگر عاشق برنامه نویسی Arduino هستید ، واقعاً شگفت زده خواهید شد که ESP32 می تواند با کمتر از 10 دلار انجام دهد. آنها از Arduino IDE استفاده می کنند و برنامه ریزی آنها آسان است. من نحوه انجام این کار را در این دستورالعمل نشان خواهم داد.
تدارکات
- ESP32 - حدود 10 دلار در آمازون
- ماتریس LED (max7219) (و سیم) - 9 دلار آمازون
- جعبه سیگار
- کابل برق USB
- چاپگر سه بعدی اختیاری برای پایه esp32
مرحله 1: IDE Arduino خود را برای پشتیبانی از ESP32 تنظیم کنید
Arduino IDE را دریافت کنید:
- در مرورگر به https://www.arduino.cc/ بروید
- روی Software و سپس Downloads کلیک کنید تا ARDUINO 1.8.12 دریافت شود
پشتیبانی ESP32 را به Arduino IDE خود اضافه کنید:
- Arduino IDE را راه اندازی کنید
- روی منوی File و سپس Preferences کلیک کنید.
پس از ورود به "تنظیمات برگزیده" ، پشتیبانی تولید کننده را با افزودن خط زیر به "مدیر هیئت مدیره اضافی" اضافه کنید
dl.espressif.com/dl/package_esp32_index.js
این به ما دسترسی می دهد تا برد را به IDE اضافه کنیم
به منوی Tools و سپس Boards بروید و به مدیر هیئت مدیره بروید
سپس عبارت "ESP" را جستجو کرده و بسته را توسط Expressif اضافه کنید.
در نهایت ما می خواهیم به منوی "Tools" ، سپس دوباره "Board" برگردیم و به پایین بروید تا دستگاه ESP32 خود را پیدا کنید.
مال من "ماژول ESP32 Wrover" است
مرحله 2: ماتریس LED را به ESP32 وصل کنید
ماتریس LED از چهار بلوک LED 8x8 تشکیل شده است و از تراشه MAX7219 استفاده می کند. این به ما LED های 8x32 در ماتریس یا 256 LED می دهد !!!.
esp32 روی محفظه ای که من در TinkerCad ایجاد کرده ام نشسته است. نگهدارنده من پین ها را رو به بالا نگه می دارد تا بتوانید سیم ها را وصل کنید.
ماتریس LED با استفاده از SPI (رابط جانبی سریال) به ESP32 متصل می شود.
از سیم های زن/زن و اتصال پین ها به شرح زیر استفاده کنید:
- ESP32 - 5v به VCC در ماتریس
- ESP32 - GND به GND در ماتریس
- ESP32 - PIN5 (G5) به CS در ماتریس
- ESP32 - PIN23 (G23) به Din on Matrix
- ESP32 - پین 18 (G18) را به CLK در ماتریس وصل کنید
ممکن است از پین های دیگر استفاده کنید یا اگر ESP32 شما دارای پینوت متفاوتی است.
مرحله 3: ترکیب آن
بعد جعبه سیگار برگ را بریدم تا جایی برای قرار دادن نمایشگر LED به من بدهد. جعبه نرم است و من توانستم از چاقوی تیغ استفاده کنم. سپس سنباده زدم تا صاف شود.
برای سیم برق هم یک قسمت پشتی بریدم. من فقط از برق USB استفاده کردم اگر می خواستم بی سیم شارژر تلفن USB را داخل جعبه سیگار برگ اضافه کنم.
مرحله 4: Arduino IDE و فایل INO
بهترین قسمت کد است. اما ابتدا باید یک کتابخانه اضافه کنیم تا برنامه بتواند از صفحه نمایش به شکل ساده تری استفاده کند. من کتابخانه MD_MAX72xx را اضافه کردم.
برای افزودن کتابخانه روی منوی "Sketch" کلیک کنید ، سپس "Include Library" و "Manage Libraries" بارگیری شده و به شما امکان می دهد کتابخانه MD_MAX72xx را جستجو کنید. کافی است روی install کلیک کنید و آن را در اختیار دارید.
بعد فایل Arduino INO من را دریافت کنید:
github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino
فایل ino را در Arduino IDE خود بارگذاری کنید ،
USB را از ESP32 به رایانه خود وصل کنید.
روی "Sketch" و سپس Upload کلیک کنید
در این مرحله ساعت کار نمی کند ، ESP32 هیچ چیزی را نمایش نمی دهد. چرا؟ ما باید WIFI شما را به کد اضافه کنیم زیرا WordClock برای دریافت زمان به اینترنت متصل می شود. درست است… قدم بعدی ->.
مرحله 5: کد
بالاخره به قسمت مورد علاقه خودم رسیدیم. برنامه. اگر علاقه مند هستید ، از بالا به پایین آن را پوشش خواهم داد ، برای اینکه برنامه با اینترنت خانگی شما کار کند ، فقط باید این خطوط را تغییر دهید.
// اطلاعات شبکه خود را اضافه کنید
const char *ssid = "xxxxxx"؛
const char *رمز عبور = "xxxxxx"؛
این برنامه بسیار پیچیده است ، اما بسیار سرگرم کننده است.
برای غیرفعال کردن "Prevening" فقط مقدار را به false تغییر دهید:
const boolean PREVENING = true؛ //نظریه انفجار بزرگ.
برای غیر فعال کردن نمایش زمان دیجیتال پس از پیمایش ، این مورد را به false تغییر دهید.
const boolean DISPLAY_DIGITAL = true؛ // بعد از پیمایش نمایش زمان دیجیتال را روشن کنید.
پیمایش زمان:
من از سرور زمان در اینترنت با استفاده از NTP (پروتکل زمان شبکه) زمان می گیرم. زمان در متغیری به نام timeinfo نگه داشته می شود و ما ساعت و دقیقه را از آن دریافت می کنیم
ساعت int = timeinfo.tm_hour؛ /// 0-23
دقیقه int = timeinfo.tm_min؛ // 0-59
بعد از ظهر یا عصر را بررسی کنید
AM آن ساعت <12 است
من رشته ای به نام "theTime" ایجاد می کنم و آن را با این عبارت شروع می کنم:
theTime = "این" است ؛
برای بدست آوردن عدد به عنوان کلمه ، مجموعه ای از کلمات را برای اعداد تا 30 ایجاد کردم
const char *اعداد = {
"0" ، "یک" ، "دو" ، "سه" ، "چهار" ، "پنج" ، "شش" ، "هفت" ، "هشت" ، "نه" ، "ده" ، "یازده" ، "دوازده" "،" سیزده "،" چهارده "،" ربع "،" شانزده "،" هفده "،" هجده "،" نوزده "،" بیست "،" بیست و یک "،" بیست و دو "،" بیست و سه "،" بیست و چهار "،" بیست و پنج "،" بیست و شش "،" بیست و هفت "،" بیست و هشت "،" بیست و نه "،" نیمه گذشته "} ؛
بنابراین وقتی ساعت 12:05 یا پنج دقیقه از دوازده گذشته است واقعاً به آردوینو می رسد
اعداد [5] دقیقه از اعداد گذشته [12]
برای تعیین اینکه آیا "Minutes Past" یا "Minutes To" آن فقط به صورتجلسه نگاه می کنیم. اگر دقیقه <31 باشد "دقیقه گذشته" است اگر دقیقه بیشتر از 31 باشد از "دقیقه به" استفاده می کنیم اما از اعداد [60 دقیقه] استفاده می کنیم بنابراین 12:50 دقیقه 60-50 دقیقه است یا اعداد [10] که به ما 10 دقیقه تا 12 ساعت 0 بدهید.
البته قوانین دیگری نیز وجود دارد مانند 15 ، 30 ، 45 ، ما از دقیقه فقط نیم یا یک چهارم استفاده نمی کنیم و اگر دقیقه 0 باشد ، زمان فقط "ساعت ده" یا ظهر است.
بنابراین برای جمع آوری آن ، همه موارد را به String theTime اضافه می کنم و سپس روی ماتریس LED نمایش می دهم. من از چند دستور If استفاده می کنم. احتمالاً باید از کیس استفاده می کردم اما افزودن آنها ساده تر بود.
برای مثال ما 12:05
theTime = "این"
اگر دقیقه <31 از "دقیقه گذشته" استفاده کنید در غیر این صورت "دقیقه به"
theTime + = اعداد [5] + "Minutes Past" + شماره [12] + "O'Clock" // توجه: نماد + = ضمیمه شده است.
در ادامه ساعت را بررسی می کنیم تا مشخص شود صبح ، بعد از ظهر یا عصر است.
theTime+= "عصر"
رشته نهایی که به ماتریس می رود عبارت است از:
"پنج دقیقه از دوازده و نیم عصر گذشته است"
نوشتن این پروژه بسیار سرگرم کننده بود. اگر دوست دارید لطفا روی قلب کلیک کنید و به من رای دهید لطفا.
توصیه شده:
پیمایش متن (راهنمای A تا Z): 25 مرحله (همراه با تصاویر)
پیمایش نمایش متن (راهنمای A تا Z): در این فیلم آموزشی / آموزشی من شما را با دستورالعمل های گام به گام نحوه ایجاد صفحه نمایش پیمایش متن با آردوینو راهنمایی می کنم. من نحوه ایجاد کد برای آردوینو را توضیح نمی دهم ، من نحوه استفاده از کد موجود را به شما نشان خواهم داد. چه چیزی و کجا باید همکاری کنید
4 پروژه در 1 با استفاده از DFRobot FireBeetle ESP32 و LED پوشش ماتریس: 11 مرحله (همراه با تصاویر)
4 پروژه در 1 با استفاده از DFRobot FireBeetle ESP32 & LED Matrix Cover: من در مورد انجام هر یک از این پروژه ها یک برنامه آموزشی فکر کردم - اما در نهایت تصمیم گرفتم که واقعاً بزرگترین تفاوت در نرم افزار هر پروژه است که فکر می کردم بهتر است فقط آن را ایجاد کنم یک دستورالعمل بزرگ! سخت افزار برای ea یکسان است
پیمایش پیروان INSTAGRAM در صفحه نمایش 8X32 LED DOT MATRIX با استفاده از ESP32: 4 مرحله
پیمایش INSTAGRAM FOLLOWERS در 8X32 LED DOT MATRIX DISPLAY با استفاده از ESP32: این دومین دستورالعمل من است و برای انگلیسی خنده دار من متاسفم. در این دستورالعمل ما قصد داریم دنبال کنندگان اینستاگرام خود را در صفحه نمایش LED ماتریس نقطه ای 8X32 حرکت دهیم. بدون اتلاف وقت اجازه دهید شروع کنیم
صفحه نمایش LED پیمایش 16x64 P10 با استفاده از میکروکنترلر PIC16F877: 5 مرحله (همراه با تصاویر)
نمایشگر LED پیمایش 16x64 P10 با استفاده از میکروکنترلر PIC16F877: در این قسمت نحوه نحوه رابط نمایش ماتریس LED 16 * 64 (p10) با میکروکنترلر PICI6F877A توضیح داده شده است. داده ای از طریق UART به میکروکنترلر ارسال می شود که در EEPROM ذخیره می شود و داده ها روی صفحه ماتریس LED نمایش داده می شوند. آی تی
چگونه مشکل پیمایش ماوس Xiaomi را برطرف کنیم: 6 مرحله (همراه با تصاویر)
چگونه می توان مشکل پیمایش ماوس Xiaomi را برطرف کرد: درست مانند هر ابزار دیگری ، ماوس کامپیوتر به دلیل استفاده مداوم ، در نهایت نیاز به تعمیر و نگهداری دارد. سایش و فرسودگی معمولی محصول به آن اجازه می دهد تا کارایی کمتری نسبت به حالت قبلی خود داشته باشد