Mục lục:

Đồng hồ dự báo thời tiết sử dụng báo thức cũ và Arduino: 13 bước (có hình ảnh)
Đồng hồ dự báo thời tiết sử dụng báo thức cũ và Arduino: 13 bước (có hình ảnh)

Video: Đồng hồ dự báo thời tiết sử dụng báo thức cũ và Arduino: 13 bước (có hình ảnh)

Video: Đồng hồ dự báo thời tiết sử dụng báo thức cũ và Arduino: 13 bước (có hình ảnh)
Video: Arduino | Đồng hồ thời gian thực DS3231 + LCD 2024, Tháng mười một
Anonim
Đồng hồ dự báo thời tiết sử dụng báo thức cũ và Arduino
Đồng hồ dự báo thời tiết sử dụng báo thức cũ và Arduino
Đồng hồ dự báo thời tiết sử dụng báo thức cũ và Arduino
Đồng hồ dự báo thời tiết sử dụng báo thức cũ và Arduino

Tôi có một chiếc đồng hồ báo thức bị hỏng nằm xung quanh và nảy ra ý tưởng chuyển nó thành đồng hồ và trạm dự báo thời tiết.

Đối với dự án này, bạn sẽ cần:

  • Đồng hồ báo thức tròn cũ
  • Arduino Nano
  • Mô-đun cảm biến BME280 (nhiệt độ, độ ẩm, áp suất)
  • Mô-đun màn hình LCD từ Nokia 5110
  • Đồng hồ DS1307 RTC
  • Bộ sạc pin Lithium TP4056
  • Pin Li-ion cũ được trục vớt từ điện thoại di động
  • Mô-đun tăng cường nhỏ 3.7v đến 5v
  • Điện trở phụ thuộc ánh sáng (LDR - đồng hồ đo ánh sáng)
  • Buzzer (một cái đã sử dụng được tận dụng từ PC cũ)
  • 3 nút nhấn
  • Một loạt các điện trở (2x10k, 270 ohm) và một bóng bán dẫn (2N2222A hoặc tương tự)
  • Một số ống co rộng
  • PCB phế liệu để sử dụng làm trang trí tấm trước
  • Cáp mở rộng Micro-USB (cả bên nữ và bên nam đều là Micro-USB)
  • Bảng nguyên mẫu 2x8cm và một số dây

Bước 1: Tháo rời mọi thứ

Tháo rời mọi thứ
Tháo rời mọi thứ

Đầu tiên tôi tháo rời chiếc đồng hồ cũ. Chuông, động cơ, cơ chế đồng hồ bị hỏng…

Bước 2: Các nút cho Cài đặt kỹ thuật số

Các nút cho Cài đặt kỹ thuật số
Các nút cho Cài đặt kỹ thuật số
Các nút cho Cài đặt kỹ thuật số
Các nút cho Cài đặt kỹ thuật số
Các nút cho Cài đặt kỹ thuật số
Các nút cho Cài đặt kỹ thuật số
Các nút cho Cài đặt kỹ thuật số
Các nút cho Cài đặt kỹ thuật số

Vì đồng hồ mới sẽ hoàn toàn là kỹ thuật số với một máy tính mini bên trong, tôi đã thêm 3 nút đơn giản đẹp mắt ở bên cạnh.

Sử dụng một mảnh nhôm vụn, tôi cắt lớp phủ để tạo nhãn. Các chữ cái cho các nhãn được tạo ra bằng cách sử dụng các phím bấm vào chữ cái và một điểm đánh dấu màu đen.

Bước 3: Tụ điện cho động cơ

Tụ điện cho động cơ
Tụ điện cho động cơ

Tôi sẽ giữ những chiếc chuông cũ để cung cấp năng lượng cho báo động bằng động cơ. Cơ chế đồng hồ cũ bị hỏng có một tụ điện bằng gốm với nhãn 104. Tôi đã tháo nó ra khỏi bảng mạch và hàn trực tiếp vào động cơ - điều này sẽ giúp tránh hiện tượng giật điện khi bật động cơ trong lúc báo thức. Cũng cần lưu ý rằng động cơ sẽ được điều khiển thông qua bóng bán dẫn nhưng nhiều hơn về điều này sau này.

Bước 4: Mặt mới cho đồng hồ

Mặt mới cho đồng hồ
Mặt mới cho đồng hồ
Mặt mới cho đồng hồ
Mặt mới cho đồng hồ

Vì tôi quyết định làm một bộ mặt mới cho đồng hồ - tôi đã lấy một bảng mạch từ đống thùng chứa của mình và sử dụng một khẩu súng nhiệt chuyên dụng để nhanh chóng loại bỏ tất cả các thành phần. Lỗ ở giữa được làm cho màn hình kỹ thuật số của đồng hồ mới.

Bước 5: Hiển thị kỹ thuật số từ điện thoại di động cũ

Màn hình kỹ thuật số từ điện thoại di động cũ
Màn hình kỹ thuật số từ điện thoại di động cũ
Màn hình kỹ thuật số từ điện thoại di động cũ
Màn hình kỹ thuật số từ điện thoại di động cũ

Đối với dự án này, tôi quyết định sử dụng màn hình LCD từ điện thoại di động Nokia 5110 cũ. Những màn hình này được bán rộng rãi như một mô-đun, chúng tiêu thụ rất ít điện năng và có những thư viện tốt cho Arduino. Nếu bạn đang mua một mô-đun mới với màn hình 5110 - bạn đang cứu hành tinh vì tất cả các mô-đun mới đều được tạo ra từ các điện thoại 5110, 3110 và 3210 đã được trục vớt!

Bước 6: Kết nối các mạch

Kết nối các mạch
Kết nối các mạch
Kết nối các mạch
Kết nối các mạch
Kết nối các mạch
Kết nối các mạch

Bạn có thể đã đoán được rằng tôi đang có ý định sử dụng bảng Arduino để điều khiển đồng hồ này. Dự án có thể dễ dàng lặp lại ngay cả đối với những người hâm mộ Arduino mới bắt đầu vì tôi không tạo bảng mạch của riêng mình. Đây là một bo mạch Arduino Nano với các mô-đun được kết nối với nó - cảm biến nhiệt độ, áp suất và độ ẩm BME280, đồng hồ DS1307 RTC, bộ sạc pin Lithium TP4056, mô-đun tăng áp nhỏ 3.7v đến 5v, Điện trở phụ thuộc ánh sáng (LDR - đồng hồ đo ánh sáng) và còi (lấy từ PC cũ).

Cũng hãy xem các bản phác thảo - chúng cho thấy tất cả các mối liên hệ. Tôi nghĩ mọi thứ đều rất dễ đọc và dễ hiểu nhưng nếu bạn có bất kỳ câu hỏi nào chỉ cần hỏi trong phần bình luận bên dưới.

Một số lưu ý về thiết lập:

  • Động cơ được kết nối trực tiếp từ pin thông qua bóng bán dẫn. Arduino điều khiển bóng bán dẫn thông qua điện trở và chân PWM D5.
  • Chân D7-12 được sử dụng cho đầu nối LCD. Mặt đất và VCC được kết nối với đường sắt trên bảng giao nhau.
  • LDR được lắp trên mặt đồng hồ và điện trở + 3 dây đi ra được hàn ngay mặt sau của mặt đồng hồ.
  • Đối với kết nối nút, tôi đã sử dụng chức năng PULLUP bên trong Arduino. Nút Menu được gắn vào ngắt và chỉ sau này tôi mới nhận ra rằng bạn cũng có thể sử dụng PULLUP bên trong cho ngắt. Cần có ngắt cho nút Menu để mã không quét trạng thái của các nút mọi lúc.
  • Đồng hồ sẽ theo dõi và hiển thị trạng thái của pin nên pin được kết nối trực tiếp với chân A0. Điện áp của pin không bao giờ cao hơn 4,2V vì vậy có thể an toàn khi kết nối pin trực tiếp với chân analog của Arduino.
  • Buzzer được kết nối trực tiếp với chân PWM D6. Mặc dù đây không phải là một thực tiễn tốt, nhưng tôi đã bỏ qua nó vì Arduino Nano có thể xử lý thông số kỹ thuật cao hơn đã nêu và cũng vì bộ rung sẽ không hoạt động liên tục. Việc thiết lập tương tự sẽ dễ dàng làm cháy các chân trên bảng ESP vì vậy trong những trường hợp đó, tôi khuyên bạn nên sử dụng điều khiển bóng bán dẫn.
  • Đồng hồ đã có công tắc nên tôi quyết định sử dụng nó. Nó trông tự nhiên ở mặt sau.

Bước 7: Bảng nối để kết nối dễ dàng

Bảng nối để kết nối dễ dàng
Bảng nối để kết nối dễ dàng
Bảng nối để kết nối dễ dàng
Bảng nối để kết nối dễ dàng

Tất cả các mô-đun đều yêu cầu kết nối tích cực và nối đất nên tôi quyết định sử dụng bảng nguyên mẫu 2x8cm và hàn các đường ray 5V và Ground vào nó. Tôi cũng đã làm một đường ray I2C nhỏ ở đó vì tôi có một số mô-đun sử dụng giao diện I2C.

Ở phía bên kia, tôi hàn các chân tiêu chuẩn để có thể kết nối và ngắt kết nối các mô-đun khi cần thiết.

Một số thành phần bổ sung cũng được hàn ở đó như bóng bán dẫn và điện trở để điều khiển động cơ và một điện trở cho nút Menu sử dụng Ngắt. Tôi đã trình bày các sơ đồ trong phần trước.

btw Bạn có thể thấy cảm biến LDR đã được cài đặt trên mặt đồng hồ trong hình đầu tiên không?

Bước 8: Thiết lập nguồn

Thiết lập nguồn
Thiết lập nguồn

Tôi đã sử dụng pin Lithium-ion cũ từ điện thoại di động của mình để cung cấp năng lượng cho đồng hồ này. Thông thường, pin điện thoại di động được thay thế vẫn còn dung lượng tốt (ít nhất một nửa so với khi mới). Ưu điểm của chúng là chúng có mạch bảo vệ phóng điện tích hợp và chúng cũng rất mỏng nên có thể được sử dụng trong các tình huống không gian nhỏ.

Để kết nối pin, bạn chỉ cần hàn dây vào các chân + và - trên pin. Đừng lo lắng, bạn sẽ không làm hỏng tế bào vì có một bộ điều khiển và một số không gian trống giữa các chốt và hóa chất của tế bào.

Trên hình này, bạn có thể thấy pin và bộ điều khiển sạc TP4056 cũng như bộ tăng áp 5V được kết nối với nhau và với pin. Tôi đã sử dụng một số ống bọc co lại để làm cho mọi thứ cô lập và nhỏ gọn.

Bước 9: Micro USB để sạc và cập nhật chương trình cơ sở

Micro USB để sạc và cập nhật chương trình cơ sở
Micro USB để sạc và cập nhật chương trình cơ sở

Khi tôi đã hàn mọi thứ, tôi dán bộ rung và cảm biến nhiệt độ / áp suất / độ ẩm trên bảng điều khiển phía sau. Tất cả chúng đều được lắp vừa vặn trong các khe hiện có từ các nút điều khiển quay số đồng hồ cũ.

Bây giờ là lúc để cài đặt cổng Micro USB ở mặt sau. Tại sao sử dụng Micro USB nếu Nano sử dụng Mini USB? Đơn giản vì trong gia đình, hầu hết cáp USB là từ điện thoại di động và sẽ rất tiện lợi nếu đồng hồ cũng có thể sử dụng nó.

Vì tôi muốn sử dụng nó để vừa sạc vừa cập nhật các chức năng của đồng hồ và trạm thời tiết - tôi đã rút cáp USB, chuyển dây nguồn qua bộ sạc TP4056 và dây Data + / Data- trực tiếp đến ổ cắm USB của Arduino Nano. Bạn có thể thấy điều này trên giản đồ mà tôi đã trình bày trong các phần trước.

Bước 10: Lắp ráp cuối cùng

Hội đồng cuối cùng
Hội đồng cuối cùng
Hội đồng cuối cùng
Hội đồng cuối cùng
Hội đồng cuối cùng
Hội đồng cuối cùng

Bây giờ đã đến lúc đóng gói mọi thứ trở lại đồng hồ ban đầu. Tôi đã sử dụng ống co để cô lập các thành phần và mô-đun. Ngay cả Arduino cũng được bọc trong ống thu nhỏ.

Di chuột vào ảnh đầu tiên để xem từng thành phần được đặt ở đâu.

Bước 11: Mã

Như bạn có thể thấy, đồng hồ được đóng gói đầy đủ bên trong. Điều này cho phép tạo ra thứ gì đó phức tạp hơn đồng hồ cũ mà tôi đã có - tất nhiên là có một số kỹ năng lập trình. Tôi đã viết mã ban đầu nhưng nhờ bạn tôi bước vào và giúp tôi.

Cho đến nay, ngoài đồng hồ, đây là những chức năng mà dự án này đã hỗ trợ:

  • Hiển thị thời gian và ngày tháng (cũng như thời gian và kích hoạt báo thức trên cùng một màn hình)
  • Màn hình sáng lên trong điều kiện tối hoặc khi phát hiện chuyển động (dựa trên sự thay đổi của ánh sáng)
  • Dự báo thời tiết (Nắng, Có mây, Có mưa)
  • Hiển thị nhiệt độ, áp suất và độ ẩm (đối với độ ẩm, nó sẽ cho biết liệu nó có quá khô hay không)
  • Menu cho cài đặt: báo thức, thay đổi thời gian, bật / tắt hiển thị ngày, bật / tắt thông báo âm thanh thay đổi thời tiết và chuyển đổi giữa các đơn vị đo lường Anh và hệ mét
  • Cài đặt báo thức - bật / tắt, cài đặt thời gian, cài đặt giai điệu và / hoặc chuông cho thông báo

Mã mới nhất:

Mã sẽ được cập nhật trong tương lai với các tính năng mới nên hãy nhớ kiểm tra lại để cập nhật chương trình cơ sở:-)

Nếu bạn chưa quen với thế giới Arduino, đây là các bước tôi khuyên bạn nên làm:

  • Cài đặt trình điều khiển USB cho bo mạch của bạn (ví dụ: CH340)
  • Cài đặt Arduino IDE
  • Cài đặt các thư viện được sử dụng trong dự án này
  • Tải xuống từ GitHub và tải mã Dự án mới nhất lên đồng hồ bằng cáp Micro USB (bạn có thể sử dụng một mã từ điện thoại di động)

Thuật toán dự báo như sau:

Arduino Nano nhận dữ liệu mới từ cảm biến BME280 12 phút một lần. Chu kỳ đo là 3 giờ. Sau 3 giờ, phạm vi giám sát áp suất (giá trị lớn nhất và nhỏ nhất trong 3 giờ) thay đổi so với giá trị trung bình trong phạm vi hiện tại và giá trị áp suất hiện tại. Mỗi giờ hướng thay đổi áp suất với giá trị áp suất hiện tại được lưu lại. đơn vị kPa được sử dụng để tính toán dự báo.

Do giới hạn bộ nhớ của Nano, thuật toán dự báo phải được đơn giản hóa. Nhưng bất chấp sự đơn giản hóa, nó có thể dự báo lượng mưa trong 12-24 giờ tới ngay cả khi dự báo hiện tại bi quan hơn - giá trị mặc định là "Thời tiết có mây".

"Thời tiết nắng" - giá trị hiện tại của áp suất cao hơn định mức 7 điểm, áp suất không giảm và chênh lệch giữa giá trị tối thiểu và tối đa trong 3 giờ qua không quá 2 điểm.

Có thể có mưa "Thời tiết có mưa" - áp suất hiện tại thấp hơn 15 điểm so với định mức và chênh lệch giữa các giá trị tối thiểu & tối đa là hơn 2 điểm HOẶC Áp suất đang giảm và chênh lệch giữa giá trị hiện tại và định mức là 3 - 30 điểm.

Để cải thiện chất lượng dự báo, bạn nên thay đổi "độ cao" trong tệp mã chính. Bạn có thể lấy ví dụ về độ cao của mình tại đây:

Bước 12: Video từng bước

Image
Image

Nếu khó làm theo những gì tôi đã làm ở trên, đây cũng là một phiên bản video với tất cả các bước được hiển thị.

Bước 13: Lời cuối cùng

Nhìn chung, theo quan điểm của tôi, độ khó của dự án này không cao và ai cũng có thể làm được, nếu bạn không có đồng hồ cũ, bạn có thể tìm một chiếc với giá rẻ ở chợ trời địa phương.

Tất cả các thành phần đều có giá thấp và có sẵn trên Sparkfun / Aliexpress / eBay / Amazon.

Tôi hy vọng hướng dẫn này thú vị với bạn và sẽ rất biết ơn nếu bạn có thể ủng hộ Bài hướng dẫn đầu tiên của tôi trong cuộc thi Đồng hồ.

Cuộc thi đồng hồ
Cuộc thi đồng hồ
Cuộc thi đồng hồ
Cuộc thi đồng hồ

Về nhì trong cuộc thi đồng hồ

Đề xuất: