ชื่อโปรเจกต์: นาฬิกาปฏิทินตั้งโต๊ะบน DS3231MZ + และ Arduino พร้อมจอแสดงผล 2 จอ
นาฬิกาใช้พลังงานจากการชาร์จโทรศัพท์ เพื่อให้เวลาและวันที่ถูกบันทึกไว้ในกรณีที่ไฟดับ จะต้องติดตั้งแบตเตอรี่ 3V ไว้ การตั้งค่าเวลาและวันที่ทำได้โดยใช้ปุ่มต่างๆ หลังจากตั้งค่าเสร็จสิ้น เวลาจะแสดงบนจอแสดงผล OLED ที่มีความละเอียด 128x64 พิกเซล โหมดการแสดงผลเวลาสามารถเปลี่ยนได้โดยใช้ปุ่มที่ 5 นอกจากนี้ อุณหภูมิจากเซ็นเซอร์ที่ติดตั้งอยู่ในชิปนาฬิกา DS3231MZ + ก็จะแสดงบนจอแสดงผล OLED ด้วย ปฏิทินจะแสดงบนจอแสดงผล e-Paper ที่มีความละเอียด 400x300 พิกเซล และมีสีเทา 2 เฉด อีกชื่อหนึ่งของจอแสดงผลประเภทนี้คือกระดาษอิเล็กทรอนิกส์ ซึ่งภาพสุดท้ายที่แสดงบนจอจะยังคงอยู่แม้จะปิดเครื่องแล้ว ข้อเสียของจอแสดงผลประเภทนี้คือใช้เวลาในการอัปเดตรูปภาพนาน โดยเฉพาะจอแสดงผลนี้ใช้เวลา 4 วินาที ส่วนข้อดีหลักคือ หลังจากอัปเดตรูปภาพแล้ว จอแสดงผลไม่จำเป็นต้องใช้พลังงานอีก
นาฬิกาตั้งโต๊ะขั้นสูงพร้อมเทคโนโลยีจอแสดงผลคู่
โปรเจกต์นี้ยกระดับนาฬิกาตั้งโต๊ะแบบดั้งเดิมให้กลายเป็นศูนย์กลางข้อมูลที่ซับซ้อน โดยใช้เทคโนโลยีจอแสดงผลที่แตกต่างกันสองแบบ ได้แก่ OLED ที่มีคอนทราสต์สูง และ E-Ink ที่ใช้พลังงานต่ำมาก ออกแบบโดยใช้ระบบนิเวศ Arduino ที่หลากหลาย นาฬิกาปฏิทินนี้เป็นทั้งผลงานชิ้นเอกที่สวยงามและใช้งานได้จริง
ฮาร์ดแวร์คุณภาพสูงที่เป็นนวัตกรรม
- DS3231MZ+ RTC Chip: Real-Time Clock นี้มีความแม่นยำสูงกว่าโมดูลมาตรฐานอย่างมาก โดยมีออสซิลเลเตอร์คริสตัลชดเชยอุณหภูมิ นอกจากนี้ยังให้ข้อมูลอุณหภูมิที่แสดงบน OLED
- Iskra Nano Pro (ATMega328PB): เป็น Arduino Nano เวอร์ชันปรับปรุง ซึ่งมีอินเทอร์เฟซอุปกรณ์ต่อพ่วงมากขึ้น ให้ "สมอง" ที่จำเป็นในการจัดการจอแสดงผลที่ซับซ้อนสองจอพร้อมกัน
- Waveshare 1.3" OLED (B): จอแสดงผลนี้ให้ข้อความที่คมชัดอ่านง่ายสำหรับข้อมูลเรียลไทม์ เช่น วินาทีและอุณหภูมิปัจจุบัน ลักษณะการเปล่งแสงด้วยตัวเองช่วยให้มองเห็นได้ชัดเจนจากมุมต่างๆ
- Waveshare 4.2" E-Ink Display: ใช้สำหรับแสดงปฏิทิน จอแสดงผลนี้เลียนแบบกระดาษจริง มันไม่ใช้พลังงานเมื่อภาพนิ่ง ซึ่งหมายความว่าปฏิทินของคุณยังคงมองเห็นได้แม้ว่าอุปกรณ์หลักจะถูกถอดปลั๊กออก
- หน่วยความจำภายนอก 64kb: ทำหน้าที่เป็นบัฟเฟอร์รูปภาพ ส่วนประกอบนี้จำเป็นสำหรับการประมวลผลข้อมูลจำนวนมากที่จำเป็นสำหรับจอแสดงผล E-Paper ที่มีความละเอียดสูง
แกนประมวลผลกราฟิกและตรรกะแบบกำหนดเอง
หนึ่งในคุณสมบัติที่โดดเด่นของโปรเจกต์นี้คือการไม่มีไลบรารีสำเร็จรูปสำหรับการเรนเดอร์ E-Paper แบบเฉดสีเทา ฟังก์ชันการเรนเดอร์กราฟิกทั้งหมดถูกเขียนขึ้นด้วยภาษา C++ ตั้งแต่เริ่มต้น ทำให้สามารถปรับแต่งและปรับปรุงประสิทธิภาพได้อย่างลึกซึ้ง รวมถึงกำหนดสไตล์การแสดงผลที่ต้องการได้ ตรรกะนี้รวมการตั้งค่าเวลาด้วยปุ่มและการสลับ UI แบบไดนามิก ทำให้ผู้ใช้สามารถสลับไปมาระหว่างมุมมองข้อมูลต่างๆ บน OLED ในขณะที่ยังคงแสดงปฏิทินเกรกอเรียนแบบคงที่บนแผง E-Ink
นาฬิกาถูกประกอบบนเบรดบอร์ดเพื่อทำการบัดกรี ในการเชื่อมต่อส่วนประกอบต่างๆ ใช้สาย MGTF บอร์ด Iskra Nano Pro จาก Amperka ที่ใช้ไมโครคอนโทรลเลอร์ ATMega328PB ถูกใช้เป็น "สมอง" เช่นเดียวกับบอร์ด Arduino Nano ดั้งเดิม การเขียนโปรแกรมทำใน Arduino IDE เพื่อบัฟเฟอร์รูปภาพของกระดาษอิเล็กทรอนิกส์ จึงใช้หน่วยความจำภายนอกเพิ่มเติมขนาด 64kb ผมไม่พบไลบรารีสำเร็จรูปใดๆ สำหรับการแสดงภาพในเฉดสีเทา ดังนั้นในโปรเจกต์นี้ แกนกราฟิกสำหรับทำงานกับจอแสดงผลจึงถูกเขียนขึ้นด้วยภาษา C++ ตั้งแต่เริ่มต้น
แผนผังวงจร:
ข้อมูล Frontmatter ดั้งเดิม
title: "Desk Clock Calendar on DS3231MZ + and Arduino with 2 display" description: "Table clock calendar with two displays Waveshare 1.3 inches OLED (B) and Waveshare 4.2 inches E-Ink" author: "issaom" category: "" tags: - "clocks" views: 2393 likes: 0 price: 2450 difficulty: "Intermediate" components: - "1x 1.3inch OLED (B)" - "1x 400x300, 4.2inch E-Ink display module" - "1x Iskra Nano Pro" tools: [] apps: - "1x Arduino IDE" downloadableFiles: - "https://projects.arduinocontent.cc/c03bc3a0-c6c4-45f0-9c7a-3daa851ecdb1.h" - "https://projects.arduinocontent.cc/ad1fda04-280c-48ef-af7b-e24aea2e8ca2.h" - "https://projects.arduinocontent.cc/9940d0a7-37b6-46c8-b0a6-882028b64191.h" - "https://projects.arduinocontent.cc/09e07d6b-4c56-4ce1-88a1-8057bed44b85.ino" - "https://projects.arduinocontent.cc/f87e8f42-ee42-416e-b6a7-c10ef22a0422.h" - "https://projects.arduinocontent.cc/882bfc82-ab34-4e8d-9581-27b064879051.h" - "https://projects.arduinocontent.cc/9940d0a7-37b6-46c8-b0a6-882028b64191.h" - "https://projects.arduinocontent.cc/9710c15f-f093-46c2-8821-748c216302c8.h" - "https://projects.arduinocontent.cc/09e07d6b-4c56-4ce1-88a1-8057bed44b85.ino" - "https://projects.arduinocontent.cc/ad1fda04-280c-48ef-af7b-e24aea2e8ca2.h" - "https://projects.arduinocontent.cc/ba891497-cf3f-478a-9cd3-f0b90744c8a8.h" - "https://projects.arduinocontent.cc/ba891497-cf3f-478a-9cd3-f0b90744c8a8.h" - "https://projects.arduinocontent.cc/9710c15f-f093-46c2-8821-748c216302c8.h" - "https://projects.arduinocontent.cc/c03bc3a0-c6c4-45f0-9c7a-3daa851ecdb1.h" - "https://projects.arduinocontent.cc/882bfc82-ab34-4e8d-9581-27b064879051.h" - "https://projects.arduinocontent.cc/d626b82d-e4df-4c0b-8923-74db4128ef17.h" - "https://projects.arduinocontent.cc/f87e8f42-ee42-416e-b6a7-c10ef22a0422.h" documentationLinks: [] passwordHash: "7f8a474207aa32113e1056ef5429689e5c7536282b5d5916653dffd27092725b" encryptedPayload: "U2FsdGVkX19iTR3SkNds0E0j6wEFYX1iJDDzmWFJ4s0mUeKU3PBIrduq7FOE9ZPcQAxA1IMja96wg0lfcLKh49AztUSfTrkqJfHgIK8vPUY=" seoDescription: "Desk clock calendar using Arduino and DS3231MZ + with Waveshare 1.3 inches OLED and 4.2 inches E-Ink." videoLinks: - "https://www.youtube.com/embed/g3RLuWH9qlU" heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/desk-clock-calendar-on-ds3231mz-and-arduino-with-2-display-1d8fd2_cover.jpg" lang: "th"