Mục lục:

Đồng hồ báo thức Upcycled Đèn thông minh: 8 bước (có hình ảnh)
Đồng hồ báo thức Upcycled Đèn thông minh: 8 bước (có hình ảnh)

Video: Đồng hồ báo thức Upcycled Đèn thông minh: 8 bước (có hình ảnh)

Video: Đồng hồ báo thức Upcycled Đèn thông minh: 8 bước (có hình ảnh)
Video: Thật Bất Ngờ! Bà NGÔ THỊ MÂN Vợ Của TBT NGUYỄN PHÚ TRỌNG Là Người Như Thế Này #vstt 2024, Tháng mười một
Anonim
Đồng hồ báo thức Upcycled Đèn thông minh
Đồng hồ báo thức Upcycled Đèn thông minh
Đồng hồ báo thức Upcycled Đèn thông minh
Đồng hồ báo thức Upcycled Đèn thông minh
Đồng hồ báo thức Upcycled Đèn thông minh
Đồng hồ báo thức Upcycled Đèn thông minh

Trong dự án này, tôi nâng một chiếc đồng hồ báo giờ đã hỏng hoàn toàn. Mặt đồng hồ được thay bằng 12 đèn LED, chiếu sáng bằng dải đèn LED xung quanh viền đồng hồ. 12 đèn LED cho biết thời gian và dải đèn LED được lập trình để hoạt động như một báo thức, tăng độ sáng tối đa vào thời gian đã cài đặt. Mọi thứ đều được điều khiển bởi Raspberry Pi Zero cho phép vô số khả năng tích hợp và mở rộng như tự động đồng bộ hóa cảnh báo ánh sáng với báo thức điện thoại của bạn hoặc nhấp nháy đèn LED khi bạn nhận được email.

Dự án sử dụng các thành phần tương đối rẻ hoặc được tái sử dụng - thứ duy nhất tôi mua là bộ điều chỉnh điện áp. Mọi thứ khác mà tôi tình cờ có nằm xung quanh chẳng hạn như dải đèn LED bị cắt. Tài liệu hướng dẫn này sẽ hướng dẫn bạn cách tôi đã tạo ra một cuộc sống mới cho chiếc đồng hồ bị hỏng của mình và hy vọng có thể truyền cảm hứng cho bạn để nâng cao điều gì đó của riêng mình.

Bước 1: Các bộ phận

Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận

Để kiểm soát mọi thứ, chúng tôi sẽ sử dụng Raspberry Pi Zero vì nó nhỏ, chi phí rất thấp và có thể kết nối với WiFi, có nghĩa là chúng tôi không cần đồng hồ thời gian thực và do đó có thể dễ dàng cập nhật mã từ xa từ máy tính xách tay. Trừ khi bạn có Pi Zero W, chúng tôi sẽ kết nối với mạng WiFi bằng cách sử dụng USB WiFi dongle.

Đây là danh sách các bộ phận tôi đã sử dụng nhưng hầu hết mọi thứ đều có thể được hoán đổi cho các lựa chọn thay thế phù hợp. Ví dụ, thay vì Raspberry Pi, bạn có thể sử dụng Arduino với đồng hồ thời gian thực để điều khiển dự án.

Các bộ phận được sử dụng

  • Đồng hồ báo thức cũ
  • 30cm dải đèn LED trắng ấm
  • 1x Raspberry Pi Zero + thẻ micro SD
  • 1x USB WiFi dongle + bộ chuyển đổi micro USB sang USB
  • 12x đèn LED
  • Điện trở 12x 330ohm (sử dụng cao hơn nếu bạn muốn đèn LED mờ hơn)
  • 1x TIP31a (hoặc bóng bán dẫn công suất npn khác hoặc MOSFET)
  • 1x 1k điện trở
  • 1x Bộ chuyển đổi buck điều chỉnh DC-DC LM2596 (bước xuống 12V cho 5V cho Raspberry Pi)
  • Nguồn điện 1x 12v (+ cách đi vào dự án của bạn)
  • 10 cm x 10 cm gỗ cho mặt đồng hồ (nên mỏng phù hợp để gắn đèn LED của bạn vào)
  • Nhiều mảnh dây màu khác nhau

Những điều hữu ích cần có

  • Hàn sắt + thuốc hàn
  • Keo nóng
  • Đồng hồ vạn năng
  • Breadboard
  • Ghim tiêu đề nữ
  • Đầu đọc hoặc chuyển đổi thẻ Micro SD
  • Một máy tính
  • Bộ chuyển đổi Mini HDMI + Màn hình HDMI nếu bạn muốn sử dụng môi trường máy tính để bàn của Pi

Bước 2: Thiết lập Raspberry Pi

Thiết lập Raspberry Pi
Thiết lập Raspberry Pi
Thiết lập Raspberry Pi
Thiết lập Raspberry Pi

Hệ điều hành

Vì Raspberry Pi sẽ không được kết nối với màn hình, tôi đã chọn sử dụng Raspbian Buster Lite không đi kèm với môi trường máy tính để bàn. Nếu bạn mới sử dụng Raspberry Pi, bạn có thể muốn sử dụng Raspbian Buster tiêu chuẩn đi kèm với máy tính để bàn. Nếu bạn không chắc chắn về cách cài đặt hệ điều hành của mình, đây là một tài nguyên tuyệt vời. Cả hai hệ điều hành đều có thể được tải xuống từ trang web Raspberry Pi.

Hiện tại, hãy cấp nguồn cho Pi thông qua đầu vào nguồn Micro USB của nó. Đồng thời kết nối USB WiFi dongle.

Nói chuyện với Raspberry Pi

Sau khi mọi thứ được đóng gói, rất khó để truy cập Pi nếu bạn muốn thay đổi mã, v.v. Sử dụng SSH cho phép kết nối với Pi và điều khiển nó từ một máy tính khác. Tính năng này không được bật theo mặc định nhưng chúng tôi có thể thực hiện bằng cách tạo một thư mục có tên ssh trong phân vùng khởi động của thẻ SD của bạn. Nếu bạn đã đăng nhập vào Pi của mình, bạn cũng có thể thực hiện việc này bằng cách nhập sudo raspi-config trong Terminal và điều hướng đến Interfacing Options> SSH và chọn Yes để bật nó.

Bây giờ bạn có thể kết nối với Pi của mình trên một máy tính khác. Trên Mac hoặc Linux, bạn có thể sử dụng ứng dụng đầu cuối của mình nhưng trên hầu hết các phiên bản Windows, bạn sẽ phải cài đặt một ứng dụng khách SSH chẳng hạn như PuTTY. Kết nối với Pi bằng cách nhập ssh pi @ trong đó tên máy chủ được thay thế bằng tên máy chủ địa chỉ IP của Pi của bạn. Tên máy chủ mặc định là raspberrypi.local. Nó sẽ yêu cầu bạn nhập mật khẩu mà nếu bạn chưa thay đổi, đó là raspberry.

Cài đặt những thứ cần thiết

Trước tiên, hãy đảm bảo mọi thứ đều được cập nhật bằng cách chạy bản cập nhật sudo apt và sau đó là bản nâng cấp đầy đủ sudo apt.

Để đảm bảo những gì chúng ta cần kiểm soát các chân GPIO trên Pi, hãy nhập sudo apt-get install python-rpi.gpio và sudo apt-get install python3-rpi.gpio. Chúng phải được cài đặt trên phiên bản đầy đủ của Raspbian.

Mật mã

Đây là mã để tải xuống để làm cho tất cả hoạt động. Nếu bạn đang sử dụng môi trường máy tính để bàn, hãy dán các tệp này vào thư mục Tài liệu của bạn.

Nếu bạn đang sử dụng dòng lệnh của SSH, hãy điều hướng đến thư mục chính của bạn bằng cách nhập cd ~ / Documents và nhấn enter. Tạo một tệp mới có tên test1.py với nano test1.py. Thao tác này sẽ mở trình soạn thảo văn bản nano nơi bạn có thể dán mã của tệp test1.py đã tải xuống. CTRL-O và nhấn enter để lưu tệp và CTRL-X để thoát khỏi trình chỉnh sửa. Lặp lại quy trình cho các tệp còn lại.

Bước 3: Lắp đặt dải LED

Lắp đặt dải LED
Lắp đặt dải LED
Lắp đặt dải LED
Lắp đặt dải LED

Đầu tiên bật dải đèn LED vào đồng hồ để xem bạn sẽ cần bao nhiêu, đánh dấu độ dài này và cắt dải ở điểm cắt tiếp theo như hình minh họa. Việc hàn dây vào dải trước khi dải bị kẹt vào vị trí sẽ dễ dàng hơn rất nhiều. Đây là một hướng dẫn khá tốt về cách thực hiện điều này nhưng nếu bạn không chắc chắn, tôi sẽ chỉ thực hành về mối hàn trên đoạn bạn vừa cắt dải của mình. Hàn một dây vào điểm hàn dương và một dây vào cực âm. Đảm bảo bạn kiểm tra dải đèn LED hoạt động trước khi dán vào đồng hồ.

Do dải đèn LED tôi sử dụng trước đó đã bị mất lớp nền tự dính nên tôi phải dùng keo nóng để cố định dải xung quanh mép viền đồng hồ. Nếu bạn có chiều dài vượt quá, hãy che điểm mà các dây được gắn vào. Bạn có thể muốn cài đặt dải này sau nhưng tôi thấy việc nhét nó vào đồng hồ sẽ dễ dàng hơn.

Bước 4: Điều khiển dải LED

Điều khiển dải LED
Điều khiển dải LED

Kết nối dải đèn LED

Dải LED chạy trên 12V nên không thể cấp nguồn trực tiếp từ Pi. Để điều khiển chúng, chúng tôi sẽ sử dụng một bóng bán dẫn công suất (ví dụ TIP31a) được kết nối với Pi như hình trên. Trước tiên, tôi khuyên bạn nên kiểm tra tất cả điều này hoạt động trên breadboard.

  • Kết nối GPIO 19 với đế thông qua điện trở 1k
  • Bộ phát phải được kết nối với GND
  • Kết nối bộ thu với cực âm của dải LED
  • Kết nối thiết bị đầu cuối dải LED dương với + 12V

Thử nghiệm

Trong dòng lệnh, điều hướng đến thư mục tài liệu của bạn (cd ~ / Documents) và nhập python test1.py và nhập. Bạn sẽ thấy dải đèn LED tăng và giảm độ sáng. Để thoát khỏi chương trình, hãy nhấn CTRL-C. Bạn có thể chỉnh sửa tệp (nano test1.py) để thay đổi tốc độ và độ sáng trong chương trình.

nhập RPi. GPIO làm GPIO Thời gian nhập GPIO.setmode (GPIO. BCM) # Sử dụng sơ đồ chân BCM GPIO.setwarnings (Sai) # Bỏ qua cảnh báo về các chân đang được sử dụng cho những thứ khác ledStripPin = 19 # Dải đèn LED được điều khiển từ chân GPIO.setup này (ledStripPin, GPIO. OUT) # Đặt ledStripPin làm đầu ra pwm = GPIO. PWM (ledStripPin, 100) # PWM trên ledStripPin với tần số 100Hz dutyCycle = 0 # Độ sáng ban đầu dưới dạng phần trăm pwm.start (dutyCycle) thử: trong khi True: for dutyCycle trong phạm vi (0, 101, 1): # Làm mờ dần thời gian pwm. ChangeDutyCycle (dutyCycle).sleep (0,05) ngoại trừ KeyboardInterrupt: # Nhấn CTRL-C để thoát, sau đó: pwm.stop () # Dừng pwm GPIO.cleanup () # Xóa các chân GPIO

Bước 5: Làm mặt đồng hồ

Làm mặt đồng hồ
Làm mặt đồng hồ
Làm mặt đồng hồ
Làm mặt đồng hồ
Làm mặt đồng hồ
Làm mặt đồng hồ

Cắt miếng gỗ cho mặt đồng hồ của bạn theo kích thước sao cho nó vừa với đồng hồ của bạn. Tôi đặt của tôi để nghỉ ngơi ở khoảng 3 cm từ phía trước. Khoan 12 lỗ có đường kính của đèn LED (thường là 3mm hoặc 5mm), cách nhau 30 độ. Chà nhám mặt trước xuống và sơn một lớp hoàn thiện mà bạn chọn. Từ phía sau, đặt các đèn LED để chúng hướng ra phía trước. Tôi đã sử dụng keo nóng để giữ các đèn LED ở đúng vị trí với cực dương (dây dài hơn) hướng vào trong. Kích thước của mặt đồng hồ của tôi có nghĩa là tôi có thể hàn tất cả các cực âm với nhau (xem ở trên) vì vậy chỉ cần một dây để kết nối tất cả 12 đèn LED với GND. Tiếp theo, hàn dây vào mỗi đèn LED.

Nếu bạn muốn kiểm tra điều này trên bảng mạch, trước tiên hãy nhớ sử dụng một điện trở (330ohm là khá chuẩn) mắc nối tiếp với mỗi đèn LED trước khi bạn kết nối nó với một trong các chân GPIO của Pi. Thử với giá trị của điện trở bạn sử dụng để có được mức độ sáng mà bạn hài lòng. T-cobbler thực sự hữu ích để tách các chân của Pi thành một breadboard mặc dù bạn sẽ cần phải hàn các chân tiêu đề cho việc này. Sử dụng test2.py (chạy bằng python test2.py) nhưng đảm bảo trước tiên bạn chỉnh sửa chương trình và nhập các chân GPIO của Pi mà bạn đã sử dụng cho mỗi đèn LED.

nhập RPi. GPIO dưới dạng GPIO

thời gian nhập GPIO.setmode (GPIO. BCM) # Sử dụng sơ đồ chân BCM GPIO.setwarnings (Sai) # Bỏ qua cảnh báo về các chân đang được sử dụng cho nội dung khác # Thay thế một, hai,… bằng số chân tương ứng giờPin = [một, hai, ba, bốn, năm, sáu, bảy, tám, chín, mười, mười một, mười hai] # Các chân mà đèn LED được kết nối với từ 1-12 cho i trong phạm vi (0, 12): GPIO.setup (giờPin , GPIO. OUT) # Đặt tất cả các giờPin làm đầu ra GPIO.output (giờPin , 0) # Đảm bảo rằng tất cả các đèn LED đều tắt, hãy thử: trong khi Đúng: đối với tôi trong phạm vi (0, 12) GPIO.output (giờPin , 1): time.sleep (0,05) cho tôi trong phạm vi (0, 12) GPIO.output (giờPin , 0): time.sleep (0,05) ngoại trừ KeyboardInterrupt: # Nhấn CTRL-C để thoát và sau đó: GPIO.cleanup () # Dọn dẹp các chân GPIO

Bước 6: Cấp nguồn cho Pi

Cung cấp năng lượng cho Pi
Cung cấp năng lượng cho Pi

Chúng tôi cần một cách dễ dàng để nhận 5V vào Pi Zero để có thể loại bỏ cáp micro USB mà chúng tôi đang sử dụng để cấp nguồn cho nó từ trước đến nay. Có một số giải pháp giảm 12V xuống 5V chẳng hạn như bộ điều chỉnh điện áp tuyến tính LM7805 nhưng chúng không hiệu quả lắm vì vậy thay vào đó tôi đã chọn sử dụng bộ chuyển đổi buck có thể điều chỉnh hiệu quả hơn bằng cách sử dụng chip LM2596. NB với điều này, bạn sẽ phải vặn chiết áp cho đến khi điện áp đầu ra giảm xuống còn 5V theo yêu cầu, vì vậy bạn sẽ cần một số cách đo điện áp.

Sử dụng LM2596 rất đơn giản: kết nối + 12V với IN +, nối đất với IN-. Pi có thể được kết nối trực tiếp với 5V bằng cách kết nối OUT + với một trong các chân 5V của Pi nhưng hãy đảm bảo rằng bạn đã thay đổi điện áp đầu ra thành 5V trước khi làm điều này, nếu không bạn sẽ chiên Pi của mình!

Bước 7: Hoàn thiện mạch và đóng gói

Hoàn thiện mạch và bao bì
Hoàn thiện mạch và bao bì
Hoàn thiện mạch và bao bì
Hoàn thiện mạch và bao bì
Hoàn thiện mạch và bao bì
Hoàn thiện mạch và bao bì
Hoàn thành mạch và bao bì
Hoàn thành mạch và bao bì

Bây giờ chúng ta đã bao gồm tất cả ba phần tử của mạch được hiển thị cùng nhau trong mạch tổng thể ở trên. Để tiết kiệm không gian và làm cho mạch gọn gàng hơn, hãy đặt mạch của bạn trên bảng dải hoặc bảng nguyên mẫu. Đầu tiên hàn các thành phần nhỏ nhất, điện trở, sau đó là bóng bán dẫn điện, bất kỳ đầu nối nào và cuối cùng là dây dẫn. Lập kế hoạch cho mạch của bạn trước khi hàn để đảm bảo rằng bạn có không gian cho mọi thứ.

Tôi đã kết nối mọi thứ trên một PCB tạo mẫu và sử dụng các chân cắm đầu cái để Pi có thể gắn trực tiếp vào PCB. Các đèn LED trên mặt đồng hồ được kết nối thông qua các điện trở ở một bên của bảng và tôi đã giữ khoảng trống ở phía bên kia của bảng cho bóng bán dẫn công suất và miễn phí cho bất kỳ mạch điện nào khác mà tôi có thể muốn thêm vào sau này.

Gắn mặt đồng hồ vào đồng hồ và đảm bảo tất cả các thiết bị điện tử đều khớp với nhau. Mọi thứ đều khá vừa vặn với tôi nên bạn có thể cần phải sắp xếp lại. Kết nối nguồn điện và chạy test1.py và test2.py từ SSH để kiểm tra mọi thứ hoạt động trước khi gắn mặt sau.

Bước 8: Tải mã lên + Hoàn tất

Tải lên mã + Kết thúc
Tải lên mã + Kết thúc
Tải lên mã + Kết thúc
Tải lên mã + Kết thúc
Tải lên mã + Kết thúc
Tải lên mã + Kết thúc

Mật mã

Cuối cùng, nếu bạn chưa có, hãy tải mã lên và điều chỉnh nó theo ý muốn (sử dụng nano filename.py). Lợi ích của việc kết nối với Pi qua SSH là bạn có thể cập nhật mã mà không cần mở đồng hồ.

Các chương trình python này từ Bước 2 thực hiện như sau:

  • light_clock_simple.py chỉ đơn giản là hiển thị giờ trên các đèn LED và làm mờ dần lên và xuống dải LED vào những thời điểm nhất định
  • light_clock_pwm.py tương tự như trên nhưng cũng cho phép giảm độ sáng của đèn LED và hiển thị phút ở độ sáng khác với giờ. Bạn sẽ cần xem xét các mức độ sáng của cả hai để độ tương phản giữa cả hai là đáng chú ý

Những điều này sẽ cung cấp cơ sở vững chắc để thêm vào mã, chẳng hạn như bạn có thể muốn thêm một nút để báo lại báo thức bằng đèn.

Để khởi chạy chương trình khi Pi khởi động, chúng ta cần thêm '@reboot nohup python light_clock_pwm.py &' vào cuối tệp crontab có thể mở từ terminal bằng crontab -e. Khởi động lại Raspberry Pi của bạn để kiểm tra xem nó đang hoạt động với sudo shutdown -r ngay bây giờ.

Bổ sung tiềm năng

Dưới đây là một số ý tưởng về chức năng bổ sung có thể được thêm vào

  • Thêm nút báo lại
  • Thêm chế độ đèn
  • Kết nối với IFTTT (ví dụ: đèn có thể bật sáng khi báo thức điện thoại của bạn tắt / nhấp nháy khi nhận được email)
  • Thêm khả năng cảm ứng công suất tức là biến đồng hồ thành đèn cảm ứng

Bạn có thể nhận thấy khi sử dụng PWM rằng đôi khi, đặc biệt là với độ sáng thấp hơn, đèn LED nhấp nháy một chút. Điều này là do Pi sử dụng phần mềm PWM nên các quy trình của CPU có thể ảnh hưởng đến chu kỳ nhiệm vụ. Có ít quy trình đang chạy giúp giải quyết vấn đề này, vì vậy tôi đã sử dụng hệ điều hành Raspbian Lite giảm bớt. Phần cứng PWM cũng có sẵn trên một vài chân, vì vậy nếu nhấp nháy đang chứng tỏ có vấn đề, đây có thể là điều cần xem xét.

Tôi hy vọng bạn đã tìm thấy thông tin có thể hướng dẫn này và cảm thấy có cảm hứng để nâng cấp một chiếc đồng hồ báo thức cũ hoặc sử dụng các phần tử của mã cho dự án của riêng bạn.

Thử thách tốc độ dải LED
Thử thách tốc độ dải LED
Thử thách tốc độ dải LED
Thử thách tốc độ dải LED

Giải nhì trong Thử thách tốc độ dải đèn LED

Đề xuất: