สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ตั้งค่า Arduino IDE ของคุณเพื่อรองรับ ESP32
- ขั้นตอนที่ 2: เชื่อมต่อ LED Matrix กับ ESP32
- ขั้นตอนที่ 3: นำมันมารวมกัน
- ขั้นตอนที่ 4: ไฟล์ Arduino IDE และ INO
- ขั้นตอนที่ 5: รหัส
วีดีโอ: ESP32 การเลื่อน WordClock บน LED Matrix: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ในโครงการนี้ ฉันสร้าง Scrolling WordClock ด้วย ESP32, LED Matrix และกล่องซิการ์
WordClock คือนาฬิกาที่สะกดเวลามากกว่าแค่พิมพ์บนหน้าจอหรือมีมือที่อ่านได้ นาฬิกาเรือนนี้จะบอกคุณว่าเวลา 10 นาทีเลย 3 โมงเย็นหรือเที่ยงวัน ฉันยังตั้งโปรแกรมให้ใช้ Prevening (จากทฤษฎีบิ๊กแบง) ซึ่งเป็นชื่อช่วงเวลาคลุมเครือระหว่างช่วงบ่ายถึงเย็น เริ่ม 16.00 น.
ESP32 นั้นยอดเยี่ยม สนุกมากและราคาไม่แพง ถ้าคุณชอบการเขียนโปรแกรม Arduino คุณจะทึ่งกับสิ่งที่ ESP32 สามารถทำได้ในราคาต่ำกว่า 10 ดอลลาร์ พวกเขาใช้ Arduino IDE และตั้งโปรแกรมได้ง่าย ฉันจะสาธิตวิธีการทำสิ่งนี้ในคำแนะนำนี้
เสบียง
- ESP32 – ประมาณ $10 ใน amazon
- LED Matrix (max7219) (และสายไฟ) - $9 amazon
- กล่องซิการ์
- สายไฟ USB
- เครื่องพิมพ์ 3d เสริมสำหรับขาตั้ง esp32
ขั้นตอนที่ 1: ตั้งค่า Arduino IDE ของคุณเพื่อรองรับ ESP32
รับ Arduino IDE:
- ในเบราว์เซอร์ไปที่
- คลิกที่ซอฟต์แวร์ จากนั้นดาวน์โหลด เพื่อรับ ARDUINO 1.8.12
เพิ่มการรองรับ ESP32 ให้กับ Arduino IDE ของคุณ:
- เริ่ม Arduino IDE
- คลิกที่เมนูไฟล์แล้วเลือกการตั้งค่า
เมื่ออยู่ใน "การตั้งค่า" ให้เพิ่มการสนับสนุนของผู้ผลิตโดยเพิ่มบรรทัดต่อไปนี้ใน "Additional Board Manager"
dl.espressif.com/dl/package_esp32_index.js
สิ่งนี้จะทำให้เราเข้าถึงเพื่อเพิ่มบอร์ดใน IDE
ไปที่เมนูเครื่องมือ จากนั้นไปที่บอร์ด แล้วไปที่ผู้จัดการบอร์ด
ถัดไปค้นหา "ESP" และเพิ่มแพ็คเกจโดย Expressif
สุดท้ายนี้ เราต้องการกลับไปที่เมนู "เครื่องมือ" จากนั้นไปที่ "บอร์ด" อีกครั้งแล้วเลื่อนลงเพื่อค้นหาอุปกรณ์ ESP32 ของคุณ
ของฉันคือ "โมดูล ESP32 Wrover"
ขั้นตอนที่ 2: เชื่อมต่อ LED Matrix กับ ESP32
เมทริกซ์ LED ประกอบด้วย LED ขนาด 8x8 จำนวน 4 บล็อกและใช้ชิป MAX7219 นั่นทำให้เรามี LED 8x32 ในเมทริกซ์หรือ 256 LED !!!.
esp32 ถูกระงับที่ฉันสร้างขึ้นใน TinkerCad ที่ยึดของฉันถือหมุดโดยหงายขึ้นเพื่อให้คุณสามารถต่อสายไฟได้
LED Matrix เชื่อมต่อกับ ESP32 โดยใช้ SPI (Serial Peripheral Interface)
ใช้สายตัวเมีย/ตัวเมียและต่อหมุดดังนี้:
- ESP32 - 5v เป็น VCC บนเมทริกซ์
- ESP32 - GND ถึง GND บนเมทริกซ์
- ESP32 - PIN5 (G5) เป็น CS บน Matrix
- ESP32 - PIN23 (G23) ไปยัง Din บน Matrix
- ESP32 - ตรึง 18 (G18) ถึง CLK บน Matrix
เป็นไปได้ที่จะใช้พินอื่นหรือถ้า ESP32 ของคุณมีพินที่แตกต่างกัน
ขั้นตอนที่ 3: นำมันมารวมกัน
ต่อไปฉันตัดกล่องซิการ์เพื่อให้ฉันมีที่สำหรับวางจอแสดงผล LED กล่องนุ่มและฉันสามารถใช้มีดโกนหนวดได้ จากนั้นฉันก็ขัดให้เรียบ
ฉันยังตัดทั้งด้านหลังสำหรับสายไฟ ฉันเพิ่งใช้พลังงาน USB ฉันสามารถเพิ่มแบตเตอรี่เครื่องชาร์จโทรศัพท์ USB ในกล่องซิการ์ได้หากฉันต้องการให้เป็นแบบไร้สาย
ขั้นตอนที่ 4: ไฟล์ Arduino IDE และ INO
ส่วนที่ดีที่สุดคือรหัส แต่ก่อนอื่นเราต้องเพิ่มไลบรารีเพื่อให้โปรแกรมใช้การแสดงผลในวิธีที่ง่ายขึ้น ฉันเพิ่มไลบรารี MD_MAX72xx แล้ว
หากต้องการเพิ่มไลบรารี ให้คลิกที่เมนู "Sketch" จากนั้น "Include Library" และ "Manage Libraries" จะโหลดขึ้นและอนุญาตให้คุณค้นหาไลบรารี MD_MAX72xx เพียงคลิกที่ติดตั้งและคุณมี
ต่อไปรับไฟล์ Arduino INO ของฉัน:
github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino
โหลดไฟล์ ino ลงใน Arduino IDE ของคุณ
เชื่อมต่อ USB จาก ESP32 กับคอมพิวเตอร์ของคุณ
คลิกที่ "ร่าง" จากนั้นอัปโหลด
ณ จุดนี้นาฬิกาจะไม่ทำงาน ESP32 จะไม่แสดงอะไรเลย ทำไม? เราจำเป็นต้องเพิ่ม WIFI ของคุณลงในรหัสเพราะ WordClock เชื่อมต่อกับอินเทอร์เน็ตเพื่อรับเวลา ถูกต้อง…ขั้นตอนต่อไป ->
ขั้นตอนที่ 5: รหัส
ในที่สุดเราก็มาถึงส่วนที่ฉันชอบ โปรแกรม. ฉันจะครอบคลุมจากบนลงล่างหากคุณสนใจ เพื่อให้โปรแกรมทำงานกับอินเทอร์เน็ตที่บ้านของคุณ คุณเพียงแค่เปลี่ยนบรรทัดเหล่านี้
// เพิ่มข้อมูลเครือข่ายของคุณ
const ถ่าน *ssid = "xxxxxx";
อักขระ const *รหัสผ่าน = "xxxxxx";
โปรแกรมค่อนข้างซับซ้อน แต่สนุกมาก
หากต้องการปิดใช้งาน "การป้องกัน" เพียงเปลี่ยนค่าเป็นเท็จ:
const บูลีน PREVENING=true; //ทฤษฎีบิกแบง.
หากต้องการปิดใช้งานการแสดงเวลาดิจิทัลหลังจากเลื่อนให้เปลี่ยนเป็นเท็จ
const บูลีน DISPLAY_DIGITAL=true; //เปิดการแสดงเวลาดิจิตอลหลังจากเลื่อน
เลื่อนเวลา:
ฉันได้รับเวลาจากเซิร์ฟเวอร์เวลาบนอินเทอร์เน็ตโดยใช้ NTP (Network Time Protocol) เวลาจะถูกเก็บไว้ในตัวแปรที่เรียกว่า timeinfo และเราได้ชั่วโมงและนาทีจากมัน
int ชั่วโมง = timeinfo.tm_hour; ///0-23
int นาที = timeinfo.tm_min; //0-59
ถัดไปตรวจสอบ AM หรือ PM
มันคือ AM ถ้าชั่วโมง <12
ฉันสร้างสตริงชื่อ "theTime" และเริ่มต้นด้วย:
theTime="มันคือ";
เพื่อให้ได้ตัวเลขเป็นคำ ฉันได้สร้างอาร์เรย์ของคำสำหรับตัวเลขไม่เกิน 30
ถ่าน const *ตัวเลข = {
"0", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า", "สิบ", "สิบเอ็ด", "สิบสอง" "," สิบสาม", "สิบสี่", "ไตรมาส", "สิบหก", "สิบเจ็ด", "สิบแปด", "สิบเก้า", "ยี่สิบ", "ยี่สิบเอ็ด", "ยี่สิบสอง", "ยี่สิบสาม" ", "ยี่สิบสี่", "ยี่สิบห้า", "ยี่สิบหก", "ยี่สิบเจ็ด", "ยี่สิบแปด", "ยี่สิบเก้า", "ครึ่งหลัง"};
ดังนั้นเมื่อเวลา 12:05 น. หรือห้านาทีผ่านไป มันจะเป็น Arduino
ตัวเลข[5] นาทีที่ผ่านมา ตัวเลข[12]
เพื่อตรวจสอบว่า "นาทีที่ผ่านมา" หรือ "นาทีถึง" เราเพียงแค่ดูนาที หากนาที < 31 จะเป็น "นาทีที่ผ่านไป" หากนาทีที่มากกว่า 31 เราใช้ "นาทีถึง" แต่ใช้ตัวเลข[60 นาที] ดังนั้น 12:50 จะเป็น 60-50 นาที หรือตัวเลข[10] ซึ่งจะ ให้เวลาเรา 10 นาทีถึง 12.00 น.
แน่นอนว่ามีกฎอื่นๆ เช่น วันที่ 15, 30, 45 เราไม่ใส่นาที มันก็แค่ครึ่งหรือสี่ถึงครึ่ง และถ้านาทีเป็น 0 เวลาก็จะเท่ากับ "สิบโมง" หรือเที่ยง
ในการรวมเข้าด้วยกัน ฉันผนวกรายการทั้งหมดเข้ากับ String theTime จากนั้นแสดงบน LED Matrix ฉันใช้คำสั่ง if จำนวนมาก ฉันน่าจะใช้ case แต่ง่ายกว่าที่จะใส่ต่อไป
สำหรับตัวอย่างของเรา 12:05
theTime="มันคือ"
ถ้านาที < 31 ใช้ "นาทีที่ผ่านไป" มิฉะนั้นจะเป็น "นาทีถึง"
theTime+= numbers[5] + " minutes Past" + number [12] + "O'Clock" //หมายเหตุ: เครื่องหมาย += ถูกผนวก
ต่อไปเราจะดูชั่วโมงเพื่อพิจารณาว่าเป็นเวลาเช้า บ่าย หรือเย็น
theTime+= "ในตอนเย็น"
สตริงสุดท้ายที่ไปยังเมทริกซ์คือ:
“ห้านาทีสิบสองนาฬิกาในตอนเย็น”
โครงการนี้เขียนได้สนุกมาก หากคุณชอบโปรดคลิกหัวใจและโหวตให้ฉัน
แนะนำ:
นาฬิกาดิจิตอล LED Dot Matrix - แอพ ESP Matrix สำหรับ Android: 14 ขั้นตอน
Digital Clock LED Dot Matrix - แอพ ESP Matrix สำหรับ Android: บทความนี้ได้รับการสนับสนุนอย่างภาคภูมิใจโดย PCBWAY.PCBWAY สร้าง PCB ต้นแบบคุณภาพสูงสำหรับผู้คนทั่วโลก ลองด้วยตัวคุณเองและรับ 10 PCBs เพียง $5 ที่ PCBWAY ด้วยคุณภาพที่ยอดเยี่ยมมาก ขอบคุณ PCBWAY บอร์ด ESP Matrix ที่ฉันพัฒนา
NTP Synchronized Wordclock: 6 ขั้นตอน (พร้อมรูปภาพ)
NTP Synchronized Wordclock: ซิงค์นาฬิกาของคุณกับเซิร์ฟเวอร์เวลา NTP เพื่อให้สามารถตรวจสอบเวลาที่เหมาะสมได้หากไฟดับหากคุณไม่ได้อยู่ที่บ้าน :-)
IoT Smart Clock Dot Matrix ใช้ Wemos ESP8266 - ESP Matrix: 12 ขั้นตอน (พร้อมรูปภาพ)
IoT Smart Clock Dot Matrix ใช้ Wemos ESP8266 - ESP Matrix: สร้าง IoT Smart Clock ของคุณเองที่สามารถ: แสดงนาฬิกาพร้อมไอคอนแอนิเมชั่นที่สวยงาม Display Reminder-1 to Reminder-5 แสดงปฏิทิน แสดงเวลาละหมาดของชาวมุสลิม แสดงข้อมูลสภาพอากาศ แสดงข่าว แสดงคำแนะนำ อัตรา Bitcoin แสดง
DIY Arduino Wordclock: 7 ขั้นตอน (พร้อมรูปภาพ)
DIY Arduino Wordclock: นาฬิกาคำรุ่นของฉันจะไม่มีจอแสดงผล LED-Matrix ขนาด 12×12 แต่ทำด้วยแถบ LED และมีเพียงคำสำคัญบนนาฬิกาเท่านั้นที่สามารถสว่างขึ้นได้ ด้วยวิธีนี้ คุณไม่สามารถแสดงข้อความที่กำหนดเองได้ แต่การสร้างทั้งหมดจะไม่เสียค่าใช้จ่าย
4 โครงการใน 1 โดยใช้ DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 ขั้นตอน (พร้อมรูปภาพ)
4 โครงการใน 1 การใช้ DFRobot FireBeetle ESP32 & LED Matrix Cover: ฉันคิดเกี่ยวกับการทำคำสั่งสำหรับแต่ละโครงการเหล่านี้ - แต่ในท้ายที่สุด ฉันตัดสินใจว่าความแตกต่างที่ใหญ่ที่สุดจริงๆ คือซอฟต์แวร์สำหรับแต่ละโปรเจ็กต์ ฉันคิดว่ามันจะดีกว่าที่จะทำ หนึ่งคำสั่งใหญ่! ฮาร์ดแวร์เหมือนกันสำหรับ ea