Mục lục:

Gương thông minh cho nhiều người dùng với Lịch Google: 10 bước
Gương thông minh cho nhiều người dùng với Lịch Google: 10 bước

Video: Gương thông minh cho nhiều người dùng với Lịch Google: 10 bước

Video: Gương thông minh cho nhiều người dùng với Lịch Google: 10 bước
Video: P10 - [ENGSUB] - SmartMirror - Gương thông minh - VIETNAM EVENTS CALENDAR 2024, Tháng mười hai
Anonim
Gương thông minh cho nhiều người dùng với Lịch Google
Gương thông minh cho nhiều người dùng với Lịch Google
Gương thông minh cho nhiều người dùng với Lịch Google
Gương thông minh cho nhiều người dùng với Lịch Google

Trong hướng dẫn này, chúng tôi sẽ tạo một gương thông minh tích hợp với Lịch Google. Tôi thực hiện dự án này vì tôi thấy những chiếc gương thông minh thực sự tuyệt vời, chúng là một món quà trời cho vào buổi sáng. Nhưng tôi quyết định tự mình làm một cái từ con số 0 vì tất cả những cái khác đều có 1 khuyết điểm. Chúng quá cao cấp và lộn xộn. Tôi quyết định giữ điều này đơn giản.

Quân nhu

Trước

chúng ta sẽ bắt đầu, đây là những thứ bạn chắc chắn sẽ cần để xây dựng một Tấm gương giống như của tôi. Những nguồn cung cấp này sẽ có giá khoảng 250 đến 350 euro tùy thuộc vào khu vực của bạn và giá hiện tại.

Phần cứng

Cảm biến

  • Cảm biến nhiệt độ một dây
  • RWCL 0516 (Cảm biến chuyển động vi sóng)
  • Chiết áp mềm (Touchstrip từ Sparkfun)

Tin học

và của IC

  • Loa (3.2W ở 4Ω HOẶC 1.8W ở 8Ω)
  • MCP3008
  • Sự đột phá về bộ khuếch đại Adafruit I2S 3W Class D - MAX98357A
  • Raspberry Pi 3 B +
  • Thẻ SD (8GB là ổn)
  • Điện trở 4,7K Ohm

Đa dạng

  • Jumperwires
  • Breadboard
  • Gương hai chiều Acryl (truyền dẫn ánh sáng 15%)
  • Màn hình IPS (Kích thước tùy thuộc vào kích thước bạn muốn)
  • Cáp HDmi
  • Gỗ

Phần mềm

  • PuTTY
  • Trình chỉnh sửa mã (Notepad ++ là đủ)
  • Win32 Disk Imager
  • Hình ảnh hệ điều hành Raspbian

Bước 1: Thiết lập

Để bắt đầu, trước tiên, chúng tôi cần thiết lập số Pi của bạn cho mã tôi đã tạo.

Bạn sẽ cần hai thứ:

  • Win32 Disk Imager từ
  • Hình ảnh hệ điều hành Raspbian từ

Tải xuống tệp ZIP và giải nén nó vào bất cứ nơi nào bạn muốn.

Việc cài đặt

  1. Chọn hình ảnh của bạn qua biểu tượng thư mục
  2. Chọn thẻ SD của bạn qua menu thả xuống
  3. Bấm vào viết

Bây giờ chúng tôi sẽ cần phải thực hiện thêm một số cài đặt với một số cài đặt để có thể truy cập Pi.

  1. Đi tới thư mục khởi động của thẻ SD
  2. Mở tệp "cmdline.txt"
  3. Thêm ip = 169.254.10.1 Vào cuối dòng văn bản dài được phân tách bằng dấu cách (trên cùng một dòng).
  4. Lưu các tập tin.
  5. Tạo một tệp có tên ssh không có phần mở rộng trong cùng một thư mục

Bây giờ bạn có thể tháo thẻ SD và đặt nó vào Pi của mình.

Đang kết nối

Bây giờ chúng ta sẽ cần thiết lập phần mềm.

Đầu tiên hãy cắm cáp LAN, một đầu vào máy tính để bàn / máy tính xách tay của bạn và đầu kia vào Pi của bạn.

Bây giờ khởi động Raspberry Pi.

  1. Cài đặt Putty từ
  2. Nhập 169.254.10.1 vào hộp IP.
  3. Đảm bảo rằng SSH được chọn và cổng 22 đã được điền.
  4. Bấm mở
  5. Điền tên người dùng: pi
  6. Điền mật khẩu: raspberry

Raspi-config

Mở tiện ích Raspi-config bằng cách sử dụng:

sudo raspi-config

Bật các tùy chọn sau trong danh mục giao diện

  • 1 dây
  • SPI

Chọn quốc gia WiFi của bạn thông qua danh mục bản địa hóa.

Tiếp theo, vô hiệu hóa các tùy chọn sau trong danh mục tùy chọn khởi động

Màn hình giật gân

Cuối cùng đặt cài đặt Desktop / CLI trong danh mục tùy chọn khởi động thành Desktop Autologin.

Wifi

Đối với mirror, chúng ta cần phải có kết nối wifi vì vậy hãy đảm bảo rằng bạn đã đóng thông tin đăng nhập wifi của mình.

Chuyển sang chế độ gốc

sudo -i

Dán dòng này nhưng đảm bảo rằng cả SSID và Mật khẩu đều được điền

wpa_passphrase "SSID" "MẬT KHẨU" >> /etc/wpa_supplicant/wpa_supplicant.conf

Nhập WPA Client.

wpa_cli

Chọn giao diện

giao diện wlan0

Tải lại cấu hình

cấu hình lại

Đảm bảo rằng bạn được kết nối chính xác bằng cách nhập…

ip a

… Và xem liệu bạn có IP trên các giao diện WLAN0 hay không.

Các gói

Bây giờ chúng tôi đã kết nối với internet, chúng tôi sẽ phải cài đặt một số gói.

Trước tiên, chúng tôi sẽ cần làm mới danh sách gói cho danh sách mới nhất.

cập nhật apt sudo

Python

Chúng tôi sẽ buộc Raspbian sử dụng Python 3

update-Alternatives --install / usr / bin / python python /usr/bin/python2.7 1

update-Alternatives --install / usr / bin / python python / usr / bin / python3 2

MariaDB

Dán dòng sau để cài đặt cơ sở dữ liệu.

sudo apt cài đặt mariadb-server

Sau đó, chúng tôi sẽ cần bảo mật cài đặt của mình.

mysql_secure_installation

Nó sẽ yêu cầu chúng tôi nhập mật khẩu gốc hiện tại vì chúng tôi không có mật khẩu chỉ cần nhấn enter.

Tiếp theo, nó hỏi liệu chúng ta có muốn nhập mật khẩu gốc bằng y vì chúng ta muốn một mật khẩu.

Đối với các câu hỏi tiếp theo, chỉ cần nhập Y.

Cuối cùng, chúng tôi sẽ tạo một người dùng mà chúng tôi có thể sử dụng cho máy nhân bản.

Nhập shell mysql bằng cách thực hiện:

Nâng cao bản thân để root

sudo -i

Nhập shell mysql

mysql

Thay thế bằng tên người dùng của riêng bạn và tương tự bằng

cấp tất cả các đặc quyền trên máy nhân bản. * cho '' @ '%' được xác định bởi '';

Bây giờ chúng ta xóa bảng quyền.

QUYỀN RIÊNG TƯ CỦA FLUSH;

Máy chủ web Apache

Để cài đặt Webserver chạy dòng bên dưới.

sudo apt install apache2 -y

Các gói Python

Chúng tôi sẽ cài đặt các gói này

  • Bình giữ nhiệt
  • Bình-Cors
  • Flask-MySQL
  • Flask-SocketIO
  • PyMySQL
  • Flask-bùa hộ mệnh
  • Gevent
  • Gevent-websocket
  • Google-api-python-client
  • Google-auth
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Icalendar
  • Icalevents
  • Oauthlib
  • Python-socketio
  • Yêu cầu
  • Wsaccel
  • Ujson

Bằng cách làm

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Flask-Talisman gevent gevent gevent-websocket google-api-python-client google-auth google-auth-httplib2 google-auth-oauthlib httplib2 icalendar icalevents oauthlib python-socketio yêu cầu wsaccel ujson

Thiết lập loa

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bấu víu

Bây giờ chúng ta cần khởi động lại vì vậy hãy nhấn y.

Chạy lại tập lệnh

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bấu víu

Bây giờ chúng ta cần khởi động lại lần thứ hai

khởi động lại sudo

Màn hình (màn hình)

Tùy thuộc vào cách bạn muốn vị trí của màn hình, bạn có thể muốn xoay màn hình.

Để xoay màn hình, chúng ta cần truy cập các tùy chọn khởi động bằng cách thực hiện:

sudo nano /boot/config.txt

Và sau đó dán một trong những dòng sau vào tệp cấu hình:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

Cấu hình đầu tiên, 0, là cấu hình bình thường. 1 sẽ là 90 độ, 2 là 180 độ và cuối cùng là 270 độ.

Sau đó khởi động lại.

khởi động lại sudo

Bước 2: Cài đặt Gương

Cài đặt Gương
Cài đặt Gương

Bây giờ chúng tôi sẽ thiết lập một nơi để tải xuống mã của tôi.

cd / home / pi /

git clone https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject

Bây giờ chúng tôi sẽ sao chép một số thư mục vào đúng đích

sudo cp -R frontend / mirror / / var / www / html / mirror /

sudo cp -R frontend / dashboard / / var / www / html / Sudo cp -R backend / / home / pi / Mirror /

Cài đặt cơ sở dữ liệu là một bước cần thiết khi lập dự án.

sudo mysql -u root -p << CREATEDATABASE.sql

Bước 3: Cấu hình

Tệp cấu hình được đặt tại:

sudo nano /home/pi/Mirror/resources/config.ini

Nhập người dùng và mật khẩu MYSQL.

Đây phải là người dùng mysql mà chúng tôi vừa tạo.

Các cài đặt khác chúng tôi sẽ xem xét sau hướng dẫn này.

Bước 4: API của

Bây giờ chúng tôi đã hoàn tất cài đặt Pi, chúng tôi sẽ đề cập đến một số chủ đề bạn có thể muốn thực hiện.

Darksky

Tạo khóa API Darsky qua

Khi bạn đã đăng ký, bạn sẽ thấy khóa API của mình trên Trang tổng quan.

Nhập khóa này vào tệp cấu hình của dự án nhân bản mà bạn đã cài đặt trước đó.

Lịch

Theo mặc định, bạn sẽ chỉ có thể sử dụng url ical để xem lịch của mình. Nhưng phần này sẽ là về cách liên kết máy nhân bản của bạn với Hệ sinh thái của Google. Đây là một quá trình thường dài hơn và đau đớn hơn.

Những thứ chắc chắn bạn sẽ cần

Tên miền

Đây là những thứ chúng tôi sẽ thiết lập trong phần này

  • Tài khoản CloudFlare
  • Tài khoản nhà phát triển Google
  • Dự án dành cho nhà phát triển của Google
  • Thiết lập API Lịch

Bước 5: Lịch

Lịch
Lịch
Lịch
Lịch

Cloudflare

Thiết lập tài khoản cloudflare từ https://cloudflare.com và làm theo trình hướng dẫn để chuyển tên miền của bạn sang Cloudflare DNS.

Không cần tự tạo bản ghi A mà chỉ đến pi mâm xôi. Mã Mirror của tôi sẽ làm điều đó cho bạn. Vì trong hầu hết các wifi gia đình, IP không tĩnh nên sau khi khởi động lại, nó có thể không hoạt động nữa. Để mã của tôi tự động cập nhật ip, nó sẽ cần khóa API tài khoản của bạn.

  1. Nhấp vào nút Lấy khóa API của bạn trên bảng điều khiển ở phía bên tay phải. [Ảnh 1]
  2. Cuộn xuống và xem khóa API toàn cầu của bạn. [Ảnh 2]

Nhập khóa này vào tệp cấu hình của dự án nhân bản mà bạn đã cài đặt trước đó.

Tạo chứng chỉ SSL

Google yêu cầu chúng tôi phải có kết nối SSL. Để bắt đầu phần này, hãy đảm bảo rằng bạn đã thiết lập chính xác DNS Cloudflare.

Đầu tiên hãy thêm kho lưu trữ.

sudo add-apt-repository ppa: certbot / certbot

Cập nhật packagelist.

sudo apt-get cập nhật

Cài đặt CertBot

sudo apt install python-certbot-apache

Bắt đầu tạo chứng chỉ. Một lần nữa, bạn sẽ cần phải điền vào tên miền chính xác.

sudo certbot --apache -d example.com -d www.example.com

Sau khi tạo, nó sẽ hỏi bạn xem nó có nên chuyển hướng tất cả các kết nối sang SSL hay không. Chọn chuyển hướng.

Bây giờ nó sẽ cho bạn biết nó đã tạo thành công chứng chỉ cho miền của bạn. Đảm bảo lưu 2 đường dẫn mà nó cung cấp cho bạn.

  • /etc/letsencrypt/live/example.com/cert.pem
  • /etc/letsencrypt/live/example.com/privkey.pem

Bây giờ hãy chuyển đến thư mục có các chứng chỉ trong qua:

Đảm bảo thay đổi example.com thành máy chủ phù hợp.

cd /etc/letsencrypt/live/example.com/

Bây giờ chúng ta hãy sao chép những nội dung đó vào thư mục dự án của chúng ta.

cp cert.pem /home/pi/Mirror/resources/certs/cert.pem

cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem

Kết nối Apache với miền của bạn

Để định cấu hình Apache chính xác với miền của bạn, chúng tôi sẽ phải tạo một tệp cấu hình. Đảm bảo điền vào tên miền của bạn, ví dụ như funergydev.com.

sudo nano /etc/apache2/sites-enabled/example.com.conf

Sau đó dán nó vào tệp. Thay thế example.com bằng tên miền của bạn.

Đảm bảo rằng chứng chỉ và khóa cá nhân của bạn là đường dẫn chính xác. Đặt chúng thành đường dẫn mà bạn đã lưu trước đó khi chúng tôi tạo sau đó thông qua certbot.

DocumentRoot "/ var / www / html /" SSLEngine trên SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Các chỉ thị khác tại đây Tùy chọn Chỉ mục Theo dõiSymLinks AllowOverride Tất cả Yêu cầu tất cả được cấp

Bây giờ chúng ta cần kích hoạt một số sửa đổi và sau đó buộc Apache tải lại cấu hình bằng cách thực hiện:

sudo a2enmod ssl

sudo a2enmod viết lại

sudo systemctl tải lại apache2

Bây giờ bạn sẽ có thể chuyển qua tên miền của mình đến số pi và xem trang apache mặc định.

Bước 6: Google API

API Google
API Google
API Google
API Google
API Google
API Google

Truy cập bảng điều khiển dành cho nhà phát triển qua

Phần 1

Tạo dự án đầu tiên của bạn bằng cách nhấp vào bên cạnh biểu trưng API của Google và nhấp vào nút DỰ ÁN MỚI. Điền vào tên dự án thích hợp và nhấp vào nút tạo. [Ảnh1]

Phần 2

Bây giờ bạn sẽ đến trang này. Nhấp vào nút thư viện. [Ảnh2]

Đây là danh sách lớn tất cả các API bạn có thể sử dụng nhưng chúng tôi sẽ tìm kiếm API Lịch Google. Nhấp vào nó và nhấn BẬT. [Ảnh3]

Sau đó, bạn sẽ đến được tổng quan về API Lịch. Nhấp vào biểu trưng API của Google để quay lại dự án của bạn. [Ảnh 4]

Phần 3

Để thiết lập mọi thứ một cách chính xác, hãy nhấp vào danh mục thông tin xác thực và chọn tab Xác minh miền.

Tại đây, bạn sẽ phải xác minh tên miền của mình.

  1. Nhấp vào THÊM MIỀN
  2. Điền vào miền của bạn
  3. Sau đó, nó sẽ yêu cầu xác minh miền của bạn. Bấm tiếp tục.
  4. Chọn nhà cung cấp tên miền của bạn. [Ảnh5]
  5. Làm theo quy trình
  6. Bây giờ, bạn sẽ có thể thêm nó vào Danh sách xác minh miền trên Bảng điều khiển API của Google như thế này. Đảm bảo rằng miền của bạn đã được kiểm tra. [Ảnh6]

Phần 4

Bây giờ chọn tab màn hình chấp thuận OAuth. [Ảnh7]

Điền vào Tên ứng dụng

Tiếp theo, chúng tôi sẽ thêm phạm vi vào màn hình đồng ý. Điều này có nghĩa là chúng tôi sẽ hỏi người dùng trên màn hình đồng ý xem họ có muốn chia sẻ thông tin lịch của mình với nhân bản hay không.

  1. Nhấp vào thêm phạm vi và tìm kiếm lịch.
  2. Kiểm tra../auth/calendar.readonly và nhấn thêm. [Ảnh8]

Điền vào một miền được ủy quyền. Đây phải là miền bạn vừa xác minh. [Ảnh9]

Bây giờ hãy nhấp vào nút lưu lớn bên dưới biểu mẫu.

Phần 5

Cuối cùng, chúng ta cần tạo thông tin đăng nhập. Bởi vì chúng tôi nhấn nút lưu, chúng tôi đã được chuyển hướng đến tab thông tin xác thực. Nhấp vào tạo thông tin xác thực và chọn ID ứng dụng khách OAuth. [Ảnh10]

Chọn Loại ứng dụng: Ứng dụng web và đặt tên cho nó.

Nhập liên kết sau vào URI chuyển hướng được ủy quyền và điền vào miền chính xác.

example.com:5000/api/v1/setup/calendar/response

Bấm tạo. Thao tác này sẽ hiển thị cho bạn một cửa sổ bật lên chỉ cần nhấp vào OK. Bây giờ hãy nhấn nút tải xuống trên thông tin đăng nhập bạn vừa tạo

Phần 6

Bây giờ hãy mở tệp JSON và sao chép nội dung.

sudo nano /home/pi/Mirror/resources/credentials/credentials.json

Dán chúng vào đây.

Phần 7

Bây giờ chúng ta cần xác định miền của mình trong cấu hình bằng cách thực hiện:

sudo nano /home/pi/Mirror/resources/config.ini

Bước 7: Thiết kế gương

Thiết kế gương
Thiết kế gương
Thiết kế gương
Thiết kế gương
Thiết kế gương
Thiết kế gương
Thiết kế gương
Thiết kế gương

Thiết kế gương của bạn tùy thuộc vào cách bạn muốn. Thực hiện các phép đo chính xác của màn hình LCD và để lại một khoảng trống 2 cm trên một mặt của gương vì cảm biến chuyển động của Lò vi sóng sẽ được đặt ở đó. Nó không thể đứng sau bất kỳ kim loại nào.

Tôi kết nối 4 tấm gỗ với nhau. Những thứ này được xay ra để có một mặt trước sạch đẹp trước gương. Ở phía trên, tôi cũng khoan một vài lỗ để âm thanh của loa phát ra. Mặt đối diện của gương, phía dưới, tôi cắt một hình chữ nhật nhỏ để có thể dễ dàng đi dây điện. [Ảnh1]

Đây là 2 mảnh gỗ rẻ tiền mà màn hình sẽ được sử dụng. Vì tôi đã nói chúng ta sẽ cần khoảng cách 2 chiết suất giữa gương và vỏ. Tôi cũng thêm 3 miếng gỗ nhỏ và vặn chúng vào những miếng nghỉ ngơi đó. Vì vậy, màn hình sẽ ở đúng vị trí. [Ảnh2]

Cuối cùng thì nó trông như thế này. Tôi đã có một khoảng cách khoảng 3mm giữa các mảnh nghỉ ngơi đó và mặt trước của hộp gương. Chỉ đủ để tôi có thể đặt tấm gương Hai chiều dày 3mm vào. [Photo3]

Bước 8: Đi dây

Làm dây
Làm dây
Làm dây
Làm dây
Làm dây
Làm dây

Đảm bảo thực hiện đúng một trong các chương trình này.

Khi tôi đi dây, tôi dán nó vào mặt sau của màn hình bằng băng dính hai mặt. Vì nếu tôi muốn tháo rời chiếc gương và sử dụng nó cho các dự án khác, tôi có thể dễ dàng tháo nó ra. Nếu chắc chắn, bạn có thể dùng súng bắn keo nóng và dán vào mặt sau của gương.

Bước 9: Bắt đầu mã

Bắt đầu mã
Bắt đầu mã
Bắt đầu mã
Bắt đầu mã
Bắt đầu mã
Bắt đầu mã

LXSession

Đầu tiên chúng ta hãy tạo một vài thư mục

mkdir -p /home/pi/.config/lxsession/LXDE-pi/

Bây giờ chúng ta sẽ tạo một tệp, nơi chúng ta sẽ chỉ định một số tham số / lệnh khởi động.

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

Dán phần sau vào tệp.

@lxpanel - hồ sơ LXDE-pi

@pcmanfm --desktop --profile LXDE-pi @xscreensaver -no-splash @ point-rpi @sh /home/pi/Mirror/init_mirror.sh @xset s noblank @xset s off @xset -dpms

Chúng tôi sẽ cập nhật tập lệnh màn hình phản chiếu bắt đầu để phù hợp với máy chủ của chúng tôi.

sudo nano /home/pi/Mirror/init_mirror.sh

Chọn localhost nếu bạn không sử dụng lịch google và miền.

#! / bin / bash

sleep 15 chromium-browser --incognito --kiosk https:// localhost / mirror

Nếu bạn đang sử dụng nó thì hãy điền vào máy chủ của bạn.

#! / bin / bash

sleep 15 chromium-browser --incognito --kiosk

Dịch vụ

Bây giờ chúng ta sẽ thiết lập để mã Mirror tự động chạy.

Chúng tôi sẽ tạo một dịch vụ tự động bắt đầu mã cho chúng tôi.

Đi đến:

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

Và dán cái này vào tệp

[Đơn vị]

Description = Mirror Backend After = network.target mariadb.service [Service] Type = simple User = root ExecStart = / bin / sh /home/pi/Mirror/init.sh [Install] WantedBy = multi-user.target

Bây giờ chúng ta sẽ phải tải lại daemon systemd bằng cách thực hiện:

sudo systemctl daemon-tải lại

Và chúng tôi cũng sẽ cho phép dịch vụ tự động bắt đầu khi khởi động.

sudo systemctl cho phép nhân bản

Bây giờ chúng ta sẽ tắt nguồn.

sudo poweroff

Cài đặt cuối cùng

Cuối cùng, chúng ta cần xóa ip APIPA của mình để nó chỉ hoạt động trên WiFi.

  1. Đi tới thư mục khởi động của thẻ SD trên PC của bạn.
  2. Mở tệp "cmdline.txt"
  3. Bỏ ip = 169.254.10.1 ở cuối dòng văn bản dài.

Bước 10: Chạy Mirror

Chạy gương
Chạy gương
Chạy gương
Chạy gương
Chạy gương
Chạy gương
Chạy gương
Chạy gương

Truy cập ip trên màn hình phản chiếu hoặc nếu bạn đã thiết lập lịch google, hãy điền vào tên miền.

Bây giờ bạn sẽ có thể thiết lập gương của mình!

Nếu bạn gặp lỗi SSL trên máy nhân bản của mình, bạn có thể muốn thêm chứng chỉ của mình vào kho lưu trữ chứng chỉ Chromium.

Đề xuất: