สารบัญ:

RaspberryPi สวดมนต์อิสลามนาฬิกาและนาฬิกาปลุก: 15 ขั้นตอน (พร้อมรูปภาพ)
RaspberryPi สวดมนต์อิสลามนาฬิกาและนาฬิกาปลุก: 15 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: RaspberryPi สวดมนต์อิสลามนาฬิกาและนาฬิกาปลุก: 15 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: RaspberryPi สวดมนต์อิสลามนาฬิกาและนาฬิกาปลุก: 15 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: อยากเห็นเรามุมไหนก็เลือกเอา [ aobaob.pratna25 ] 2024, มิถุนายน
Anonim
RaspberryPi นาฬิกาสวดมนต์อิสลาม & นาฬิกาปลุก
RaspberryPi นาฬิกาสวดมนต์อิสลาม & นาฬิกาปลุก
RaspberryPi นาฬิกาสวดมนต์อิสลาม & นาฬิกาปลุก
RaspberryPi นาฬิกาสวดมนต์อิสลาม & นาฬิกาปลุก

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

ชาวมุสลิมทุกคนมีวิธีเข้าถึงสภาพอากาศเวลาละหมาดประจำวันผ่านทางเว็บไซต์อินเทอร์เน็ตอิสลาม ปฏิทินอิสลามในท้องถิ่น หรือแม้แต่ทางทีวี และพวกเราส่วนใหญ่มีอุปกรณ์นาฬิกาอิสลามที่มีคุณสมบัติในการบอกเวลาละหมาดและการเตือนการละหมาด. แต่ถ้าเราทำนาฬิกาสวดมนต์และอุปกรณ์ปลุกของเราเองล่ะ!

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

สู่โครงการของเรา! โครงการนี้จะแบ่งออกเป็น X ขั้นตอนหลัก ซึ่งเมื่อสิ้นสุดขั้นตอนที่ X เราจะมีโครงการที่ดีและพร้อม! ขั้นตอนจะเป็นดังนี้:

1-การกำหนดค่าและการเตรียม RaspberryPi

2-การติดตั้งโมดูล RTC

3- การสร้างโปรแกรม Azan Alarm

4-ใช้หน้าปัดนาฬิกา

5- การสร้างส่วนต่อประสานกับผู้ใช้และ.

ทุกโครงการต้องเตรียมชิ้นส่วนที่ต้องใช้ก่อน ส่วนที่เราต้องการสำหรับโครงการนี้คือ:

1-RaspberryPi ชุดคอมพิวเตอร์ Amazon US || อเมซอน KSA

คุณสามารถใช้ Rpi เวอร์ชันใดก็ได้ เพียงตรวจสอบว่ามี Wifi ฉันใช้ Rpi3B+

โมดูลนาฬิกาเรียลไทม์ 2-RTC Amazon US || อเมซอน KSA

คุณสามารถใช้โมดูล RTC รุ่นใดก็ได้ เพียงตรวจสอบให้แน่ใจว่ามี I2C

จอภาพ 3-LCD

LCD ใด ๆ จะทำ

4-เมาส์และคีย์บอร์ด

และนั่นก็คือ…..ไอที!! นั่นคือทั้งหมดที่คุณต้องทำเพื่อสร้างนาฬิกาและนาฬิกาปลุก Azan ของคุณเอง

ขั้นตอนที่ 1: บทที่ 1: การตั้งค่าและกำหนดค่า RaspberryPI

บทที่ 1: การตั้งค่าและกำหนดค่า RaspberryPI
บทที่ 1: การตั้งค่าและกำหนดค่า RaspberryPI

สิ่งแรก สิ่งแรก! เราจำเป็นต้องเตรียม Raspberry pi เพื่อใช้งาน

Raspberry pi ไม่มีอะไรนอกจากคอมพิวเตอร์ มันมี RAM และ ROM มี CPU, GPU, I/O…….คอมพิวเตอร์! เช่นเดียวกับที่เราเล่นเกมและท่องเว็บด้วยสิ่งสำคัญเท่านั้นที่เล็กมาก! ซึ่งทำให้ราสเบอร์รี่เป็นตัวเลือกที่ดีมากสำหรับการทำและดำเนินโครงการ เนื่องจาก raspberry pi มีขนาดเล็ก จึงมีสเป็คที่จำกัดมากจนไม่สามารถใช้งาน OS ที่มีความต้องการสูง เช่น windows หรือ macOS ได้ แต่เราจะใช้ Linux เป็นระบบปฏิบัติการเพื่อใช้งานอุปกรณ์ มีลินุกซ์ distros หลายพันตัวที่เราสามารถใช้ได้ แต่ distro ที่สมบูรณ์แบบหนึ่งตัวได้รับการปรับให้เหมาะสมที่สุดโดยเฉพาะสำหรับ raspberrypi ที่เราจะใช้เรียกว่า Raspbian

ขั้นตอนที่ 2: 1-1: ดาวน์โหลดไฟล์ที่จำเป็น

1-1: ดาวน์โหลดไฟล์ที่จำเป็น
1-1: ดาวน์โหลดไฟล์ที่จำเป็น
1-1: ดาวน์โหลดไฟล์ที่จำเป็น
1-1: ดาวน์โหลดไฟล์ที่จำเป็น
1-1: ดาวน์โหลดไฟล์ที่จำเป็น
1-1: ดาวน์โหลดไฟล์ที่จำเป็น

- ไปที่หน้าดาวน์โหลด Rasbian อย่างเป็นทางการที่ https://www.raspberrypi.org/software/operating-sy… และดาวน์โหลดไฟล์ Raspberry Pi OS พร้อมไฟล์เดสก์ท็อป

- ในขณะที่กำลังดาวน์โหลด ให้ไปที่ https://win32diskimager.org/ และดาวน์โหลดและติดตั้ง win32DiskImager คุณสามารถใช้ซอฟต์แวร์เบิร์นรูปภาพใดก็ได้ที่คุณชอบ

เมื่อดาวน์โหลดเสร็จแล้ว คุณจะมีไฟล์.img ที่มี RaspberryPi OS ถัดไป เสียบการ์ดหน่วยความจำ SD ของคุณในคอมพิวเตอร์ (โดยปกติคือเครื่องอ่านการ์ด USB) และเปิดซอฟต์แวร์ win32diskimager ขั้นตอนในการเขียนภาพลงในหน่วยความจำ SD นั้นง่ายมาก คุณเพียงแค่ต้อง 1- เลือกตัวอักษรหน่วยความจำของคุณ 2- เลือกไฟล์ระบบปฏิบัติการที่คุณดาวน์โหลดและ 3-คลิกเขียน! ตรวจสอบให้แน่ใจว่าคุณได้เลือกอักษรระบุอุปกรณ์ที่ถูกต้องจากรายการและหน่วยความจำของคุณว่างเปล่า เนื่องจากเมื่อกดเขียน คุณจะได้รับการเลื่อนระดับด้วยคำเตือนที่บอกคุณว่าทุกอย่างในอุปกรณ์จะถูกลบ! กดใช่เพื่อยืนยันการเขียนและรอให้เสร็จสิ้น อาจใช้เวลาถึง 20 นาที

เมื่อเสร็จแล้ว คุณจะมี Rapbian OS เต็มรูปแบบในหน่วยความจำ คุณสามารถใส่ลงใน Rapberry Pi ต่อ Raspberry Pi กับจอภาพผ่าน HDMI ต่อเมาส์และคีย์บอร์ดผ่าน USB และสุดท้ายเชื่อมต่อ พลัง.

ขั้นตอนที่ 3: 1-2: การกำหนดค่าระบบ Raspbian

หลังจากเชื่อมต่อสายเคเบิลและสายไฟ คุณจะเห็นว่าระบบปฏิบัติการเปิดอยู่ ระบบปฏิบัติการจะรีบูตโดยอัตโนมัติ จากนั้นจะแสดงอินเทอร์เฟซผู้ใช้ Raspbian (ซึ่งมีลักษณะคล้ายกับหน้าต่าง) สิ่งแรกที่คุณจะเห็นคือหน้าต่างต้อนรับ ซึ่งจะนำคุณผ่านขั้นตอนการกำหนดค่า RaspberryPi ของคุณเป็นครั้งแรก หน้าต่างและขั้นตอนจะเป็นดังนี้:

1-กดถัดไปในหน้าต่าง "ยินดีต้อนรับ" แรก

2-หน้าต่างถัดไปจะเป็นการกำหนดค่าตำแหน่งของคุณ เลือกประเทศ ภาษา และเขตเวลาของคุณ หลังจากนั้น ขอแนะนำให้ตรวจสอบ "ใช้ภาษาอังกฤษ" เพราะจะเป็นภาษาอินเทอร์เฟซของระบบปฏิบัติการ คุณต้องตรวจสอบ "กล่องเค้าโครงแป้นพิมพ์ภาษาอังกฤษแบบสหรัฐอเมริกา" เราต้องการแป้นพิมพ์ภาษาอังกฤษเพื่อใช้งาน!

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

username:pi

รหัสผ่าน:ราสเบอร์รี่

4-หน้าต่างถัดไปจะเชื่อมต่อ raspberryPi กับเครือข่าย WiFi ของคุณ เลือกชื่อ wifi ของคุณและป้อนรหัสผ่าน wifi ของคุณ

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

6- เมื่ออัปเดตเสร็จสิ้น ระบบจะขอให้คุณรีสตาร์ทระบบ ทำอย่างนั้นตอนนี้

การทำงานที่ดี! ตอนนี้เรามีระบบที่อัปเดตแล้ว เรายังต้องทำบางอย่างเพิ่มเติมเพื่อกำหนดค่าระบบให้ทำงานได้ แต่ตอนนี้ จะเริ่มใช้ LinuxCommand Line

ขั้นตอนที่ 4: 1-3: การใช้ Command Line เพื่อตั้งค่า Rpi Settings

1-3: การใช้ Command Line เพื่อตั้งค่า Rpi Settings
1-3: การใช้ Command Line เพื่อตั้งค่า Rpi Settings
1-3: การใช้ Command Line เพื่อตั้งค่า Rpi Settings
1-3: การใช้ Command Line เพื่อตั้งค่า Rpi Settings
1-3: การใช้ Command Line เพื่อตั้งค่า Rpi Settings
1-3: การใช้ Command Line เพื่อตั้งค่า Rpi Settings

เมื่อคุณรีบูตจากการอัปเดตระบบเสร็จแล้ว ระบบจะแสดงเดสก์ท็อปของผู้ใช้เมื่อทำการบูทเสร็จแล้ว ตอนนี้ถ้าคุณดูที่ด้านบนซ้ายของหน้าจอ คุณจะพบปุ่มบางปุ่ม ปุ่มที่มีโลโก้ raspberryPi ซึ่งเป็นปุ่มเมนู Rpi รูปโลกซึ่งเป็นอินเทอร์เน็ตเบราว์เซอร์ ปุ่มโฟลเดอร์ที่…..โฟลเดอร์ และสุดท้ายคือปุ่มที่มีหน้าต่างหน้าจอสีดำ ซึ่งเป็นปุ่มที่สำคัญที่สุดในระบบ linux ใดๆ นั่นคือ The Command line ไปข้างหน้าและกดปุ่มนั้น คุณจะเห็นหน้าต่างสีดำปรากฏขึ้น

บรรทัดคำสั่งเป็นวิธีที่ทุกคนโต้ตอบและใช้ระบบ linux เช่นเดียวกับ windows มีบรรทัดคำสั่งของตัวเองใน widows เท่านั้น เราไม่จำเป็นต้องใช้บ่อยมาก ใน linux มันเป็นสิ่งพื้นฐานที่ผู้ใช้ linux ทุกคนต้องเรียนรู้และเชี่ยวชาญ สามารถใช้บรรทัดคำสั่งโดย…. COMMANDS! สิ่งที่คุณเห็นในหน้าต่างสีดำคือพรอมต์คำสั่งที่รอให้ผู้ใช้เขียนคำสั่งและดำเนินการ ในคู่มือนี้ เราจะให้คำสั่งทั้งหมดที่คุณต้องการเพื่อดำเนินโครงการนี้ ดังนั้นอย่ากังวล

คำสั่ง Linux ตัวแรกที่เราจะใช้คือคำสั่งกำหนดค่าอื่น โปรดทราบว่าคำสั่งทั้งหมดจากนี้ไปจะใส่ไว้ในกล่องโค้ด ดังนั้นคุณจึงสามารถแยกความแตกต่างจากขั้นตอนปกติได้ นำแป้นพิมพ์ของคุณและพิมพ์ต่อไปนี้แล้วกด Enter:

sudo raspi-config

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

ตอนนี้ คุณจะต้องใช้แป้นลูกศรบนแป้นพิมพ์เพื่อไปยังส่วนต่างๆ ของเมนูนี้

1-ไปที่ตัวเลือกอินเทอร์เฟซ >> I2C >> ใช่ >> กด Enter นี่คือการเปิดใช้งานโปรโตคอลการสื่อสาร I2c เพื่อให้เราสามารถใช้ RTC

2-ไปที่ตัวเลือกขั้นสูง >> ขยายระบบไฟล์

และนั่นคือการกำหนดค่าทั้งหมดที่คุณต้องการจากหน้าต่างนี้ ในหน้าหลัก ให้ลงไปแล้วกด Enter ที่ "เสร็จสิ้น" และ "ใช่" เพื่อรีบูตระบบ

เมื่อระบบรีบูตเสร็จสิ้น เราก็กำหนดค่าเสร็จเรียบร้อยแล้ว! อุปกรณ์พร้อมสำหรับขั้นตอนใหญ่! ขั้นตอนต่อไปจะเป็นการติดตั้งโมดูล RTC และใช้งานกับระบบ

ขั้นตอนที่ 5: บทที่ 2: การติดตั้ง การกำหนดค่า และการใช้โมดูล RTC

บทที่ 2: การติดตั้ง การกำหนดค่า และการใช้โมดูล RTC
บทที่ 2: การติดตั้ง การกำหนดค่า และการใช้โมดูล RTC
บทที่ 2: การติดตั้ง การกำหนดค่า และการใช้โมดูล RTC
บทที่ 2: การติดตั้ง การกำหนดค่า และการใช้โมดูล RTC
บทที่ 2: การติดตั้ง การกำหนดค่า และการใช้โมดูล RTC
บทที่ 2: การติดตั้ง การกำหนดค่า และการใช้โมดูล RTC
บทที่ 2: การติดตั้ง การกำหนดค่า และการใช้โมดูล RTC
บทที่ 2: การติดตั้ง การกำหนดค่า และการใช้โมดูล RTC

โมดูล RTC (หรือนาฬิกาเรียลไทม์) เป็นอุปกรณ์ขนาดเล็กที่มีแบตเตอรี่เพียงเล็กน้อย ซึ่งทำหน้าที่ตามความหมายของชื่อ Clocking! ดังนั้นเมื่อคุณถอดปลั๊กเพื่อจ่ายไฟ นาฬิกาจะยังคงทำงานต่อไปและไม่หยุด ทำไมเราต้องการสิ่งนี้ ราสเบอร์รี่ pi ไม่มีวิธีการจัดเก็บข้อมูลนาฬิกาเมื่อปิดเครื่อง มันอาศัยการเชื่อมต่ออินเทอร์เน็ตเมื่อทำการบูทเพื่ออัปเดตวันที่และเวลา แต่ปัญหาคือเราไม่มีการเข้าถึงอินเทอร์เน็ตตลอดเวลา และสิ่งนี้ คือเหตุผลที่เราต้องการโมดูล RTC RTC จะทำหน้าที่เป็นนาฬิกาสำหรับ raspberry pi ดังนั้นเมื่อ Rpi ถูกบูทแล้ว จะใช้วันที่ & เวลาจาก RTC ซึ่งจะทำให้เวลา RaspberryPi อัปเดตตลอดเวลา

มีหลายรุ่นและมองหา RTC มี DS1307 และ DS3231 คุณสามารถใช้โมดูล RTC ใดๆ ที่คุณพบได้ตราบใดที่มีการสื่อสารโปรโตคอล I2C (คุณสามารถระบุได้ว่านี่คือคุณสามารถค้นหาพิน SDA และ SCL บนหมุดโมดูลได้

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

เมื่อคุณเตรียมโมดูล RTC แล้ว (บัดกรีหมุดส่วนหัวและใส่แบตเตอรี่) คุณสามารถเชื่อมต่อกับหมุด RapberryPi ได้ดังนี้:

RTC PIN----------------Rpi Pin

GND===========> PIN 6 (GND)

Vcc============> PIN 1 (3.3V)

SDA===========> PIN 3(SDA)

SCL===========> PIN 5(SCL)

หรือขึ้นอยู่กับโมดูล RTC ที่คุณได้รับ คุณสามารถติดตั้งได้โดยตรงบน RaspberryPi (ตรวจสอบให้แน่ใจว่าพินถูกต้อง!!! เนื่องจากอาจทำให้ Rpi/RTC เสียหายได้)

เมื่อคุณเชื่อมต่อ RTC แล้ว มากำหนดค่า Raspberry กัน

ขั้นตอนที่ 6: 2-1: การตั้งค่าโมดูล

2-1: การตั้งค่าโมดูล
2-1: การตั้งค่าโมดูล
2-1: การตั้งค่าโมดูล
2-1: การตั้งค่าโมดูล

ก่อนเริ่ม ให้ไปที่บรรทัดคำสั่งและพิมพ์:

วันที่

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

ตอนนี้ มาเริ่มการตั้งค่ากัน พิมพ์ต่อไปนี้เพื่ออัปเดตไลบรารี Rpi ทีละบรรทัด:

sudo apt-get update

sudo apt-get -y อัปเกรด

เมื่อเสร็จแล้ว เราต้องแก้ไขไฟล์ระบบเพื่อเปิดใช้งานโมดูล i2c และเพิ่ม RTC เพื่อแก้ไขระบบไฟล์ เราจะใช้ซอฟต์แวร์ที่เรียกว่า Nano nano เป็นซอฟต์แวร์ในตัวที่มีน้ำหนักเบาซึ่งโดยทั่วไปแล้วจะเป็นโปรแกรมแก้ไขข้อความ เช่นเดียวกับซอฟต์แวร์ในแม่ม่าย ดังนั้นคำสั่งใดๆ ที่ขึ้นต้นด้วย nano ตามด้วยชื่อไฟล์ จะเปิดไฟล์นั้นในโปรแกรมแก้ไขข้อความนาโน คุณสังเกตเห็นว่าเรายังใช้สิ่งที่เรียกว่า Sudo ในระยะสั้น sudo ทำหน้าที่เหมือนการประกันสำหรับระบบ linux ที่บอกระบบว่าผู้ใช้ที่สร้างคำสั่งนั้นเป็นเจ้าของอุปกรณ์ ไม่ใช่คนอื่น และให้สิทธิ์เช่นการแก้ไข/ กำลังลบไปยังผู้ใช้ ตัวอย่างเช่น ถ้าเราเปิดไฟล์ nano โดยไม่ใช้ sudo เราจะสามารถดูไฟล์นั้นได้ แต่เราไม่สามารถแก้ไขหรือลบไฟล์ได้

ตอนนี้เราต้องแก้ไขไฟล์โมดูล เราสามารถทำได้โดยพิมพ์:

sudo nano /etc/modules

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

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

กด CTRL+S เพื่อบันทึก และ CTRL+X เพื่อออก

ขั้นตอนที่ 7: 2-2: อินเทอร์เฟซ I2C

2-2: อินเทอร์เฟซ I2C
2-2: อินเทอร์เฟซ I2C

ตอนนี้เราได้เชื่อมต่อ RTC และเปิดใช้งาน i2c แล้ว มาเชื่อมต่อทุกอย่างเข้าด้วยกัน

พิมพ์คำสั่งต่อไปนี้ในพรอมต์คำสั่ง:

i2cdetect -y 1

คุณจะได้รับอาร์เรย์ของช่องว่าง แต่คุณจะสังเกตเห็นว่ามีตัวเลขอยู่ที่ไหนสักแห่ง หมายเลขนั้นเป็นที่อยู่โมดูล RTC ของคุณ ในกรณีของฉันคือ 68 จดตัวเลขนั้นไว้ หากคุณไม่เห็นตัวเลขสองหลักนั้น แสดงว่าคุณอาจเชื่อมต่อ RTC ผิด

ตอนนี้ เราต้องแก้ไขไฟล์ rc.local เพื่อให้เราสามารถเปิดใช้งานโมดูล RTC ในการบู๊ต และปล่อยให้มันบันทึกวันที่และเวลาลงในระบบ ขั้นแรก เปิดไฟล์ rc.local:

sudo nano /etc/rc.local

ก่อนถึงบรรทัด exit0 ให้เพิ่มสิ่งต่อไปนี้:

เสียงสะท้อน ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

hwclock -s

โดยที่ 0x68 คือที่อยู่ i2c ของอุปกรณ์ของคุณ เมื่อคุณกด CTRL+S CTRL+X เสร็จแล้ว รีบูตระบบโดย:

sudo รีบูต

ขั้นตอนที่ 8: 2-3: ทดสอบ RTC

2-3: การทดสอบ RTC
2-3: การทดสอบ RTC

เมื่อระบบถูกรีบูต เราจะสามารถตรวจสอบสภาพอากาศว่า RTC ทำงานหรือไม่ ขั้นแรกให้เรียกใช้:

sudo hwclock -r

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

ตอนนี้ ในการแก้ไขเวลาและวันที่บน RTC เราจำเป็นต้องแก้ไข Date & Time ในระบบก่อน จากนั้นจึงทำการแก้ไข RTC ให้เรียกใช้:

sudo date -s "29 ส.ค. 1997 13:00:00"

และแน่นอน ให้เปลี่ยนวันที่และเวลาตามเวลาท้องถิ่นและวันที่ของคุณ ก่อนที่คุณจะกด Enter เมื่อคุณได้รับสิทธิ์ Rpi แล้ว ให้เรียกใช้สิ่งต่อไปนี้เพื่อบันทึกวันที่และเวลาใน RTC:

sudo hwclock -w

อ่าาา แค่นั้นแหละ! คุณสามารถตรวจสอบว่ามันทำงานโดย hwclock -r และดูว่าวันที่บน RTC นั้นถูกต้องหรือไม่ จากนั้นถอด rpi ออกจากอินเทอร์เน็ตแล้วปิดเครื่องสักครู่แล้วเปิดใหม่อีกครั้งและดูว่าถูกต้องหรือไม่ เวลาและวันที่. คุณทำเสร็จแล้ว!

คู่มือฉบับเต็มเกี่ยวกับวิธีการตั้งค่าโมดูล RTC สามารถพบได้ที่นี่

www.raspberrypi-spy.co.uk/2015/05/adding-a-ds3231-real-time-clock-to-the-raspberry-pi/

ขั้นตอนที่ 9: บทที่ 3: การสร้างโปรแกรม Azan Alarm

บทที่ 3: การสร้างโปรแกรม Azan Alarm
บทที่ 3: การสร้างโปรแกรม Azan Alarm

การทำนาฬิกาเป็นสิ่งหนึ่ง แน่นอน เราสามารถมองดูนาฬิกาและเวลาละหมาดและดูว่าเวลานั้นมาถึงเมื่อใด แต่จะดีกว่านี้ถ้าเราสามารถเพิ่มเสียงเตือนเพื่อแจ้งเวลาละหมาดให้เราทราบได้ ดียิ่งขึ้นไปอีก เราส่งเสียงเตือนเป็นเสียงของ AZAN! มาดูกันว่าเราจะทำสำเร็จได้อย่างไร

สำหรับการเขียนโปรแกรมของเรา เราจะใช้ python เป็นภาษาการเขียนโปรแกรมที่เราต้องการ เนื่องจาก python เข้ากันได้ดีกับ RaspberryPi ในการสร้างไฟล์โค้ดใน python เราทำเหมือนกับการเปิดไฟล์ข้อความ แต่ตอนนี้เราบันทึกเป็น.py ในการรันโปรแกรม เราต้องติดตั้ง python environment ของ raspbery โชคดีที่ Raspbian มาพร้อมกับ python และ python3 ที่ติดตั้งไว้ล่วงหน้า! สิ่งที่เราต้องทำคือการเขียนโปรแกรม ในคู่มือนี้ เราจะไม่พูดถึงภาษาและสอนวิธีการทำงานและฟังก์ชันต่างๆ แต่ฉันจะให้รหัสที่จำเป็นแก่คุณเพื่อให้คุณสามารถสร้างโครงการได้

ในการเริ่มต้น เราต้องการไฟล์เสียงของเสียง azan ที่เราต้องการ (ใน. WAV) เราต้องการสองไฟล์ ไฟล์หนึ่งสำหรับ al-fajr azan และอีกไฟล์สำหรับ azan ปกติ เมื่อคุณได้รับแล้วให้ใส่ลงในไดรฟ์แบบแท่งแล้วคัดลอกบนเดสก์ท็อปของ raspberrypi

ตอนนี้เรามีไฟล์แล้ว ฉันกำลังมองหาวิธีเล่นไฟล์เสียงบน raspberryPi และฉันประหลาดใจที่ มีวิธีไม่มากที่ฉันสามารถทำได้ แต่ฉันพบคำตอบนี้ใน stackoverflow ที่ให้สิ่งที่ฉันต้องการ

stackoverflow.com/questions/20021457/playi…

ฉันทดสอบวิธีการนั้นและได้ผล! มาดูกันว่าเราจะนำวิธีนี้ไปใช้ในโครงการของเราได้อย่างไร…

ขั้นตอนที่ 10: 3-1: มาเล่นเสียงกันเถอะ

3-1: มาเล่นเสียงกันเถอะ!
3-1: มาเล่นเสียงกันเถอะ!

ขั้นแรก ไปที่เดสก์ท็อปโดย:

cd Desktop

จากนั้นสร้างไฟล์โค้ด python ใหม่โดย:

sudo nano AzanPlay.py

สิ่งนี้จะสร้างไฟล์ใหม่ชื่อ AzanPlay โดยมีนามสกุลเป็นไฟล์ python.py เราจะมีหน้าจอสีดำว่างเปล่าเพื่อให้เราสามารถเขียนโค้ดของเราได้ เพียงเขียนบรรทัดเหล่านี้ (ระวังอย่าเปลี่ยนการเยื้องหรือการเว้นวรรค เนื่องจากสิ่งนี้มีความสำคัญอย่างมากใน python):

จากเครื่องผสมนำเข้า pygame

mixer.init() mixer.music.load('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play() while mixer.music.get_busy() == True: ทำต่อ

โดยที่ /Desktop/ คือที่ที่คุณใส่ไฟล์เสียงของคุณ และ 'Adhan-Makkah.wav' คือไฟล์เสียงของฉัน ซึ่งเป็นไฟล์เสียง Azan ในมักกะห์

ตอนนี้เพื่อทดสอบโค้ดของเรา เรารันด้วย python โดยพิมพ์:

หลาม AzanPlay.py

และคุณจะมีเสียงที่เหี่ยวเฉาจากจอ LCD HDMI หรือพอร์ต AUX ที่อยู่บน Raspberrypi หากคุณไม่ได้ยินจากลำโพง LCD ให้เสียบหูฟังเข้ากับ AUX แล้วตรวจสอบ

ขั้นตอนที่ 11: 3-2: รับเวลาละหมาด

3-2: รับเวลาละหมาด
3-2: รับเวลาละหมาด

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

praytimes.org/

ดังนั้น เราจะใช้ไฟล์ที่ยอดเยี่ยมเหล่านี้เพื่อรับเวลาละหมาดของเราและนำไปใช้ในระบบ ขั้นแรก ดาวน์โหลดรหัสจากเว็บไซต์และใส่ไว้ในโฟลเดอร์ /adhan/ (เราต้องการทั้งรหัส JS และ Python)

ตอนนี้ ไปที่โฟลเดอร์นั้นและทดสอบไลบรารี่ และสิ่งที่สามารถทำได้:

cd adhan

ที่นั่นเราต้องสร้างไฟล์ทดสอบใหม่ใน python เพื่อให้เราสามารถทดสอบฟังก์ชันได้:

sudo nano testAd.py

ข้างในเขียนรหัสนี้:

นำเข้าเวลาละหมาด

จากวันที่นำเข้าวันที่ tmm = PrayTimes().getTimes(date.today(), [LONGTITUDE, LATITUDE], GMT) พิมพ์ (tmm)

ก่อนบันทึกไฟล์ คุณต้องเปลี่ยน LATITUDE ด้วยตำแหน่ง Latitude ของคุณ เช่นเดียวกับ LONGTITUDE และเปลี่ยน GMT เป็นเขตเวลาของคุณ ในกรณีของฉันมันจะเป็น:

tmm = PrayTimes().getTimes(date.today(), [21.3236, 39.1022], 3)

พิมพ์ (tmm)

สุดท้าย CTRL-S และ CTRL-X จากนั้นรันโค้ด:

python testAd.py

ในที่สุด คุณจะได้รับเวลาละหมาดคืนสำหรับวันนี้ สำหรับตำแหน่งของคุณ

{'isha': '18:58', 'asr': '15:22', 'พระอาทิตย์ตก': '17:43', 'dhuhr': '12:17', 'maghrib': '17:43', 'imsak': '05:23', 'midnight': '00:17', 'พระอาทิตย์ขึ้น': '06:52', 'fajr': '05:33'}

ยอดเยี่ยม! ตอนนี้เราได้เวลาละหมาดแล้ว และตอนนี้เรารู้วิธีเล่นเสียงแล้ว มารวมรหัสทั้งสองนี้เข้าด้วยกันเป็นรหัสหลักเดียว

ขั้นตอนที่ 12: 3-3: การสร้างรหัสเตือนภัย Azan สุดท้าย

เราเรียนรู้วิธีรับเวลาละหมาดที่ถูกต้องตามตำแหน่งของเราและวิธีเล่นเสียง Azan โดยการทำตามสองรหัสก่อนหน้านี้ ตอนนี้ เราจะรวมสองรหัสนี้เป็นรหัสเดียวที่เราจะใช้เป็นโครงการสุดท้ายของเรา และรหัสนี้จะทำงานในพื้นหลัง เมื่อถึงเวลา Azan มันจะเล่นเสียง Azan

ฉันเขียนโค้ดทั้งหมดแล้ว คุณสามารถคัดลอกและวาง และทำการเปลี่ยนแปลงของคุณเองตามที่เห็นสมควร รหัสคือ:

เวลานำเข้า

จาก pygame นำเข้าตัวผสม นำเข้าสตริงนำเข้าเวลาละหมาดจากวันที่นำเข้าเวลาในขณะที่ (1): tmm = PrayTimes. PrayTimes().getTimes(date.today(), [21.3236, 39.1022], 3) FAJR=tmm['fajr'] DHUHR =tmm['dhuhr'] ASR=tmm['asr'] MAGHRIB=tmm['maghrib'] ISHA=tmm['isha'] tempT= time.strftime(str('%H')) currTime= tempT tempT= time.strftime(str('%M')) currTime= currTime +':'+ tempT ถ้า currTime == FAJR: mixer.init() mixer.music.load('/home/pi/Desktop/Adhan-fajr. wav') mixer.music.play() ในขณะที่ mixer.music.get_busy() == True: ดำเนินการต่อหาก currTime == DHUHR: mixer.init() mixer.music.load('/home/pi/Desktop/Adhan- Makkah.wav') mixer.music.play() ในขณะที่ mixer.music.get_busy() == True: ดำเนินการต่อถ้า currTime == ASR: mixer.init() mixer.music.load('/home/pi/Desktop/ Adhan-Makkah.wav') mixer.music.play() ในขณะที่ mixer.music.get_busy() == True: ดำเนินการต่อ if currTime == MAGHRIB: mixer.init() mixer.music.load('/home/pi/ Desktop/Adhan-Makkah.wav') mixer.music.play() ในขณะที่ mixer.music.get_busy() == True: ดำเนินการต่อหาก currTime == ISHA: mixer.init() mixer.music.load('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play() while mixer.music.get_busy() == True: ทำต่อ

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

ขั้นตอนที่ 13: บทที่ 4: การใช้หน้าปัดนาฬิกา

บทที่ 4: การใช้หน้าปัดนาฬิกา
บทที่ 4: การใช้หน้าปัดนาฬิกา
บทที่ 4: การใช้หน้าปัดนาฬิกา
บทที่ 4: การใช้หน้าปัดนาฬิกา
บทที่ 4: การใช้หน้าปัดนาฬิกา
บทที่ 4: การใช้หน้าปัดนาฬิกา
บทที่ 4: การใช้หน้าปัดนาฬิกา
บทที่ 4: การใช้หน้าปัดนาฬิกา

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

น่าเสียดายที่ในขณะที่เขียนคำสั่งนี้ ความรู้และประสบการณ์ของฉันใน HTML นั้นจำกัดมาก ดังนั้นฉันจะไม่พูดถึงรายละเอียดมากนักเพราะฉันรู้ดีว่าฉันจะทำอะไรในทางที่ผิด และฉันไม่ได้ ต้องการทำให้คนสับสน แต่ถ้าคุณมีประสบการณ์เพียงเล็กน้อยใน JS และ HTML คุณควรรู้วิธีดำเนินการต่อจากจุดนี้ จนถึงตอนนี้ฉันได้ทำหน้าเดียว (หน้าสีฟ้า) แผนคือสร้าง 14 หน้าปัด! 7 ใบหน้าสำหรับทุกวันในสัปดาห์ และอีก 7 หน้าเป็นธีมอื่น เนื่องจากธีมแรกควรจะเป็นธีม Azkar และอีกธีมหนึ่งควรมี GIFS แบบอิสลามแทนที่จะเป็น Azkar ไม่ว่าฉันจะรวมการออกแบบทั้งหมดไว้ในคำแนะนำนี้เพื่อให้คุณสามารถดาวน์โหลดได้

ขั้นตอนที่ 14: บทที่5: การใช้อินเทอร์เฟซผู้ใช้

บทที่5: การใช้อินเทอร์เฟซผู้ใช้
บทที่5: การใช้อินเทอร์เฟซผู้ใช้

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

ในการทำเช่นนี้ เราจะใช้ไลบรารี python GUI ชื่อ "TKinter"

นี่คือรหัสที่ฉันใช้เพื่อให้ตัวเลือกแก่ฉันในการเลือกระหว่างห้าเมืองในซาอุดิอาระเบีย รวมถึงมักกะห์:

นำเข้า tkinter เป็น tk

จากการนำเข้า tkinter * จากการนำเข้า tkinter ttk การนำเข้าตัวแปลงสัญญาณนำเข้า os คลาส karl (เฟรม): def _init_ (ตัวเอง): tk. Frame._init_(ตนเอง) self.pack() self.master.title ("เวลา Azan") ตนเอง button1 = ปุ่ม (ตัวเอง, ข้อความ = "เจดดาห์", ความสูง=5, ความกว้าง = 80, คำสั่ง = self.open_jeddah1) self.button2 = ปุ่ม (ตัวเอง, ข้อความ = "มักกะห์", ความสูง=5, ความกว้าง = 80, คำสั่ง = self.open_makkah1) self.button3 = ปุ่ม (ตัวเอง, ข้อความ = "ริยาด", ความสูง=5, ความกว้าง = 80, คำสั่ง = self.open_riyadh1) self.button4 = ปุ่ม (ตัวเอง, ข้อความ = "Madina", ความสูง=5, ความกว้าง = 80 คำสั่ง = self.open_madina1) self.button5 = ปุ่ม (ตัวเอง ข้อความ = "Qasim" ความสูง = 5 ความกว้าง = 80 คำสั่ง = self.open_qasaim1) self.button1.grid (แถว = 0, คอลัมน์ = 1, columnspan = 2, เหนียว = W+E+N+S) self.button2.grid(แถว = 1, คอลัมน์ = 1, columnspan = 2, เหนียว = W+E+N+S) self.button3.grid(แถว = 2, คอลัมน์ = 1, คอลัมน์สแปน = 2, ปักหมุด = W+E+N+S) self.button4.grid(แถว = 3, คอลัมน์ = 1, คอลัมน์สแปน = 2, เหนียว = W+E+N+S) self.button5.grid(แถว = 4, คอลัมน์ = 1, คอลัมน์สแปน = 2, เหนียว = W+E+N+S) def open_jeddah1(ตัวเอง): order = "sudo chromium-browser /home/pi/Desktop/Cities/jeddah/Sunday1.html --start-fullscreen --no-sandbox " os.system (คำสั่ง) def open_makkah1 (ตัวเอง): order = "sudo chromium-browser /home/pi/Desktop/Cities/makkah/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (สั่งซื้อ) def open_riyadh1(ตัวเอง): สั่งซื้อ = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order)) def open_madina1(ตัวเอง): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system(order) def open_qasaim1(ตัวเอง): order = "sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system(order) def main(): karl().mainloop() ถ้า _name_ == '_main_': main()

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

ขั้นตอนที่ 15: (ไม่บังคับ): การเพิ่มสวิตช์ลำโพง

(ไม่บังคับ): การเพิ่มสวิตช์ลำโพง
(ไม่บังคับ): การเพิ่มสวิตช์ลำโพง
(ไม่บังคับ): การเพิ่มสวิตช์ลำโพง
(ไม่บังคับ): การเพิ่มสวิตช์ลำโพง

ดังที่เราเห็น เมื่อเวลาละหมาดมาถึง เสียง Azan จะเล่น และเสียงจะออกมาจากเอาต์พุตเสียงเริ่มต้น (เอาต์พุต HDMI หรือ AV) และเนื่องจากเราวางบนเอาต์พุต HDMI เสียงจึงมาจาก LCD แต่ถ้าเสียง LCD ของเราไม่เพียงพอล่ะ ตัวอย่างเช่น ถ้าหากเราต้องการนำสิ่งนี้ไปใช้ในมัสยิดจริง ๆ ล่ะ? กับลำโพงนอกแบบไวด์? จากนั้นเราก็เพิ่มขั้นตอนง่ายๆ อีกขั้นตอนหนึ่งเพื่อให้บรรลุเป้าหมายนั้นได้ สำหรับระบบเสียงของลำโพงที่สร้างไว้แล้ว เราต้องเปิดและปิดเท่านั้น และนำไมโครโฟนที่มีอยู่แล้วมาวางไว้ข้างลำโพง LCD

การทำเช่นนั้นเป็นเรื่องง่าย เราจะใช้ไมโครโฟนของมัสยิดที่มีอยู่แล้วซึ่งเชื่อมต่อกับลำโพง เราเพียงต้องการ raspberryPi เพื่อควบคุมพลังงานที่จะเปิดและปิดระบบเสียงทั้งหมด ในการทำเช่นนั้น เราจะต้องใช้ SSR: SOLID STATE RELAY รีเลย์ประเภทนี้สามารถทำหน้าที่เป็นสวิตช์ได้ เช่นเดียวกับรีเลย์สีน้ำเงินทั่วไป ความแตกต่างคือ SSR สามารถทนต่อกระแสไฟ AC จำนวนมากผ่านมันได้ ซึ่งใช้ไม่ได้กับรีเลย์สีน้ำเงิน (โดยปกติสูงสุด 10A) และ SSR ต้องการ มีเพียงสองสายแทนที่จะเป็น 3: DC+ และ DC- เท่านั้น! อีกด้านหนึ่งของ SSR เราสามารถต่อสายไฟของระบบลำโพงได้ ด้วยวิธีนี้ เมื่อเราให้แรงดันไฟฟ้ากับ SSR มันก็จะปิดวงจรไฟฟ้ากระแสสลับของระบบลำโพง หรือเราปิดแรงดันไฟฟ้าเพื่อทำวงจรเปิด ปิดลำโพง

มีสิ่งหนึ่งที่จับได้คือพิน RaspberryPi ส่งออก 3.3v ไม่ใช่ 5v ที่เราจำเป็นต้องควบคุม SSR ดังนั้นเราจึงต้องใช้ทรานซิสเตอร์เพื่อรับสัญญาณจากพิน RPi และ 5V จากพิน RPi 5v ในการทำเช่นนั้น เราต้องการ:

1-Solid State Relay (อะไรก็ได้ที่สูงกว่า 25A)

2-2n2222 npn ทรานซิสเตอร์

ตัวต้านทาน 3-220ohm

ทำตามวงจร fritzing เพื่อเชื่อมต่อ

ตอนนี้ในโค้ด เราจะเพิ่มบางสิ่งที่ทำให้สิ่งนี้ใช้งานได้ ก่อนอื่น ก่อนการวนรอบ while เราจะเพิ่มบางบรรทัดเพื่อเริ่มต้นพิน GPIO:

ในส่วนการนำเข้า ให้เพิ่ม:

นำเข้า RPi. GPIO เป็น GPIO

ก่อน while loop ให้เพิ่ม:

GPIO.setmode(GPIO. BOARD)GPIO.setwarnings(False) รีเลย์ = 40 GPIO.setup(ledPin, GPIO. OUT)

ตอนนี้ ใน while loop สำหรับทุกคำสั่ง play Azan เราจำเป็นต้องเปิดรีเลย์ รอ 10 วินาที เล่น Azan ให้เสร็จ แล้วปิดรีเลย์ เราจำเป็นต้องเพิ่มสองบรรทัดเท่านั้น อันแรกคือ:

GPIO.output(ledPin, GPIO.สูง)

เวลานอน(10)

ควรเพิ่มสิ่งนี้หลังจากทุก ๆ if คำสั่ง (IDENTATION IS IMPORTANT!) อีกบรรทัดหนึ่งคือ:

GPIO.output(ledPin, GPIO. LOW)

ควรเพิ่มรายการนี้หลังบรรทัด "ดำเนินการต่อ" ควรมีลักษณะเช่นนี้ทุกครั้งที่ Azan:

ถ้า currTime == FAJR:

GPIO.output(ledPin, GPIO. HIGH) time.sleep(10) mixer.init() mixer.music.load('/home/pi/Desktop/Adhan-fajr.wav') mixer.music.play() while mixer.music.get_busy() == True: ดำเนินการต่อ GPIO.output(ledPin, GPIO. LOW)

แนะนำ: