Mục lục:
- Quân nhu
- Bước 1: Cài đặt Raspbian
- Bước 2: Cấu hình WiFi
- Bước 3: Cài đặt và cấu hình phần mềm
- Bước 4: Cơ sở dữ liệu
- Bước 5: Xây dựng khung gương
- Bước 6: Điện tử
- Bước 7: Lắp các thiết bị điện tử vào khung
- Bước 8: Hoàn thiện các lần chạm
- Bước 9: Tương tác với ứng dụng web
Video: Magic Mirror với Tin tức, Thời tiết, Báo thức, Hẹn giờ và Todolist: 9 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
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.
- 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.
- 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'
- 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:
- 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.
- Thêm tệp có tên 'ssh' không có phần mở rộng.
- 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
Đâ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ơ.
- Sử dụng MySQL Workbench để truy cập máy chủ cơ sở dữ liệu pi của bạn (mariadb)
- 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.
- 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.
- 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
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ử
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
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
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
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:
Trạm thời tiết NaTaLia: Trạm thời tiết sử dụng năng lượng mặt trời Arduino Đã thực hiện đúng cách: 8 bước (có hình ảnh)
Trạm thời tiết NaTaLia: Trạm thời tiết sử dụng năng lượng mặt trời Arduino Đã hoàn thành đúng cách: Sau 1 năm hoạt động thành công trên 2 địa điểm khác nhau, tôi đang chia sẻ kế hoạch dự án trạm thời tiết sử dụng năng lượng mặt trời của mình và giải thích cách nó phát triển thành một hệ thống thực sự có thể tồn tại trong thời gian dài thời kỳ từ năng lượng mặt trời. Nếu bạn theo dõi
Đồng hồ báo thức cực lớn lấy cảm hứng từ quả bom hẹn giờ với CHỈ 5 thành phần: 3 bước
Đồng hồ báo thức siêu ồn lấy cảm hứng từ Quả bom thời gian với 5 thành phần CHỈ: Tôi đã tạo ra chiếc đồng hồ báo thức lấy cảm hứng từ Quả bom thời gian dễ chế tạo này, đảm bảo sẽ đánh thức bạn vào buổi sáng. Tôi đã sử dụng những vật liệu đơn giản nằm xung quanh ngôi nhà của mình. Tất cả các mặt hàng được sử dụng đều có sẵn dễ dàng và không tốn kém. Báo động lấy cảm hứng từ quả bom hẹn giờ này c
Động cơ bước với Dép xỏ ngón và Hẹn giờ 555; Phần đầu tiên của mạch Bộ hẹn giờ 555: 3 bước
Động cơ bước với Dép xỏ ngón và Hẹn giờ 555; Phần đầu của mạch Bộ hẹn giờ 555: Động cơ bước là động cơ DC chuyển động theo các bước rời rạc, nó thường được sử dụng trong máy in và thậm chí cả robot. Tôi sẽ giải thích mạch này theo các bước. Phần đầu tiên của mạch là 555 bộ đếm thời gian. Đây là hình ảnh đầu tiên (xem ở trên) với chip 555 w
Bộ vi điều khiển AVR. Đèn LED Flasher sử dụng bộ hẹn giờ. Bộ hẹn giờ Ngắt. Chế độ hẹn giờ CTC: 6 bước
Bộ vi điều khiển AVR. Đèn LED Flasher sử dụng bộ hẹn giờ. Bộ hẹn giờ Ngắt. Chế độ hẹn giờ CTC: Xin chào các bạn! Bộ hẹn giờ là một khái niệm quan trọng trong lĩnh vực điện tử. Mọi thành phần điện tử hoạt động trên cơ sở thời gian. Cơ sở thời gian này giúp giữ cho tất cả các công việc được đồng bộ hóa. Tất cả các bộ vi điều khiển đều hoạt động ở một số tần số xung nhịp được xác định trướ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 đồng hồ báo thức cũ và Arduino: Tôi đã tìm thấy 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: Mô-đun cảm biến Arduino Nano BME280 cũ ( nhiệt độ, độ ẩm, áp suất) Màn hình LCD