สารบัญ:

O-R-A RGB Led Matrix Wall Clock และอีกมากมาย **อัปเดตในเดือนกรกฎาคม 2019**: 6 ขั้นตอน (พร้อมรูปภาพ)
O-R-A RGB Led Matrix Wall Clock และอีกมากมาย **อัปเดตในเดือนกรกฎาคม 2019**: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: O-R-A RGB Led Matrix Wall Clock และอีกมากมาย **อัปเดตในเดือนกรกฎาคม 2019**: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: O-R-A RGB Led Matrix Wall Clock และอีกมากมาย **อัปเดตในเดือนกรกฎาคม 2019**: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: USB flash drive with LED matrix clock, min:sec 2024, พฤศจิกายน
Anonim
Image
Image
O-R-A RGB Led Matrix Wall Clock และอีกมากมาย **อัปเดตในก.ค. 2019**
O-R-A RGB Led Matrix Wall Clock และอีกมากมาย **อัปเดตในก.ค. 2019**
O-R-A RGB Led Matrix Wall Clock และอีกมากมาย **อัปเดตเมื่อก.ค. 2019**
O-R-A RGB Led Matrix Wall Clock และอีกมากมาย **อัปเดตเมื่อก.ค. 2019**
O-R-A RGB Led Matrix Wall Clock และอีกมากมาย **อัปเดตในก.ค. 2019**
O-R-A RGB Led Matrix Wall Clock และอีกมากมาย **อัปเดตในก.ค. 2019**

สวัสดี. ฉันมากับโปรเจ็กต์ใหม่ชื่อ O-R-A

เป็นนาฬิกาแขวน RGB LED Matrix ที่แสดง:

  • ชั่วโมง:นาที
  • อุณหภูมิ
  • ความชื้น
  • ไอคอนสภาพอากาศปัจจุบัน
  • กิจกรรม Google ปฏิทินและการแจ้งเตือน 1 ชั่วโมง

ในเวลาที่กำหนดจะแสดง:

  • รายการกิจกรรม Google ปฏิทินวันนี้และพรุ่งนี้
  • พยากรณ์อากาศ
  • ข่าวด่วน

ฟังก์ชันเสริม:

  • วันที่ปัจจุบัน
  • เมจิก 8 ลูก
  • จับเวลาครัว

สำหรับการทำงานใดๆ อุปกรณ์จะเล่นเสียงเตือนแบบอื่น สำหรับสภาพอากาศทุกประเภท จะมีไฟล์เสียงที่เกี่ยวข้องให้เล่นเมื่อมีการเรียกใช้ฟังก์ชันนี้

ฟังก์ชันต่างๆ เช่น รายการ Google ปฏิทิน การพยากรณ์อากาศ ข่าวด่วน RSS เริ่มต้นตามเวลาที่เลือกไว้เมื่ออุปกรณ์อยู่ใน "โหมดนาฬิกา" ซึ่งเรียกอีกอย่างว่าการใช้สวิตช์โดยตรง ฟังก์ชั่นอื่นระหว่าง "โหมดนาฬิกา" แสดงวัน/เดือน/ปีปัจจุบัน สามารถเรียกใช้ได้โดยกดปุ่ม ENTER กดปุ่ม CHANGE STATE แล้วกดปุ่ม ENTER ภายใน 3 วินาทีใน "โหมดนาฬิกา" ให้คุณเข้าสู่เมนูตัวเลือก ปุ่ม CHANGE STATE ใช้สำหรับเลื่อนภายในเมนู ปุ่ม ENTER ใช้สำหรับยืนยันตัวเลือกที่เลือก

โครงการนี้เป็นวิวัฒนาการของ LEGOLED และ TEMPO รุ่นก่อนของฉัน แผงเมทริกซ์ LED RGB มีความละเอียด 32x64 ในขณะนี้ ดังนั้นจึงสามารถแสดงกราฟิกที่เข้าใจได้ชัดเจนยิ่งขึ้น ข้อความคงที่และข้อความเลื่อนในเวลาเดียวกัน การใช้ฟังก์ชัน TEMPO อุปกรณ์จะเปิดและปิดโดยอัตโนมัติโดยไม่ต้องใช้ปุ่มหรือตัวจับเวลาภายนอก โมดูล PIR ตรวจจับการปรากฏตัวของบุคคลจึงเปิด/ปิดจอแสดงผล

ข้อมูลพยากรณ์อากาศและปฏิทินจะถูกรวบรวมทุกนาทีจาก Google ปฏิทินและ Open Weather Map

โครงการนี้สามารถปรับแต่งได้อย่างเต็มที่โดยเริ่มจาก Raspberry PI B+, 2 โมดูล 16x64 rgb led matrix และแหล่งจ่ายไฟ มันสามารถขยายได้เหมือนที่ฉันทำ เพิ่มการ์ดเสียง USB ลำโพง วงจรเปิด/ปิด

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ

  • Raspberry Pi B+ (พร้อม wifi หรือดองเกิลในตัว)
  • เมทริกซ์นำ RGB 2 x 16x64 หรือ 2 x 32x32
  • กรอบรูปทั่วไป (40x50 ซม. & ลึกประมาณ 3 ซม.)
  • แผ่นพลาสติกฝ้า
  • ฟิล์มติดกระจก
  • PS 5V 10A
  • สายเคเบิล
  • ปลอกหุ้มเทอร์โมเซตติง (*)
  • โมดูลรีเลย์ (*)
  • PS เสริมสำหรับเครื่องขยายเสียง (*)
  • โมดูลเครื่องขยายเสียง 3W (*)
  • ลำโพง (*)
  • การ์ดเสียง USB (*)
  • 2 x ไมโครสวิตช์ (*)
  • พีอาร์ (*)
  • อัตตินี่85 (*)
  • DS3231 (*)
  • มอสเฟต IRF540 (*)
  • ตัวต้านทาน: 3x1K, 2x10K, 1x2K (*)
  • ขั้วต่อ (*)
  • แถบส่วนหัว ตัวเมีย (*)
  • แถบคาดศีรษะชาย (*)

(*) ไม่จำเป็น

ขั้นตอนที่ 2: การตั้งค่า Raspberry Pi

คู่มือนี้ใช้พื้นฐานของไลบรารี Raspbian Jessie Lite, Python 2.7 และ RGB LED MATRIX โดยผู้ใช้ Hzeller Github

ก่อนอื่นให้อัปเดตและอัปเกรด RPI

ติดตั้ง git

~ $ sudo apt-get ติดตั้ง git

ดาวน์โหลดไลบรารี RGB LED MATRIX จาก Github

~ $ git clone

~ $ cd rpi-rgb-led-matrix

~ $ sudo make

บัญชีดำ RPI การ์ดเสียงภายใน

~ แมว $ <<EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf

บัญชีดำ snd_bcm2835

EOF

~ $ sudo update-initramfs -u

ตั้งค่าพารามิเตอร์การ์ดเสียงภายนอกหากต้องการความสามารถด้านเสียง:

~ $ sudo nano /usr/share/alsa/alsa.conf

เปลี่ยน:

defaults.ctl.card 0

defaults.pcm.card 0

ถึง

defaults.ctl.card 1

defaults.pcm.card 1

จากนั้นรีบูต

ตอนนี้ติดตั้งไลบรารีเมทริกซ์

~ $ cd /home/pi/rpi-rgb-led-matrix

~ $ sudo apt-get update && sudo apt-get ติดตั้ง python2.7-dev python-pillow -y

~ $ สร้าง build-python

~ $ sudo ทำการ install-python

และติดตั้งไลบรารีอื่นที่จำเป็น:

~ $ sudo easy_install pip

~ $ sudo pip ติดตั้ง

คัดลอกสคริปต์ samplebase.py จาก ~/rpi-rgb-led-matrix/bindings/python/samples/ ไปยังโฮมไดเร็กทอรี

รับการลงทะเบียนคีย์ API ฟรีเพื่อเปิดแผนที่สภาพอากาศ

ติดตั้งทันที wrapper OWM Python สำหรับ PYthon 2.7 (ขอบคุณผู้ใช้ CSPARPAGithub)

~ $ sudo pip ติดตั้ง git+https://github.com/csarpa/[email protected]

รับข้อมูลรับรอง Google ปฏิทินโดยทำตามคำแนะนำที่ Google ปฏิทิน API

สำหรับการเล่นเสียงให้ติดตั้ง Pygame

~ $ sudo apt-get ติดตั้ง python-pygame

ฟีด RSS ต้องติดตั้ง Feedparser

~ $ sudo pip ติดตั้ง feedparser

คัดลอกสคริปต์ของฉัน ORAeng_131.py (เวอร์ชันภาษาอังกฤษ) หรือ ORAita_131.py (เวอร์ชันอิตาลี) ไปยังโฮมไดเร็กตอรี่

สร้างโฟลเดอร์สำหรับเสียงและรูปภาพ:

mkdir dbsounds

mkdir owm

ดาวน์โหลดและคัดลอกไฟล์-p.webp

www.dropbox.com/sh/nemyfcj1a1i18ic/AAB1W7I6lg5EgqL1gJZPWVTxa?dl=0

เพิ่มข้อมูลรับรอง OWM ของคุณในบรรทัด 69 (API_key)

กำหนดเมืองสำหรับการพยากรณ์อากาศ (ตรวจสอบว่าครอบคลุมโดย OWM และยอมรับชื่อที่ถูกต้องหรือไม่) ที่บรรทัด 213, 215

obs =owm.weather_at_place('นาโปลี ไอที')

fc = owm.three_hours_forecast('นาโปลี ไอที')

********************************** อัพเดท 28/7/2019********** ******************

Google ปฏิทิน API ใหม่สร้างปัญหา ฉันได้แก้ไขการลบบางโมดูล:

~ $ sudo apt-get remove --purge python-setuptools

~ $ sudo apt-get autoremove python-pyasn1

ลองรันสคริปต์

~ $ sudo python ORAeng_150.py # หรือ ORAita_150.py สำหรับเวอร์ชันภาษาอิตาลี

ในครั้งแรกสคริปต์จะขออนุญาต GCAL คลิกลิงก์ไปยังข้อมูลรับรอง google api ให้อนุญาต ถ้าทุกอย่างเรียบร้อย คุณจะเห็นนาฬิกาเริ่มทำงาน

เนื่องจากการใช้ RAM มากเกินไปหลังจากผ่านไปหลายชั่วโมง ฉันจึงเขียนสคริปต์ที่เพียงแค่รีสตาร์ทสคริปต์หลามเมื่อการใช้ RAM เกินระดับเกณฑ์ จากนั้นคัดลอกไปที่โฮมไดเร็กทอรีสคริปต์ชื่อ memcheck เปลี่ยนชื่อเป็น memcheck.sh และเพิ่ม crontab -e พร้อมกันสคริปต์หลัก

*/5 * * * * bash /home/pi/memcheck.sh@reboot sudo python /home/pi/ORAeng_150.py

ขั้นตอนที่ 3: สคริปต์

ต้องแก้ไขสคริปต์หลักตามความต้องการของคุณ สมมติว่าข้อมูลประจำตัวของ OWM และ Goggle Calendar ถูกตั้งค่าเป็นคำสั่ง API ตามลำดับ พารามิเตอร์ที่สำคัญที่สุดคือ:

รายการกิจกรรมในปฏิทินดำเนินการทุกชั่วโมงในนาทีที่ 2, 32 (ดูบรรทัดสคริปต์ 65)

สภาพอากาศและการพยากรณ์ดำเนินการทุกชั่วโมงในนาทีที่ 7, 37 (ดูบรรทัดสคริปต์ 66)

ข่าวด่วนทุกชั่วโมงในนาทีที่ 11 (ดูสคริปต์บรรทัดที่ 67)

ข่าวด่วนช่อง rss สคริปต์ภายในถูกตั้งค่า RSS ที่สอนได้ แต่สามารถเปลี่ยนแปลงได้ (ดูสคริปต์บรรทัดที่ 366)

เห็นได้ชัดว่าสคริปต์ให้ความสำคัญกับเหตุการณ์ในปฏิทินที่เข้ามาหรือการเตือนความจำ บางครั้งนาฬิกาอาจไม่ทำงานเพื่อหลีกเลี่ยงการข้ามฟังก์ชัน

ตัวจับเวลาเปิด/ปิด Attiny85 จะต้องตั้งโปรแกรมให้อัปโหลดภาพร่าง Tempo_V1_9_1Mhz_bugfix.ino

อนุญาตให้เปิดอุปกรณ์เวลา 8 โมงเช้าและปิดเวลา 23 น. ดูข้อมูลเพิ่มเติมในบทช่วยสอน

ขั้นตอนที่ 4: วงจร

The Circuit
The Circuit
The Circuit
The Circuit
The Circuit
The Circuit

วงจรโดยทั่วไปมี 3 ส่วน

- ตัวตั้งเวลาเปิด/ปิดที่จัดการโดยโมดูล DS3231, Attiny85 และ Mosfet

- สวิตช์สำหรับควบคุมคุณสมบัตินาฬิกาด้วยตนเอง

- ส่วนการเชื่อมต่อที่เป็นสายเคเบิลสำหรับข้อมูล RGB LED Matrix และพลังงาน เครื่องขยายเสียง และ Raspberry Pi

ไม่ได้กล่าวถึงตัวแบ่งแรงดันไฟที่ยอมให้ RPI อ่านสัญญาณ 5V สูง/ต่ำจาก Attiny85

สวิตช์เชื่อมต่อกับ RPI ปักหมุด GND โดยตรงโดยใช้ตัวต้านทานภายใน

ตัวจับเวลา Attiny85 มาจากโครงการก่อนหน้าของฉันที่ชื่อ TEMPO โดยทั่วไป DS3231 จะส่งสัญญาณ LOW ไปยังพินอินเทอร์รัปต์ Attiny85 ที่ปลุกจากโหมดสลีป เมื่อตื่นขึ้น Attiny85 จะส่งสัญญาณ HIGH ไปยังทรานซิสเตอร์ Mosfet โดยจะเปิดใช้งานวงจรจ่ายไฟสำหรับ RPI, LED Matrix และเครื่องขยายเสียง (หากไม่ได้เชื่อมต่อกับ PS พิเศษผ่านรีเลย์ตามการกำหนดค่าล่าสุดของฉัน)

ในการปิด RPI สคริปต์ของฉันพิจารณาว่า RPI ฟังสัญญาณดิจิทัลที่พิน 14 เมื่อเป็น HIGH เรียกว่าคำสั่งปิด จากนั้น RPI จะดำเนินการปิดระบบที่ถูกต้อง จากนั้นหลังจากผ่านไปหนึ่งนาที Attiny85 จะกลับสู่โหมดสลีป และ Mosfet จะรับสัญญาณ LOW ที่จะปิดอุปกรณ์ทั้งหมด กระบวนการนี้หยาบแต่ได้ผล

โมดูล PIR เป็นอุปกรณ์เสริมและเชื่อมต่อโดยตรงกับ RPI GPIO

การกำหนดค่าของฉันต้องการให้พิน RPI GPIO ต่อไปนี้เชื่อมต่อกับ:

15 ถึง PIR

14 ถึง Attiny85 พิน 3 ผ่านตัวแบ่งแรงดัน

21 ถึงโมดูลรีเลย์

2 เพื่อเปลี่ยน (ปุ่ม ENTER)

3 เพื่อเปลี่ยน (ปุ่มเปลี่ยนสถานะ)

ปัญหา:

- เสียงรบกวนจากแหล่งจ่ายไฟ LED Matrix แก้ไขโดยใช้ PS ขนาดเล็กสำหรับเครื่องขยายเสียงเท่านั้น รีเลย์เสริมช่วยให้เปิดเครื่องขยายเสียงได้เมื่อจำเป็นเท่านั้น ซึ่งอาจทำให้เกิดเสียงกระแทกเมื่อเปิด/ปิด

วงจรได้รับการแกะสลักโดยใช้แผ่นทองแดง เครื่องพิมพ์ 3 มิติ มาร์กเกอร์ และเฟอริกคลอไรด์

ขั้นตอนที่ 5: การประกอบ

การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ

ฉันได้ปรับกรอบทั่วไปขนาด 40x50 ซม. ให้กับโครงการนี้พร้อมกับชิ้นส่วนที่พิมพ์ 3 มิติและอุปกรณ์เสริมพิเศษบางอย่าง

กระจกถูกป้องกันด้วยฟิล์มแสงอาทิตย์หน้าต่างและแผ่นพลาสติกฝ้า เมทริกซ์ Led ต้องเก็บไว้ประมาณ 1 ซม. กับกระจกเพื่อหลีกเลี่ยงการมองเห็นไฟ LED สีขาวด้านใน จำเป็นต้องใช้สกรูขนาดเล็กเนื่องจากน็อตและสลักเกลียว M3 บังคับคือสายเคเบิลและปลอกหุ้มเทอร์โมเซตติง

เมทริกซ์ LED ถูกขันที่แผงด้านหลังของเฟรม

ขั้นตอนที่ 6: และตอนนี้ ?

และตอนนี้ ?
และตอนนี้ ?
และตอนนี้ ?
และตอนนี้ ?

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

ลาก่อน

การประกวดนาฬิกา
การประกวดนาฬิกา
การประกวดนาฬิกา
การประกวดนาฬิกา

รองชนะเลิศการแข่งขันนาฬิกา

แนะนำ: