فهرست مطالب:

ساعت زنگ دار اولد: 8 مرحله (همراه با تصاویر)
ساعت زنگ دار اولد: 8 مرحله (همراه با تصاویر)

تصویری: ساعت زنگ دار اولد: 8 مرحله (همراه با تصاویر)

تصویری: ساعت زنگ دار اولد: 8 مرحله (همراه با تصاویر)
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, جولای
Anonim
ساعت زنگ دار اولد
ساعت زنگ دار اولد

تعداد زیادی ساعت آردوینو/ESP32 در حال گردش است ، اما آیا آنها از آن OLED های زیبا و واضح استفاده می کنند؟

من مدتی است که با arduinos و ESP32 آزمایش می کنم ، اما هرگز به محصول نهایی نرسیدم. من یک ساعت زنگ دار با 4 OLED تک رنگ 1.3 اینچی ساخته ام. این ساعت همچنین دارای چراغ خواب با قابلیت تنظیم نور و پورت شارژ USB است (هیچ کس در کنار تختخواب خود پریز یدکی ندارد). OLED ها نیز قابل تنظیم هستند ، این آخرین دقیقه پس از تهدید پروژه من توسط دوست دخترم اضافه شد. اگر صدای دوست دختر به اندازه کافی کم نباشد ، می توانم نسخه ای از کد را ارائه دهم که در آن 3 صفحه نمایش بین چند ساعت کار می کنند. هدف این بود که یک ساعت ساده و قابل سرویس بسازیم ، با نگاهی فراتر از "نمونه اولیه". در حین ساختن ساعت با مشکلاتی روبرو شدم که به همین دلیل من فکر می کنم این دستورالعمل ارزش به اشتراک گذاری دارد. ساعت را می توان با ابزارهای کوچک ساخت ، من از آموزش های "و در مرحله بعد از 10.000 €/$ CNC آسیاب خود استفاده کردم" خوشم نمی آید.

برخی از مواردی که در این دستورالعمل (در ساختار قابل توصیف) توضیح داده می شود:

- نحوه استفاده/سیم کشی یک صفحه نمایش OLED I2C با arduino/ESP32

- نحوه استفاده از چندین شی I2C با یک arduino/ESP32

- نحوه ایجاد یک منوی "قابل حرکت" با استفاده از یک رمزگذار چرخشی (+ نحوه استفاده از رمزگذار با ESP32/arduino)

- نحوه طراحی و سفارش PCB سفارشی با استفاده از سرمایش.

- ساعت همچنین از RTC (زمان واقعی) ، درایور led ، ماژول ولتاژ پایین …

می خواهم توجه داشته باشم که من یک برنامه نویس حرفه ای نیستم. هدف از دستورالعمل من توضیح نکاتی است که در بالا ذکر کردم. این که چگونه همه چیز را برای محصول نهایی خود جمع آوری کرده ام شاید پاک ترین راه نباشد. این راهی است که به من اجازه داد همه چیز را پیگیری کنم.

تدارکات

هنگام خرید لوازم من همیشه سعی می کنم اهمیت کیفیت/مستندات را در برابر قیمت بسنجم. لوازم من ترکیبی از مارک های A و قطعات چینی ارزان تر است. اگر کیفیت مهم است ، Mouser یک تامین کننده عالی است ، برای قطعات ارزان تر از Banggood/Aliexpress سفارش می دهم.

- من یک تخته ESP32 ، از Huzzah32 از adafruit استفاده کردم ، اما بسیاری از گزینه های دیگر (ارزان تر) وجود دارد. من Huzzah32 را انتخاب کردم زیرا بسیار مستند است.

- 4 صفحه نمایش 1.3 اینچی I2C OLED (128x64 ، با درایور SH1106) ، صفحه نمایش های 0.96 اینچی رایج تر هستند اما برای این پروژه من 1.3 اینچی را ترجیح می دهم

- راننده sparkfun femtobuck برای رانندگی LED

- ساعت RTC ، من از یک ساعت با سلول لیتیوم استفاده کردم

- آردوینو نانو

-پورت USB 2.0 زن (من از SS-52200-002 از Stewart Connector استفاده کردم)

- جک DC زن (من از L722A از Switchcraft استفاده کردم)

- آداپتور 12V 3A DC (GST36E12-P1J از میانگین چاه)

- PCB سفارشی ، اختیاری است اما این باعث می شود پروژه بسیار جمع و جورتر و در صورت مرگ قطعه + قابلیت اطمینان بیشتر به دلیل سیم کمتر (jlcpcb.com)

- پیچ و پیچ M3

- درج برنجی M3

- ماژول 12V تا 5V از Pololu (DF24V22F5)

- قدرت 3 وات با هیت سینک

- سیم های بلوز

- زنگ

- مالتی پلکسر I2C (TCA9548A از adafruit)

- 2 رمزگذار روتاری (من برخی را امتحان کرده ام ، همه با کد من کار نمی کنند. یکی از "DFrobot" کار می کند و همچنین یکی از مدارهای PCB گرد "DIYmore". کد من برای دکمه فشار کار نمی کند از نوع KY-040. ساعت زنگ دار من از ساعت DIYmore استفاده می کند زیرا به راحتی روی پنل نصب می شوند (نیازی به پیچ/سوراخ اضافی نیست).

- مجموعه سربرگ های زن (اختیاری)

- چوب برای قاب: 18mmx18mmx2400mm

- ردیابی مقاله

من از برخی ابزارها (آهن لحیم کاری ، دست سوم ، اره …) نیز استفاده کردم ، اما واقعاً هیچ چیز عجیب و غریب نبود.

مرحله 1: استفاده از Oled

استفاده از Oled
استفاده از Oled
استفاده از Oled
استفاده از Oled
استفاده از Oled
استفاده از Oled

برای استفاده از OLED ها باید یک کتابخانه نصب کنید. من از U8G2lib از Oli Kraus استفاده می کنم ، بسیار قابل فهم است و دارای راهنمای مرجع با مثالهای واضح است.

برای اتصال برد خود (ESP یا arduino) باید پین های SDA و SCL را پیدا کنید. این پین ها پین های ارتباطی I2C هستند. اگر آنها را پیدا نکردید ، "pinout" صفحه خاص خود را جستجو کنید.

من چند کد نمونه اضافه کردم کد برای arduino و ESP32 کار می کند ، اما حافظه ESP32 کم است. تمام دستگاه هایی که تا به حال امتحان کرده ام با هر دو 3.3 ولت (ESP32) و 5 ولت کار می کنند.

مرحله 2: چند OLED

OLED های متعدد
OLED های متعدد

اینجاست که پروژه من با بسیاری از ساعت های زنگ دار متفاوت می شود. اکثر arduinos/ESP ها فقط یک یا دو پین I2C دارند. این نوع استفاده از قطعات I2C را محدود می کند. اگر 4 سنسور I2C داشته باشم و بخواهم قرائت آنها را بر روی صفحه نمایش I2C نمایش دهم؟ مالتی پلکسر را وارد کنید muliplexer به شما اجازه می دهد تا 7 قسمت مختلف I2C را آدرس دهی کنید. این به ESP32 من اجازه می دهد از ساعت I2C واقعی استفاده کند و زمان را با استفاده مجدد از I2C روی 4 صفحه نمایش دهد (یا بیشتر ، اجازه ندهید جلوی شما را بگیرم).

من چند نمونه کد برای ESP32 اضافه کرده ام ، از اینجا به بعد مطمئن نیستم که آردوینو بتواند به کار خود ادامه دهد. مثال فقط از نمایشگرها استفاده می کند ، می تواند موارد دیگری مانند سنسورهای I2C و غیره نیز باشد. اصل همیشه یکسان است ، شما کانال مناسب را با "tcaselect (#)؛" تابع ، سپس هر کد لازم برای شیء I2C خود را اجرا می کنید.

مرحله 3: ایجاد یک منوی قابل پیمایش با یک رمزگذار روتاری

ایجاد منوی قابل پیمایش با رمزگذار روتاری
ایجاد منوی قابل پیمایش با رمزگذار روتاری
ایجاد منوی قابل پیمایش با رمزگذار روتاری
ایجاد منوی قابل پیمایش با رمزگذار روتاری
ایجاد منوی قابل پیمایش با رمزگذار روتاری
ایجاد منوی قابل پیمایش با رمزگذار روتاری

در وهله اول ، رمزگذارهای خود را آزمایش کنید. من تعدادی کد برای آزمایش ماژول های رمزگذار شما اضافه کرده ام. همانطور که در منابع آمده است: من فقط کد خود را با ماژول های رمزگذار دوار از روبات DF و ماژول با PCB گرد از DIYmore با موفقیت آزمایش کردم. برای کدگذاری مناسب تصاویر بالا را مشاهده کنید.

کتابخانه ای که استفاده کردم این کتابخانه است:

PDF ای که من اضافه کرده ام امیدوارم به ساختار منویی که برای ساعت خود استفاده کرده ام کمک کند.

کارکردن رمزگذار سخت ترین قسمت برای من در این پروژه بود. رمزگذارهای مختلف و کتابخانه های مختلفی وجود دارد که همیشه با ESP32 سازگار نیستند. اما من فکر می کنم اگر می خواهید چیزی را وارد کنید ، یک رمزگذار دوار (در حال کار) یک راه حل زیبا است. اگر فقط از دکمه ها استفاده می کردم ، به بیش از 1 عدد نیاز داشتم و تنظیم زمان به فشارهای زیادی نیاز داشت.

مرحله 4: قرار دادن کد قبلی در Togetther

قرار دادن کد قبلی Togetther
قرار دادن کد قبلی Togetther

عنوان به نوعی خلاصه کارهایی است که من انجام داده ام. من قسمت به قسمت را امتحان کردم و سپس همه چیز را با هم ترکیب کردم. اما چون هیچ چیز آسان نیست ، مجبور شدم بعضی چیزها را تغییر دهم. ارتباط سریال یک روند کند است. این امر باعث می شود که رمزگذار به درستی خوانده شود. برای غلبه بر این ، وقفه هایی را به پین های رمزگذار اضافه کردم. در صورت فشار دادن یا چرخاندن رمزگذار ، کد خواندن رمزگذار بلافاصله فراخوانی می شود.

هنگامی که نحوه ساختن منو را درک کردید ، متوجه خواهید شد که افزودن یا حذف ویژگی ها به سلیقه خود بسیار آسان است. شاید دوست دارید آب و هوا یا زمان فعلی را از اینترنت دریافت کرده و نمایش دهید؟

من بسیاری از چنین ایده هایی را کنار گذاشتم زیرا بیش از هر چیز به آرامش زمان قابل اطمینان می خواستم. یکی که به طور خودکار هیچ کاری انجام نمی دهد. من ساعات بسیار عجیب و غریبی را در یک منطقه نورگیر روز کار می کنم. هربار که ساعت عوض می شود از خواب زیاد عصبی هستم. آیا تلفن من به طور خودکار ساعت را تغییر می دهد؟ آیا ساعت من؟ خوب ، ساعت من نمی خواهد ، مگر اینکه خودم آن را تغییر دهم. اما شاید شما می خواهید ساعت خود را در آشپزخانه بگذارید؟ سناریوی متفاوت ، اضافه کردن ویژگی ها تا زمانی که حافظه خارج شود!

مرحله 5: PCB سفارشی با Fritzing + Schematic

PCB سفارشی با Fritzing + شماتیک
PCB سفارشی با Fritzing + شماتیک
PCB سفارشی با Fritzing + شماتیک
PCB سفارشی با Fritzing + شماتیک
PCB سفارشی با Fritzing + شماتیک
PCB سفارشی با Fritzing + شماتیک

نکته قابل توجه: Adafruit اشاره می کند که در حالی که می توانید huzzah32 را از طریق پین USB تغذیه کنید ، باید مراقب باشید که همزمان از ورودی برق میکرو USB استفاده نکنید. PCB من از طریق step down buck تغذیه می شود ، که سپس huzzah را از طریق پین USB تغذیه می کند. بنابراین همیشه هنگام بارگیری ، برق خارجی را جدا کنید/huzzah را از برد جدا کنید.

من تصمیم گرفتم هدرهای زن را روی PCB لحیم کنم زیرا تعویض قطعه را آسان تر می کند یا برای مثال یک سنسور اضافی I2C اضافه می کند. این همچنین به من اجازه می دهد تا نانو یا ESP32 را برای بارگیری برنامه ها به راحتی حذف کنم.

من فایل Frizting را اضافه کرده ام ، می توانم یک رمان در اینجا تایپ کنم ، اما فکر می کنم مثال بهترین صحبت را می کند. من با شماتیک کل تنظیم شروع کردم. در حالی که Fritzing قسمت های زیادی در سطل های آن دارد ، همه چیز آنجا نیست. گاهی اوقات می توانید قسمت Fritzing را در اینترنت پیدا کنید ، گاهی اوقات نمی توانید. قطعاتی را که نتوانستم پیدا کنم ، فقط قسمت هدر زنانه را جایگزین کردم. اگر روی آن راست کلیک کنید ، می توانید سرصفحه را به میزان پین های مورد نظر خود ویرایش کنید و یک pinout به آن اختصاص دهید. من این کار را با هر قسمتی که پیدا نکردم انجام دادم. از آنجا که تقریباً همه ماژول ها از یکنواخت 0.1 اینچ (2.54 میلی متر) استفاده می کنند ، این فاصله مناسب را برای قطعه به شما می دهد.

در مرحله بعد به نمای PCB برنامه fritzing تغییر می دهید. یک PCB قرار داده می شود ، اگر روی آن کلیک کنید ، می توانید اندازه آن را تعیین کرده و یک PCB تک یا دو لایه را انتخاب کنید. مال من از 2 لایه استفاده می کند. Fritzing ارتباطاتی را که در نمای شماتیک ایجاد کرده اید نشان می دهد. این برنامه دارای یک گزینه autoroute است ، اما من هرگز از آن استفاده نمی کنم. من دوست دارم ارتباطاتم را به صورت دستی سازمان دهی کنم. در نمای PCB اتصالات زرد در لایه بالا ، نارنجی در لایه پایینی قرار دارد. دوباره اگر روی اتصال کلیک کنید می توانید ویژگی های آن را انتخاب کنید.

برای ساخت PCB واقعی ، باید آن را به عنوان یک فایل gerber صادر کنید. قبل از انجام این کار ، در زیر برگه "مسیریابی" می توانید قوانین طراحی را بررسی کنید. اگر همه چیز بررسی شد می توانید روی "صادرات برای PCB" کلیک کنید. اکثر تولیدکنندگان فایل gerber را درخواست می کنند ، بنابراین صادرات به gerber را انتخاب کنید.

من PCB خود را از JLCPCB سفارش دادم ، دوست دارم که آنها بلافاصله قیمت را برای شما قید کنند. البته گزینه های بسیار دیگری نیز وجود دارد.

در مورد شماتیک: 2 ولتاژ مورد استفاده وجود دارد. LED و femtobuck مستقیماً از منبع تغذیه 12 ولت تغذیه می کنند. بقیه از طریق باک پله ای با ولتاژ 5 ولت تغذیه می شود.

مرحله 6: طراحی + لیزر برش

طراحی + لیزر شکن
طراحی + لیزر شکن
طراحی + لیزر شکن
طراحی + لیزر شکن

برای اولین طراحی خود از بلوط جامد استفاده کردم (کلاس های نجاری را دنبال می کنم) ، اما به سرعت مشخص شد که این ایده آل نیست. چوب بسیار ضخیم است ، و باعث می شود که قسمت های شما را نادیده بگیرد. مالتی پلکس 3 میلی متری توس اجازه می دهد تا راه های ساده تری را برای بستن رمزگذارها و نمایشگرها در نظر بگیرید.

من یک سرویس برش لیزری آنلاین ، snijlab.nl ، برای علاقمندان واقع در روتردام پیدا کردم (آنها به بلژیک ، هلند و آلمان ارسال می شوند). در وب سایت آنها می توانید نقشه های خود را بارگذاری کنید و آنها بلافاصله قیمت شما را اعلام می کنند. من از اتوکد که در محل کار دارم استفاده کردم ، اما نرم افزار واقعا اهمیتی ندارد. فقط باید یک نقشه برداری (Vectr ، Illustrator ، Inkscape …) باشد. اکثر مغازه ها از رنگ ها برای تعیین اینکه آیا می خواهید برش دهید یا حک کنید استفاده می کنند.

نکاتی که باید در نظر داشته باشید:

- حداکثر ابعاد دستگاه برش لیزری (من قاب را دور قسمت هایم کشیدم)

- حداقل فاصله بین برش ها

- اطمینان حاصل کنید که هیچ خط دوگانه ای ترسیم نمی کنید ، لیزر یک پاس اضافی انجام می دهد و هزینه بیشتری برای شما دارد.

- هنگام ترسیم روی PDF ، مطمئن شوید که نمودار 1: 1 را ترسیم کرده اید. شما نمی خواهید کاغذ را کوچک یا مناسب کنید.

مرحله 7: مونتاژ

مونتاژ
مونتاژ
مونتاژ
مونتاژ
مونتاژ
مونتاژ

من ساعت را در اطراف یک قاب چوبی ساختم ، پانل ها با پیچ M3 و درج در قاب ثابت می مانند. در صورت ایجاد نسخه 2 ، از پروفیل های آلومینیومی "L" برای اتصال صفحات استفاده می کنم. حفاری دقیق سوراخ های درج برنج بسیار دشوار بود. خیلی طول کشید ، فقط نتیجه قابل قبولی داشت. البته این بدان معناست که نقاشی برش لیزری باید تجدید نظر شود. من فکر می کنم با پروفیل آلومینیومی و فقط پیچ و مهره نتیجه بهتری خواهید گرفت.

برای پخش بهتر نور ، کاغذ ردیابی را در قسمت داخلی سوراخ ها چسبانده ام. این به نور درخشش خوبی به آن می بخشد.

مرحله 8: اینجا را متوقف نکنید

اینجا متوقف نشو
اینجا متوقف نشو
اینجا متوقف نشو
اینجا متوقف نشو
اینجا متوقف نشو
اینجا متوقف نشو

این پروژه حول یک ESP32 متمرکز است ، من به سختی از آن استفاده کردم. چراغ های اتاق خواب من در حال حاضر می توانند با استفاده از blynk از راه دور کنترل شوند. کنترل آنها با ساعت تنها یک گام کوچکتر است. شاید شما تعدادی نمایشگر اضافی می خواهید که دمای محیط خانه را به شما نشان دهد؟ یا برخی از سنسورهای محلی (هنوز اتصالات I2C اضافی روی آن مالتی پلکسر وجود دارد!). شاید زمان/زنگ ساعت را از طریق یک برنامه و بلوتوث تنظیم کنید؟

به من بگو که چه چیزی را تغییر داده ای ، چه چیزی را تغییر خواهی داد ، من باید چه چیزی را تغییر دهم…

توصیه شده: