สารบัญ:

4 โครงการใน 1 โดยใช้ DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 ขั้นตอน (พร้อมรูปภาพ)
4 โครงการใน 1 โดยใช้ DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: 4 โครงการใน 1 โดยใช้ DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: 4 โครงการใน 1 โดยใช้ DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Solar Battery Charger (LiPo/Li-Ion) || DIY or Buy 2024, พฤศจิกายน
Anonim
Image
Image
ติดตั้งไลบรารีทั่วไปสำหรับโครงการ
ติดตั้งไลบรารีทั่วไปสำหรับโครงการ

ฉันคิดเกี่ยวกับการทำคำสั่งสำหรับแต่ละโครงการเหล่านี้ - แต่ในท้ายที่สุด ฉันตัดสินใจว่าความแตกต่างที่ใหญ่ที่สุดจริงๆ คือซอฟต์แวร์สำหรับแต่ละโครงการ ฉันคิดว่ามันจะดีกว่าถ้าสร้างคำสั่งขนาดใหญ่เพียงอันเดียว!

ฮาร์ดแวร์จะเหมือนกันสำหรับแต่ละโครงการ และเรากำลังใช้ Arduino IDE เพื่อตั้งโปรแกรมอุปกรณ์ ESP32

ฮาร์ดแวร์คืออะไร: เพื่อนของฉันที่ DFRobot จัดหาฮาร์ดแวร์ทั้งหมด พวกเขามีบทช่วยสอนที่ดีมาก และง่ายต่อการติดตั้งบอร์ดหลักสำหรับสิ่งนี้ มีระบบสนับสนุนที่ดีและจัดส่งไปยังสหรัฐอเมริกาได้อย่างรวดเร็ว

การเปิดเผยบอร์ด Firebeetle ESP32 อย่างเต็มรูปแบบและ LED Matrix จัดทำโดย DF Robot โครงการที่นำเสนอและในวิดีโอเป็นของฉันเอง

โปรเจ็กต์เหล่านี้ทั้งหมดใช้ DFRobot FireBeetle ESP32 IOT MicroController

www.dfrobot.com/product-1590.html

วิกิสนับสนุน - พร้อมคำแนะนำในการติดตั้งคอร์ของบอร์ดสามารถพบได้ที่นี่:

www.dfrobot.com/wiki/index.php/FireBeetle_…

เราต้องการ FireBeetle Covers 24x8 LED Matrix (BLUE) ด้วย

www.dfrobot.com/product-1595.html

ไม่ชอบไฟ LED BLUE - พวกมันมีสีต่างกันเช่นกัน

สีเขียว -

สีแดง -

สีขาว -

สีเหลือง -

คุณต้องการ LED Matrix เพียงตัวเดียว - สีคือตัวเลือกของคุณ โดยทั้งหมดทำงานเหมือนกัน

วิกิการสนับสนุน LED Matrix สามารถพบได้ที่นี่:

www.dfrobot.com/wiki/index.php/FireBeetle_…

ที่นี่เราพบลิงค์ไปยัง Arduino Library

github.com/Chocho2017/FireBeetleLEDMatrix

เพิ่มเติมเกี่ยวกับสิ่งเหล่านี้เล็กน้อยในภายหลัง….

สิ่งที่เป็นทางเลือก แต่อาจสะดวกที่จะมีคือที่ใส่แบตเตอรี่ MicroUSB 3xAA

www.dfrobot.com/product-1130.html

นั่นคือฮาร์ดแวร์ที่จำเป็น - 4 โครงการคืออะไร -

ขั้นตอนที่ 1: โครงการ

Image
Image

โครงการ 1: เป็นนาฬิกา LED Matrix NTP แบบเรียบง่ายพร้อมการแสดงเวลาทหารหรือการแสดงเวลา AMPM

นาฬิกานี้จะเชื่อมต่อกับ NTP (เซิร์ฟเวอร์เวลา) คว้าเวลาและใช้ชุดปิดเพื่อให้คุณได้รับเวลาท้องถิ่น มันจะแสดงเวลาบน LED Matrix - เป็นนาฬิกาที่เรียบง่ายและเป็นโครงการแรกที่เรียบง่าย

โปรเจ็กต์ 2: ISS Pass Prediction Display โปรเจ็กต์นี้ใช้คอร์ที่ 2 ของโปรเซสเซอร์ โดยจะแสดงว่า ISS อยู่ใกล้แค่ไหน (เป็นไมล์) เมื่อใดที่คาดว่าจะมี ISS ครั้งต่อไปที่ตำแหน่งของคุณ (ในเวลา UTC) และจำนวนคนที่อยู่ในอวกาศหรือไม่ก็ได้ เนื่องจากข้อมูลจำนวนมากนี้ไม่ได้เปลี่ยนแปลงบ่อย เราจึงใช้แกนที่ 2 เพื่อตรวจสอบเฉพาะการอัปเดตการคาดคะเนบัตรผ่าน หรือจำนวนคนที่อยู่ในพื้นที่ทุกๆ 15 นาที เราสามารถป้องกันการเรียก API มากเกินไปไปยังเซิร์ฟเวอร์ด้วยวิธีนี้ โครงการนี้ซับซ้อนกว่าเล็กน้อย แต่ก็ยังค่อนข้างง่ายที่จะทำ

โปรเจ็กต์ 3: Simple Moving Message Sign โดยใช้ MQTT ฉันทบทวนโปรเจ็กต์ที่สร้างขึ้นสำหรับบอร์ดขนาดเล็ก ESP8266 D1 และนั่นคือเมทริกซ์ LED 8x8 - แนวคิดคือการเชื่อมต่อกับนายหน้า MQTT ส่งข้อความไปยังหัวข้อที่อุปกรณ์คือ ฟัง - และแสดงข้อความนั้น มันค่อนข้างง่ายและทำได้ง่ายมากเมื่อตั้งค่าทุกอย่างแล้ว และมีไม่กี่ขั้นตอนในการตั้งค่าซอฟต์แวร์ไคลเอ็นต์ MQTT บนคอมพิวเตอร์เดสก์ท็อป เมื่อตั้งค่า MQTT จะเป็นโปรโตคอลการส่งข้อความที่ทรงพลังมากซึ่งอุปกรณ์ IoT จำนวนมากใช้เพื่อส่งและรับข้อความ

โครงการ 4: การแสดงสถานีอากาศ - อิงตามสถานีตรวจอากาศขนาดเล็ก ESP8266 D1 ที่สร้างโดย Squix78 และ ThingPulse เราดึงข้อมูลของเราจาก Wunderground และแสดงสภาพปัจจุบันและอุณหภูมิเป็นองศาฟาเรนไฮต์ เราใช้แกนที่ 2 ของ ESP32 เพื่ออัปเดตข้อมูลของเราทุกๆ 10 นาที นอกจากนี้ยังง่ายต่อการติดตั้ง

ตัวอย่าง BOUNS MINI: ไลบรารี (และภาพสเก็ตช์ด้านบน) ใช้ฟอนต์ 8x4 ไลบรารียังมีฟอนต์ 5x4 ซึ่งผมใช้สำหรับตัวอย่างขนาดเล็กของ BOUNS ส่วนใหญ่ มีปัญหาสองสามอย่างที่ฉันสามารถสังเกตได้ด้วยแบบอักษรขนาดเล็ก ปัญหาหนึ่งที่ดูเหมือนว่าจะสร้างปัญหาเมื่อคุณใช้ WIFI ของอุปกรณ์ นี่คือสิ่งที่ฉันต้องการสำรวจเพิ่มเติม แต่มีเวลาแล้ว ปัญหาอีกอย่างคือมันไม่เลื่อน เฉพาะฟอนต์ขนาดใหญ่เท่านั้นที่สามารถเลื่อนได้ ดังนั้นไม่มีตัวอย่างใดที่ใช้ WIFI - พวกเขาเพียงแค่อัปเดตการแสดงผล และข้อมูลเพิ่มเติมเกี่ยวกับสิ่งเหล่านี้จะตามมาในภายหลัง

มาเริ่มกันเลย…..

ขั้นตอนที่ 2: ติดตั้งบอร์ด DFRobot FireBeetle ESP32 ลงใน Arduino IDE

ฉันจะแนะนำ DF Robot Wiki เกี่ยวกับการติดตั้งคอร์ของบอร์ดสำหรับ Arduino IDE

มันค่อนข้างง่ายที่จะทำกับ IDE ที่ทันสมัย (1.8.x หรือดีกว่า)

www.dfrobot.com/wiki/index.php/FireBeetle_…

ฉันพบว่าไลบรารี WiFi ที่สร้างขึ้นใน Arduino IDE ทำให้เกิดปัญหา (PS ไลบรารี WiFi อื่น ๆ ที่อาจติดตั้งในไดเร็กทอรีไลบรารีของคุณอาจทำให้เกิดปัญหาหรือไม่ก็ได้) วิธีเดียว (หรืออย่างน้อยเป็นวิธีที่ง่ายที่สุด) ที่ฉันพบว่าแก้ปัญหาได้คือการลบไลบรารี WiFi ออกจากไดเร็กทอรี IDE น่าเสียดายที่ไม่มีวิธีที่ดีที่จะบอกคุณได้ว่าติดตั้งไว้ที่ใด ขึ้นอยู่กับวิธีการติดตั้ง IDE และระบบปฏิบัติการที่คุณใช้

สิ่งที่ฉันทำคือพบไลบรารี WiFi ที่ทำให้เกิดปัญหา และเพียงแค่ย้ายไดเร็กทอรี WiFi ไดเร็กทอรีไปยังเดสก์ท็อปของคุณ…และรีสตาร์ท IDE ด้วยวิธีนี้คุณจะสามารถเก็บไลบรารีไว้ได้ในกรณีที่คุณต้องการสำหรับบอร์ด Arduino WIFI

90% ของปัญหาที่ฉันพบเกี่ยวข้องกับปัญหาข้างต้น หากคุณได้รับข้อผิดพลาดในการคอมไพล์จำนวนมาก ซึ่งเกี่ยวข้องกับการใช้ WiFi จากไดเร็กทอรี Arduino IDE หรือไดเร็กทอรี Arduino Library นี่คือปัญหาที่คุณมี

ปัญหาที่ 2 ของฉันคือบางครั้งการอัปโหลดภาพสเก็ตช์ล้มเหลวในการอัปโหลด - ในกรณีนี้ฉันต้องกดปุ่มอัปโหลดอีกครั้งและใช้งานได้

และสุดท้าย หากคุณเปิดคอนโซลซีเรียลไว้ จากนั้นปิด - FireBeetle จะหยุดทำงาน

ฉันรู้ว่า DF Robot กำลังทำงานอย่างแข็งขันในแกนหลักของบอร์ด และในช่วงเวลาสั้นๆ ที่ฉันมีบอร์ด พวกเขาก็ได้เปิดตัวคอร์ใหม่ น่าเสียดายที่มันไม่ได้แก้ปัญหา WiFi ซึ่งเป็นปัญหาที่ใหญ่ที่สุดของฉัน

* Espressif มีตัวจัดการหลัก 'ทั่วไป' ที่สามารถติดตั้งได้ แกนกลางนั้นรวมถึงบอร์ด FireBeetle ESP32 แต่ฉันมีปัญหากับวิธีที่มันมีหมายเลขพิน สิ่งที่น่าสนใจที่นี่คือไลบรารี WiFi ที่ใช้งานได้กับไลบรารี WiFi ในตัว - ดังนั้นผมจึงรู้ว่ามีวิธีแก้ไขปัญหานั้นอยู่ใกล้ๆ

หากคุณต้องการลองใช้ Espressif cores คุณสามารถหาข้อมูลเพิ่มเติมได้ที่นี่:

github.com/espressif/arduino-esp32

โดยส่วนตัวแล้วฉันชอบวิธีการทำงานของแกนหลักของ DF-Robot แม้ว่าจะมีปัญหาเล็กน้อยก็ตาม

** หมายเหตุ: ฉันใช้ LinuxMint 18 ซึ่งใช้ Ubuntu 16.04 ฉันคิดว่าฉันไม่ได้ลองใช้กับเครื่องอื่น แต่ฉันเชื่อว่าปัญหาเกิดขึ้นกับระบบปฏิบัติการทั้งหมดตามการค้นหาทางอินเทอร์เน็ตที่ฉันทำ **

ขั้นตอนที่ 3: ติดตั้งไลบรารีทั่วไปสำหรับโครงการ

ติดตั้งไลบรารีทั่วไปสำหรับโครงการ
ติดตั้งไลบรารีทั่วไปสำหรับโครงการ

โปรเจ็กต์เหล่านี้ทั้งหมดใช้ไลบรารีทั่วไปไม่กี่แห่ง ดังนั้นจึงทำขั้นตอนนี้ได้ง่ายขึ้นในตอนนี้

ขึ้นอยู่กับไลบรารี คุณอาจพบมันในตัวจัดการไลบรารี - ซึ่งเป็นวิธีที่ง่ายที่สุดในการติดตั้งไลบรารี

อีกวิธีหนึ่งที่ใช้กันทั่วไปคือการติดตั้งผ่านไฟล์ zip ซึ่งทำงานเหมือนกันเช่นกัน แต่โดยทั่วไปฉันใช้วิธีการติดตั้งด้วยตนเอง มีกวดวิชาที่ดีเกี่ยวกับสามวิธีบนเว็บไซต์ Arduino

www.arduino.cc/en/guide/libraries

สำหรับไลบรารีเหล่านี้ ฉันขอแนะนำวิธีการแบบแมนนวล - เนื่องจากมีไลบรารีที่แตกต่างกันสองสามแห่งที่มีชื่อเดียวกัน การใช้ตัวจัดการไลบรารี คุณอาจลงเอยด้วยการใช้ไลบรารีที่ไม่ถูกต้อง

โปรเจ็กต์ทั้งหมดเหล่านี้ใช้ตัวจัดการ WiFi เพื่อให้ง่ายต่อการเชื่อมต่อกับ wifi ของคุณ ฉันตัดสินใจทำเช่นนี้ หากคุณต้องการย้ายโปรเจ็กต์ของคุณ คุณไม่จำเป็นต้องตั้งโปรแกรมบอร์ดใหม่ นี่คือสิ่งที่ฉันใช้สำหรับบอร์ด ESP8266 และใช้งานได้ดี - มันไม่สมบูรณ์แบบ โชคในการใช้งานไลบรารีได้รับการพอร์ตเพื่อใช้ ESP32 โดยผู้ใช้ github ชื่อ bbx10 (ผู้จัดการคนนี้ควรทำงานร่วมกับบอร์ด ESP8266 ด้วย)

เราจำเป็นต้องติดตั้งไลบรารี่สามตัวเพื่อการทำงานนี้เช่นกัน

WiFiManager -

เว็บเซิร์ฟเวอร์ -

และสุดท้าย DNSServer -

ไลบรารี DF Robot DFRobot_HT1632C ที่ใช้กันทั่วไปในการสเก็ตช์ทั้งหมดสำหรับ LED Matrix

www.dfrobot.com/wiki/index.php/FireBeetle_…

ห้องสมุดสามารถพบได้ที่นี่ (ฉันจะแนะนำวิธีการติดตั้งด้วยตนเองอีกครั้ง)

github.com/Chocho2017/FireBeetleLEDMatrix

หมายเหตุพิเศษ: ในที่เก็บ github ของฉัน - ฉันมีไลบรารี DFRobot_HT1632C ที่แก้ไขเล็กน้อย

github.com/kd8bxp/DFRobot-FireBeetle-ESP32…

การปรับเปลี่ยนนี้ใช้สำหรับฟอนต์ที่มีขนาดเล็กลง และใช้สำหรับตัวอย่างโบนัสบางส่วนเท่านั้น คุณสามารถใช้ไลบรารีที่แก้ไขได้และไม่ควรทำให้เกิดปัญหาใดๆ นอกจากนี้ยังมีไลบรารีที่ดัดแปลงเล็กน้อย (แนบกับภาพร่างบางส่วนเป็นแท็บ) ที่สามารถทำภาพบิตแมปได้

หากคุณเลือกใช้เวอร์ชันที่แก้ไขเล็กน้อย คุณต้องเปลี่ยนชื่อไดเร็กทอรี "modified-library" เป็น FireBeetleLEDMatrix และย้ายโฟลเดอร์นั้นไปยังไดเร็กทอรีไลบรารี Arduino ของคุณ คุณไม่จำเป็นต้องใช้เวอร์ชันนี้สำหรับโปรเจ็กต์เหล่านี้ จำเป็นต้องใช้หากคุณต้องการลองใช้ฟอนต์ขนาดเล็กกว่าจากตัวอย่างโบนัส

เหล่านี้เป็นไลบรารีทั่วไป - เราจะติดตั้งไลบรารีเฉพาะบางตัวสำหรับแต่ละโครงการ

มาต่อกันที่ LED Matrix….

ขั้นตอนที่ 4: ฝาครอบเมทริกซ์ LED ขนาด 24x8

ฝาครอบเมทริกซ์ LED 24x8
ฝาครอบเมทริกซ์ LED 24x8
ฝาครอบเมทริกซ์ LED 24x8
ฝาครอบเมทริกซ์ LED 24x8
ฝาครอบเมทริกซ์ LED 24x8
ฝาครอบเมทริกซ์ LED 24x8

สำหรับเราจะตามไปพร้อมกับ DF Robot Tutorial สำหรับ LED Matrix

www.dfrobot.com/wiki/index.php/FireBeetle_…

บทนำ: จอแสดงผล LED Matrix ขนาด 24 × 8 นี้ออกแบบมาเป็นพิเศษสำหรับซีรี่ส์ FireBeetle รองรับโหมดการใช้พลังงานต่ำและการแสดงการเลื่อน ด้วยชิปไดรเวอร์ LED ประสิทธิภาพสูง HT1632C ไฟ LED ทุกตัวมีการลงทะเบียนอิสระ ซึ่งทำให้แยกแยกได้ง่าย รวมนาฬิกา RC 256KHz เพียง 5uA ภายใต้โหมดพลังงานต่ำรองรับการปรับความสว่าง PWM ขนาด 16 ผลิตภัณฑ์นี้ยังทำงานร่วมกับไมโครคอนโทรลเลอร์ Arduino อื่น ๆ เช่น Arduino UNO

ข้อมูลจำเพาะ:

  • แรงดันไฟฟ้าที่ใช้งาน: 3.3 ~ 5VLED
  • สี: สีเดียว (ขาว/น้ำเงิน/เหลือง/แดง/เขียว)
  • ชิปไดรฟ์: HT1632C
  • ปัจจุบันทำงาน: 6 ~ 100mA
  • การใช้พลังงานต่ำ: 5uARC
  • นาฬิกา: 256KHz
  • เลือกชิป (CS): เลือก D2, D3, D4, D5 ได้
  • รองรับการเลื่อนหน้าจอ

PIN เริ่มต้น:

  1. DATAD6
  2. WRD7 (โดยทั่วไปไม่ได้ใช้)
  3. CSD2, D3, D4, D5 เลือกได้ (ค่าเริ่มต้น D2)
  4. RDD8
  5. วีซีซี 5VUSB; 3.7VLipo แบตเตอรี่

(โปรเจ็กต์ทั้งหมดเหล่านี้ใช้ D2 สำหรับพินที่เลือก ซึ่งสามารถเปลี่ยนได้อย่างง่ายดายตามต้องการ)

ที่ด้านหลังของ LED Matrix คุณจะเห็นสวิตช์เล็กๆ 4 ตัว ตรวจสอบให้แน่ใจว่าได้เลือกหมุด CS เพียงตัวเดียว สวิตช์เล็กๆ เหล่านี้เป็นวิธีที่คุณเลือก CS Pin ของคุณ และค่าเริ่มต้นคือ D2

DF Robot WIKI มีโค้ดตัวอย่าง โค้ดนี้อยู่ในตัวอย่างสำหรับไลบรารีด้วย (ฉันเชื่อ)

หมายเหตุอื่น: ใช้หมายเลข Dx สำหรับพินของคุณ - ไม่เช่นนั้นหมายเลขพินจะเป็นหมายเลข / ชื่อพิน IO

และนั่นอาจทำให้คุณมีปัญหา

ตั้งประเด็น:

X คือ 0 ถึง 23 (หรือถ้าคุณคิดว่ามันเป็นสเปรดชีต นี่คือคอลัมน์)

Y คือ 0 ถึง 7 (หรือถ้าคุณคิดว่ามันเป็นสเปรดชีต นี่คือแถว)

ห้องสมุดมีฟังก์ชันจุดตั้งค่า

display.setPoint(x, y) ซึ่งจะตั้งเคอร์เซอร์ไปที่ตำแหน่งนั้น ซึ่งขณะนี้คุณสามารถพิมพ์ข้อความได้

display.print("สวัสดีชาวโลก", 40); // ซึ่งจะทำให้หน้าจอแสดง "Hello World" โดยเริ่มจากจุด x, y และเลื่อนออกจากหน้าจอ

นอกจากนี้ยังมี setPixel(x, y) และ clrPixel(x, y) - setPixel จะเปิด LED หนึ่งดวงที่ตำแหน่ง x, y และ clrPixel จะปิด LED ที่ตำแหน่ง x, y

มีสิ่งอื่น ๆ ที่ห้องสมุดนี้สามารถทำได้ และส่วนใหญ่จะรวมอยู่ในตัวอย่าง

(ฉันขอแนะนำให้เรียกใช้และแก้ไขตัวอย่างเพื่อดูว่าสามารถทำอะไรได้บ้าง)

* สิ่งหนึ่งที่ดูเหมือนว่าจะขาดไปคือการวาดบิตแมป - ห้องสมุดสามารถทำได้จริง แต่ด้วยเหตุผลบางอย่างมันเป็นฟังก์ชั่นส่วนตัวของห้องสมุด ดูตัวอย่างโบนัสของฉันสำหรับไลบรารีเวอร์ชันดัดแปลงเล็กน้อย

** อีกอย่างที่มันมีชุดฟอนต์ขนาด 5x4 ซึ่งดีที่มีฟอนต์ที่เล็กกว่า - มีการแสดงความคิดเห็นว่าเคยอยู่ในห้องสมุดมากแค่ไหน ฉันยกเลิกความคิดเห็นแล้วและใช้งานได้ แต่สังเกตเห็นปัญหาบางอย่างกับมัน - ที่ใหญ่ที่สุดคือไม่สามารถเลื่อนได้ และฉันสังเกตเห็นว่าดูเหมือนว่าจะทำให้เกิดปัญหากับ wifi หรืออาจเป็นห้องสมุดอื่นที่ฉันต้องการใช้

หนึ่งในไลบรารีที่แก้ไขที่ฉันรวมไว้ใช้แบบอักษร 5x4

มาต่อกันที่โครงการครับ…..

ขั้นตอนที่ 5: โครงการ 1: นาฬิกา LED Matrix NTP อย่างง่ายพร้อมการแสดงเวลาทหารหรือจอแสดงผล AMPM

โปรเจ็กต์ 1: นาฬิกา LED Matrix NTP อย่างง่ายพร้อมการแสดงเวลาทหารหรือจอแสดงผล AMPM
โปรเจ็กต์ 1: นาฬิกา LED Matrix NTP อย่างง่ายพร้อมการแสดงเวลาทหารหรือจอแสดงผล AMPM
โปรเจ็กต์ 1: นาฬิกา LED Matrix NTP อย่างง่ายพร้อมการแสดงเวลาทหารหรือจอแสดงผล AMPM
โปรเจ็กต์ 1: นาฬิกา LED Matrix NTP อย่างง่ายพร้อมการแสดงเวลาทหารหรือจอแสดงผล AMPM
โปรเจ็กต์ 1: นาฬิกา LED Matrix NTP อย่างง่ายพร้อมการแสดงเวลาทหารหรือจอแสดงผล AMPM
โปรเจ็กต์ 1: นาฬิกา LED Matrix NTP อย่างง่ายพร้อมการแสดงเวลาทหารหรือจอแสดงผล AMPM

โครงการ 1: เป็นนาฬิกา LED Matrix NTP แบบเรียบง่ายพร้อมการแสดงเวลาทหารหรือการแสดงเวลา AMPM

นาฬิกานี้จะเชื่อมต่อกับ NTP (เซิร์ฟเวอร์เวลา) คว้าเวลาและใช้ชุดปิดเพื่อให้คุณได้รับเวลาท้องถิ่น มันจะแสดงเวลาบน LED Matrix - เป็นนาฬิกาที่เรียบง่ายและเป็นโครงการแรกที่เรียบง่าย

ก่อนที่เราจะเริ่มต้นกับโครงการง่ายๆ นี้ อาจเป็นความคิดที่ดีที่จะรู้ว่า NTP คืออะไร -

NTP เป็นโปรโตคอลอินเทอร์เน็ตที่ใช้ในการซิงโครไนซ์นาฬิกาของคอมพิวเตอร์กับการอ้างอิงเวลา เป็นโปรโตคอลมาตรฐาน NTP ย่อมาจาก Network Time Protocol

NTP ใช้ UTC เป็นเวลาอ้างอิง (UTC คือ Universal Time Coordinated) ซึ่งพัฒนามาจาก GMT (Greenwich Mean Time) และในบางวงการจะเรียกว่า Zulu Time (Military) UTC อิงตามควอนตัมเรโซแนนซ์ของอะตอมซีเซียม

NTP มีความทนทานต่อข้อผิดพลาดและสามารถปรับขนาดได้สูง โปรโตคอลนี้มีความแม่นยำสูง โดยใช้ความละเอียดน้อยกว่าหนึ่งนาโนวินาที

*

นาฬิกา UTC ไม่ค่อยมีประโยชน์สำหรับคนส่วนใหญ่ เราจึงต้องปรับนาฬิกาให้เป็นเวลาท้องถิ่น โชคดีที่เราสามารถทำได้ค่อนข้างง่าย มาเริ่มกันด้วยนาฬิกา NTP ง่ายๆ นี้กัน….

ขั้นแรกเราต้องติดตั้งไลบรารีที่ทำให้การพูดคุยกับเซิร์ฟเวอร์ NTP เป็นเรื่องง่าย

github.com/arduino-libraries/NTPClient (ไลบรารีนี้อาจอยู่ในตัวจัดการไลบรารี)

คุณข้ามขั้นตอนที่ 3 - และไม่แน่ใจว่าจะติดตั้งไลบรารี่อย่างไร (?) ให้กลับไปอ่านขั้นตอนที่ 3:-) ดีกว่า

คุณต้องไปที่เว็บไซต์นี้และใส่เมืองที่ใกล้ที่สุดซึ่งอยู่ในเขตเวลาของคุณ

www.epochconverter.com/timezones

เมื่อคุณกด Enter คุณจะเห็น "ผลลัพธ์การแปลง" และในผลลัพธ์ คุณจะได้รับออฟเซ็ต (ความแตกต่างจาก GMT/UTC) ในไม่กี่วินาที (สำหรับฉันนั่นคือ -14400)

ใน dfrobot_firebeetle_led_matrix_ntp_clock แบบร่างในบรรทัด 66 คุณจะเห็น:

#define TIMEOFFSET -14400 // ค้นหาการตั้งค่าโซนเวลาของคุณที่นี่ https://www.epochconverter.com/timezones OFF Set in Seconds#define AMPM 1 // 1 = AM PM time, 0 = MILITARY/24 HR Time

แทนที่ -14400 ด้วยออฟเซ็ตของคุณ บรรทัดถัดไป คุณจะเห็น AMPM 1 - ซึ่งจะทำให้นาฬิกาแสดงเวลาเป็น AM/PM - หากคุณต้องการเห็นใน 24 ชั่วโมง ให้ทำให้หนึ่งเป็นศูนย์

ถัดไป อัปโหลดภาพร่างไปยังบอร์ดของคุณ เชื่อมต่อกับจุดเข้าใช้งาน (ตัวจัดการ wifi) และป้อนรายละเอียดสำหรับ wifi ของคุณ หากคุณทำสิ่งนี้แล้ว คุณจะเห็น "เชื่อมต่อแล้ว" เลื่อนผ่านหน้าจอ และไม่กี่วินาทีต่อมา คุณจะเห็นเวลา

เพียงเท่านี้สำหรับโครงการนี้ - เรียบง่ายและใช้งานง่าย…..

(การปรับปรุงที่เป็นไปได้: แสดงเดือน วัน และปี ตั้งค่าเสียงเตือนและการเตือน - โดยทั่วไปจะควบคุมสิ่งที่คุณเห็นผ่านหน้าเว็บ แนวคิดเหล่านี้จะต้องใช้การร่างใหม่ครั้งใหญ่ของภาพร่างง่ายๆ ในปัจจุบัน)

พร้อมสำหรับโปรเจ็กต์ง่ายๆ อีกอันแล้ว -- แสดงว่า ISS อยู่ที่ไหน - ผ่านการคาดการณ์ และจำนวนคนอยู่ในอวกาศ! (ปล. สเก็ตช์นี้ใช้หน้าเว็บเพื่อควบคุมสิ่งที่แสดง) …..

ขั้นตอนที่ 6: โครงการ 2: ISS Pass Prediction Display,

โครงการ 2: ISS Pass Prediction Display,
โครงการ 2: ISS Pass Prediction Display,
โครงการ 2: ISS Pass Prediction Display,
โครงการ 2: ISS Pass Prediction Display,
โครงการ 2: ISS Pass Prediction Display,
โครงการ 2: ISS Pass Prediction Display,

โปรเจ็กต์ 2: ISS Pass Prediction Display โปรเจ็กต์นี้ใช้คอร์ที่ 2 ของโปรเซสเซอร์ โดยจะแสดงให้เห็นว่า ISS อยู่ใกล้แค่ไหน (เป็นไมล์) เมื่อใดที่คาดว่าจะมี ISS ครั้งต่อไปที่ตำแหน่งของคุณ (ในเวลา UTC) และจำนวนคนที่อยู่ในอวกาศหรือไม่ก็ได้ เนื่องจากข้อมูลจำนวนมากนี้ไม่ได้เปลี่ยนแปลงบ่อย เราจึงใช้แกนที่ 2 เพื่อตรวจสอบเฉพาะการอัปเดตการคาดคะเนบัตรผ่าน หรือจำนวนคนที่อยู่ในพื้นที่ทุกๆ 15 นาที เราสามารถป้องกันการเรียก API มากเกินไปไปยังเซิร์ฟเวอร์ด้วยวิธีนี้ โครงการนี้ซับซ้อนกว่าเล็กน้อย แต่ก็ยังค่อนข้างง่ายที่จะทำ

โปรเจ็กต์นี้อิงจากหนึ่งในโปรเจ็กต์ก่อนหน้าของฉันที่สามารถพบได้ที่นี่:

(ระบบการแจ้งเตือน ISS อย่างง่าย) โดยที่ฉันใช้ ESP8266 กับหน้าจอ OLED ออนบอร์ด (D-Duino) ส่วนใหญ่โปรเจ็กต์นี้ใช้เพียงระบบการแสดงผลที่แตกต่างกัน ฉันขยายมันเพื่อให้คุณสามารถเปลี่ยนสิ่งที่คุณต้องการดูได้ทันทีผ่านหน้าเว็บ มาเริ่มกันเลย….

เครดิตส่วนใหญ่สำหรับการใช้งานง่ายไปที่ https://open-notify.org ซึ่งมี API ที่ใช้งานง่ายและสะดวก Open-notify API มีสามสิ่งที่สามารถแสดงได้ ตำแหน่งของ ISS ในละติจูดและลองจิจูด ส่งผ่านการคาดการณ์ตามละติจูดและลองจิจูดที่กำหนด และสุดท้ายมีกี่คน (และชื่อของพวกเขา) อยู่ในอวกาศ

เราจะต้องติดตั้งไลบรารีอื่น - ไลบรารี ArduinoJson

github.com/bblanchon/ArduinoJson

เราต้องการ TimeLib.h ด้วย แต่ฉันไม่แน่ใจว่าได้มันมาจากไหนหรือรวมอยู่ใน IDE (ขออภัย)….

เหตุใดจึงคาดการณ์ว่าสถานีอวกาศนานาชาติจะอยู่ที่ไหน - สถานีอวกาศนานาชาติมีอุปกรณ์วิทยุสมัครเล่นหลายแบบ และเมื่ออยู่ "เหนือศีรษะ" ผู้ดำเนินการวิทยุแบบแฮมสามารถติดต่อกับ ISS ได้โดยใช้วิทยุธรรมดา (และราคาถูก) บางรุ่น เคยทำตอนโมบายเหมือนกัน (ตอนขับรถ) คุณไม่ต้องการอะไรมากในการทำงานนี้ สิ่งหนึ่งที่คุณต้องทำคือต้องรู้ว่ามันอยู่ที่ไหน และการชี้เสาอากาศไปในทิศทางทั่วไปก็ช่วยได้

บรรทัดที่ 57, 58, 59 คือตัวแปรการแสดงผลบางส่วน - หากตั้งค่าเป็น 1 คุณจะเห็นการแสดงผล หากตั้งค่าเป็น 0 (ศูนย์) คุณจะไม่เห็นการแสดงผล (ตัวแปรเหล่านี้สามารถตั้งค่าในแบบสเก็ตช์หรืออัปเดตจากหน้าเว็บที่ firebeetle สร้างขึ้น - เพิ่มเติมในภายหลัง)

int locDis = 1; //แสดงตำแหน่งของ ISSint pasDis = 0; // แสดงการทำนายผ่าน int pplDis = 1; //แสดงผู้คนในอวกาศ

ดังนั้น locDis จะแสดงตำแหน่งของ ISS ในละติจูดและลองจิจูด - และยังแสดงว่าอยู่ห่างออกไปกี่ไมล์

pasDis จะได้รับการคาดการณ์ผ่านจาก open-notify.org และแสดงผล

และสุดท้าย pplDis จะแสดงชื่อและจำนวนคนในอวกาศ - อาจยาวมาก

เปลี่ยนบ่อยเหมือนกัน (คุณสามารถเปลี่ยนสิ่งเหล่านี้หรือปล่อยให้มันเป็นทางเลือกทั้งหมด)

เรายังต้องรู้ละติจูดและลองจิจูดของเราและใส่ลงในภาพร่าง

ไม่จำเป็นต้องเจาะจงละติจูด/ลองจิจูด มันสามารถเป็นศูนย์กลางของเมืองของคุณ หรือปิดเพียงเล็กน้อยรอยเท้าของสถานีอวกาศนานาชาตินั้นกว้างในขณะที่อยู่เหนือศีรษะ และสามารถครอบคลุมระยะทางได้หลายร้อย (หรือหลายพัน) ดังนั้นการละทิ้งละติจูด/ลองจิจูดเล็กน้อยจะไม่เป็นการทำลายข้อตกลง (ส่วนใหญ่), การสื่อสารมากกว่า 500 ไมล์เป็นเรื่องปกติธรรมดา

หากคุณไม่ทราบละติจูดและลองจิจูดของคุณ เว็บไซต์นี้สามารถช่วยคุณได้

www.latlong.net ใกล้เส้น 84 ของภาพสเก็ตช์ คุณจะเห็นดังนี้:

//ค้นหาละติจูดและลองจิจูดของคุณที่นี่//https://www.latlong.net/ float mylat = 39.360095; ไมลอนลอย = -84.58558;

นั่นควรเป็นสิ่งที่ต้องเปลี่ยน อัปโหลดภาพร่างและเชื่อมต่อ Firebeetle กับอินเทอร์เน็ต - และคุณควรเห็นตำแหน่งของ ISS ที่ระบุเป็น lat/long และระยะทางกี่ไมล์ (จำไว้ว่านี่จะเป็นระยะทางโดยประมาณ ISS เคลื่อนที่เร็วมากและ เมื่อการแสดงเสร็จสิ้น ISS ได้เคลื่อนตัวไปหลายไมล์จากที่เคยเป็น) คุณควรเห็นผู้คนในอวกาศด้วย (ถ้าคุณไม่เปลี่ยนตัวแปรด้านบน)

เรากำลังใช้แกนหลักที่สองของ ESP32 เพื่อเรียกใช้เว็บไซต์ การใช้ไซต์นี้ทำให้เราสามารถควบคุมสิ่งที่แสดงบนเมทริกซ์ LED มันควรจะเข้าใจง่ายเกี่ยวกับวิธีการทำงาน ส่วนหนึ่งจะแสดงสิ่งที่เปิดใช้งานสำหรับการแสดงผล อีกส่วนมีปุ่ม "ใช่" "ไม่ใช่" - คลิก "ใช่" หมายความว่าคุณต้องการดู "ไม่" หมายถึงไม่ แสดงมัน คุณควรเห็นด้วยว่าส่วนบนจะเปลี่ยนไปตามปุ่มต่างๆ

สิ่งเดียวที่ไม่ขาดและแห้งที่นี่คือวิธีค้นหาที่อยู่ IP ของ Firebeetle - น่าเสียดายที่ฉันไม่สามารถหาวิธีที่ดีในการค้นหาได้ - ดังนั้นฉันจึงใช้คอนโซลซีเรียลของ IDE เพื่อแสดง มัน (9600 บอด)

เปิดคอนโซลและคุณจะเห็นที่อยู่ IP (เปิดมันก่อนที่คุณจะได้รับข้อความที่เชื่อมต่อ) - อีกทางเลือกหนึ่งของฉันคือแสดงมันบน LED Matrix เมื่อเริ่มต้นทันที - ฉันตัดสินใจไม่ทำเพราะคุณอาจไม่ได้ดูเวลาและคุณจะพลาด ฉันเคยคิดที่จะส่งข้อความ SMS หรืออะไรสักอย่าง แต่สุดท้ายฉันก็ทำให้มันง่าย (ฉันยังพยายามกำหนด IP/เกตเวย์/ฯลฯ แบบคงที่ด้วย ฉันไม่สามารถทำให้มันทำงานได้อย่างถูกต้องกับตัวจัดการ wifi - รหัสยังอยู่ในแบบร่าง ดังนั้นหากมีใครรู้ก็แจ้งให้เราทราบ)

แบบร่างยังนำ FreeRTOS ขั้นสูงที่สร้างขึ้นในแกน ESP32 ด้วย - เรามีงานที่รันทุก ๆ 15 นาทีหรือมากกว่านั้น สิ่งนี้จะอัปเดตการทำนายผ่านตลอดจนผู้คนในอวกาศ อย่างที่ฉันพูดไปก่อนหน้านี้ ผู้คนในอวกาศไม่ได้เปลี่ยนแปลงอะไรมากขนาดนั้น ดังนั้นมันอาจจะถูกย้ายไปทำงานอื่นและอาจวิ่งทุกๆ 12 ชั่วโมง (หรือ 6 ชั่วโมง) แต่สิ่งนี้ได้ผล และทำให้ทุกอย่างง่ายขึ้น

สำหรับผู้ที่ไม่รู้ว่า FreeRTOS เป็นวิธีการให้ไมโครคอนโทรลเลอร์คอร์ตัวเดียวทำงานการคูณ

โดยปกติคุณจะต้องรวมไลบรารี่และสิ่งอื่น ๆ เพื่อให้มันใช้งานได้ - อย่างไรก็ตาม มันสร้างเป็นแกนหลักของ ESP32 ซึ่งทำให้ ESP32 เป็นอุปกรณ์ที่ทรงพลังมาก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ FreeRTOS

freertos.org/

การปรับปรุง: มีหลายสิ่งที่สามารถปรับปรุงได้สำหรับโครงการนี้ และเกือบทุกวันผมคิดว่าบางสิ่งบางอย่างที่สามารถทำได้แตกต่างกันเล็กน้อย เปลี่ยนแปลง หรือเพิ่มเติม

และในไดเร็กทอรีตัวอย่างเพิ่มเติมของที่เก็บ คุณสามารถเห็นบางสิ่งก่อนหน้านี้/แตกต่างที่ฉันคิดไว้ - บางอย่างใช้ไม่ได้ บางอย่างเพิ่งเปลี่ยน และบางส่วนรวมอยู่ในร่างปัจจุบัน

* มีอยู่ช่วงหนึ่ง ฉันพยายามเพิ่มนีโอพิกเซลลงในจอแสดงผล ดังนั้นมันจะเหมือนกับโปรเจ็กต์ก่อนหน้าของฉันเล็กน้อย - ฉันไม่เคยทำให้มันทำงานได้เลย (ฉันพบว่ามันเป็นปัญหาด้านพลังงานซึ่งฉันไม่ได้พิจารณา) ฉันเป็น กำลังหาวิธีปรับปรุงแนวคิดนี้ *

ขณะเขียนขั้นตอนนี้ ฉันคิดว่าบางทีฉันอาจเพิ่มวิธีอัปเดตละติจูดและลองจิจูดของคุณในเว็บไซต์ ด้วยวิธีนี้จะไม่ต้องแก้ไขภาพร่าง ฉันจะคิดเรื่องนี้ให้มากขึ้นด้วย

วิธีที่ได้รับการปรับปรุงในการรับที่อยู่ IP เป็นอย่างอื่นที่ฉันอยากทำ (ยังคงคิดเกี่ยวกับที่อยู่นั้นด้วย)

มาต่อกันที่โครงการต่อไปของเรา…..

ขั้นตอนที่ 7: โครงการ 3: ป้ายข้อความเคลื่อนไหวอย่างง่ายโดยใช้ MQTT

โครงการ 3: ป้ายข้อความเคลื่อนไหวอย่างง่ายโดยใช้ MQTT
โครงการ 3: ป้ายข้อความเคลื่อนไหวอย่างง่ายโดยใช้ MQTT
โครงการ 3: ป้ายข้อความเคลื่อนไหวอย่างง่ายโดยใช้ MQTT
โครงการ 3: ป้ายข้อความเคลื่อนไหวอย่างง่ายโดยใช้ MQTT
โครงการ 3: ป้ายข้อความเคลื่อนไหวอย่างง่ายโดยใช้ MQTT
โครงการ 3: ป้ายข้อความเคลื่อนไหวอย่างง่ายโดยใช้ MQTT

"กำลังโหลด = ขี้เกียจ " " กำลังโหลด = ขี้เกียจ"

โบนัสส่วนที่ 2 - แสดงรูปภาพ
โบนัสส่วนที่ 2 - แสดงรูปภาพ
โบนัสส่วนที่ 2 - แสดงรูปภาพ
โบนัสส่วนที่ 2 - แสดงรูปภาพ
โบนัสส่วนที่ 2 - แสดงรูปภาพ
โบนัสส่วนที่ 2 - แสดงรูปภาพ

ปรากฎว่าห้องสมุดสามารถแสดงภาพได้ - ด้วยเหตุผลบางอย่างที่ฟังก์ชั่นดูเหมือนจะเป็น "ส่วนตัว" - สำหรับการสเก็ตช์ครั้งต่อไปเหล่านี้ ฉันได้แก้ไขไลบรารีอีกครั้งและทำให้ drawImage เป็นฟังก์ชันสาธารณะ

ครั้งนี้ ฉันใส่ไลบรารี่ที่แก้ไขแล้วในไดเร็กทอรี sketches ดังนั้นคุณไม่จำเป็นต้องติดตั้งไลบรารี่ใหม่ สเก็ตช์จะดูตัวเองก่อน แล้วจึงจะดูในไดเร็กทอรีไลบรารี ดังนั้น เราทำได้ดี!

*** ฉันกำลังวางแผนที่จะส่งการเปลี่ยนแปลงนี้ไปยัง DFRobot เพราะมันเจ๋งมาก และค่อนข้างเรียบร้อยที่สามารถทำสเก็ตช์ประเภทนี้ได้ ***

ภาพร่าง LED Matrix Images ในที่นี้ ฉันพยายามคิดให้ออกว่าห้องสมุดต้องการอะไร อะไรจะได้ผลและไม่ได้ผล - ด้วยระดับความสำเร็จที่แตกต่างกัน ฉันพบว่ารูปภาพขนาด 8x8 ทำงานได้ดีที่สุด แต่คุณสามารถให้รูปภาพอื่นทำงานได้เช่นกัน ฉันพบโปรแกรมแก้ไข led matrix ออนไลน์สองสามตัวเช่นกัน บางตัวทำงานได้ดีกว่าตัวแก้ไขอื่นๆ

xantorohara.github.io/led-matrix-editor/ - ดูเหมือนว่าจะใช้ได้ สร้างภาพ 8x8 และคุณต้องการให้เป็นอาร์เรย์ไบต์

www.riyas.org/2013/12/online-led-matrix-fo… อันนี้ใช้งานได้ดีและมีความสามารถในการสร้างหน้าจอขนาดใหญ่กว่า 8x8 จอภาพดูเหมือนจะเปิดอยู่ด้านข้างกับจอแสดงผลนี้ อย่างไรก็ตาม. ดูเหมือนว่าอาร์เรย์ไบต์จะทำงานได้ดีที่สุดที่นี่ ฉันใช้มันเพื่อสร้าง "ผู้บุกรุกอวกาศ" ที่เห็นในวิดีโอด้านบน

แล้วมันทำงานอย่างไร

drawImage (ไบต์ const * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);

ตัวแปรอาร์เรย์ไบต์รูปภาพ ความกว้างของรูปภาพ (8) ความสูงของรูปภาพ (8) ตำแหน่งเริ่มต้นบนหน้าจอ x (0) โดยปกติ y (0) และหมายเลขออฟเซ็ต ซึ่งฉันไม่ได้ แน่ใจ 100% ว่ามันทำอะไรได้บ้าง ส่วนใหญ่ฉันปล่อยให้มันเป็นศูนย์

ในภาพร่าง LED Matrix Images - มีอาร์เรย์ไบต์ที่แตกต่างกัน 8 แบบ - โดยมีสามวิธีที่แตกต่างกันเช่นกัน

- ดอกไม้ไฟเป็นอาร์เรย์แรก จริงๆ แล้วฉันไม่แน่ใจว่าอันนี้ทำงานอย่างไร - แต่มันใช้ได้ผล

ถัดไปมีปาก - วิธีนี้ใช้ไม่ได้ผลจริงๆ ปากกำลังวางผิดวิธี และพยายามทำการเปลี่ยนแปลงใดๆ ก็ตาม ยิ่งทำให้แย่ลงไปอีก (เรียนรู้ว่าอะไรได้ผลและไม่สนุก)

ตามด้วย marioImg ตัวแรก - มันใหญ่เกินไปสำหรับการแสดงผล และฉันคิดว่านี่คือจุดเริ่มต้นของการเล่น - ฉันใช้มันที่นี่ และคุณสามารถเห็นด้านหน้าของ mario ถ้าคุณเปลี่ยน offset เป็น 1 คุณ' จะเห็นด้านหลังของเขา (พี่บอกไม่ได้จริงๆ ว่าทำไมหรือ offset ทำอะไร เหมือนจะขยับภาพ แต่ทำไม 2 กะถึงเห็นหน้าเค้าได้ และทำไม 1 กะไปทางอื่น บอกไม่ได้)

รูปภาพ - อาร์เรย์ไบต์เป็นเครื่องหมาย @ ที่ฉันสร้าง - ดูเหมือนว่าฉันใช้เครื่องมือนี้ที่

อาร์เรย์ pic1 ไบต์ยังดูเหมือนสิ่งที่ฉันพยายามทำ เพียงแต่มันเล็กกว่าที่ฉันพยายาม - มันคืออะไรฉันไม่สามารถพูดได้ แต่ฉันสามารถพูดได้โดยทั่วไปดูเหมือนว่าสิ่งที่ฉันทำในตัวแก้ไข

mario2Img - นี่เป็นเวอร์ชันของฉันเองของ Mario ที่ใหญ่กว่าซึ่งสร้างขึ้นสำหรับขนาดหน้าจอ 8x8 - และคุณมีพิกเซลไม่อยู่ที่หนึ่งหรือสองพิกเซล (ความผิดของฉันไม่ใช่จอแสดงผล) มันดูเหมือน Mario ตัวเล็ก (sorta)

invader1 และ invader2 - ทั้งความคิดของฉันสำหรับผู้บุกรุกพื้นที่ มันออกมาค่อนข้างดี และด้วยการวางภาพทับกัน ฉันสามารถสร้างเอฟเฟกต์ของการเคลื่อนไหวของเท้าได้

มีภาพร่างดอกไม้ไฟสองภาพในไดเรกทอรี ซึ่งแต่ละภาพมีความแตกต่างกันเล็กน้อย และควรค่าแก่การทดลอง

อันหนึ่งมีดอกไม้ไฟเคลื่อนผ่านหน้าจอ ดังนั้นแอนิเมชั่นที่มากกว่า/ต่างกันเล็กน้อย… อีกอันมีการแสดงดอกไม้ไฟสองดอกพร้อมกัน

นอกจากนี้ยังมีภาพร่าง "ผู้บุกรุก" สามภาพ ซึ่งแต่ละภาพมีความแตกต่างกันเล็กน้อย ภาพหนึ่งมีผู้บุกรุกเคลื่อนผ่านหน้าจอ และคุณสามารถดูว่าฉันทำอย่างนั้นได้อย่างไร (อาจมีวิธีที่ดีกว่านี้ไม่ทราบ)

มากยิ่งขึ้น: มีภาพสเก็ตช์บางส่วนในไดเร็กทอรีการทดสอบของที่เก็บ - ส่วนใหญ่ใช้งานไม่ได้ตามที่ฉันต้องการ หรือเป็นแนวคิดที่ฉันต้องการทำ แต่ไม่ได้ผลตามที่ฉันต้องการ ฉันทิ้งพวกเขาไปเพราะมีคนได้รับความคิดบางอย่าง * (ฉันสร้าง "เกราะ" เล็ก ๆ ที่มีพิกเซล WS2812 เพื่อใช้กับจอแสดงผล ISS แต่ฉันเชื่อมต่อกับสาย 3v และไม่เพียงพอ พลังงานเมื่อ LED Matrix ทำงานเช่นกัน พิกเซลทำงานได้ดี หากไม่มี LED Matrix คุณจึงยังมีบางสิ่งที่ฉันอาจทำกับมัน)*

นอกจากนี้ยังมีไดเร็กทอรีที่เรียกว่า "ตัวอย่างเพิ่มเติม" ซึ่งเป็นรูปแบบต่างๆ ของภาพร่างโปรเจ็กต์ ไม่ว่าจะมีการเพิ่มหรือลบบางอย่าง หรือมีการเปลี่ยนแปลงในทางใดทางหนึ่ง สำหรับสิ่งเหล่านี้ มันได้ผล - มันไม่ใช่โครงการสุดท้าย ดังนั้นฉันจึงทิ้งพวกเขาไว้อีกครั้งอาจมีคนได้ประโยชน์จากพวกเขา (อาจจะ)

ฉันหวังว่าคุณจะสนุกกับการสอนนี้มากที่สุดเท่าที่ฉันสนุกกับการทำโครงการเหล่านี้:-)

ขั้นตอนที่ 11: ลิงค์…

โครงการนี้ได้รับการสนับสนุนและสนับสนุนโดย DF Robot กรุณาใช้ลิงค์ด้านล่างสำหรับผลิตภัณฑ์:

Firebeetle ESP32 -

ฝาครอบ Firebeetle 24x8 LED Matrix -

ที่เก็บรหัสของฉัน:

หากคุณพบว่าโครงการนี้หรือโครงการใด ๆ ของฉันมีประโยชน์หรือสนุกสนาน โปรดสนับสนุนฉัน ทุกสิ่งที่ฉันทำคือซื้อชิ้นส่วนเพิ่มเติมและทำโครงการให้มากขึ้น/ดีขึ้น

www.patreon.com/kd8bxp

ห้องสมุด NTPClient

ArduinoJson.h

ESP8266 ห้องสมุดสภาพอากาศ

Json-Streaming-Parser Library

แนะนำ: