Mục lục:
- Bước 1: Danh sách bộ phận và công cụ
- Bước 2: Chuẩn bị màn hình OLED và đồng hồ thời gian thực
- Bước 3: Chuẩn bị bộ mã hóa quay
- Bước 4: Bao vây
- Bước 5: Tắt đèn LED nguồn Arduino (tùy chọn)
- Bước 6: Nguồn điện + Rơ le trạng thái rắn
- Bước 7: Arduino Nano + Nguồn điện + Rơ le trạng thái rắn
- Bước 8: Arduino Nano + Đồng hồ thời gian thực
- Bước 9: Kết nối màn hình OLED
- Bước 10: Bộ mã hóa quay
- Bước 11: Cài đặt trong Bao vây
- Bước 12: Kết nối với Mains / Light để được chuyển đổi
- Bước 13: Hoàn thiện Bao vây
- Bước 14: Lập trình Arduino
- Bước 15: Thiết lập thời gian và thời gian chuyển đổi
Video: Đồng hồ hẹn giờ hoàng hôn / bình minh Arduino: 15 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Tóm lược:
Bộ hẹn giờ dựa trên Arduino này có thể chuyển đổi một đèn 220V vào lúc hoàng hôn, bình minh hoặc thời gian cụ thể.
Giới thiệu:
Một số đèn trong nhà tôi được bật tự động vào lúc chạng vạng, cho đến thời điểm đặt trước hoặc cho đến bình minh (cả đêm).
Vị trí của đèn không cho phép sử dụng cảm biến ánh sáng. Các bộ hẹn giờ đồng hồ có sẵn thông thường sẽ bật vào một thời điểm cụ thể. Do đó, để bật vào khoảng thời gian hoàng hôn, yêu cầu thường xuyên điều chỉnh cài đặt chương trình hẹn giờ.
Thay vào đó, tôi quyết định xây dựng một bộ đếm thời gian độc lập dựa trên Arduino tùy chỉnh. Nó sử dụng đồng hồ thời gian thực và thư viện Dusk2Dawn để xác định thời gian phải bật hoặc tắt đèn. Vỏ cho bộ đếm thời gian này được in 3D và có thể tìm thấy trên Thingiverse. Bạn có thể tìm thấy mã Arduino cho dự án này trên GitHub.
Trong quá trình tạo ra bộ đếm thời gian này, tôi đã lấy cảm hứng từ nhiều thiết kế và mạch trên internet. Lời cảm ơn của tôi đến tất cả những người đóng góp không được đề cập rõ ràng.
Để có thể đọc được, các sơ đồ một phần được hiển thị theo các bước nếu cần, thay vì một sơ đồ mạch hoàn chỉnh.
Các giải pháp thay thế:
Thay vì một bộ hẹn giờ độc lập, có nhiều giải pháp trong đó hệ thống tự động hóa nhà thông minh điều khiển đèn. Mục tiêu của tôi là có một giải pháp độc lập, không phụ thuộc vào kết nối WIFI (hoặc khác).
Những hạn chế:
Mã được cung cấp cùng với dự án này bao gồm triển khai các thay đổi về tiết kiệm ánh sáng ban ngày dựa trên hệ thống tiết kiệm ánh sáng ban ngày của Châu Âu.
Bước 1: Danh sách bộ phận và công cụ
Các bộ phận:
Tổng chi phí các bộ phận (không bao gồm in 3d) khoảng € 30, -.
- Arduino Nano V3 (tương thích) không có tiêu đề
- Nguồn điện 5V 0.6A (34 x 20 x 15mm)
- Rơ le trạng thái rắn 5V - Hoạt động ở mức thấp - 2A 230VAC
- Đồng hồ thời gian thực DS3231 (nhỏ)
- Màn hình OLED 0,96”SPI 128 * 64 pixel
- Bộ mã hóa quay - EC11 - 20mm
- Núm 6mm trục 15mm * 17mm
- Bảng mạch in Breadboard,
- 4 * Vít M3x25mm
- Bao vây in 3d
- Ống co nhiệt
- Dây điện
- Khối đầu cuối vít (để kết nối dây trung tính)
Công cụ yêu cầu:
- Sắt hàn
- Dây hàn
- Bơm hút
- Dụng cụ cắt dây
- Máy cắt
- Máy in 3D (để in bao vây)
- Các loại công cụ nhỏ
CẢNH BÁO
Mạch này hoạt động trên 230v AC và nếu bạn không quen làm việc với điện áp chính hoặc không có nhiều kinh nghiệm làm việc với Điện áp nguồn AC 230v, vui lòng tránh xa dự án này
Tôi không chịu trách nhiệm về bất kỳ tổn thất hoặc thiệt hại nào phát sinh trực tiếp từ hoặc do hậu quả của việc thực hiện dự án này
Chúng tôi luôn khuyên bạn nên chăm sóc và đề phòng đúng cách khi làm việc với AC Mains
Bước 2: Chuẩn bị màn hình OLED và đồng hồ thời gian thực
Bao vây in 3D được thiết kế với kích thước tối thiểu. Do đó, các tiêu đề của màn hình OLED và đồng hồ thời gian thực cần phải được loại bỏ.
Để chuẩn bị cho bước tiếp theo, hãy làm sạch vết hàn còn sót lại trên các lỗ bằng máy bơm khử nhiệt.
Bước 3: Chuẩn bị bộ mã hóa quay
Bộ mã hóa quay có các đầu nối mỏng manh. Để tránh hư hỏng, hãy gắn một phần bảng mạch in vào bộ mã hóa.
Trên hình, kết nối mặt đất (trên cùng bên phải và giữa dưới cùng) cũng đã được chuẩn bị.
Lưu ý: Đảm bảo rằng bộ mã hóa quay với bảng mạch in nằm gọn trong vỏ mà không chạm vào Arduino. Có thể phải mài bảng mạch in để có được độ vừa khít.
Bước 4: Bao vây
In ba phần của bao vây bằng máy in 3d. Tham khảo hướng dẫn trên Thingiverse.
Bước 5: Tắt đèn LED nguồn Arduino (tùy chọn)
Để tránh có ánh sáng màu xanh lá cây trong bộ hẹn giờ, có thể tắt đèn LED nguồn của Arduino.
Lưu ý rằng sửa đổi này là tùy chọn.
Việc sửa đổi Arduino Nano bao gồm việc loại bỏ điện trở bên cạnh đèn LED nguồn (xem vòng tròn màu đỏ trong hình).
Bước 6: Nguồn điện + Rơ le trạng thái rắn
Trong bước này, nguồn điện và rơ le trạng thái rắn được kết hợp và gắn ở phần dưới cùng của vỏ bọc.
Kết nối giữa nguồn điện và rơ le được thực hiện ở dưới cùng của các thành phần này. Khối đầu cuối vít của rơ le sẽ được sử dụng để kết nối với Arduino.
Lưu ý: Khi thực hiện kết nối, đảm bảo rằng các lỗ lắp của rơle trạng thái rắn được giữ không có.
- Hàn dây kết nối giữa rơ le trạng thái rắn A1 với một trong các kết nối AC của nguồn điện
- Hàn một dây với kết nối AC khác của nguồn điện (dây này sẽ được kết nối với khối đầu cuối vít trung tính ở bước 7)
- Hàn một dây giữa nguồn điện -Vo để chuyển tiếp DC-
- Hàn dây để kết nối nguồn điện + Vo để tiếp điện DC +
Lưu ý: Có thể phải cắt ngắn các dây dẫn trên nguồn điện và rơ le để có thể lắp vào vỏ.
Bước 7: Arduino Nano + Nguồn điện + Rơ le trạng thái rắn
Trong bước này, Arduino Nano được kết nối với nguồn điện và rơle trạng thái rắn.
- Cắt hai dây có chiều dài khoảng 70mm. Dải cách ly 30mm ở một bên và 4mm ở phía bên kia.
- Hàn mặt bên có lớp cách ly 30mm với Arduino + 5V và GND, với dây dính xuyên qua
- Cắt hai ống co nhiệt có chiều dài 20mm và lắp chúng lên phần đã tước 25mm. Điều này cô lập các dây dẫn đến kết nối với khối đầu cuối vít gắn kết DC + và DC- của rơle trạng thái rắn.
- Lưu ý rằng dây cho GND và + 5V cần phải bắt chéo để kết nối chính xác với khối đầu cuối vít rơle.
- Cắt một sợi dây có chiều dài khoảng 40mm và dải 4mm cách ly ở cả hai đầu. Hàn một mặt với kết nối A2 trên BACKSIDE của Arduino và kết nối mặt kia với kết nối CH1 của khối đầu cuối vít gắn kết trạng thái rắn.
CẢNH BÁO
Arduino được cấp nguồn trực tiếp từ nguồn điện ổn định + 5V thay vì sử dụng bộ điều chỉnh nguồn bên trong Arduino. Do đó, sẽ không an toàn khi kết nối USB khi Arduino nhận điện từ nguồn cấp.
Luôn ngắt kết nối nguồn điện 230VAC trước khi sử dụng kết nối USB Arduino.
Bước 8: Arduino Nano + Đồng hồ thời gian thực
Trong bước này, đồng hồ thời gian thực được kết nối với Arduino, một phần bằng cách sử dụng các dây cáp đã chuẩn bị ở bước trước.
- Hàn dây đến từ Arduino GND (cũng được kết nối với DC- của rơ le) đến ‘-‘của đồng hồ thời gian thực.
- Hàn dây đến từ Arduino + 5V (cũng được kết nối với DC + của rơ le) thành ‘+’ của đồng hồ thời gian thực.
- Cắt hai dây có chiều dài khoảng 40mm và dải 4mm cách ly cả hai đầu.
- Hàn một dây giữa Arduino A4 và đồng hồ thời gian thực D (SDA).
- Hàn một dây giữa Arduino A5 và đồng hồ thời gian thực C (SCL).
- Định hình các dây của đồng hồ thời gian thực để đảm bảo chúng không gây nhiễu cho bộ mã hóa quay. Đối với điều này, các dây cần phải ở dưới cùng của vỏ bọc.
Bước 9: Kết nối màn hình OLED
Trong bước này, màn hình OLED SPI được thêm vào Arduino.
- Cắt 2 sợi dây dài 65mm và dải 4mm cách ly hai đầu.
- Hàn dây vào kết nối GND của màn hình OLED. Hàn dây này với dây cách ly của ống co nhiệt đến từ Arduino GND (tham khảo bước 4) và kết nối cả hai dây với khối đầu cuối vít gắn DC của rơle trạng thái rắn.
- Hàn dây vào kết nối VCC của màn hình OLED. Hàn dây này vào dây cách ly của ống co nhiệt đến từ Arduino + 5V (tham khảo bước 4) và kết nối cả hai dây với khối đầu cuối vít gắn DC + của rơle trạng thái rắn.
- Cắt 5 sợi dây dài 65mm và dải 4mm cách ly hai đầu.
- Hàn dây để kết nối D0 (CLK) với Arduino D10
- Hàn dây để kết nối D1 (MOSI / DATA) với Arduino D9
- Hàn dây để kết nối RES (RT) với Arduino D8
- Hàn dây để kết nối DC với Arduino D11
- Hàn dây để kết nối CS với Arduino D12
Lưu ý: Thứ tự của các dây hiển thị không logic. Đây là kết quả của việc đầu tiên sử dụng ví dụ Adafruit, sau đó thay đổi các kết nối vì sử dụng D13 dẫn đến đèn LED màu đỏ trên Arduino mọi lúc.
Thay thế
Có thể sử dụng thứ tự 'bình thường' cho các kết nối SPI. Đối với điều này, định nghĩa đầu ra kỹ thuật số của chương trình Arduino trong oledcontrol.cpp phải được điều chỉnh cho phù hợp:
// Sử dụng phần mềm SPI
// định nghĩa pin
#define CS_PIN 12
#define RST_PIN 8
#define DC_PIN 11
#define MOSI_PIN 9
#define CLK_PIN 10
Bước 10: Bộ mã hóa quay
Sơ đồ cho thấy các kết nối của Arduino với bộ mã hóa quay (bộ mã hóa nhìn từ trên xuống).
- Cắt 4 sợi dây 45mm và dải 4mm cách ly hai đầu.
- Kết nối Arduino GND với các đầu nối trên cùng bên phải và dưới cùng ở giữa của bộ mã hóa
- Kết nối Arduino D2 với phía dưới bên trái của bộ mã hóa
- Kết nối Arduino D3 với phía dưới bên phải của bộ mã hóa
- Kết nối Arduino D4 với trên cùng bên trái của bộ mã hóa
Bước 11: Cài đặt trong Bao vây
Lắp đặt tất cả các thiết bị điện tử ở phần dưới cùng của vỏ máy:
- Trượt Arduino trên rãnh dọc
- Trượt đồng hồ thời gian thực ở ngăn dưới cùng
- Trượt nguồn điện và rơ le ở ngăn trên cùng, đảm bảo rơ le nằm trên giá của nó.
Bước 12: Kết nối với Mains / Light để được chuyển đổi
CẢNH BÁO
Đảm bảo thực hiện các biện pháp phòng ngừa và chăm sóc thích hợp khi làm việc với Nguồn AC, đảm bảo rằng Nguồn AC đã được ngắt kết nối
Tôi không chịu trách nhiệm về bất kỳ tổn thất hoặc thiệt hại nào phát sinh trực tiếp từ hoặc do hậu quả của việc thực hiện dự án này
- Kết nối pha Nguồn AC với khối đấu dây vít A1 (bên trái) của rơle.
- Kết nối pha của đèn được chuyển sang khối đấu dây vít B1 (bên phải) của rơ le.
- Sử dụng khối đầu cuối vít riêng biệt để kết nối dây trung tính của nguồn AC, dây trung tính của đèn và dây trung tính của nguồn điện.
- Để giảm căng thẳng, hãy gắn dây quấn quanh mỗi cáp nguồn.
Bước 13: Hoàn thiện Bao vây
Trong bước này, việc lắp vào bao vây đã hoàn thành
- Trượt màn hình OLED qua lỗ gắn màn hình ở phần giữa của vỏ.
- Trượt bộ mã hóa vòng quay qua lỗ ở phần giữa, đảm bảo rằng các đường chống xoay thẳng hàng. Gắn bộ mã hóa quay bằng vòng đệm và đai ốc đi kèm.
- Gắn phần trên cùng của vỏ và đóng vỏ bằng cách lắp bốn vít M3x25mm từ phía dưới.
Bước 14: Lập trình Arduino
CẢNH BÁO
Arduino được cấp nguồn trực tiếp từ nguồn điện ổn định + 5V thay vì sử dụng bộ điều chỉnh nguồn bên trong Arduino. Do đó, sẽ không an toàn khi kết nối USB khi Arduino nhận điện từ nguồn cấp.
Luôn ngắt kết nối nguồn điện 230VAC trước khi sử dụng kết nối USB Arduino.
Truy xuất chương trình hẹn giờ Arduino từ GitHub.
Chương trình này sử dụng Arduino IDE, có thể lấy tại đây.
Chương trình sử dụng các thư viện bổ sung sau:
SSD1303Ascii
Thư viện dây Arduino
Lưu ý rằng thư viện dusk2dawn cũng được sử dụng, nhưng được bao gồm dưới dạng mã do sự thay đổi trong giao diện của nó.
Để đảm bảo tính toán hoàng hôn / bình minh chính xác, kinh độ, vĩ độ và múi giờ phải được đặt.
Như được mô tả trong ví dụ dusk2dawn, một cách dễ dàng để tìm kinh độ và vĩ độ cho bất kỳ vị trí nào là tìm vị trí đó trong Google Maps, nhấp chuột phải vào địa điểm trên bản đồ và chọn "Đây là gì?". Ở dưới cùng, bạn sẽ thấy một thẻ có tọa độ.
Kinh độ và vĩ độ được mã hóa cứng trong chương trình, ở dòng Dusk2Dawn.cpp 19 và 20:
/ * Vĩ độ và độ dài của vị trí của bạn phải được đặt ở đây.
* * GỢI Ý: Một cách dễ dàng để tìm kinh độ và vĩ độ cho bất kỳ vị trí nào là * tìm địa điểm trong Google Maps, nhấp chuột phải vào địa điểm trên bản đồ và * chọn "Đây là gì?". Ở dưới cùng, bạn sẽ thấy một thẻ có tọa độ *. * / #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht
Múi giờ cũng được mã hóa cứng ở dòng Dusk2Dawn.cpp 24. Theo mặc định, nó được đặt thành Hà Lan (GMT + 1):
/ * Nhập múi giờ của bạn (bù sang GMT) tại đây.
* / #define TIMEZONE 1
Khi lập trình Arduino lần đầu tiên, bộ nhớ EEPROM cần được khởi tạo. Đối với điều này, hãy thay đổi dòng timer.cpp 11 để thực hiện khởi tạo EEPROM:
// thay đổi thành true cho lần đầu tiên lập trình
#define INITIALIZE_EEPROM_MEMORY false
Tải chương trình lên Arduino và khởi động Arduino.
Tắt khởi tạo EEPROM và tải lại chương trình lên Arduino. Giờ đây, bộ hẹn giờ sẽ ghi nhớ cài đặt thời gian chuyển đổi khi khởi động lại.
Bước 15: Thiết lập thời gian và thời gian chuyển đổi
Các khái niệm tương tác của người dùng:
- Nhấn nhanh được sử dụng để xác nhận các lựa chọn. Hơn nữa, trong màn hình hẹn giờ chính, một thao tác nhấn nhanh sẽ bật hoặc tắt đèn.
- Nhấn và giữ được sử dụng để vào menu từ màn hình hẹn giờ chính. Ở bất kỳ vị trí nào trong menu, nhấn và giữ sẽ trở lại màn hình hẹn giờ chính.
- Dấu chọn ‘>’. Con trỏ này cho biết tùy chọn đã chọn trong menu.
Màn hình hẹn giờ chính
Màn hình hẹn giờ chính hiển thị:
Ngày trong tuần Su
Giờ hiện tại 16:00
Trạng thái hẹn giờ hiện tại và thời gian chuyển đổi tiếp theo Bộ hẹn giờ TẮT cho đến 17:12
Thời gian bình minh và hoàng hôn Bình minh 08:05 Dusk 17:10
Đặt thời gian chính xác
Nhấn và giữ để vào menu. Các tùy chọn sau được hiển thị:
Quay lại Đặt thời gian Chương trình ngày hội Chương trình tuần lễ chương trình Tùy chọn
Chọn cài đặt thời gian để đặt ngày và giờ của đồng hồ thời gian thực. Nhập các giá trị chính xác cho:
YearMonthDayTime
Bộ đếm thời gian tự động xác định ngày trong tuần. Việc chuyển đổi thời gian tiết kiệm ánh sáng ban ngày cũng được thực hiện tự động. Chế độ tiết kiệm ánh sáng ban ngày chỉ được triển khai cho múi giờ Châu Âu.
Cài đặt chương trình hẹn giờ
Bộ đếm thời gian có 2 chương trình, một cho các ngày trong tuần, một cho cuối tuần. Lưu ý rằng thứ Sáu được coi là một phần của cuối tuần, đèn có thể bật sáng lâu hơn một chút.
Mỗi bộ hẹn giờ có một thời điểm bật và tắt. Thời điểm có thể là:
- Thời gian: Thời gian được chỉ định chính xác
- Bình minh: Chuyển đổi dựa trên thời gian bình minh được tính toán
- Dusk: Chuyển đổi dựa trên thời gian tính toán của hoàng hôn
Đối với hoàng hôn và bình minh, có thể nhập giá trị hiệu chỉnh trước hoặc sau 59 phút.
Ví dụ:
Để bật đèn suốt đêm, hãy chọn bật lúc (chạng vạng + 10 phút), tắt lúc (bình minh - 10 phút)
Để bật đèn vào buổi tối, hãy chọn bật vào lúc chạng vạng, tắt vào lúc: 22:30.
Tùy chọn
Trong màn hình tùy chọn, có thể đặt thời gian chờ để chuyển đổi màn hình.
Khi màn hình tắt, nhấn vào núm xoay bộ mã hóa sẽ trở về màn hình hẹn giờ chính.
Đề xuất:
Mạch nút báo động hoảng sợ sử dụng IC hẹn giờ 555 (Phần 1): 4 bước
Mạch Nút Báo Động Sử Dụng IC Hẹn Giờ 555 (Phần 1): Mạch Báo Động Hốt Háo được sử dụng để gửi tín hiệu khẩn cấp ngay lập tức đến những người ở vị trí gần đó để kêu cứu hoặc thông báo cho họ. Tình huống hoảng loạn có thể xảy ra có thể là bất kỳ, nó không bị giới hạn trong một số tình huống. Người ta có thể giữ
Động cơ bước với Dép xỏ ngón và Hẹn giờ 555; Phần đầu tiên của mạch Bộ hẹn giờ 555: 3 bước
Động cơ bước với Dép xỏ ngón và Hẹn giờ 555; Phần đầu của mạch Bộ hẹn giờ 555: Động cơ bước là động cơ DC chuyển động theo các bước rời rạc, nó thường được sử dụng trong máy in và thậm chí cả robot. Tôi sẽ giải thích mạch này theo các bước. Phần đầu tiên của mạch là 555 bộ đếm thời gian. Đây là hình ảnh đầu tiên (xem ở trên) với chip 555 w
Mạch nút báo động hoảng sợ sử dụng IC hẹn giờ 555 (Phần 2): 3 bước
Mạch Nút Báo Động Hoảng Loạn Sử Dụng IC Hẹn Giờ 555 (Phần 2): Này các bạn! Hãy nhớ Phần 1 của hướng dẫn này. Nếu không có hãy xem tại đây. Chiếc chảo khả dĩ
Bộ vi điều khiển AVR. Đèn LED Flasher sử dụng bộ hẹn giờ. Bộ hẹn giờ Ngắt. Chế độ hẹn giờ CTC: 6 bước
Bộ vi điều khiển AVR. Đèn LED Flasher sử dụng bộ hẹn giờ. Bộ hẹn giờ Ngắt. Chế độ hẹn giờ CTC: Xin chào các bạn! Bộ hẹn giờ là một khái niệm quan trọng trong lĩnh vực điện tử. Mọi thành phần điện tử hoạt động trên cơ sở thời gian. Cơ sở thời gian này giúp giữ cho tất cả các công việc được đồng bộ hóa. Tất cả các bộ vi điều khiển đều hoạt động ở một số tần số xung nhịp được xác định trước,
Đèn bình minh và hoàng hôn với đèn LED: 7 bước (có hình ảnh)
Đèn bình minh và hoàng hôn có đèn LED: Bạn biết đấy, vào mùa đông, rất khó để thức dậy, vì bên ngoài trời tối và cơ thể bạn chỉ muốn thức dậy vào lúc nửa đêm. Vì vậy, bạn có thể mua một chiếc đồng hồ báo thức đánh thức bạn bằng ánh sáng. Những thiết bị này không đắt bằng