Mục lục:

RaspberryPi Muslim Prayers Watch & Alarm: 15 bước (có hình ảnh)
RaspberryPi Muslim Prayers Watch & Alarm: 15 bước (có hình ảnh)

Video: RaspberryPi Muslim Prayers Watch & Alarm: 15 bước (có hình ảnh)

Video: RaspberryPi Muslim Prayers Watch & Alarm: 15 bước (có hình ảnh)
Video: Tôi đã thâm nhập Daesh ở Pháp 2024, Tháng sáu
Anonim
RaspberryPi Hồi giáo cầu nguyện theo dõi và báo thức
RaspberryPi Hồi giáo cầu nguyện theo dõi và báo thức
RaspberryPi Hồi giáo cầu nguyện theo dõi và báo thức
RaspberryPi Hồi giáo cầu nguyện theo dõi và báo thức

Người Hồi giáo trên khắp thế giới có năm lần cầu nguyện mỗi ngày, và mỗi lần cầu nguyện phải vào một thời điểm nhất định trong ngày. bởi vì cách hành tinh của chúng ta di chuyển xung quanh mặt trời, khiến cho thời gian mặt trời mọc và lặn khác nhau trong năm, điều đó cũng làm cho thời gian cầu nguyện không ổn định, đó là lý do tại sao chúng ta cần một chiếc đồng hồ Hồi giáo để nhắc nhở những người Hồi giáo về thời gian cầu nguyện của chúng ta. ngày.

Mọi người Hồi giáo đều có cách truy cập thời tiết thời gian cầu nguyện hàng ngày thông qua Internet các trang web Hồi giáo, lịch Hồi giáo địa phương hoặc thậm chí qua TV và hầu hết chúng ta đều có các thiết bị đồng hồ Hồi giáo có tính năng cho chúng ta thời gian cầu nguyện, cũng như báo thức cầu nguyện. Nhưng điều gì sẽ xảy ra nếu chúng ta tự làm thiết bị Báo động và Đồng hồ Cầu nguyện!

Trước khi bắt đầu làm việc với dự án, có một số cân nhắc có thể hữu ích cho bạn khi đọc Tài liệu hướng dẫn này. Tôi đang sống ở Ả-rập Xê-út nên một số bước và giá trị của tôi sẽ khác với bạn, và tôi sẽ chỉ rõ những điều đó trong quá trình làm việc. Có các bước và hình ảnh có thể bao gồm các từ tiếng Ả Rập vì tôi đã tạo giao diện bằng tiếng Ả Rập, nhưng tôi cũng sẽ chỉ ra cách tạo nó bằng tiếng Anh, vì vậy đừng để các từ tiếng Ả Rập trong hình ảnh làm bạn lo lắng, dự án này có thể được thực hiện bằng bất kỳ ngôn ngữ nào (thật tuyệt vời !: D) Cũng xin thứ lỗi về lỗi chính tả của tôi vì tiếng Anh không phải là ngôn ngữ mẹ đẻ của tôi.

Về dự án của chúng tôi! Dự án này sẽ được chia thành X các bước chính, mà vào cuối bước thứ X, chúng ta sẽ có dự án của mình tốt đẹp và sẵn sàng! Các bước sẽ như sau:

1-Định cấu hình và chuẩn bị RaspberryPi

2-Cài đặt Mô-đun RTC

3-Tạo chương trình Azan Alarm

4-Thực hiện các mặt đồng hồ

5-Tạo Giao diện Người dùng và.

Như mọi dự án, trước tiên chúng ta cần chuẩn bị những phần việc cần thiết. những phần mà chúng tôi cần cho dự án này là:

Bộ máy tính 1-RaspberryPi Amazon US || Amazon KSA

Bạn có thể sử dụng bất kỳ phiên bản Rpi nào, chỉ cần đảm bảo rằng nó có Wifi. Tôi đã sử dụng Rpi3B +

Mô-đun đồng hồ thời gian thực 2-RTC Amazon US || Amazon KSA

Bạn có thể sử dụng bất kỳ mô hình mô-đun RTC nào, chỉ cần đảm bảo rằng nó có I2C

Màn hình 3-LCD

Bất kỳ màn hình LCD nào cũng sẽ làm được

4-Chuột và bàn phím

và đó là….. IT !! Đó là tất cả những gì bạn cần để tạo đồng hồ Azan và báo thức của riêng mình

Bước 1: Chương 1: Thiết lập và cấu hình RaspberryPI

Chương 1: Thiết lập và cấu hình RaspberryPI
Chương 1: Thiết lập và cấu hình RaspberryPI

Những điều đầu tiên Đầu tiên! Chúng ta cần chuẩn bị Raspberry pi để làm việc với nó.

Raspberry pi không là gì ngoài một chiếc máy tính, nó có RAM và ROM, nó có CPU, GPU, I / O ……. Một máy tính! giống như cái mà chúng ta chơi trò chơi và duyệt web, chỉ có điều chính là nó rất nhỏ! điều này làm cho mâm xôi trở thành một lựa chọn rất tốt để lập và thực hiện các dự án trên. bởi vì raspberry pi nhỏ, nó có thông số kỹ thuật rất hạn chế, nó không thể hoạt động một hệ điều hành yêu cầu lớn như windows hoặc macOS, thay vào đó, chúng tôi sẽ sử dụng Linux làm hệ điều hành để sử dụng thiết bị. Có hàng nghìn, nếu không phải hàng chục nghìn bản phân phối Linux mà chúng ta có thể sử dụng, nhưng một bản phân phối hoàn hảo được tối ưu hóa hoàn hảo dành riêng cho raspberrypi mà chúng ta sẽ sử dụng, được gọi là Raspbian.

Bước 2: 1-1: Tải xuống tệp tin cần thiết

1-1: Tải xuống các tệp cần thiết
1-1: Tải xuống các tệp cần thiết
1-1: Tải xuống tệp cần thiết
1-1: Tải xuống tệp cần thiết
1-1: Tải xuống các tệp cần thiết
1-1: Tải xuống các tệp cần thiết

-Truy cập trang Tải xuống Rasbian chính thức tại https://www.raspberrypi.org/software/operating-sy… và tải xuống Hệ điều hành Raspberry Pi với tệp Máy tính để bàn

-Trong khi tải xuống, hãy truy cập https://win32diskimager.org/ và tải xuống và cài đặt win32DiskImager, bạn có thể sử dụng bất kỳ phần mềm ghi ảnh nào mà bạn thích

khi quá trình tải xuống hoàn tất, bạn sẽ có một tệp.img chứa Hệ điều hành RaspberryPi. tiếp theo, cắm thẻ nhớ SD của bạn vào máy tính (thường có đầu đọc thẻ USB) và khởi chạy phần mềm win32diskimager. các bước để ghi hình ảnh vào bộ nhớ SD rất đơn giản, bạn chỉ cần 1- Chọn ký tự bộ nhớ của bạn 2-chọn các tệp hệ điều hành mà bạn đã tải xuống và 3-Nhấp vào ghi! Đảm bảo rằng bạn đã chọn đúng ký tự thiết bị từ danh sách và bộ nhớ của bạn trống, vì bằng cách nhấn ghi, bạn sẽ nhận được cảnh báo cho bạn biết rằng mọi thứ trên thiết bị sẽ bị xóa! Nhấn có để xác nhận việc ghi và đợi cho đến khi hoàn tất. quá trình này có thể mất đến 20 phút.

Sau khi hoàn tất, bạn sẽ có đầy đủ Hệ điều hành Rapbian trong bộ nhớ, bạn có thể tiếp tục và đặt nó vào Rapberry Pi, kết nối Raspberry Pi với màn hình thông qua HDMI, kết nối chuột và bàn phím qua USB và cuối cùng, kết nối sức mạnh.

Bước 3: 1-2: Định cấu hình Hệ thống Raspbian

Sau khi kết nối cáp và nguồn, bạn sẽ thấy rằng hệ điều hành đã được bật, nó sẽ tự động khởi động lại và sau đó nó sẽ hiển thị Giao diện người dùng Raspbian (trông tương tự như windows). Điều đầu tiên bạn sẽ thấy là một cửa sổ chào mừng, sẽ đưa bạn qua các bước cấu hình RaspberryPi của bạn lần đầu tiên. các cửa sổ và các bước sẽ như sau:

1-Nhấn tiếp theo trên cửa sổ "Chào mừng" đầu tiên

2-Cửa sổ tiếp theo sẽ là cấu hình vị trí của bạn. chọn Quốc gia, ngôn ngữ và múi giờ của bạn. sau đó, bạn nên chọn "Sử dụng ngôn ngữ tiếng Anh" vì đây sẽ là ngôn ngữ giao diện Hệ điều hành. BẠN PHẢI KIỂM TRA "HỘP BÀN PHÍM TIẾNG ANH CỦA CHÚNG TÔI" CHÚNG TÔI CẦN BÀN PHÍM TIẾNG ANH ĐỂ LÀM VIỆC!

3-Tiếp theo, bạn sẽ được yêu cầu nhập mật khẩu cho mâm xôi của mình, điều này rất quan trọng để bảo mật nhưng chúng tôi sẽ giữ nguyên mật khẩu cho dự án này. lưu ý rằng Tên người dùng và mật khẩu mặc định là:

tên người dùng: pi

mật khẩu: raspberry

4-Cửa sổ tiếp theo sẽ kết nối raspberryPi với mạng WiFi của bạn. chọn tên wifi của bạn và nhập mật khẩu wifi của bạn

5-tiếp theo, bạn sẽ được yêu cầu cập nhật các thư viện pi raspberry và các tệp hệ thống. Bước này sẽ mất rất nhiều thời gian (có thể tính bằng giờ) nhưng đây là bước rất quan trọng đối với mỗi lần thiết lập raspberry pi mới.

6-sau khi cập nhật xong, bạn sẽ được yêu cầu khởi động lại hệ thống. làm điều đó ngay bây giờ.

Công việc tuyệt vời! Bây giờ chúng ta có một hệ thống được cập nhật, chúng ta vẫn cần thực hiện thêm một số thứ để cấu hình hệ thống hoạt động, nhưng bây giờ, sẽ bắt đầu sử dụng Dòng LinuxCommand.

Bước 4: 1-3: Sử dụng dòng lệnh để thiết lập cài đặt Rpi

1-3: Sử dụng dòng lệnh để thiết lập cài đặt Rpi
1-3: Sử dụng dòng lệnh để thiết lập cài đặt Rpi
1-3: Sử dụng dòng lệnh để thiết lập cài đặt Rpi
1-3: Sử dụng dòng lệnh để thiết lập cài đặt Rpi
1-3: Sử dụng dòng lệnh để thiết lập cài đặt Rpi
1-3: Sử dụng dòng lệnh để thiết lập cài đặt Rpi

Khi bạn hoàn tất quá trình khởi động lại từ bản cập nhật hệ thống, hệ thống sẽ hiển thị màn hình người dùng sau khi khởi động xong. bây giờ nếu bạn nhìn vào phía trên bên trái của màn hình, bạn sẽ thấy một số nút, một nút có Logo raspberryPi là nút menu Rpi, hình quả địa cầu là trình duyệt internet, nút thư mục là…..folders và cuối cùng là nút có cửa sổ màn hình đen, đây là nút quan trọng nhất trong bất kỳ hệ thống linux nào, Dòng lệnh. tiếp tục và nhấn nút đó, bạn sẽ thấy một cửa sổ màu đen hiện lên.

Dòng lệnh là cách mọi người tương tác và sử dụng hệ thống linux, giống như windows có dòng lệnh riêng chỉ trong các widget mà chúng ta không cần sử dụng thường xuyên. trong linux, đó là điều cơ bản mà mọi người dùng linux phải học và thành thạo. dòng lệnh có thể được sử dụng bởi…. COMMANDS! những gì bạn thấy trong cửa sổ màu đen là dấu nhắc lệnh chờ lệnh được người dùng viết và thực thi. trong hướng dẫn này, chúng tôi sẽ cung cấp tất cả các lệnh mà bạn cần để thực hiện dự án này, vì vậy đừng lo lắng.

lệnh Linux đầu tiên mà chúng ta sẽ sử dụng là một lệnh cấu hình khác, lưu ý rằng tất cả các lệnh từ bây giờ trở đi sẽ được đặt bên trong một hộp mã, vì vậy bạn có thể phân biệt nó với các bước thông thường. Mang theo bàn phím của bạn và nhập nội dung sau và nhấn enter:

sudo raspi-config

Nếu làm đúng cách, bạn sẽ thấy màn hình chuyển sang màu xanh lam, với ô nhỏ màu xám ở giữa (xem hình). chúng tôi sẽ sử dụng nó để tạo cấu hình cuối cùng trước khi bắt đầu viết mã.

bây giờ, bạn sẽ cần sử dụng các phím mũi tên trên bàn phím để điều hướng menu này.

1-Đi tới Tùy chọn giao diện >> I2C >> CÓ >> nhấn enter. điều này cho phép giao thức truyền thông I2c để chúng tôi có thể sử dụng RTC

2-Đi tới Tùy chọn nâng cao >> Mở rộng hệ thống tệp.

và đó là tất cả cấu hình bạn cần từ cửa sổ này. trên trang chính, đi xuống và nhấn enter trên "finish" và "YES" để khởi động lại hệ thống.

Sau khi hệ thống khởi động lại xong, chúng ta đã hoàn tất việc cấu hình! thiết bị đã sẵn sàng cho những bước tiến lớn! Bước tiếp theo sẽ là cài đặt mô-đun RTC và sử dụng nó với hệ thống.

Bước 5: Chương 2: Gắn kết, cấu hình và sử dụng mô-đun RTC

Chương 2: Gắn kết, cấu hình và sử dụng mô-đun RTC
Chương 2: Gắn kết, cấu hình và sử dụng mô-đun RTC
Chương 2: Gắn kết, cấu hình và sử dụng mô-đun RTC
Chương 2: Gắn kết, cấu hình và sử dụng mô-đun RTC
Chương 2: Gắn kết, cấu hình và sử dụng mô-đun RTC
Chương 2: Gắn kết, cấu hình và sử dụng mô-đun RTC
Chương 2: Gắn kết, cấu hình và sử dụng mô-đun RTC
Chương 2: Gắn kết, cấu hình và sử dụng mô-đun RTC

Mô-đun RTC (hoặc Đồng hồ thời gian thực) là một thiết bị nhỏ có một ít pin, nó hoạt động đúng như tên gọi, Đồng hồ! vì vậy khi bạn ngắt kết nối nó để cung cấp năng lượng cho đồng hồ vẫn tiếp tục hoạt động và không dừng lại. Tại sao chúng ta cần điều này? tốt, raspberry pi thực sự không có phương pháp lưu trữ dữ liệu đồng hồ sau khi tắt nguồn, nó dựa vào kết nối internet khi khởi động để cập nhật ngày và giờ, nhưng vấn đề là chúng ta không phải lúc nào cũng có thể truy cập internet và điều này là lý do tại sao chúng ta cần mô-đun RTC. RTC sẽ hoạt động như một đồng hồ cho raspberry pi vì vậy khi Rpi được khởi động, nó sẽ lấy Ngày & Giờ từ RTC, điều này sẽ giữ cho thời gian RaspberryPi luôn được cập nhật.

có nhiều mô hình và tìm kiếm RTC, có DS1307 và DS3231. bạn có thể sử dụng bất kỳ mô-đun RTC nào mà bạn tìm thấy miễn là nó có giao tiếp giao thức I2C (bạn có thể chỉ ra điều này là bạn có thể tìm thấy các chân SDA và SCL trên các chân của mô-đun.

giống như bất kỳ điều gì trong hướng dẫn này, tôi đã sử dụng các hướng dẫn khác để đạt được mục tiêu của mình trong dự án, hướng dẫn này sẽ hướng dẫn bạn và cho bạn biết chính xác những gì cần làm để thực hiện dự án này, nhưng nếu bạn cần sửa đổi hoặc bạn cần tìm hiểu sâu hơn về bất kỳ các bước, tôi sẽ liên kết hướng dẫn hiệu quả hơn ở cuối mỗi bước.

Khi bạn đã chuẩn bị xong mô-đun RTC (hàn các chân tiêu đề và lắp pin vào), bạn có thể kết nối nó với các chân RapberryPi như sau:

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

GND ===========> Mã PIN 6 (GND)

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

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

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

hoặc tùy thuộc vào mô-đun RTC bạn có, bạn có thể gắn nó trực tiếp trên RaspberryPi (Đảm bảo các chân cắm chính xác !!! vì bạn có thể làm hỏng Rpi / RTC nếu không)

Khi bạn đã kết nối RTC, hãy cấu hình Raspberry.

Bước 6: 2-1: Thiết lập mô-đun

2-1: Thiết lập mô-đun
2-1: Thiết lập mô-đun
2-1: Thiết lập mô-đun
2-1: Thiết lập mô-đun

Trước khi bắt đầu, hãy chuyển đến dòng lệnh và nhập:

ngày

Thao tác này sẽ cung cấp lại ngày và giờ hiện tại trên Raspberry, hãy lưu ý lệnh rất hữu ích đó và ghi lại ngày và giờ hiện tại để chúng ta có thể kiểm tra xem mô-đun có hoạt động hay không.

bây giờ, hãy bắt đầu thiết lập, nhập dòng sau để cập nhật thư viện Rpi, mỗi dòng một:

sudo apt-get cập nhật

nâng cấp sudo apt-get -y

sau khi hoàn tất, chúng tôi cần sửa đổi các tệp hệ thống để kích hoạt mô-đun i2c và thêm RTC, để sửa đổi hệ thống tệp, chúng tôi sẽ sử dụng một phần mềm có tên là Nano. nano là một phần mềm tích hợp nhẹ về cơ bản là một trình soạn thảo văn bản, giống như một phần mềm trong các widget. vì vậy bất kỳ lệnh nào bắt đầu bằng nano theo sau là tên tệp, sẽ mở tệp đó trong trình soạn thảo văn bản nano. bạn đã nhận thấy rằng chúng tôi cũng đã sử dụng một thứ gọi là Sudo, nói ngắn gọn, sudo hoạt động giống như một sự đảm bảo cho hệ thống linux cho hệ thống biết rằng người dùng thực hiện lệnh đó là Chủ sở hữu thiết bị chứ không phải ai khác và cung cấp các đặc quyền như chỉnh sửa / xóa cho người dùng. ví dụ: nếu chúng tôi đã mở một tệp nano mà không có sudo, chúng tôi có thể xem tệp đó, nhưng chúng tôi không thể chỉnh sửa hoặc xóa tệp đó.

bây giờ, chúng tôi cần sửa đổi tệp mô-đun, chúng tôi có thể thực hiện việc này bằng cách nhập:

sudo nano / etc / modules

khi bạn làm điều đó, bạn sẽ tìm thấy nội dung của tệp đó (xem hình). sử dụng các phím mũi tên để đặt con trỏ ở cuối văn bản và thêm các phím sau:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

nhấn CTRL + S để lưu và CTRL + X để thoát

Bước 7: 2-2: Giao diện I2C

2-2: Giao diện I2C
2-2: Giao diện I2C

Bây giờ chúng ta đã kết nối RTC và bật i2c, hãy kết nối mọi thứ với nhau.

nhập nội dung sau vào dấu nhắc lệnh:

i2cdetect -y 1

bạn sẽ nhận được một mảng ô trống, nhưng bạn sẽ nhận thấy rằng có một số ở đâu đó, số đó là địa chỉ mô-đun RTC của bạn. trong trường hợp của tôi là 68. hãy lưu ý con số đó. nếu bạn không thấy số có hai chữ số đó, điều đó có nghĩa là bạn có thể đã kết nối sai RTC.

bây giờ, chúng ta cần sửa đổi tệp rc.local để có thể kích hoạt mô-đun RTC khi khởi động và để nó lưu ngày và giờ vào hệ thống. trước tiên, hãy mở tệp rc.local:

sudo nano /etc/rc.local

Trước dòng exit0, thêm dòng sau:

echo ds1307 0x68> / sys / class / i2c-adapter / i2c-1 / new_device

hwclock -s

trong đó 0x68 là địa chỉ i2c thiết bị của bạn. sau khi bạn hoàn thành, nhấn CTRL + S CTRL + X, sau đó khởi động lại hệ thống của bạn bằng cách:

khởi động lại sudo

Bước 8: 2-3: Kiểm tra RTC

2-3: Kiểm tra RTC
2-3: Kiểm tra RTC

Sau khi hệ thống được khởi động lại, chúng tôi có thể kiểm tra thời tiết RTC có hoạt động hay không. đầu tiên, chạy:

sudo hwclock -r

bạn sẽ được cung cấp lại ngày và giờ trên mô-đun RTC. nếu bạn được cung cấp thứ gì đó khác, hãy đảm bảo bạn đã thực hiện đúng các bước.

bây giờ, để sửa đổi ngày giờ trên RTC, trước tiên chúng ta cần sửa đổi Ngày và giờ trên hệ thống, SAU ĐÓ thực hiện các sửa đổi đối với RTC. để làm như vậy, hãy chạy:

sudo date -s "29 AUG 1997 13:00:00"

và dĩ nhiên, hãy thay đổi ngày và giờ theo ngày giờ địa phương của bạn, trước khi bạn nhấn enter. khi bạn có thời gian ở bên phải Rpi, hãy chạy phần sau để lưu ngày và giờ trên RTC:

sudo hwclock -w

aaaa và đó là nó! bạn có thể kiểm tra xem nó có hoạt động hay không bằng cách hwclock -r và xem ngày tháng trên RTC có chính xác hay không, sau đó ngắt kết nối rpi khỏi Internet rồi tắt nguồn một lúc rồi bật lại nguồn và xem nó có chính xác không. thời gian và ngày tháng. bạn đã hoàn tất!

Hướng dẫn đầy đủ về cách thiết lập mô-đun RTC có thể được tìm thấy tại đây

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

Bước 9: Chương 3: Lập chương trình báo động Azan

Chương 3: Lập chương trình báo động Azan
Chương 3: Lập chương trình báo động Azan

Chắc chắn rằng làm đồng hồ là một chuyện, chúng ta có thể nhìn vào đồng hồ và giờ cầu nguyện và biết thời gian đến, nhưng sẽ không tốt hơn nếu chúng ta có thể thêm một chuông báo thức để thông báo cho chúng ta về thời gian cầu nguyện? TỐT HƠN, chúng tôi thực hiện báo thức đó như âm thanh của AZAN! hãy xem làm thế nào chúng ta có thể thực hiện điều này.

đối với lập trình của chúng tôi, chúng tôi sẽ sử dụng python làm ngôn ngữ lập trình ưa thích của chúng tôi vì python trở nên hoàn hảo với RaspberryPi. để tạo một tệp mã trong python, chúng tôi thực hiện tương tự như mở tệp văn bản, nhưng bây giờ chúng tôi lưu nó dưới dạng.py. để chạy chương trình, chúng ta cần cài đặt môi trường python của raspbery, may mắn thay, Raspbian đi kèm với python và python3 được cài đặt sẵn! vì vậy tất cả những gì chúng ta phải làm là lập trình. trong hướng dẫn này, chúng tôi sẽ không nói về ngôn ngữ và dạy cách nó hoạt động và các chức năng, nhưng tôi sẽ cung cấp cho bạn các mã cần thiết để bạn có thể thực hiện dự án.

để bắt đầu, chúng tôi cần một tệp âm thanh của âm thanh azan ưa thích của chúng tôi (trong. WAV), chúng tôi cần hai tệp, một cho al-fajr azan và một cho azan thông thường. khi bạn nhận được điều đó, hãy đặt nó vào ổ cứng và sao chép nó trên màn hình raspberrypi.

bây giờ chúng tôi có các tệp, tôi đang tìm cách để phát âm thanh trên raspberryPi và thật ngạc nhiên, không có nhiều cách chúng tôi có thể làm điều này, nhưng tôi đã tìm thấy câu trả lời này trên stackoverflow đã cho tôi những gì tôi cần

stackoverflow.com/questions/20021457/playi…

tôi đã thử nghiệm phương pháp đó và nó hoạt động! vì vậy, hãy xem cách chúng tôi có thể triển khai phương pháp này trong dự án của mình…

Bước 10: 3-1: Hãy phát âm thanh

3-1: Hãy chơi một âm thanh!
3-1: Hãy chơi một âm thanh!

trước tiên, điều hướng đến máy tính để bàn bằng cách:

cd Máy tính để bàn

sau đó tạo một tệp mã python mới bằng cách:

sudo nano AzanPlay.py

điều này sẽ tạo một tệp mới có tên AzanPlay với phần mở rộng trên tệp python.py, chúng ta sẽ có một màn hình đen trống để cho phép chúng ta viết mã của mình. chỉ cần viết ra những dòng này (hãy cẩn thận không thay đổi bất kỳ thụt lề hoặc khoảng trắng nào, vì điều này CỰC KỲ quan trọng trong python):

từ máy trộn nhập khẩu pygame

mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-Makkah.wav') mixer.music.play () while mixer.music.get_busy () == True: continue

Where / Desktop / là nơi bạn đặt các tệp âm thanh của mình và 'Adhan-Makkah.wav' là tệp Âm thanh của tôi, là bản ghi âm Azan trong makkah.

bây giờ để kiểm tra mã của chúng tôi, chúng tôi chạy nó với python bằng cách nhập:

python AzanPlay.py

và bạn sẽ có âm thanh phát ra từ màn hình LCD HDMI hoặc cổng AUX trên Raspberrypi. nếu bạn không nghe thấy nó từ loa LCD, hãy cắm tai nghe vào AUX và kiểm tra.

Bước 11: 3-2: Nhận thời gian cầu nguyện

3-2: Nhận thời gian cầu nguyện
3-2: Nhận thời gian cầu nguyện

Như chúng ta đã biết, thời gian cầu nguyện khác nhau từ nơi này sang nơi khác, và ngay cả đối với một địa điểm cụ thể, nó cũng khác nhau qua các năm, điều đó có nghĩa là chúng ta cần tìm cách giữ cho thời gian cầu nguyện của mình trong hệ thống được cập nhật mọi lúc, và vì điều đó, chúng ta cần các hàm và tính toán cụ thể và rất phức tạp để làm đúng. May mắn thay, người anh em Hamid Zarrabi-Zadeh của chúng tôi đã biến tất cả các chức năng chúng tôi cần thành một chức năng mà chúng tôi có thể sử dụng dễ dàng để lấy thời gian tùy thuộc vào vị trí và thời gian hiện tại của chúng tôi, thật TUYỆT VỜI! bạn có thể tìm thấy thư viện và các tệp nguồn tại

praytimes.org/

Vì vậy, chúng tôi sẽ sử dụng những tệp tuyệt vời này để lấy thời gian cầu nguyện và triển khai nó trong hệ thống. trước tiên, hãy tải xuống các mã từ trang web và đặt nó bên trong thư mục / adhan /, (Chúng tôi cần cả mã JS và Python).

bây giờ, hãy đi đến thư mục đó và kiểm tra thư viện và những gì nó có thể làm:

cd adhan

ở đó, chúng tôi cần tạo một tệp thử nghiệm mới trong python để chúng tôi có thể kiểm tra chức năng:

sudo nano testAd.py

bên trong, viết ra mã này:

nhập thời gian cầu nguyện

từ ngày nhập datetime tmm = Praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) print (tmm)

Trước khi lưu tệp, bạn cần thay đổi LATITUDE với vị trí Latitude của mình, tương tự với LONGTITUDE và thay đổi GMT thành múi giờ của bạn. trong trường hợp của tôi, nó sẽ là:

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

in (tmm)

Cuối cùng, CTRL-S và CTRL-X rồi chạy mã:

python testAd.py

cuối cùng, bạn sẽ được trả lại thời gian cầu nguyện cho ngày hôm nay, cho vị trí của bạn.

{'isha': '18: 58 ',' asr ': '15: 22', 'Sunset': '17: 43 ',' dhuhr ': '12: 17', 'maghrib': '17: 43 ', 'imsak': '05: 23 ',' nửa đêm ': '00: 17', 'mặt trời mọc': '06: 52 ',' fajr ': '05: 33'}

Tuyệt vời! bây giờ chúng ta đã có thời gian cầu nguyện và bây giờ chúng ta biết cách phát âm thanh, hãy hợp nhất hai mã này với nhau thành một mã chính.

Bước 12: 3-3: Tạo mã báo động Azan cuối cùng

bằng cách hoàn thành hai mã trước, chúng tôi đã học cách lấy thời gian cầu nguyện chính xác theo vị trí của chúng tôi và cách phát âm thanh Azan. bây giờ, chúng tôi sẽ hợp nhất hai mã này thành một mã mà chúng tôi sẽ sử dụng làm dự án cuối cùng của mình và mã này sẽ hoạt động trên nền, vì khi thời điểm Azan đến, nó sẽ phát âm thanh Azan.

Tôi đã viết toàn bộ mã, bạn có thể sao chép và dán nó và thực hiện các thay đổi của riêng bạn khi bạn thấy phù hợp. Mã là:

thời gian nhập khẩu

từ bộ trộn nhập pygame nhập chuỗi nhập lịch cầu nguyện từ ngày nhập datetime trong khi (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 if currTime == FAJR: mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-fajr. wav ') mixer.music.play () while mixer.music.get_busy () == True: continue if currTime == DHUHR: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan- Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == True: continue if currTime == ASR: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == True: tiếp tục nếu currTime == MAGHRIB: mixer.init () mixer.music.load (' / home / pi / Máy tính để bàn / Adhan-Makkah.wav ') mixer.music.play () trong khi mixer.music.get_busy () == Đúng: tiếp tục nếu currTime == ISHA: mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-Makkah.wav') mixer.music.play () while mixer.music.get_busy () == True: continue

Nếu bạn nhìn vào mã và so sánh nó với những gì chúng tôi đã tạo trước đây, bạn sẽ thấy rằng chúng tôi không làm gì mới nhiều, lúc đầu, chúng tôi đưa vào các thư viện cần thiết của mình và sau đó chúng tôi mở một vòng lặp vô hạn. trong vòng lặp, chúng tôi liên tục tính toán thời gian cầu nguyện với vị trí và múi giờ của chúng tôi, đồng thời lưu trữ toàn bộ kết quả trong biến tmm. sau đó, chúng tôi lưu trữ mỗi thời gian cầu nguyện từ tmm thành một biến độc lập. điều đó sẽ cho phép chúng tôi so sánh thời gian. tiếp theo, chúng tôi lấy thời gian của hệ thống và lưu trữ nó trong một biến độc lập. cuối cùng, chúng tôi tiếp tục so sánh thời gian hệ thống với thời gian cầu nguyện, nếu thời gian hệ thống khớp với bất kỳ thời gian cầu nguyện nào, nó sẽ phát âm thanh Azan.

Bước 13: Chương 4: Triển khai các mặt đồng hồ

Chương 4: Triển khai các mặt đồng hồ
Chương 4: Triển khai các mặt đồng hồ
Chương 4: Triển khai các mặt đồng hồ
Chương 4: Triển khai các mặt đồng hồ
Chương 4: Triển khai các mặt đồng hồ
Chương 4: Triển khai các mặt đồng hồ
Chương 4: Triển khai các mặt đồng hồ
Chương 4: Triển khai các mặt đồng hồ

Để làm cho dự án trông đẹp hơn, tôi đã có ý tưởng thêm các mặt đồng hồ vào màn hình LCD, để nó trông đẹp mắt cho người dùng (tốt, ít nhất là tốt hơn dòng lệnh) vì vậy, tôi đã thuê một nhà thiết kế để thiết kế nhiều mặt để đồng hồ, nó phải trống không có dữ liệu, vì dữ liệu phải được thêm vào thông qua HTML, làm cho các thiết kế đồng hồ làm nền và các dữ liệu khác như thời gian cầu nguyện có thể được thêm vào dưới dạng các phần tử HTML trên nền.

Thật không may, tính đến thời điểm viết bài hướng dẫn này, kiến thức và kinh nghiệm của tôi về HTML rất hạn chế nên tôi sẽ không thảo luận nhiều chi tiết vì tôi biết một thực tế rằng tôi sẽ làm sai, và tôi không muốn gây hoang mang cho mọi người. nhưng nếu bạn có một chút kinh nghiệm về JS và HTML, bạn nên biết cách tiếp tục từ thời điểm này. cho đến nay tôi đã làm một mặt duy nhất (mặt màu xanh lam). kế hoạch là làm 14 mặt đồng hồ! 7 khuôn mặt cho các ngày trong tuần và 7 khuôn mặt khác là một chủ đề khác. vì chủ đề đầu tiên được cho là với Azkar lăn và chủ đề khác được cho là có GIFS Hồi giáo thay vì Azkar. bất kể, tôi sẽ bao gồm tất cả các thiết kế trong tài liệu hướng dẫn này để bạn có thể tải xuống.

Bước 14: Chương 5: Triển khai giao diện người dùng

Chương 5: Triển khai giao diện người dùng
Chương 5: Triển khai giao diện người dùng

Trong chương cuối của hành trình, chúng tôi sẽ thực hiện một số sửa đổi tùy chọn để làm cho dự án trở nên thân thiện với người dùng, trong trường hợp chúng tôi muốn thực hiện dự án ở nhà thờ Hồi giáo hoặc bất kỳ nơi công cộng nào. như chúng tôi đã nói trước đây, mỗi thành phố có thời gian riêng cho những lời cầu nguyện và để làm cho dự án này có thể tiếp cận cho nhiều người hơn, chúng tôi sẽ tạo giao diện người dùng để chúng tôi có thể chọn thành phố và chủ đề mong muốn của mình khi chúng tôi khởi động dự án.

Để làm điều này, chúng tôi sẽ sử dụng thư viện GUI python có tên "TKinter".

Đây là mã mà tôi đã triển khai để cung cấp cho tôi sự lựa chọn giữa năm thành phố ở Ả Rập Xê Út, bao gồm cả Makkah:

nhập tkinter dưới dạng tk

from tkinter import * from tkinter import ttk import codecs import os class karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Azan Time") self. button1 = Button (self, text = "Jeddah", height = 5, width = 80, command = self.open_jeddah1) self.button2 = Button (self, text = "Makkah", height = 5, width = 80, command = self.open_makkah1) self.button3 = Nút (self, text = "Riyadh", height = 5, width = 80, command = self.open_riyadh1) self.button4 = Button (self, text = "Madina", height = 5, width = 80, command = self.open_madina1) self.button5 = Button (self, text = "Qasim", height = 5, width = 80, command = self.open_qasaim1) self.button1.grid (row = 0, column = 1, columnpan = 2, stick = W + E + N + S) self.button2.grid (row = 1, column = 1, columnpan = 2, stick = W + E + N + S) self.button3.grid (hàng = 2, cột = 1, khoảng trống = 2, cố định = W + E + N + S) self.button4.grid (hàng = 3, cột = 1, cột = 2, cố định = W + E + N + S) self.button5.grid (row = 4, column = 1, columnpan = 2, stick = W + E + N + S) def open_jeddah1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/jeddah/Sunday1.html --start-fullscreen --no-sandbox" os.system (order) def open_makkah1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/makkah/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_riyadh1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_madina1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_qasaim1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def main (): karl (). mainloop () if _name_ == '_main_': main ()

Mã có thể trông lớn, nhưng việc chỉnh sửa nó rất dễ dàng. Về cơ bản, chúng tôi đã tạo một cửa sổ mới, đặt năm nút tên và xác định năm hàm được gọi khi mỗi lần nhấn nút. khi bạn nhấn nút, chương trình sẽ mở tệp HTML tương ứng trong thư mục Cities, mà mỗi HTML thành phố có tọa độ thành phố khi lấy thời gian từ cầu nguyện (). khi bạn nhấn nút, mã python sẽ thực hiện mã linux trong đó nó sẽ mở tệp HTML bằng trình duyệt chromium và bạn sẽ có mặt đồng hồ sẵn sàng hiển thị với tùy chọn toàn màn hình được bật.

Bước 15: (Tùy chọn): Thêm công tắc loa

(Tùy chọn): Thêm công tắc loa
(Tùy chọn): Thêm công tắc loa
(Tùy chọn): Thêm công tắc loa
(Tùy chọn): Thêm công tắc loa

Như chúng ta đã thấy, khi thời gian cầu nguyện đến phát âm thanh Azan và âm thanh phát ra từ đầu ra âm thanh mặc định (đầu ra HDMI hoặc AV) và vì chúng tôi đang đặt nó trên đầu ra HDMI nên âm thanh sẽ phát ra từ màn hình LCD. nhưng, điều gì sẽ xảy ra nếu âm thanh trên màn hình LCD của chúng ta không đủ? Ví dụ, nếu chúng ta muốn thực hiện điều này bên trong một nhà thờ Hồi giáo thực sự thì sao? với loa ngoài rộng? thì chúng ta có thể thêm một bước nữa RẤT dễ dàng để thực hiện điều đó. đối với một hệ thống âm thanh loa đã xây dựng, chúng ta chỉ cần BẬT và TẮT nó, đồng thời lấy micrô đã có sẵn và đặt nó bên cạnh loa LCD.

Làm như vậy là dễ dàng. chúng tôi sẽ sử dụng micrô của nhà thờ Hồi giáo có sẵn được kết nối với loa lớn, chúng tôi sẽ chỉ cần raspberryPi để điều khiển nguồn điện để BẬT và TẮT toàn bộ hệ thống âm thanh. để làm như vậy, chúng tôi sẽ cần sử dụng SSR: SOLID STATE RELAY. các loại rơ le này có thể hoạt động như một công tắc, giống như rơ le màu xanh lam trung bình, sự khác biệt là các SSR có thể chịu được một lượng lớn cường độ dòng điện AC qua nó, không áp dụng cho các loại màu xanh lam (thường là tối đa 10A) và các SSR cần chỉ có hai dây thay vì 3: DC + và DC- và thế là xong! ở đầu kia của SSR, chúng ta có thể kết nối cáp nguồn của hệ thống loa, theo cách đó, khi chúng ta cung cấp điện áp cho SSR, nó sẽ đóng mạch AC của hệ thống loa hoặc chúng ta ngắt điện áp để tạo ra mạch hở, tắt loa.

có một điểm bắt tho, các chân RaspberryPi xuất ra 3,3v, không phải 5v mà chúng ta cần để điều khiển SSR. vì vậy chúng ta cần một bóng bán dẫn để lấy tín hiệu từ chân RPi và 5V từ chân 5v RPi. để làm như vậy chúng ta cần:

1-Rơ le trạng thái rắn (bất cứ điều gì trên 25A là tốt)

Bóng bán dẫn 2-2n2222 npn

Điện trở 3-220ohm

theo mạch fritzing để kết nối.

bây giờ trong mã, chúng tôi sẽ thêm một số công cụ làm cho việc này hoạt động. đầu tiên, trước vòng lặp while, chúng tôi sẽ thêm một số dòng để khởi tạo các chân GPIO:

Trong phần nhập, hãy thêm:

nhập RPi. GPIO dưới dạng GPIO

Trước vòng lặp while, hãy thêm:

GPIO.setmode (GPIO. BOARD) relay GPIO.setwarnings (Sai) = 40 GPIO.setup (ledPin, GPIO. OUT)

Bây giờ, trong vòng lặp while, với mỗi lệnh chơi Azan, chúng ta cần bật rơ le, đợi 10 giây, kết thúc quá trình chơi Azan và sau đó tắt rơ le. chúng ta chỉ cần thêm hai dòng, dòng đầu tiên là:

GPIO.output (ledPin, GPIO. HIGH)

time.sleep (10)

dòng này nên được thêm vào sau mỗi câu lệnh if (IDENTATION IS IMPORTANT!), dòng còn lại là:

GPIO.output (ledPin, GPIO. LOW)

Cái này nên được thêm vào sau dòng "tiếp tục". nó sẽ trông giống như thế này cho mỗi lần Azan:

nếu 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: tiếp tục GPIO.output (ledPin, GPIO. LOW)

Đề xuất: