สารบัญ:
- ขั้นตอนที่ 1: ข้อกำหนด
- ขั้นตอนที่ 2: การติดตั้งซอฟต์แวร์
- ขั้นตอนที่ 3: การติดตั้งซอฟต์แวร์ - Pt.2
- ขั้นตอนที่ 4: การเดินสายฮาร์ดแวร์
- ขั้นตอนที่ 5: หมุด GPIO บนRaspi
- ขั้นตอนที่ 6: การทดสอบ
- ขั้นตอนที่ 7: การแก้ไขปัญหา
- ขั้นตอนที่ 8: การติดตั้งขั้นสุดท้าย
วีดีโอ: นาฬิกาดิจิตอลวิทยุสมัครเล่น Raspberry Pi: 8 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ภาพรวม
ผู้ให้บริการวิทยุสมัครเล่น (aka HAM Radio) ใช้เวลา 24 ชั่วโมง UTC (Universal Coordinated Time) สำหรับการดำเนินงานส่วนใหญ่ ฉันตัดสินใจสร้างนาฬิกาดิจิทัลโดยใช้จอแสดงผล 4 หลัก TM1637 ราคาประหยัดและ Raspberry Pi Zero W แทนที่จะเป็นนาฬิกา GUI (ฮาร์ดแวร์คือความสนุก!)
จอแสดงผลที่ขับเคลื่อนด้วย TM1637 มีไฟ LED 7 ส่วนสี่ดวงโดยมีโคลอนตรงกลาง ":" ระหว่างตัวเลขสองชุด ต้องใช้สายไฟสองเส้นในการขับเคลื่อนจอแสดงผล บวก 5V + และกราวด์ รวมเป็น 4 สาย
สำหรับโครงการเฉพาะนี้ ฉันต้องการให้ Raspi รับเวลาจากเซิร์ฟเวอร์ NTP (Network Time Protocol) ผ่านทางอินเทอร์เน็ต ฉันกำลังวางแผนรุ่นอื่นของนาฬิกานี้เพื่อทำงานบน Arduino Uno และโมดูลนาฬิกาตามเวลาจริง สำหรับเมื่อไม่มี WiFi และสำหรับการใช้งานแบบพกพามากขึ้น
ฉันยังต้องการให้นาฬิกาแสดงเวลาท้องถิ่นในรูปแบบ 12 ชั่วโมงและ 24 ชั่วโมง รวมถึง UTC ในรูปแบบ 12 ชั่วโมงและ 24 ชั่วโมง ซอฟต์แวร์นี้ได้รับการออกแบบมาเพื่อให้คุณใช้เพียง UTC 24 ชั่วโมง (แฮมทั่วไป) หรือเวลาต่างกันกับจอแสดงผลได้ถึง 4 จอ
คุณยังสามารถตั้งค่า TIME ZONE ที่คุณต้องการใช้แทนเวลาท้องถิ่นเริ่มต้นได้ ดังนั้นจอแสดงผลทั้งสี่จอจึงสามารถแสดงเขตเวลาที่แตกต่างกันและอยู่ในรูปแบบ 12 ชั่วโมงหรือ 24 ชั่วโมง
โปรเจ็กต์นี้ไม่ต้องใช้ขั้วต่อหรือสายไฟแบบบัดกรีบนโมดูล Pi และ/หรือ tm1637
คำแนะนำแบบเต็มมีอยู่ใน GITHUB:
ขั้นตอนที่ 1: ข้อกำหนด
• Raspberry Pi2, 3 หรือ Zero W. (เช่น pi ใดๆ ที่มีส่วนหัว 40 พินและ Ethernet/Wifi)
• 4 - TM1637 โมดูลแสดงผล 4 หลัก
และ/หรือ
หมายเหตุ: คุณสามารถใช้อันที่ใหญ่กว่าหรือเล็กกว่าได้ ตราบใดที่พวกมันเข้ากันได้กับ TM1637
• ชุดมัดสายไฟพร้อมสายไฟ 16 เส้น (TM1637 แต่ละตัวต้องใช้ 4 เส้น)
• เขียงหั่นขนมและสายไฟแบบไม่มีบัดกรี Or
• เขียงหั่นขนมแบบบัดกรีและขั้วต่อพินต่างๆ
• 8GB MicroSD หรือใหญ่กว่าสำหรับ Pi
• แหล่งจ่ายไฟ 5v สำหรับ Pi
ขั้นตอนที่ 2: การติดตั้งซอฟต์แวร์
แอปพลิเคชั่นนี้ใช้ไลบรารีหลาม TM1637.py ที่ใช้งานง่ายซึ่งเขียนโดย Tim Waizenegger (หากต้องการรายละเอียดเกี่ยวกับห้องสมุด เข้าไปที่
เธอรู้รึเปล่า?
หากคุณติดตั้ง Raspbian บนการ์ด SD โดยใช้พีซี คุณสามารถสร้างไฟล์สองไฟล์บนการ์ดเพื่อกำหนดค่าการเข้าถึง WiFi และ SSH ก่อนที่คุณจะบู๊ตบน Raspberry?
สำหรับสิ่งนี้ สมมติว่าขณะนี้การ์ด SD ของคุณต่อเชื่อมเป็น K: บนพีซีของคุณ:
1) ติดตั้งอิมเมจ Raspbian Lite ลงใน SD
www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit
2) ด้วยแผ่นจดบันทึก ให้สร้างไฟล์ที่เรียกว่า "ssh" และใช้บันทึกเป็น "ไฟล์ทั้งหมด" ไปที่ K:\ssh
ไฟล์สามารถมีอะไรก็ได้ เป็นชื่อไฟล์ที่สำคัญ ต้องไม่เป็น “ssh.txt” !!!
3) ด้วยแผ่นจดบันทึก ให้สร้างไฟล์ที่สองชื่อ “wpa_supplicant.conf” โดยมีรายละเอียดดังนี้:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1 network={ ssid="mySSID" psk="mypassword" key_mgmt=WPA-PSK }
ใช้บันทึกเป็น “ไฟล์ทั้งหมด” ไปที่ K:\wpa_supplicant.conf
ย้ำอีกครั้ง อย่าให้ Notepad เปลี่ยนเป็น “wpa_supplicant.conf.txt”!!
เมื่อคุณบูต Raspberry ในครั้งแรก Raspbian จะค้นหาสิ่งเหล่านี้และเชื่อมต่อกับ Wifi ของคุณ คุณจะต้องค้นหาที่อยู่ IP บนเราเตอร์ของคุณเนื่องจากได้รับมอบหมายอัตโนมัติ
ขั้นตอนที่ 3: การติดตั้งซอฟต์แวร์ - Pt.2
1. หากคุณยังไม่ได้ติดตั้ง ให้ติดตั้งเวอร์ชัน Raspbian Lite ลงในการ์ด microSD ขนาด 8GB หรือใหญ่กว่า คุณไม่จำเป็นต้องมีเวอร์ชัน GUI เนื่องจากโปรเจ็กต์นี้ไม่ได้ใช้จอภาพหรือแป้นพิมพ์
หมายเหตุ!: โครงการนี้ต้องใช้ Python2.7!
www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit
2. คุณจะต้องเข้าถึง Raspberry จากระยะไกลผ่าน SSH บน Windows คุณสามารถใช้โปรแกรมเทอร์มินัล PUTTY SSH บน Mac ให้เปิดหน้าต่างเทอร์มินัลคำสั่งขึ้นมา
3. ใส่การ์ด microSD ลงใน Pi แล้วเสียบปลั๊กไฟทันที จะใช้เวลาสองสามนาทีในการบูต
4. ในการเข้าสู่ระบบ Raspberry Pi จากระยะไกล คุณจะต้องค้นหาที่อยู่ IP คุณสามารถลอง: $ ssh [email protected] (หรือจาก Putty ให้ป้อนชื่อโฮสต์ [email protected] มิฉะนั้น คุณจะต้องดูว่าเราเตอร์ของคุณจะแสดงที่อยู่ IP ของอุปกรณ์ในพื้นที่ของคุณหรือไม่ id/passwd เริ่มต้นคือ “pi /ราสเบอร์รี่”
เมื่อเข้าสู่ระบบในฐานะผู้ใช้ pi:
5. อัปเดต Raspbian ของคุณ: $ sudo apt update $ sudo apt upgrade
6. กำหนดค่า Raspberry: $ sudo raspi-config a. เปลี่ยนรหัสผ่านผู้ใช้ ข. ตัวเลือกการแปลเป็นภาษาท้องถิ่น -> เปลี่ยนเขตเวลา เลือกเขตเวลาท้องถิ่นของคุณ c. แท็บเพื่อเสร็จสิ้น
7. ติดตั้งซอฟต์แวร์ RaspiDigiHamClock: $ cd /home/pi $ sudo apt update $ sudo apt install git $ git clone
8. ปิด Pi ของคุณเพื่อตั้งค่าฮาร์ดแวร์ $ ปิดทันที หลังจากที่ไฟ LED ดับลง ถอดปลั๊กไฟ
ขั้นตอนที่ 4: การเดินสายฮาร์ดแวร์
คุณสามารถประสานตัวเชื่อมต่อเข้ากับโมดูล TM1637 และ Raspberry Pi (หากยังไม่มีตัวเชื่อมต่อ) ก่อนเริ่มต้น ให้ตัดสินใจว่าคุณต้องการติดตั้งจอแสดงผลอย่างไร และถ้าคุณจะใช้เขียงหั่นขนมหรือสายบัดกรีโดยตรงบน Pi และโมดูลการแสดงผล
TM1637 หมุดโมดูล
หมายเหตุการเดินสายไฟ: โมดูล tm1637 บางตัวสามารถพลิกพิน +5v และ GND! จึงอาจไม่ปรากฏเหมือนกับภาพถ่าย
โมดูล TM1637 เป็นโมดูลจอแสดงผล LED 4 หลักซึ่งใช้ชิปไดรเวอร์ TM1637 ต้องการเพียงสองการเชื่อมต่อเพื่อควบคุมการแสดงผล 4 หลัก 8 ส่วน สายไฟอีกสองสายป้อนพลังงานและกราวด์ 5+ โวลต์
PIN DESC CLK ข้อมูลนาฬิกา DIO ในกราวด์ GND 5V +5 โวลต์
โมดูล tm1637 บางตัวจะพลิกพิน +5v และ GND ดังนั้นให้ตรวจสอบเครื่องหมายของโมดูลของคุณ
ทดสอบแต่ละ ModuleI แนะนำให้เริ่มต้นด้วยสายเคเบิลขั้วต่อตัวเมีย 4 สายเดี่ยวพร้อมขั้วต่อตัวผู้ที่บัดกรีเข้ากับโมดูลตัวใดตัวหนึ่งและ Pi จากนั้นเชื่อมต่อโมดูลแรกกับพินที่แสดงด้านล่างชั่วคราว
ทดสอบชั่วคราว MODULETM1637 โมดูล Pin Pi ทางกายภาพ Pin# 5V 2 GND 6 CLK 40 DIO 38 ดูไดอะแกรม GPIO ด้านล่างเพื่อค้นหารูปแบบพิน
ภาพที่สองแสดงจอภาพสองจอที่ต่อสายชั่วคราวกับ Raspberry Pi 3 โดยที่ซอฟต์แวร์กำลังทำงานอยู่
1. เมื่อคุณมีโมดูลที่ต่อสายชั่วคราวและตรวจสอบการเดินสายของคุณแล้ว
2. เพิ่มพลังให้กับ Raspberry Pi ไฟ LED สีแดงบนโมดูลจะสว่างขึ้น แต่จะยังไม่มีการแสดงผล
3. SSH เข้าสู่ Pi ของคุณอีกครั้งเหมือนเมื่อก่อน
$ cd RaspiDigiHamClock
$ หลาม test.py
คุณควรเห็นวงจรการแสดงผลผ่านข้อความสั้นต่างๆ หากไม่เป็นเช่นนั้น ให้ตรวจสอบสายไฟของคุณอีกครั้งก่อน! ง่ายต่อการพลิกลวดหรือเสียบ GPIO Pin ผิดบน Pi หากคุณได้รับข้อความแสดงข้อผิดพลาด Python ให้ตรวจสอบเวอร์ชัน Python ของคุณโดยใช้:
$ python -V (ตัวพิมพ์ใหญ่ "V")
Python 2.7. X
ฉันยังไม่ได้ทดสอบกับ Python 3 ดังนั้นจึงไม่แน่ใจว่าไลบรารี่จะเข้ากันได้หรือไม่
คัดลอกข้อความแสดงข้อผิดพลาด (โดยปกติคือบรรทัดสุดท้ายของข้อผิดพลาด) และวางลงในการค้นหาของ Google นี้อาจให้เบาะแสว่าเกิดอะไรขึ้น
หากโมดูลของคุณใช้งานได้ ยินดีด้วย! คุณรู้ว่าโมดูลและ Pi กำลังทำงานอยู่ ทำซ้ำสำหรับแต่ละโมดูลเพื่อทดสอบ (ฉันแนะนำให้ปิด Pi และปิดก่อนที่จะเสียบ / ถอดโมดูล !!)
$ sudo ปิดตอนนี้
ขั้นตอนที่ 5: หมุด GPIO บนRaspi
โปรเจ็กต์นี้ใช้รหัสบอร์ดจริงของ GPIO สำหรับพิน
นั่นคือพิน 1 ถึงพิน 40 ไม่ใช่หมายเลขพิน "BCM" GPIO (ใช่ ค่อนข้างสับสน แต่ BOARD เป็นเพียงการนับพินจากบนซ้ายไปล่างขวา)
โมดูลแสดงผล TM1637 พินโมดูล Pi พินทางกายภาพ # กำลังไฟ 5V 2 กราวด์ GND 6
โมดูล #1 CLK 33
DIO 31
โมดูล #2 CLK 36
ดีโอ 32
โมดูล #3 CLK 37
ดีโอ 35
โมดูล #4 CLK 40
ดีโอ 38
หมายเหตุ: คุณไม่จำเป็นต้องเพิ่มทั้ง 4 โมดูลหากต้องการ คุณสามารถมีได้ระหว่าง 1 ถึง 4 โมดูล (ใช่ เป็นไปได้ที่จะไปที่โมดูลเพิ่มเติม แต่คุณต้องแก้ไขโค้ดเพื่อรองรับเพิ่มเติม)
แต่คุณต้องเสียบโมดูลตามลำดับโดยเริ่มจากโมดูล #1
นี่เป็นเพราะไลบรารี TM1637 คาดหวัง ACK จากโมดูล ดังนั้นดูเหมือนว่าจะรอไม่เช่นนั้น
ตัวอย่างภาพถ่ายของ Soldered Breadboard คุณต้องทำตามรูปแบบการเดินสายของคุณเองเพื่อให้ตรงกับพิน GPIO ที่แสดงไว้ก่อนหน้านี้ เนื่องจากตัวเชื่อมต่อและโมดูลที่ฉันใช้อาจไม่ตรงกับของคุณ
ขั้นตอนที่ 6: การทดสอบ
ว้าว นั่นมันสายไปหน่อย! ถึงเวลาทดสอบควัน…
เนื่องจากคุณรู้อยู่แล้วว่าแต่ละโมดูลและ Pi ทำงาน (คุณได้ทดสอบโมดูลตามที่อธิบายไว้ก่อนหน้านี้หรือไม่) ขั้นตอนต่อไปคือการตั้งค่าไฟล์. INI และเรียกใช้โปรแกรมนาฬิกา:
1. แก้ไข raspiclock.ini
$ cd /home/pi/RaspiDigiHamClock
$ nano raspiclock.ini
2. เปลี่ยน num_modules เป็นจำนวนที่คุณต่อสาย นี่เป็นสิ่งสำคัญเนื่องจากไลบรารีจะหยุดรอ ACK หากไม่สามารถพูดคุยกับโมดูลได้ ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อตามจำนวนโมดูล ในลำดับที่แสดงใน. INI หมายเหตุ: TZ และ HR พิเศษ และ PINS ของ GPIO จะถูกละเว้นหาก num_modules น้อยกว่า 4
3. เพิ่มเขตเวลาสำหรับแต่ละโมดูล
นี่คือชื่อ Linux TZ เช่น 'America/New_York', EST5EDT, UTC หรือ 'Local' สำหรับเขตเวลาท้องถิ่นของคุณตามที่กำหนดผ่าน raspi-config ค่าเริ่มต้นคือUTC
4. ตั้งค่าว่าจะแสดงโหมด 12 ชม. หรือ 24 ชม. สำหรับแต่ละโมดูลหรือไม่
[นาฬิกา]; จำนวนโมดูล TM1637 (ระหว่าง 1 ถึง 4) num_modules = 2
; เขตเวลาสำหรับแต่ละโมดูล
; ใช้ raspi-config เพื่อตั้งค่าเขตเวลาท้องถิ่น; ค่าเริ่มต้นคือ UTC; รูปแบบคือชื่อ Linux TZ หรือ 'ท้องถิ่น' สำหรับเวลาท้องถิ่น; 'อเมริกา/New_York', EST5EDT, UTC, 'ท้องถิ่น' TZ1 = ท้องถิ่น TZ2 = UTC TZ3 = TZ4 =
; 12/24 ชั่วโมงสำหรับแต่ละโมดูล
HR1 = 12 HR2 = 24 HR3 = 12 HR4 = 24
; ความสว่าง (ช่วง 1..7)
ลัม = 1
5. คุณไม่ควรต้องแก้ไขพิน GPIO เว้นแต่คุณจะเสียบมันเข้ากับพิน # ที่แตกต่างกันบน Pi
6. บันทึกการเปลี่ยนแปลงแล้วเรียกใช้นาฬิกา:
$ python raspiclock.py
หากทุกอย่างเรียบร้อย โมดูลแสดงผลทั้งหมดของคุณควรสว่างตามเวลาที่ตั้งค่าไว้ในไฟล์. INI
ยินดีด้วย! ข้ามการแก้ไขปัญหาและไปที่การติดตั้งขั้นสุดท้าย…
ขั้นตอนที่ 7: การแก้ไขปัญหา
คุณควรเห็นข้อความแก้ไขข้อบกพร่องง่ายๆ ปรากฏขึ้น:
กำลังเริ่มต้น…จำนวนโมดูล = 4 เริ่มการวนรอบนาฬิกา… โมดูล#1 displayTM() โมดูล#2 displayTM() โมดูล#3 displayTM() โมดูล#4 displayTM() (ซ้ำกัน…)
หากคุณทดสอบโมดูลก่อนหน้านี้และใช้งานได้ทั้งหมด คุณจะรู้ว่าโมดูลและ Raspberry นั้นดี
A) HANG – หากข้อความแก้ไขจุดบกพร่องปรากฏขึ้นที่จุดหนึ่ง โปรแกรมกำลังรอ ACK จากโมดูลนั้น #
ตรวจสอบสายไฟของคุณก่อน! ง่ายต่อการพลิกลวดหรือเสียบ GPIO Pin ผิดบน Pi
ประการที่สอง สลับโมดูลเพื่อดูว่าโมดูลมีปัญหาหรือไม่
ประการที่สาม ตรวจสอบไฟล์ raspiclock.ini เพื่อหาข้อผิดพลาด หากจำเป็น ให้ลบไดเร็กทอรีทั้งหมดและทำ GIT CLONE อื่นเพื่อเรียกข้อมูลอีกครั้ง
ประการที่สี่ ตรวจสอบสายไฟของคุณอีกครั้ง!;-)
B) หากคุณได้รับข้อความแสดงข้อผิดพลาด Python ให้ตรวจสอบเวอร์ชัน Python ของคุณโดยใช้:
$ python -V (ตัวพิมพ์ใหญ่ "V")
Python 2.7. X
ฉันยังไม่ได้ทดสอบกับ Python 3 ดังนั้นจึงไม่แน่ใจว่าไลบรารี่จะเข้ากันได้หรือไม่ คัดลอกข้อความแสดงข้อผิดพลาด (โดยปกติคือบรรทัดสุดท้ายของข้อผิดพลาด) และวางลงในการค้นหาของ Google นี้อาจให้เบาะแสว่าเกิดอะไรขึ้น
ขั้นตอนที่ 8: การติดตั้งขั้นสุดท้าย
1. แก้ไขไฟล์. INI อีกครั้งและตั้งค่า debug = 0.$ cd /home/pi/RaspiDigiHamClock
$ nano raspiclock.ini
2. ตรวจสอบเขตเวลา TZ และการตั้งค่า HR 12/24 ชั่วโมงตามที่คุณต้องการ
3. ตั้งค่าความสว่างตามต้องการระหว่าง 1 ถึง 7
4. เรียกใช้สคริปต์ install.sh เพื่อเพิ่มไปยัง pi crontab สำหรับการเริ่มต้นอัตโนมัติเมื่อบูต
$ sh install.sh
5. รีบูต
$ sudo รีบูต
6. ควรรีบูตแล้วเริ่มทำงาน
เสร็จ!
แนะนำ:
บ้านอัจฉริยะโดย Raspberry Pi: 5 ขั้นตอน (พร้อมรูปภาพ)
บ้านอัจฉริยะโดย Raspberry Pi: มีผลิตภัณฑ์หลายอย่างที่ทำให้แฟลตของคุณฉลาดขึ้น แต่ส่วนใหญ่เป็นโซลูชันที่เป็นกรรมสิทธิ์ แต่ทำไมคุณต้องเชื่อมต่ออินเทอร์เน็ตเพื่อเปลี่ยนไฟด้วยสมาร์ทโฟนของคุณ นั่นเป็นเหตุผลหนึ่งที่ทำให้ฉันสร้าง Smar ของตัวเอง
จอแสดงผลเกม LED ทำจากไม้ที่ขับเคลื่อนโดย Raspberry Pi Zero: 11 ขั้นตอน (พร้อมรูปภาพ)
จอแสดงผล LED สำหรับเล่นเกมแบบไม้ที่ขับเคลื่อนโดย Raspberry Pi Zero: โปรเจ็กต์นี้ใช้จอแสดงผล LED แบบ WS2812 ขนาด 20x10 พิกเซลที่มีขนาด 78x35 ซม. ซึ่งสามารถติดตั้งได้ง่ายในห้องนั่งเล่นเพื่อเล่นเกมย้อนยุค เมทริกซ์เวอร์ชันแรกนี้สร้างขึ้นในปี 2016 และสร้างขึ้นใหม่โดยคนอื่นๆ อีกหลายคน ประสบการณ์นี้
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-