Mục lục:

Magic Mirror với Tin tức, Thời tiết, Báo thức, Hẹn giờ và Todolist: 9 bước
Magic Mirror với Tin tức, Thời tiết, Báo thức, Hẹn giờ và Todolist: 9 bước

Video: Magic Mirror với Tin tức, Thời tiết, Báo thức, Hẹn giờ và Todolist: 9 bước

Video: Magic Mirror với Tin tức, Thời tiết, Báo thức, Hẹn giờ và Todolist: 9 bước
Video: The Ornament of the mahayan sutra 2024, Tháng mười hai
Anonim
Magic Mirror với Tin tức, Thời tiết, Báo thức, Hẹn giờ và Todolist
Magic Mirror với Tin tức, Thời tiết, Báo thức, Hẹn giờ và Todolist
Magic Mirror với Tin tức, Thời tiết, Báo thức, Hẹn giờ và Todolist
Magic Mirror với Tin tức, Thời tiết, Báo thức, Hẹn giờ và Todolist

Magic Mirror là một loại gương một chiều đặc biệt có màn hình hiển thị phía sau. Màn hình, được kết nối với Raspberry Pi, hiển thị các thông tin như thời tiết, nhiệt độ phòng, thời gian, ngày tháng, dao động cơ và nhiều thông tin khác. Bạn thậm chí có thể thêm micrô và thiết lập trợ lý thông minh. Các khả năng là vô tận.

Dự án này có thể khá tốn kém, một trong những phần đắt nhất bạn sẽ cần tất nhiên là màn hình. Đó là lý do tại sao tôi tái chế một màn hình từ một chiếc máy tính xách tay cũ. Tuy nhiên, tôi khuyên bạn nên sử dụng một màn hình lớn, sáng, độ tương phản cao để thực hiện dự án này. Nó có giá trị nó.

Chiếc gương tôi làm có những tính năng sau:

  • Tin tức từ nguồn cấp dữ liệu RSS do người dùng chọn
  • Thời tiết
  • Nhiệt độ bên trong
  • Một hệ thống báo động
  • Một hệ thống hẹn giờ
  • Một tay chơi chữ
  • Nhiều người dùng: màu ledstrip và nguồn mới thay đổi dựa trên người dùng được chọn.

Quân nhu

Để xây dựng Magic Mirror này, bạn sẽ cần:

  • Gương một chiều
  • Gỗ
  • Một Raspberry Pi
  • Một thẻ Micro SD (8 + GB)
  • Một breadboard
  • Hai loa 20W
  • Bộ khuếch đại MAX9744 20W để cấp nguồn cho loa
  • 1m 30-led WS2801 ledstrip
  • Cảm biến nhiệt độ 1 dây DS18B20
  • Cảm biến hồng ngoại HC-SR501
  • Một bộ mã hóa quay
  • Màn hình hoặc màn hình máy tính xách tay cũ

    Nếu bạn đang sử dụng màn hình máy tính xách tay cũ, bạn sẽ cần mua một bộ chuyển đổi màn hình máy tính xách tay. Bạn có thể lấy những thứ này từ AliExpress, Ebay hoặc Amazon. Chỉ cần tìm kiếm số sê-ri của màn hình của bạn

Bạn cũng sẽ cần các thành phần nhỏ sau:

  • Một diode
  • Một điện trở 4,7k Ohm
  • Điện trở 470 Ohm
  • Dây kết nối cảm biến với Raspberry Pi

Và những nguồn cung cấp năng lượng này:

  • 5V 2A để cấp nguồn cho ledstrip
  • 12V 2A để cấp nguồn cho màn hình
  • 12V 2A để cấp nguồn cho bộ khuếch đại
  • 5.1V 3A để cấp nguồn cho Raspberry Pi (sử dụng nguồn điện RPi chính thức)

Bước 1: Cài đặt Raspbian

Màn hình và tất cả các thành phần đằng sau gương được cung cấp bởi Raspberry Pi. Bạn sẽ cần cài đặt Raspbian, hệ điều hành mặc định của Pi, vào thẻ SD.

  1. Tải xuống Win32 Disk imageer. Người dùng Linux và MacOS có thể sử dụng một cái gì đó như Etcher.
  2. Tải xuống hình ảnh Raspbian mới nhất từ trang web Raspberry Pi. Chọn tùy chọn 'Raspbian Buster với máy tính để bàn'
  3. Mở Win32 Disk Imager và ghi tệp hình ảnh vào thẻ SD.

Thẻ SD bây giờ gần như đã sẵn sàng. Chúng tôi chỉ cần đảm bảo rằng chúng tôi có thể kết nối với Raspberry Pi từ xa:

  1. Chuyển đến phân vùng 'khởi động' của thẻ SD bằng trình khám phá tệp của hệ thống của bạn.
  2. Thêm tệp có tên 'ssh' không có phần mở rộng.
  3. Thêm 'ip = 169.254.10.1' (không có dấu ngoặc kép) vào cuối dòng đầu tiên của 'cmdline.txt'.

Rút thẻ SD ra khỏi máy tính của bạn một cách an toàn, đặt nó vào Raspberry Pi và khởi động nó.

Bước 2: Cấu hình WiFi

Để quét mạng WiFi, hãy thực hiện lệnh sau:

sudo iw dev wlan0 scan | grep SSID

Bạn sẽ thấy danh sách tất cả các SSID mà Raspberry Pi của bạn có thể kết nối.

Tạo mục nhập mạng với mật khẩu được mã hóa bằng cách thực hiện lệnh sau và nhập mật khẩu mạng của bạn:

wpa_passphrase "YOUR_NETWORK_SSID_HERE"

Bây giờ dán đầu ra của lệnh trên vào tệp này:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Bây giờ khởi động lại Raspberry Pi. Bạn sẽ được kết nối với Internet.

Bước 3: Cài đặt và cấu hình phần mềm

Đối với dự án này, bạn sẽ cần tải các gói này xuống Raspberry Pi của mình:

pip3 install mysql-connector-python flask-socketio flask-cors gevent gevent-websocket adafruit-circuitpython-ws2801 adafruit-circuitpython-max9744

sudo apt install apache2 mariadb-server

Thêm dòng này vào cuối /boot/config.txt để bật âm thanh qua các chân GPIO 12 (trái) và 13 (phải):

dtoverlay = audremap

Sử dụng raspi-config để đặt độ phân giải màn hình của bạn và bật i2c, One-wire và SPI. Đồng thời đặt phương pháp khởi động thành 'Tự động đăng ký trên máy tính để bàn'.

Trong / etc / xdg / lxsession / LXDE-pi / autostart, thêm phần sau:

@xset s off @ xset -dpms @ xset s noblank @ chromium-browser --kiosk 127.0.0.1/mirror.html # tải chromium sau khi khởi động và mở trang web ở chế độ toàn màn hình

Thao tác này sẽ mở trình duyệt trên đúng trang khi tải LXDE (môi trường máy tính để bàn của Raspbian). Ngoài ra, hãy xóa hoặc bình luận dòng @xscreensaver để tắt bảo vệ màn hình.

Kho lưu trữ Github

Sao chép kho lưu trữ GitHub của tôi và đưa nội dung của thư mục Frontend vào / var / www / html. Chúng tôi sẽ cần thư mục Backend sau.

Bước 4: Cơ sở dữ liệu

Kho dữ liệu
Kho dữ liệu

Đây là lược đồ cơ sở dữ liệu, được tối ưu hóa thành 3NF. Nó lưu trữ tất cả các cảnh báo, nguồn mới, người dùng, dữ liệu cảm biến, âm thanh và dao động cơ.

  1. Sử dụng MySQL Workbench để truy cập máy chủ cơ sở dữ liệu pi của bạn (mariadb)
  2. Tạo cơ sở dữ liệu bằng lược đồ này và chèn dữ liệu của riêng bạn.
  3. Chỉnh sửa config.py trong thư mục Backend của kho lưu trữ GitHub của tôi: thay đổi tên cơ sở dữ liệu, tên người dùng bạn đã chọn và mật khẩu.
  4. Chỉnh sửa app.py và thay đổi URL API OpenWeatherMap thành của riêng bạn. (Tạo của riêng bạn ở đây)

Bước 5: Xây dựng khung gương

Xây dựng khung gương
Xây dựng khung gương
Xây dựng khung gương
Xây dựng khung gương
Xây dựng khung gương
Xây dựng khung gương

Tôi tạo khung xung quanh gương bằng cách sử dụng khớp Mitre với các góc kim loại. Tấm ván gỗ tôi đã sử dụng dày 18mm, rộng 10cm. Trong hình ảnh, bạn có thể thấy các số đo chính xác cho một chiếc gương 45cm x 60cm. Phía sau gương là tất cả các thiết bị điện tử, vì vậy hãy đảm bảo rằng tấm ván của bạn đủ rộng để lắp chúng.

Tôi đã sử dụng móc kim loại để gắn loa vào khung. Bằng cách đó, chúng không đè lên gương, giảm ứng suất rung lên kính.

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

Điện tử
Điện tử
Điện tử
Điện tử

Thực hiện theo các sơ đồ trên để xây dựng mạch. Tôi đã dùng băng dính để cố định các thiết bị điện tử vào gương.

Bước 7: Lắp các thiết bị điện tử vào khung

Lắp các thiết bị điện tử vào khung
Lắp các thiết bị điện tử vào khung
Lắp các thiết bị điện tử vào khung
Lắp các thiết bị điện tử vào khung

Sau khi gắn loa vào móc kim loại ở trên cùng, hãy thêm phần còn lại của thiết bị điện tử vào gương. Tôi cũng đặt một tấm ván gỗ mỏng giữa gương và các thiết bị điện tử, vì vậy thay vì dán các thiết bị điện tử vào gương, tôi dán các thiết bị điện tử vào tấm ván gỗ. Màn hình máy tính xách tay có bảng màu trắng ở dưới cùng của gương.

Như bạn có thể thấy trong hình ảnh, tôi đã cắm tất cả các bộ điều hợp nguồn bên trong một ổ cắm nhiều ổ cắm để chỉ có một dây cáp rời khỏi khung. Đây là lý do tại sao tôi cần những tấm ván đủ rộng (10cm).

Tôi đã khoan một lỗ rộng 2cm ở phía bên phải của gương để bộ mã hóa quay có thể lọt qua. Điều này cho phép bạn dễ dàng thay đổi âm lượng (lần lượt) hoặc loại bỏ bộ hẹn giờ và báo thức (đẩy).

Tôi đã khoan hai lỗ 8mm ở hai bên của gương để định tuyến cáp cho các bảng điều khiển.

Bước 8: Hoàn thiện các lần chạm

Kết thúc các lần chạm
Kết thúc các lần chạm
Kết thúc các lần chạm
Kết thúc các lần chạm
Kết thúc các lần chạm
Kết thúc các lần chạm

Tôi đã thêm một miếng vải đen vào mặt sau của gương để giấu các thiết bị điện tử. Nó cũng làm tối bên trong vỏ, khiến bạn khó nhìn thấy dây điện qua gương. Tôi đã gắn nó bằng khóa dán, giúp bạn dễ dàng truy cập các thiết bị điện tử hơn khi cần thiết.

Sao chép thư mục Backend từ kho lưu trữ Github của tôi vào một nơi bạn sẽ nhớ.

Thêm một đơn vị systemd để tập lệnh python chạy khi khởi động:

sudo nano /etc/systemd/system/magicmirror.service

[Đơn vị]

Description = Dịch vụ cho tập lệnh python magicmirror After = network.target [Service] ExecStart = / usr / bin / python3 -u app.py WorkingDirectory = / home / pi / magicMirror / Backend StandardOutput = inherit StandardError = inherit Khởi động lại = luôn Người dùng = pi [Cài đặt] WantedBy = multi-user.target

Thay đổi 'WorkingDirectory' thành thư mục Backend và thay đổi Người dùng thành tên người dùng của riêng bạn.

Bước 9: Tương tác với ứng dụng web

Tương tác với ứng dụng web
Tương tác với ứng dụng web
Tương tác với ứng dụng web
Tương tác với ứng dụng web
Tương tác với ứng dụng web
Tương tác với ứng dụng web
Tương tác với ứng dụng web
Tương tác với ứng dụng web

Lướt đến địa chỉ IP (trên màn hình). Bạn sẽ thấy một trang web ưu tiên thiết bị di động với các tính năng sau:

  • Biểu đồ nhiệt độ có thể tương tác
  • Một thời gian. Khi đồng hồ đang chạy, bạn cũng sẽ thấy đồng hồ đếm ngược trên chính gương.
  • Một hệ thống báo động
  • Tab cài đặt, nơi bạn có thể chỉnh sửa người dùng, nguồn mới và âm lượng loa.
  • Một máy tập chơi chữ. Các mục Todo sẽ được hiển thị trên gương

Mirror.html là trang được hiển thị trên Magic Mirror. Tôi đã thêm một ví dụ trong các hình ảnh ở trên.

Đề xuất: