Mục lục:

Đồng hồ báo thức Oled: 8 bước (có hình ảnh)
Đồng hồ báo thức Oled: 8 bước (có hình ảnh)

Video: Đồng hồ báo thức Oled: 8 bước (có hình ảnh)

Video: Đồng hồ báo thức Oled: 8 bước (có hình ảnh)
Video: [Đồng hồ] Hướng dẫn sử dụng Đồng hồ đa năng 8082T - Báo thức, Lịch, Nhiệt độ 2024, Tháng bảy
Anonim
Đồng hồ báo thức Oled
Đồng hồ báo thức Oled

Có rất nhiều đồng hồ arduino / ESP32 xuất hiện, nhưng liệu chúng có sử dụng những màn hình OLED đẹp và sắc nét đó không?

Tôi đã thử nghiệm với arduinos và ESP32 trong một thời gian, nhưng tôi chưa bao giờ tạo được thành phẩm. Tôi đã tạo đồng hồ báo thức với 4 màn hình OLED đơn sắc 1,3 inch. Đồng hồ cũng có đèn ngủ có thể điều chỉnh độ sáng và cổng sạc USB (không ai có ổ cắm dự phòng cạnh giường của anh ấy). Màn hình OLED cũng có thể điều chỉnh độ sáng, điều này đã được thêm vào phút cuối sau khi dự án của tôi bị bạn gái đe dọa. Không nên làm mờ-trong giọng nói của bạn gái- đủ mờ, tôi cũng có thể cung cấp một phiên bản mã trong đó 3 màn hình được cấp nguồn trong khoảng thời gian nhất định. Mục tiêu là tạo ra một chiếc đồng hồ có thể sử dụng dễ dàng, với vẻ ngoài vượt xa "nguyên mẫu". Trong khi chế tạo đồng hồ, tôi đã gặp một số khó khăn mà tôi phải giải quyết, đó là lý do tại sao tôi nghĩ tài liệu hướng dẫn này đáng được chia sẻ. Đồng hồ có thể được tạo ra với một số công cụ nhỏ, tôi không thích kiểu "và cho bước tiếp theo, tôi đã sử dụng hướng dẫn 10.000 € / $ CNC mill" của mình.

Một số điều sẽ được giải thích trong hướng dẫn này (trong-structable-ception):

- Cách sử dụng / đấu dây màn hình I2C OLED với arduino / ESP32

- Cách sử dụng nhiều đối tượng I2C với một arduino / ESP32

- Cách tạo menu "có thể cuộn" bằng bộ mã hóa quay (+ cách sử dụng bộ mã hóa với ESP32 / arduino)

- Cách thiết kế và đặt hàng một PCB tùy chỉnh bằng cách sử dụng fritzing.

- Đồng hồ cũng sử dụng RTC (đồng hồ thời gian thực), trình điều khiển đèn LED, mô-đun điện áp bước xuống … Tôi sẽ không thực sự tham gia vào những thứ này vì thực sự có rất nhiều thông tin có sẵn cho các mô-đun này.

Tôi muốn lưu ý rằng tôi không phải là một lập trình viên chuyên nghiệp. Mục tiêu của người hướng dẫn của tôi là giải thích những điểm tôi đã đề cập ở trên. Cách tôi tập hợp tất cả lại cho sản phẩm cuối cùng của mình có thể không phải là cách sạch sẽ nhất. Đó là cách cho phép tôi theo dõi tất cả.

Quân nhu

Khi mua sắm vật tư, tôi luôn cố gắng cân nhắc tầm quan trọng của chất lượng / tài liệu so với giá cả. Nguồn cung cấp của tôi là sự kết hợp giữa các thương hiệu A và các bộ phận rẻ hơn của Trung Quốc. Mouser là một nhà cung cấp tuyệt vời nếu chất lượng là quan trọng, tôi đặt hàng từ Banggood / Aliexpress để mua các bộ phận rẻ hơn.

- Một bo mạch ESP32, tôi đã sử dụng Huzzah32 từ adafruit, nhưng có rất nhiều lựa chọn khác (rẻ hơn). Tôi chọn Huzzah32 vì nó được ghi chép rất đầy đủ.

- 4 màn hình I2C OLED 1,3 inch (128x64, với trình điều khiển SH1106), màn hình 0,96 "phổ biến hơn nhưng đối với dự án này, tôi thích màn hình 1,3"

- Trình điều khiển Sparkfun femtobuck để điều khiển đèn LED

- Đồng hồ RTC, tôi đã sử dụng đồng hồ có pin lithium

- Arduino nano

- Cổng USB 2.0 dành cho nữ (Tôi đã sử dụng: SS-52200-002 từ Stewart Connector)

- Giắc cắm DC cái (tôi đã sử dụng: L722A từ Switchcraft)

- Bộ chuyển đổi DC 12V 3A (GST36E12-P1J từ Mean Well)

- PCB tùy chỉnh, tùy chọn nhưng điều này làm cho dự án nhỏ gọn hơn rất nhiều và có thể dễ dàng sửa chữa nếu một bộ phận bị chết + độ tin cậy cao hơn vì ít dây hơn (jlcpcb.com)

- Vít và bu lông M3

- Chèn đồng M3

- Mô-đun bước xuống 12V đến 5V từ Pololu (DF24V22F5)

- Công suất 3 watt với tản nhiệt

- Dây nhảy

- Buzzer

- Bộ ghép kênh I2C (TCA9548A từ quả hạch)

- 2 bộ mã hóa Rotary (Tôi đã thử một số, không phải tất cả đều hoạt động với mã của tôi. Cái từ "DFrobot" hoạt động và cái từ có PCB tròn từ "DIYmore". Mã của tôi dường như không hoạt động với nút bấm thuộc loại KY-040. Đồng hồ báo thức của tôi sử dụng đồng hồ của DIYmore vì chúng rất dễ lắp vào bảng điều khiển (không cần thêm vít / lỗ).

- Phân loại tiêu đề nữ (tùy chọn)

- Gỗ làm khung: 18mmx18mmx2400mm

- Giấy truy tìm

Tôi cũng đã sử dụng một số công cụ (mỏ hàn, kim 3, cưa…), nhưng không có gì kỳ lạ cả.

Bước 1: Sử dụng Oled

Sử dụng Oled
Sử dụng Oled
Sử dụng Oled
Sử dụng Oled
Sử dụng Oled
Sử dụng Oled

Để sử dụng OLED, bạn phải cài đặt một thư viện. Tôi sử dụng U8G2lib của Oli Kraus, nó rất dễ hiểu và có hướng dẫn tham khảo với các ví dụ rõ ràng.

Để kết nối bo mạch của bạn (ESP hoặc arduino), bạn phải tìm các chân SDA và SCL. Các chân này là chân giao tiếp I2C. Google để tìm "sơ đồ chân" của bảng cụ thể của bạn nếu bạn không thể tìm thấy chúng.

Tôi đã thêm một số mã ví dụ. Mã này hoạt động cho cả arduino và ESP32, nhưng ESP32 ít có khả năng hết bộ nhớ hơn. Tất cả các oled mà tôi đã thử cho đến nay đều hoạt động với cả 3.3v (ESP32) và 5V.

Bước 2: Nhiều OLED

Nhiều OLED
Nhiều OLED

Đây là nơi mà dự án của tôi bắt đầu khác với rất nhiều đồng hồ báo thức khác. Hầu hết các arduinos / ESP chỉ có một hoặc hai chân I2C. Loại này hạn chế việc sử dụng các bộ phận I2C. Điều gì sẽ xảy ra nếu tôi có 4 cảm biến I2C và muốn hiển thị số đọc của chúng trên màn hình I2C? Nhập bộ ghép kênh. Muliplexer cho phép bạn xác định 7 phần I2C khác nhau. Điều này cho phép ESP32 của tôi sử dụng đồng hồ thời gian thực I2C và hiển thị thời gian bằng cách sử dụng lại I2C trên 4 màn hình (hoặc nhiều hơn, đừng để tôi cản trở bạn).

Tôi đã thêm một số mã ví dụ cho ESP32, từ đây trở đi, tôi không chắc arduino có thể theo kịp. Ví dụ chỉ sử dụng màn hình, nó có thể là những thứ khác như cảm biến I2C, v.v. Nguyên tắc luôn giống nhau, bạn gọi đúng kênh bằng "tcaselect (#);", sau đó bạn thực thi bất kỳ mã nào cần thiết cho đối tượng I2C của bạn.

Bước 3: Tạo menu có thể cuộn bằng bộ mã hóa quay

Tạo menu có thể cuộn bằng bộ mã hóa quay
Tạo menu có thể cuộn bằng bộ mã hóa quay
Tạo menu có thể cuộn bằng bộ mã hóa quay
Tạo menu có thể cuộn bằng bộ mã hóa quay
Tạo menu có thể cuộn bằng bộ mã hóa quay
Tạo menu có thể cuộn bằng bộ mã hóa quay

Điều đầu tiên, hãy kiểm tra bộ mã hóa của bạn. Tôi đã thêm một số mã để kiểm tra mô-đun bộ mã hóa của bạn. Như đã nêu trong nguồn cung cấp: Tôi chỉ thử nghiệm thành công mã của mình với các mô-đun mã hóa quay từ robot DF và mô-đun có PCB tròn từ DIYmore. Xem các hình ảnh ở trên để biết các bộ mã hóa phù hợp.

Thư viện tôi đã sử dụng là thư viện này:

Bản PDF mà tôi đã thêm hy vọng sẽ giúp ích cho cấu trúc menu mà tôi đã sử dụng cho đồng hồ của mình.

Làm cho bộ mã hóa hoạt động, là phần khó khăn nhất đối với tôi trong dự án này. Có rất nhiều bộ mã hóa khác nhau và rất nhiều thư viện khác nhau không phải lúc nào cũng tương thích với ESP32. Nhưng tôi nghĩ rằng một bộ mã hóa quay (đang hoạt động) là một giải pháp tốt nếu bạn muốn nhập nội dung nào đó. Nếu tôi chỉ sử dụng các nút, tôi sẽ cần nhiều hơn 1 và việc đặt thời gian sẽ mất rất nhiều lần nhấn.

Bước 4: Đặt mã chuyển đổi mã trước đó

Đặt mã chuyển đổi mã trước
Đặt mã chuyển đổi mã trước

Loại tiêu đề tóm tắt những gì tôi đã làm. Tôi đã cố gắng từng phần một và sau đó tôi kết hợp mọi thứ lại với nhau. Nhưng vì không có gì là dễ dàng cả, nên tôi phải thay đổi một số thứ. Giao tiếp nối tiếp là một quá trình chậm. Điều này cản trở việc đọc bộ mã hóa đúng cách. Để khắc phục điều này, tôi đã thêm các ngắt vào các chân của bộ mã hóa. Mã để đọc bộ mã hóa sau đó được gọi ngay lập tức nếu bạn đẩy hoặc xoay bộ mã hóa.

Một khi bạn hiểu cách xây dựng menu, bạn sẽ thấy rằng rất dễ dàng thêm hoặc bớt các tính năng theo ý thích của mình. Có lẽ bạn muốn lấy thời tiết hoặc thời gian hiện tại từ internet và hiển thị nó?

Tôi đã bỏ qua nhiều ý tưởng như vậy bởi vì tôi muốn trên hết là một khoảng thời gian đáng tin cậy. Một cái mà không làm gì tự động. Tôi làm việc những giờ rất kỳ quặc trong khu vực tiết kiệm ánh sáng ban ngày. Mỗi khi thay đổi giờ giấc, tôi lại lo lắng đến ngủ quên mất. Điện thoại của tôi có tự động thay đổi giờ không? Đồng hồ của tôi có được không? Chà, đồng hồ của tôi sẽ không, trừ khi tôi tự thay. Nhưng có lẽ bạn muốn đặt đồng hồ của bạn trong nhà bếp? Kịch bản khác nhau, thêm các tính năng cho đến khi hết bộ nhớ!

Bước 5: PCB tùy chỉnh với Fritzing + Schematic

PCB tùy chỉnh với Fritzing + Schematic
PCB tùy chỉnh với Fritzing + Schematic
PCB tùy chỉnh với Fritzing + Schematic
PCB tùy chỉnh với Fritzing + Schematic
PCB tùy chỉnh với Fritzing + Schematic
PCB tùy chỉnh với Fritzing + Schematic

Điểm chú ý: Adafruit chỉ ra rằng mặc dù bạn có thể cấp nguồn cho huzzah32 qua chân USB, nhưng bạn phải cẩn thận để không sử dụng đồng thời đầu cắm nguồn micro USB. PCB của tôi được cấp nguồn thông qua buck bước xuống, sau đó cấp nguồn cho huzzah qua chân USB. Vì vậy, hãy luôn rút phích cắm điện bên ngoài / tháo huzzah khỏi bo mạch khi tải lên.

Tôi quyết định hàn các tiêu đề nữ trên PCB vì nó giúp hoán đổi một phần dễ dàng hơn hoặc thêm một cảm biến I2C bổ sung chẳng hạn. Điều này cũng cho phép tôi dễ dàng loại bỏ nano hoặc ESP32 để tải các chương trình.

Tôi đã thêm tệp Frizting, tôi có thể nhập một cuốn tiểu thuyết ở đây, nhưng tôi nghĩ ví dụ này nói tốt nhất. Tôi bắt đầu với sơ đồ của toàn bộ thiết lập. Trong khi Fritzing có rất nhiều bộ phận trong thùng của nó, không phải mọi thứ đều ở đó. Đôi khi bạn có thể tìm thấy phần Fritzing trên internet, đôi khi bạn không thể. Những phần mà tôi không thể tìm thấy, tôi chỉ đơn giản thay thế bằng một phần tiêu đề nữ. Nếu bạn nhấp chuột phải vào nó, bạn có thể chỉnh sửa tiêu đề theo số lượng chân bạn muốn và chỉ định sơ đồ chân cho nó. Tôi đã làm điều này với mọi phần mà tôi không thể tìm thấy. Vì hầu hết tất cả các mô-đun sử dụng cùng một cao độ 0,1 inch (2,54mm), điều này sẽ cung cấp cho bạn khoảng cách chính xác cho các bộ phận.

Tiếp theo, bạn chuyển sang chế độ xem PCB của ứng dụng fritzing. Một PCB sẽ được đặt tại vị trí, nếu bạn nhấp vào nó, bạn có thể đặt kích thước của nó và chọn PCB một lớp hoặc hai lớp. Của tôi sử dụng 2 lớp. Fritzing sẽ đề xuất các kết nối bạn đã thực hiện trong chế độ xem giản đồ. Chương trình có tùy chọn tự động định tuyến, nhưng tôi không bao giờ sử dụng nó. Tôi muốn tổ chức các kết nối của mình theo cách thủ công. Trong khung nhìn PCB, các kết nối màu vàng nằm ở lớp trên cùng, màu cam nằm ở lớp dưới cùng. Một lần nữa, nếu bạn nhấp vào kết nối, bạn có thể chọn các thuộc tính của nó.

Để tạo ra PCB thực, bạn phải xuất nó dưới dạng tệp mầm. Trước khi thực hiện việc này, trong tab "định tuyến", bạn có thể kiểm tra các quy tắc thiết kế. Nếu mọi thứ đã kiểm tra, bạn có thể nhấp vào "xuất cho PCB". Hầu hết các nhà sản xuất sẽ yêu cầu tệp gerber, vì vậy hãy chọn export sang gerber.

Tôi đã đặt mua PCB của mình từ JLCPCB, tôi thích rằng họ ngay lập tức báo giá cho bạn. Tất nhiên là có nhiều lựa chọn khác.

Về sơ đồ: có 2 điện áp được sử dụng. Đèn LED và femtobuck được cấp nguồn trực tiếp từ nguồn 12V. Phần còn lại được cấp nguồn thông qua khóa bậc xuống với 5 volt.

Bước 6: Thiết kế + Lasercutter

Thiết kế + Lasercutter
Thiết kế + Lasercutter
Thiết kế + Lasercutter
Thiết kế + Lasercutter

Đối với thiết kế đầu tiên của mình, tôi đã thử sử dụng gỗ sồi nguyên khối (tôi đang theo học các lớp chế biến gỗ), nhưng nhanh chóng trở nên rõ ràng rằng điều này không lý tưởng. Gỗ quá dày nên khó lắp các bộ phận của bạn. Ghép kênh bạch dương 3mm cho phép các cách dễ dàng hơn để gắn chặt các bộ mã hóa và màn hình.

Tôi đã tìm thấy một dịch vụ lasercut trực tuyến, snijlab.nl, có sẵn cho những người có sở thích ở Rotterdam (họ vận chuyển đến Bỉ, Hà Lan và Đức). Trên trang web của họ, bạn có thể tải lên bản vẽ của mình và họ lập tức báo giá cho bạn. Tôi đã sử dụng Autocad, cái mà tôi có ở nơi làm việc, nhưng phần mềm không thực sự quan trọng. Nó chỉ cần là một bản vẽ vector (Vectr, Illustrator, Inkscape…). Hầu hết các cửa hàng sử dụng màu sắc để xác định xem bạn muốn cắt hoặc khắc.

Một số điều cần ghi nhớ:

- Tối đa. kích thước của tia laser (tôi đã vẽ một khung xung quanh các bộ phận của mình)

- Tối thiểu. khoảng cách giữa các vết cắt

- Hãy chắc chắn rằng bạn không vẽ bất kỳ đường kép nào, tia laser sẽ làm một đường chuyền thừa, làm bạn tốn thêm chi phí.

- Khi vẽ sơ đồ sang PDF, hãy đảm bảo bạn vẽ sơ đồ 1: 1. Bạn không muốn thu nhỏ hoặc vừa với giấy.

Bước 7: Lắp ráp

cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp

Tôi đã chế tạo đồng hồ xung quanh một khung gỗ, các tấm được giữ cố định bằng vít M3 và các miếng chèn trong khung. Nếu tôi muốn xây dựng phiên bản 2, tôi sẽ sử dụng các cấu hình "L" bằng nhôm để gắn các tấm vào. Rất khó để khoan chính xác các lỗ cho các miếng chèn bằng đồng. Tôi đã mất rất nhiều thời gian, chỉ cho một kết quả chấp nhận được. Điều này tất nhiên có nghĩa là bản vẽ lasercut phải được sửa lại. Tôi nghĩ rằng với cấu hình nhôm và chỉ đai ốc và bu lông, bạn sẽ có được kết quả tốt hơn.

Để khuếch tán ánh sáng tốt hơn, tôi đã dán giấy vào bên trong các lỗ. Điều này mang lại cho ánh sáng một ánh sáng đẹp cho nó.

Bước 8: Đừng dừng lại ở đây

Đừng dừng lại ở đây
Đừng dừng lại ở đây
Đừng dừng lại ở đây
Đừng dừng lại ở đây
Đừng dừng lại ở đây
Đừng dừng lại ở đây

Dự án xoay quanh một ESP32, tôi hầu như không sử dụng nó. Đèn phòng ngủ của tôi hiện có thể được điều khiển từ xa bằng blynk. Kiểm soát chúng bằng đồng hồ chỉ là một bước nhỏ nữa. Có lẽ bạn muốn có thêm một số màn hình hiển thị cho bạn biết nhiệt độ xung quanh ngôi nhà của bạn? Hoặc một số cảm biến cục bộ (vẫn còn các kết nối I2C dự phòng trên bộ ghép kênh đó!). Có thể đặt thời gian / báo thức qua ứng dụng và bluetooth?

Hãy cho tôi biết bạn đã thay đổi điều gì, bạn sẽ thay đổi điều gì, tôi nên thay đổi điều gì…

Đề xuất: