Mục lục:
- Bước 1: Lý thuyết
- Bước 2: Thiết kế
- Bước 3: Chi tiết kỹ thuật: API
- Bước 4: Chi tiết kỹ thuật: Phần cứng
- Bước 5: Chi tiết kỹ thuật: Kết nối các dấu chấm | Tự động hóa gia đình
- Bước 6: Kết thúc.
Video: Đèn Ramadan - IOT tự động hóa gia đình: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Khi tháng lễ Ramadan gõ cửa, các thành phố trên toàn thế giới bừng sáng và chuẩn bị cho tháng ăn chay. Đèn được treo ở các quảng trường công cộng và trên khắp các đường phố của thành phố cũng như trên các bức tường bên ngoài của các ngôi nhà được thắp sáng suốt đêm cho đến khi mặt trời mọc vào buổi sáng.
Trong dự án này, tôi muốn chia sẻ đóng góp của mình, trong đó tôi đang tự động hóa việc thắp sáng các đồ trang trí này dựa trên thời gian Adhan và thêm điều này vào hệ thống nhà thông minh của mình.
Bước 1: Lý thuyết
Về cơ bản, việc tự động hóa ánh sáng dựa trên cường độ ánh sáng mặt trời sẽ dễ dàng và dễ áp dụng hơn. Tuy nhiên, tôi muốn điều này đúng với tinh thần của tháng thánh đó là, đèn sẽ sáng miễn là mọi người được phép ăn trong tháng ăn chay. Đặc biệt, đèn được bật bắt đầu từ Maghrib Adhan cho đến Fajr Adhan vào mỗi ngày mà không có bất kỳ sự tương tác nào của con người.
Bước 2: Thiết kế
Dưới đây, tôi sẽ liệt kê các yêu cầu / khả năng của dự án này:
- Hệ thống sẽ có thể tự động xử lý khi khởi động.
- Hệ thống sẽ có thể thực hiện định kỳ thuật toán quyết định (ON / OFF).
- Hệ thống sẽ có thể gọi API hàng ngày.
- Hệ thống sẽ có thể phục hồi sau khi khởi động lại ngoài kế hoạch.
- Hệ thống sẽ thực hiện thuật toán quyết định (ON / OFF) khi nhận được dữ liệu ngay lập tức.
- Hệ thống phải cung cấp một công tắc để bật chế độ lái tự động (Chế độ tự động).
- Hệ thống phải cung cấp một công tắc để BẬT / TẮT đèn theo cách thủ công.
- Kích hoạt công tắc thủ công nên đặt chế độ thủ công thành TẮT.
- Khi chế độ Tự động được BẬT, kết quả của thuật toán quyết định sẽ được phản ánh trên công tắc BẬT / TẮT bằng tay.
Bước 3: Chi tiết kỹ thuật: API
Để làm cho lý thuyết có thể áp dụng, cần phải biết thời gian Adhan trên cơ sở hàng ngày kể từ biến số của nó và hành động dựa trên nó để bật / tắt đèn / trang trí.
Vì mục đích này, tôi quyết định sử dụng API dựa trên vị trí để phân phát dữ liệu (thời gian dành cho Adhan)
muslimsalat.com/api/#location
- API này cung cấp nhiều tùy chọn và thông số cấu hình được mô tả trong liên kết tài liệu ở trên.
- Bạn nên sử dụng API_key của riêng mình, miễn phí khi đăng ký.
- Trong thiết kế của mình, tôi quan tâm đến dòng thời gian hàng ngày.
- Thời gian trả về ở định dạng 12 giờ (AM / PM).
- Về vị trí, tôi ước nếu API này có thể cung cấp các tùy chọn chính xác hơn cho các vị trí như hệ thống tọa độ địa lý tọa độ (Vĩ độ và Kinh độ). Theo cách này, API này có thể được cung cấp với một tên thành phố chẳng hạn và điều này là khá đủ trong hầu hết các trường hợp. Thật không may, kết quả của thành phố cụ thể của tôi khá sai lệch trong nhiều bài kiểm tra và có vài phút chênh lệch khi so sánh thời gian Adhan giữa kết quả API và thời gian thực tế của Adhan trong thành phố của tôi. Mặt khác, kết quả hoàn toàn trùng khớp khi tôi cung cấp một thành phố gần phía bắc và tôi đã bám sát nó!
- Url API tôi đang sử dụng là: https://muslimsalat.com/.json? Key =
Bước 4: Chi tiết kỹ thuật: Phần cứng
Để đơn giản hơn, tôi đang loại bỏ phần cứng khỏi quy trình đồng bộ hóa với API và tính toán thời gian bằng cách ủy quyền các hoạt động này cho Hệ thống tự động hóa gia đình của tôi. Điều này sẽ cho phép tôi kiểm soát nhiều hơn nếu tôi muốn điều chỉnh nguồn API và thuật toán tính toán.
Có thể nói, tôi đã sử dụng ESP8266 (NodeMCU) để kết nối với mạng cục bộ qua WIFI và mô-đun chuyển tiếp làm thiết bị truyền động. NodeMCU sẽ sử dụng giao thức MQTT và lắng nghe một chủ đề cụ thể để nhận lệnh tắt / mở rơle. Đơn giản vậy thôi!
Bước 5: Chi tiết kỹ thuật: Kết nối các dấu chấm | Tự động hóa gia đình
RaspberryPi của tôi chứa một phiên bản được gật đầu có khả năng xử lý tất cả những gì tôi cần cho dự án này. Nó cũng có một máy chủ MQTT được cài đặt để xuất bản tin nhắn của chúng tôi.
Lúc đầu, tôi nghĩ rằng tôi có thể tìm nạp dữ liệu API trên cơ sở hàng ngày lúc 9 giờ sáng và trích xuất cả thời gian Fajr và Mahgrib Adhan và tiếp tục so sánh thời gian hiện tại với các biến sau:
mỗi 30 giây:
nếu: Mahgrib <NOW <Fajr true | bật đèn | xuất bản thông báo BẬT cho chủ đề MQTT được chỉ định khác: tắt
Để so sánh thời gian, tôi đang chuyển đổi giờ do API cung cấp từ hh: mm (AM / PM) thành định dạng ngày đầy đủ bằng cách đặt phần ngày thành một ngày không đáng kể trong lịch sử, ví dụ: (1/1/1970) vì chúng tôi đang so sánh thời gian chỉ đến thời điểm hiện tại (phần ngày cũng được chuyển đổi).
Thật không may, điều này sẽ chỉ hoạt động trong các trường hợp chuyển tiếp. Giả sử trường hợp mất điện hoặc hệ thống khởi động lại vì một lý do ngoài ý muốn. Nếu trường hợp này xảy ra trước 12 giờ sáng thì chúng tôi vẫn ở bên an toàn, nhưng sau 12 giờ sáng, điều này sẽ không thành công với thuật toán đơn giản của chúng tôi.
Để làm ví dụ, hãy có Magrib Adhan lúc 7:30 tối và Fajr lúc 4:10 sáng. Khi hệ thống khởi động, nó sẽ gửi một yêu cầu mới để tìm nạp dữ liệu đã đề cập trước đó. Nếu bây giờ là 1:45 sáng, chúng tôi hy vọng thuật toán của mình sẽ trả về true, nhưng thực tế thì không phải vì 1:45 sáng ít hơn Fajr (4:10 sáng) nhưng không lớn hơn Magrib (7:30 tối). Điều này là do chúng tôi hợp nhất ngày giữa tất cả các biến. Dưới đây là phiên bản cuối cùng của thuật toán (cho đến nay):
mỗi 30 giây:
if ((magrib.getHours ()> = 12 && fajr.getHours () <= 12) || fajr <maghrib) {fajr.setDate (fajr.getDate () + 1); // xử lý các ngày kéo dài endTime if (now.getHours () <= 12) {now.setDate (now.getDate () + 1); // xử lý kéo dài ngày currentTime}} // bên dưới là khối mã trước đó nếu: Mahgrib <NOW <Fajr true | bật đèn | xuất bản một thông báo BẬT cho chủ đề MQTT được chỉ định khác: false | tắt
Toàn bộ quy trình được chú thích trong hình trên.
Về giao diện người dùng, tôi đã thêm 2 công tắc vào giao diện người dùng / giao diện:
- Một công tắc để biến quy trình này thành Tự động hoặc Thủ công.
- Một công tắc để BẬT / Tắt đèn bằng tay.
Bước 6: Kết thúc.
Thời gian trôi đi không bao giờ được nhớ lại. Thực hiện các dự án đơn giản trong 1 ngày như vậy cho phép bạn bắt kịp con đường nhanh chóng này và giúp bạn phục hồi các kỹ năng mềm của mình theo thời gian.
Tôi đã cố gắng rất nhiều trong dự án này để giữ cho nó đơn giản và có thể tái sử dụng trên toàn cầu.
Vui lòng bình chọn cho hướng dẫn này nếu bạn nghĩ rằng dự án này xứng đáng.
Chúc mừng tháng lễ Ramadan!
Đề xuất:
Sử dụng phần mở rộng lồng ngực của Hope để tìm Công việc chưa hoàn chỉnh của Sắc lệnh đền thờ trong cây gia đình của bạn về Tìm kiếm gia đình: 11 bước
Sử dụng phần mở rộng Rương của Hope để Tìm công việc pháp lệnh đền thờ chưa hoàn chỉnh trong cây gia đình của bạn trên Tìm kiếm gia đình: Mục đích của tài liệu hướng dẫn này là để trình bày cách tìm kiếm gia phả của bạn trong Tìm kiếm gia đình cho tổ tiên có công việc pháp lệnh đền thờ chưa hoàn thành bằng cách sử dụng phần mở rộng Rương của hy vọng. Sử dụng Hope's Chest có thể tăng tốc đáng kể tìm kiếm của bạn cho
Kiểm soát thiết bị gia dụng qua LoRa - LoRa trong Tự động hóa gia đình - Điều khiển từ xa LoRa: 8 bước
Kiểm soát thiết bị gia dụng qua LoRa | LoRa trong Tự động hóa gia đình | Điều khiển từ xa LoRa: Điều khiển và tự động hóa các thiết bị điện của bạn từ khoảng cách xa (Kilômét) mà không cần sự hiện diện của internet. Điều này có thể thực hiện được thông qua LoRa! Này, có chuyện gì vậy các bạn? Akarsh ở đây từ CETech. PCB này cũng có màn hình OLED và 3 rơ le
Báo động PIR đến WiFi (và Tự động hóa gia đình): 7 bước (có Hình ảnh)
Báo động PIR đến WiFi (và Tự động hóa gia đình): Tổng quan Hướng dẫn này sẽ cung cấp cho bạn khả năng xem ngày / giờ cuối cùng (và tùy chọn lịch sử thời gian) về thời điểm PIR của Báo động nhà (cảm biến hồng ngoại thụ động) được kích hoạt, trong tự động hóa ngôi nhà của bạn phần mềm. Trong dự án này, tôi sẽ
Tự động hóa gia đình giá rẻ và hiệu quả với Raspberry Pi: 11 bước (có hình ảnh)
Tự động hóa gia đình giá rẻ và hiệu quả với Raspberry Pi: Tôi luôn muốn có thể điều khiển đèn không dây, nhưng các tùy chọn thương mại thường đắt tiền. Đèn Philips Hue có giá khoảng 70 đô la và đèn kết nối WiFi cũng đắt tiền. Hướng dẫn này sẽ cho bạn biết cách điều khiển tối đa năm đèn / l
Màn hình cảm ứng Đồng bộ hóa gia đình & Bảng điều khiển gia đình gắn trên màn hình: 7 bước (có Hình ảnh)
Bảng điều khiển Home & Family Sync & Home trên màn hình cảm ứng: Chúng tôi có lịch được cập nhật hàng tháng với các sự kiện nhưng lịch được thực hiện theo cách thủ công. Chúng ta cũng có xu hướng quên những việc đã làm hết hoặc những việc vặt khác. Ở thời đại này, tôi nghĩ sẽ dễ dàng hơn nhiều nếu có một hệ thống đồng bộ lịch và sổ ghi chú mà c