Mục lục:

Đồng hồ treo tường thiết kế chạy bằng điện của TheSUN, Arduino: 6 bước (có hình ảnh)
Đồng hồ treo tường thiết kế chạy bằng điện của TheSUN, Arduino: 6 bước (có hình ảnh)

Video: Đồng hồ treo tường thiết kế chạy bằng điện của TheSUN, Arduino: 6 bước (có hình ảnh)

Video: Đồng hồ treo tường thiết kế chạy bằng điện của TheSUN, Arduino: 6 bước (có hình ảnh)
Video: Xây dần ước mơ "Bảo Tàng Tiền Tệ" 🏛 2024, Tháng bảy
Anonim
TheSUN, Đồng hồ treo tường thiết kế chạy bằng Arduino
TheSUN, Đồng hồ treo tường thiết kế chạy bằng Arduino
TheSUN, Đồng hồ treo tường thiết kế chạy bằng Arduino
TheSUN, Đồng hồ treo tường thiết kế chạy bằng Arduino
TheSUN, Đồng hồ treo tường thiết kế chạy bằng Arduino
TheSUN, Đồng hồ treo tường thiết kế chạy bằng Arduino

Xin chào một lần nữa Người hướng dẫn-folks!:-P

Vì vấn đề vận chuyển, tôi không thể tiếp tục Dự án ABTW của mình nên tôi quyết định cho bạn xem một tác phẩm khác, tác phẩm mới nhất của tôi.

Tôi nghĩ rằng nhiều người trong chúng ta, giống như tôi, thích những dải LED có địa chỉ tốt (còn được gọi là LED NEOPIXEL). Bạn có thể lấy chúng từ ADAFRUIT. Các nhà cung cấp khác cũng sẽ cung cấp các sản phẩm tương tự. Có một thư viện có sẵn trên ADAFRUITS - GitHub (nhấp vào tôi) bao gồm một số mã mẫu.

Tôi đã nghĩ đến những NEOPIXELS đó, tôi có thể làm gì với những thứ nhỏ bé sáng bóng đó.

  • Màn hình LED ma trận? -> Để phức tạp và tôi không sử dụng nó (tại thời điểm này)
  • X-Mas Lighting? -> Nó phù hợp với mùa nhưng sẽ rẻ hơn nếu mua một cái:-P
  • một chiếc đồng hồ? -> Tại sao không! Nhưng nó phải phong cách và độc đáo

Vì vậy, chúng ta hãy làm một chiếc đồng hồ treo tường.

Nếu chúng ta quan sát kỹ đồng hồ đeo tay của mình (nếu bạn có đồng hồ kim như tôi), chúng ta sẽ nhận thấy rằng chúng ta có 12 giờ và 60 phút (hy vọng). Điều đó có nghĩa là chúng ta cần 60 LED có thể định địa chỉ, phu! Nếu chúng ta lấy một dải với 60 LED / mét, chúng ta sẽ nhận được đường kính ~ 318mm (radius = scope / (2 * Π)) chắc chắn là vậy quá lớn.

Sự thật là, nếu bạn hỏi ai đó về thời gian, sẽ không ai nói rằng đã 2 phút trôi qua 3 phút! Bạn sẽ nhận được câu trả lời là "Đã 5 giờ 3" Vậy tại sao chúng ta không nên chia nhỏ mọi thứ xuống còn 5 phút? Đối với điều đó, chúng tôi sẽ chỉ cần 12 đèn LED, có nghĩa là chúng tôi có đường kính 63,6mm. Chúng tôi cũng có thể phân biệt giờ và phút bằng cách tạo cho chúng một màu riêng biệt.

ĐÓ LÀ KẾ HOẠCH! Hãy xem tôi đã làm mọi thứ như thế nào. Như mọi khi, tôi sẽ cung cấp danh sách / hóa đơn vật liệu và hướng dẫn cách xây dựng nó.

Nếu bạn nghĩ rằng, chỉ có người Thụy Sĩ mới có thể làm ra những chiếc đồng hồ tuyệt vời, hãy để chứng minh rằng bạn đã sai (xin lỗi Thụy Sĩ:-P)

Bước 1: Thiết kế & Lựa chọn Vật liệu

Thiết kế & Lựa chọn Vật liệu
Thiết kế & Lựa chọn Vật liệu
Thiết kế & Lựa chọn Vật liệu
Thiết kế & Lựa chọn Vật liệu

Thiết kế:

Nếu chúng ta nhìn kỹ lại đồng hồ / đồng hồ kim, chúng ta sẽ thấy rằng vòng tròn được chia thành các bước 12 * 30 ° mà chúng ta biết, chúng ta cần 63,6mm cho Dải LED. Vì vậy, có thể căn chỉnh dải xung quanh ống bằng cách nào đó. Tôi quyết định sử dụng thủy tinh acrylic, vì nó trông đẹp và có thể bao bọc ánh sáng LED vào đó và tại mỗi lỗ hổng trên kính, một số tán xạ ánh sáng sẽ xảy ra. Vì vậy, giả sử: nhiều tạp chất hơn sẽ dẫn đến sự tán xạ ánh sáng nhiều hơn! Đó chính xác là những gì chúng tôi muốn. Vì vậy, hãy thoải mái lấy các công cụ khắc của bạn và sáng tạo:-)

Nếu bạn tham khảo danh sách BoM của tôi và tên tôi đặt cho đồng hồ, tôi đã chọn thiết kế giống mặt trời. Tôi đã nhận tất cả các bộ phận acrylic từ một người bán ở Đức trên E-Bay (liên kết được cung cấp trong BoM). bạn sẽ cần:

  • tấm nền acrylic, độ dày trong suốt = 6mm, đường kính = 300mm
  • tấm giữa acrylic, độ dày trong suốt = 3mm, đường kính = 150mm
  • tấm phía trước acrylic, sa tanh, độ dày = 3mm, đường kính = 90mm
  • ống acrylic, trong suốt, đường kính ngoài = 64mm (có nghĩa là chúng ta phải điều chỉnh một chút với dải đèn LED)
  • thanh acrylic, trong suốt, đường kính = 5mm (đây sẽ là dầm của chúng tôi); Ngoài ra còn có các thanh acrylic xung quanh với bong bóng bên trong, tôi giới thiệu chúng nhưng tôi không có chúng xung quanh.
  • keo acrylic

Điện tử (tham khảo Fritzing-files):

  • Arduino mini (hoặc tương tự)
  • 1 dải LED có thể định địa chỉ (12 LED cho các bước giờ và 5 phút)
  • 4 đèn LED định địa chỉ (phút đơn)
  • 2 điện trở 330Ohm
  • 1 Tụ điện 1000µF
  • 1 nguồn cung cấp năng lượng (5V / 500mA)
  • RTC DS-1307 (tùy chọn!)
  • Mô-đun Bluetooth (tùy chọn! Có, bạn có thể đặt thời gian qua BT và điện thoại thông minh Android)

Nếu bạn tự hỏi tại sao tôi có MAX485 chip trên BoM của mình. Câu trả lời là tôi muốn đồng bộ hóa đồng hồ với hệ thống tự động hóa tại nhà mà tôi sắp chế tạo (không bao giờ phải đặt đồng hồ để tiết kiệm ánh sáng ban ngày nữa:-P). Tôi sẽ mô tả điều đó trong blog của tôi trong phần tiếp theo vài tuần / tháng.

Như bạn đã nhận thấy, tôi cũng sẽ cố gắng làm cho đồng hồ không nối lưới với một số tấm pin mặt trời và LiPo, nhưng tôi không đề cập đến điều đó trong Có thể hướng dẫn này, hãy tự mình thử.

Bước 2: Chuẩn bị các bộ phận acrylic

Chuẩn bị các bộ phận acrylic
Chuẩn bị các bộ phận acrylic
Chuẩn bị các bộ phận acrylic
Chuẩn bị các bộ phận acrylic
Chuẩn bị các bộ phận acrylic
Chuẩn bị các bộ phận acrylic

Công cụ:

Trước hết, nó thực sự hữu ích nếu bạn in kế hoạch DWG mà tôi đã thêm trong tỷ lệ 1: 1. Điều này sẽ giúp bạn căn chỉnh tất cả các bộ phận và sẽ phục vụ bạn như một kế hoạch khoan. Ngoài ra bạn sẽ cần:

  • dao sở thích
  • thước đo khối lượng
  • cưa sắt
  • cái kẹp
  • khoan tay
  • có thể khoan, đường kính 65mm
  • một bộ máy khoan kim loại
  • một tập tin kim loại nhỏ
  • keo acrylic

Hãy bắt đầu:

Lấy tấm nền và căn chỉnh nó trên mặt bằng, để bạn có thể lấy được tâm của hình tròn. Bây giờ hãy lấy máy khoan cầm tay của bạn với chiếc khoan có thể gắn trên nó và khoan (rất chậm! Không gây nhiều áp lực!) Một lỗ ở trung tâm của tấm tiếp đất, vòng tròn bên ngoài phải sâu ~ 2-3mm. Điều này là để làm chìm dải LED vào tấm nền (dải LED rộng ~ 10mm, chùm tia chỉ có đường kính 5mm) và căn chỉnh chúng với chùm tia (tham khảo hình 1).

Bây giờ chúng ta cần cưa sắt, thước đo độ dài và ống acrylic. Chỉ cần cắt nó thành nhiều mảnh, tôi đã quyết định làm vỏ (ống) dài 40mm (hình 2). Bây giờ, lấy cưa sắt một lần nữa và tạo một chút rãnh nhỏ ở một bên của ống, làm cho nó nhẵn bằng giũa kim loại. Đó là nơi các dây sẽ đi ra;-) (tham khảo hình 3)

Đã đến lúc cho một ít keo… Lấy tấm giữa (d = 150mm) và tấm trước (tấm dày). Căn chỉnh chúng lại trên mặt bằng, cho một ít keo vào giữa tấm giữa, căn chỉnh tấm trước và đợi cho đến khi keo hơi cứng. Keo tôi sử dụng có độ cứng nhẹ và có thể mất đến 2-3 giờ, vì vậy tôi muốn sử dụng kẹp… (hình 3 và 4)

Thực hiện tương tự đối với việc dán ống lên tấm nền, đảm bảo rằng ống dẫn hướng thẳng vào tấm và được căn chỉnh ở vị trí bạn muốn đèn LED đầu tiên (12 giờ đồng hồ) ở đó.

Chờ cho đến khi nó cứng lại!

Giờ đây, chúng tôi có thể căn chỉnh 2 phần (đã được khớp sách) vào kế hoạch khoan 4 lỗ đơn phút của chúng tôi (đường kính 5mm hoặc đường kính của đèn LED bạn đã chọn; khoan chậm với áp lực không quá nhiều). Khoan sâu khoảng 8-9mm. Hãy cẩn thận, tấm thạch cao rất giòn và có thể bị phanh nếu bạn khoan sâu. Bây giờ bạn có thể dán chúng lại với nhau hoặc bạn quyết định, như tôi cắt một mối đe dọa vào tấm nền và gắn nó bằng vít.

Một lần nữa, đợi cho đến khi keo đông cứng, bây giờ căn chỉnh và dán các thanh dầm vào tấm nền. (hình 6) Đoán xem… đợi cho đến khi keo cứng lại:-) Chúng ta hãy tiếp tục phần điện tử…

Bước 3: Điện tử

Thiết bị điện tử
Thiết bị điện tử
Thiết bị điện tử
Thiết bị điện tử
Thiết bị điện tử
Thiết bị điện tử
Thiết bị điện tử
Thiết bị điện tử

Công cụ:

  • mỏ hàn
  • dây hàn
  • dao sở thích
  • một mẩu nhỏ của PCB tạo mẫu
  • dây tráng men hoặc bất kỳ dây nào khác mà bạn thích
  • keo nóng

Tôi đi dây với các đèn LED đơn lẻ. Nếu bạn sử dụng dây tráng men, đừng quên cạo sơn mài trước khi hàn. Bạn có thể sử dụng một con dao theo sở thích cho việc đó. Lưu ý rằng DOUT chuyển sang DIN trên đèn LED tiếp theo! (xem hình 2) Sau đó, bạn có thể cắt dải LED thành 4 phần tử, mỗi phần có 3 đèn LED. Hãy nhớ rằng, chúng tôi có Dải LED 63,6mm và đường kính ngoài 64mm của ống, vì vậy chúng tôi cần thêm một số "chiều dài để căn chỉnh nó chính xác với các chùm tia. Nối dây nó với dây tráng men như trong hình 4. Tôi đã làm một chút PCB proto sẽ phục vụ như một "bộ nguồn" và sẽ chứa các thành phần cho các Dải LED (hai Điện trở 330Ohm và Tụ điện 1000µF, hình 7). Hãy tham khảo Hình ảnh Fritzing để biết điều đó.

Bây giờ gắn Strip xung quanh ống, chỉ định các đèn LED cho các chùm tia. Pixel đầu tiên phù hợp với 12 giờ đồng hồ. Nếu bạn đã xoay quanh ngôi nhà của mình, đừng quên rằng mọi thứ đều được phản chiếu. Tiến hành ngược chiều kim đồng hồ! Sử dụng một số keo nóng để gắn nó vào ống. Một giọt nhỏ cho mỗi phân đoạn sẽ làm được điều đó!

Bạn có thể làm tương tự đối với các đèn LED đơn (cuối cùng được nhân đôi), chỉ cần thêm một ít keo nóng và ấn chúng vào các lỗ đã khoét sẵn.

Đừng nối dây Arduino, chúng tôi sẽ sử dụng phần cứng-nối tiếp cho kết nối BT, vì vậy trước tiên hãy kiểm tra các bước tiếp theo mà tôi mô tả phần mềm.

Bước 4: Mã

Mã số
Mã số
Mã số
Mã số

Bây giờ bạn có thể tải bản phác thảo vào Arduino. Bây giờ bạn cũng có thể nối dây các dải LED. Không kết nối Mô-đun BT !!! Trước tiên, chúng tôi muốn xem mã, bạn nên biết nơi bạn có thể chỉnh sửa một số thứ…

Tải xuống Arduino IDE và các thư viện. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Cài đặt IDE và đưa các thư viện vào thư viện- thư mục. Mở tệp INO đính kèm và tải nó lên arduino của bạn. Mã được mô tả ở đây là giống nhau nhưng với các nhận xét bổ sung! Nếu bạn đã làm mọi thứ đúng, bây giờ bạn có thể thấy "bootanimation". Có thể cài đặt thời gian trên bộ theo dõi nối tiếp. Chỉ cần nhập @ "giờ" / "phút" / "giây", ví dụ. @ 10/33 / 00 (10:33).

Hãy thoải mái chơi với mã… Sau đây tôi xin cung cấp cho bạn một mô tả ngắn gọn về Mã (Thiết lập mà không cần RTC!)

ĐỊNH NGHĨA:

#define PIN 6 // Dải LED theo giờ #define MINPIN 5 // LED Singelminute #define NUMPIXELS 12 // Số pixel trong giờ #define MINNUMPIXELS 4 // Số pixel trong một phút #define BAUDRATE 115200 // Baudrate, phải khớp tốc độ truyền của Mô-đun BT #define utch '@' // start BYTE of TimeSync

int timeset = 0; // cờ để lưu trữ nếu thời gian được đặt sau bootint delayval = 20; // độ trễ cho hoạt ảnh mờ dần int clocktimer = 10000; // thời gian làm mới int timebright = 250; // độ sáng của giờ Strip int mtimebright = 50; // độ sáng của singelminint khởi tạo = 0; // cờ để gọi hàm clearpixels sau bootint ahour; int oldahour = 0; // lưu trữ trước. hourint aminute; int oldamin = 0; // lưu trữ phút trước đó cho refresh asecond; int aday; int amonth; int ayear; int mmin; tmElements_t tm;

// Thiết lập cho 2 mảng LED NeoPixel (NAME = TYPE (SỐ PIXELS, MÀ PIN, ĐỊNH DẠNG RGB HOẶC GRB, FREQ); Tham khảo hướng dẫn Adafruit để biết thêm thông tin. Adafruit_NeoPixel pixel = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

CÀI ĐẶT:

void setup () {

Serial.begin (BAUDRATE); Wire.begin (); // Khởi tạo các dải, tất cả OFFpixels.begin (); minpixels.begin (); pixel.show (); minpixels.show ();

// Tạo một chút animationSerial.println ("SUNRISE"); bình Minh(); chậm trễ (1000); Serial.println ("SUNSET"); Hoàng hôn(); pixel.show (); Serial.println ("ĐÃ SN SÀNG"); }

VÒNG:

void loop () {// kiểm tra timesync while (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // nếu có @ trên dòng, hãy đọc byte / ints sắp tới {readtime (); }} // khởi tạo đèn LED, xóa hoạt ảnh khởi động

if (khởi tạo == 0) {clearpixels (); khởi tạo = 1; }

ahour = giờ ();

aminute = phút (); if (timeset == 1 || timeset == 0) // ở đây bạn có thể kiểm tra xem Time đã được đặt chưa, bạn có thể dừng chương trình tại đây nếu Timeset = FALSE, chỉ cần bỏ "|| timeset == 0"!

{

if (oldamin <aminute || oldahour đặt tất cả thành TẮT, hiển thị thời gian mới {clearpixels (); ClockDisplay ();}}}

Hiển thị đồng hồ:

void ClockDisplay () {

oldahour = ahour;

oldamin = aminute; int xhour, xmin;

if (ahour> = 12) {xhour = ahour-12; // chúng ta chỉ có 12 đèn LED để hiển thị trong 24h} else {xhour = ahour; } // chia tỷ lệ thành 5 phút bước xmin = (aminute / 5); if (oldamin <aminute) {oldamin = aminute; clearpixels (); } // lấy phần còn lại của phép chia dor singelmin LED mmin = (aminute% 5); // toán tử modulo vd. 24% 5 = 4! rất hữu ích: -Ppixels.setBrightness (timebright); pixel.setPixelColor (xmin, pixel. Color (5, 125, 255)); // bạn có thể thay đổi màu sắc ở đây! chơi xung quanh! pixel.setPixelColor (xhour, pixel. Color (255, 50, 0)); pixel.show ();

// hiển thị singel minsfor (int m = 0; m

minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, pixel. Color (255, 255, 0)); minpixels.show (); }} Đọc và xử lý thông tin TIME từ Sê-ri

void readtime () // nếu chúng ta đã có quá trình "@" dẫn đầu, dữ liệu sắp tới và lưu trữ thời gian cho TIME Lib {

ahour = Serial.parseInt (); aminute = Serial.parseInt (); asecond = Serial.parseInt (); aday = Serial.parseInt (); amonth = Serial.parseInt (); ayear = Serial.parseInt (); Serial.println ("TIMESET"); Serial.print (một giờ); Serial.print (":"); Serial.println (aminute); setTime (ahour, aminute, asecond, aday, amonth, ayear); }

Quet sạch tât cả

void clearpixels () // đặt mọi PIXEL đơn lẻ thành tắt để làm mới màn hình {

pixel.begin (); minpixels.begin (); for (int i = 0; ipixels.setPixelColor (i, pixel. Color (0, 0, 0)); minpixels.setPixelColor (i, pixel. Color (0, 0, 0)); pixel.show (); minpixels.chỉ(); } }

Bước 5: Ứng dụng Android và kết nối BT

Ứng dụng Android và Kết nối BT
Ứng dụng Android và Kết nối BT
Ứng dụng Android và Kết nối BT
Ứng dụng Android và Kết nối BT
Ứng dụng Android và Kết nối BT
Ứng dụng Android và Kết nối BT

Nếu bạn đã thành công với các bước trước đó, bây giờ bạn có thể kết nối Mô-đun BT của mình. (Tôi hy vọng bạn đã chắc chắn, rằng baudrates phù hợp). đừng quên vượt qua các dòng TX & RX:-)

Tải xuống và cài đặt ứng dụng, ghép nối với dongle BT của bạn, khởi động ứng dụng, kết nối với dongle và Đồng bộ hóa thời gian với thiết bị di động của bạn. Về cơ bản, APP hoạt động giống như chúng tôi đã làm trước đây. Nó chỉ gửi @ hh / mm / ss / dd / mm / YYYY được tạo từ thời gian hệ thống của nó. Tôi cũng cung cấp Tệp AIA của APPInventor và giải thích về bước tiếp theo (cho những ai quan tâm).

Bước 6: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

APP Inventor khá dễ sử dụng và đáng để nỗ lực cho một chương trình đơn giản như vậy.

Nếu bạn thực hiện một dự án mới, bạn sẽ tìm thấy chính mình ở màn hình DESIGNER. (hình 1) Đây là nơi chúng tôi thêm bảng, nút, cảm biến và các yếu tố khác để sử dụng thêm. Trong trường hợp của chúng tôi, chúng tôi cần:

  • một bảng (để gán tất cả các phần tử)
  • một trình chọn danh sách (để lựa chọn thiết bị BT mà chúng tôi kết nối)
  • một nút (để kích hoạt TIME qua BT)
  • một số nhãn (hiển thị ngày và giờ thực tế)
  • cảm biến đồng hồ (làm mới thời gian)
  • cảm biến khách hàng bluetooth (kết nối)

Thêm chúng cũng dễ dàng như kéo và thả! Trên Hình 2, bạn có thể thấy tổng quan về "ỨNG DỤNG" trong màn hình KHỐI. Chà, về cơ bản đó là nơi tất cả những điều "ma thuật" xảy ra. Ở trên cùng, tôi đã tạo một số biến để lưu trữ Thời gian và Ngày. Khối đầu tiên ở phía trên bên trái sẽ khởi tạo phần tử listpicker với danh sách các thiết bị BT được ghép nối. khối thứ hai, chúng tôi quyết định phải làm gì với phần tử đã chọn trước đó. Chà, chúng tôi muốn kết nối với nó.

Nếu bạn nhìn kỹ vào Khối tiếp theo, bạn có thể thấy, mà chúng tôi tạo ra, nếu trạng thái BT "được kết nối", thông báo BT. Nó giống như chúng ta đã nhập vào SerialMonitor trước đây. Khối cuối cùng bên trái sẽ cung cấp cho chúng ta các số 0 ở đầu để hiển thị thời gian (ví dụ: 01:08). Ở phía bên phải, bạn có thể tìm thấy khối cuối cùng của chúng tôi, đó là nơi chúng tôi sử dụng phần tử đồng hồ. Ở đây chúng tôi cập nhật các biến và hợp nhất chúng bằng thủ tục chữ số, điều này sẽ xảy ra sau mỗi 1000ms (cài đặt mặc định, thay đổi nó trong chế độ thiết kế) và hiển thị các giá trị cập nhật với nhãn. Đó chỉ là một mô tả ngắn gọn, nhưng APPInventor thực sự dễ dàng như vậy:-) Có thể có ai đó trong cộng đồng muốn viết một phần mềm cho iOS hoặc WindowsPhone. (sẽ rất tuyệt)

Tôi hy vọng bạn thích Có thể hướng dẫn của tôi! Chúc bạn vui vẻ với chiếc đồng hồ treo tường mới của mình! Có thể bạn muốn tặng nó cho người bạn yêu thương (mùa X-Mas):-)

Và nếu có bất kỳ câu hỏi nào, hãy hỏi tôi!

Trân trọng và Merry X-Mas.

Đề xuất: