Talaan ng mga Nilalaman:

Multi User Smart Mirror Sa Google Calendar: 10 Hakbang
Multi User Smart Mirror Sa Google Calendar: 10 Hakbang

Video: Multi User Smart Mirror Sa Google Calendar: 10 Hakbang

Video: Multi User Smart Mirror Sa Google Calendar: 10 Hakbang
Video: Smugglaz performs “SAMIN” LIVE on Wish 107.5 Bus 2024, Nobyembre
Anonim
Multi User Smart Mirror Sa Google Calendar
Multi User Smart Mirror Sa Google Calendar
Multi User Smart Mirror Sa Google Calendar
Multi User Smart Mirror Sa Google Calendar

Sa pagtuturo na ito, lilikha kami ng isang matalinong salamin na isinama sa Google Calendar. Ginawa ko ang proyektong ito dahil nakikita ko ang mga cool na salamin na talagang cool, sila ay isang pagkalooban ng Diyos sa umaga. Ngunit napagpasyahan kong gawing isa ang aking sarili mula sa zero dahil lahat ng iba ay may 1 pagkukulang. Masyado silang advanced at kalat. Napagpasyahan kong panatilihin itong simple.

Mga gamit

Dati pa

sisimulan namin ang mga ito ang mga bagay na tiyak na kakailanganin mo upang bumuo ng isang Mirror tulad ng sa akin. Ang mga supply na ito ay nagkakahalaga ng halos 250 hanggang 350 euro depende sa iyong rehiyon at kasalukuyang mga presyo.

Hardware

Mga sensor

  • Isang sensor ng Temperatura ng Wire
  • RWCL 0516 (Micartz sensor ng paggalaw)
  • Soft potentiometer (Touchstrip mula sa Sparkfun)

Computing

at IC's

  • Speaker (3.2W sa 4Ω O 1.8W sa 8Ω)
  • MCP3008
  • Adafruit I2S 3W Class D Amplifier Breakout - MAX98357A
  • Raspberry Pi 3 B +
  • SD card (8GB ay mabuti)
  • Resistor 4.7K Ohm

Iba-iba

  • Jumperwires
  • Breadboard
  • Acryl Two Way Mirror (15% Lighttransmission)
  • IPS Monitor (Ang laki ay nakasalalay sa kung gaano mo ito gusto)
  • HDMI cable
  • Kahoy

Software

  • PuTTY
  • Code editor (sapat na ang Notepad ++)
  • Win32 Disk Imager
  • Larawan ng Raspbian OS

Hakbang 1: Pag-setup

Upang magsimula kailangan muna naming i-set up ang iyong Pi para sa code na ginawa ko.

Kakailanganin mo ang dalawang bagay:

  • Win32 Disk Imager mula sa
  • Larawan ng Raspbian OS mula sa

I-download ang ZIP file at i-extract ito sa kung saan mo nais.

Ang pag-install

  1. Piliin ang iyong imahe sa pamamagitan ng icon ng folder
  2. Piliin ang iyong SD card sa pamamagitan ng dropdown
  3. Mag-click sa sumulat

Ngayon kakailanganin naming gumawa ng dagdag na tinkering sa ilang mga setting upang ma-access namin ang Pi.

  1. Pumunta sa direktoryo ng boot ng SD card
  2. Buksan ang file na "cmdline.txt"
  3. Magdagdag ng ip = 169.254.10.1 Sa dulo ng mahabang linya ng teksto na pinaghiwalay ng isang puwang (sa parehong linya).
  4. I-save ang file.
  5. Lumikha ng isang file na pinangalanang ssh na walang extension sa parehong direktoryo

Ngayon ay maaari mong palabasin ang SD card at ilagay ito sa iyong Pi.

Kumokonekta

Ngayon kakailanganin naming i-setup ang software.

Unang plug sa isang LAN cable, isang dulo sa iyong desktop / laptop at ang isa sa iyong Pi.

Ngayon boot ang Raspberry Pi.

  1. I-install ang Putty mula sa
  2. Ipasok ang 169.254.10.1 sa IP box.
  3. Tiyaking napili ang SSH at napunan ang port 22.
  4. I-click ang bukas
  5. Punan ang username: pi
  6. Punan ang password: raspberry

Raspi-config

Buksan ang Raspi-config utility sa pamamagitan ng paggamit ng:

sudo raspi-config

Paganahin ang mga sumusunod na pagpipilian sa kategorya ng mga interface

  • 1-Wire
  • SPI

Piliin ang iyong bansa sa WiFi sa pamamagitan ng kategorya ng localization.

Susunod, huwag paganahin ang mga sumusunod na pagpipilian sa kategorya ng mga pagpipilian sa boot

Splash screen

Panghuli itakda ang setting ng Desktop / CLI sa kategorya ng mga pagpipilian sa boot sa Desktop Autologin.

WiFi

Para sa salamin kailangan naming magkaroon ng isang koneksyon sa wifi kaya tiyaking malapit mo na ang iyong mga kredensyal sa wifi.

Pumunta sa root mode

sudo -i

I-paste ang linyang ito ngunit siguraduhin na ang SSID at Password ay parehong napunan

wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf

Ipasok ang WPA Client.

wpa_cli

Piliin ang interface

interface wlan0

I-reload ang config

muling pag-configure

Tiyaking nakakonekta ka nang tama sa pamamagitan ng pagta-type…

ip a

… at nakikita kung mayroon kang isang IP sa mga interface ng WLAN0.

Mga pakete

Ngayon na nakakonekta kami sa internet kakailanganin naming mag-install ng ilang mga pakete.

Una kailangan naming i-refresh ang mga listahan ng package para sa pinakabagong.

sudo apt update

Sawa

Pipilitin namin ang Raspbian na gamitin ang 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

I-paste ang sumusunod na linya upang mai-install ang database.

sudo apt i-install ang mariadb-server

Pagkatapos ay kakailanganin naming i-secure ang aming pag-install.

mysql_secure_install

Hihingi sa amin ito ng kasalukuyang root password dahil wala kaming isa pindutin lamang ang enter.

Susunod na tinatanong nito kung nais namin ang isang uri ng root password sa y dahil gusto namin ang isa.

Para sa mga susunod na katanungan ipasok lamang ang Y.

Panghuli lilikha kami ng isang gumagamit na magagamit namin para sa salamin.

Ipasok ang MySQL shell sa pamamagitan ng paggawa:

Itaas ang ating sarili na mag-ugat

sudo -i

Ipasok ang shell ng MySQL

MySQL

Palitan ng sarili mong username at pareho sa

ibigay ang lahat ng mga pribilehiyo sa salamin. * sa '' @ '%' kinilala ng '';

Ngayon flush namin ang talahanayan ng mga pahintulot.

FLUSH PRIVILEGES;

Apache Webserver

Upang mai-install ang Webserver patakbuhin ang linya sa ibaba.

sudo apt i-install ang apache2 -y

Mga pakete ng sawa

I-install namin ang mga package na ito

  • Prasko
  • Flask-Cors
  • Flask-MySQL
  • Flask-SocketIO
  • PyMySQL
  • Flask-talisman
  • Gevent
  • Gevent-websocket
  • Google-api-python-client
  • Google-auth
  • Google-auth -uonplib2
  • Google-auth-oauthlib
  • Httplib2
  • Icalendar
  • Icalevents
  • Oauthlib
  • Python-socketio
  • Mga Kahilingan
  • Wsaccel
  • Ujson

Sa paggawa

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Flask-Talisman gevent gevent-websocket google-api-python-client google-auth google-auth -uonplib2 google-auth-oauthlibuonplib2 icalendar icalevents oauthlib python-socketio hinihiling wsaccel ujson

Pag-setup ng speaker

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash

Ngayon kailangan naming mag-reboot kaya pindutin ang y.

Patayin muli ang iskrip

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash

Ngayon kailangan naming mag-reboot sa pangalawang pagkakataon

sudo reboot

Screen (monitor)

Nakasalalay sa kung paano mo nais ang oryntasyon ng iyong screen na maaaring gusto mong paikutin ang screen.

Para sa pag-ikot ng screen kailangan namin i-access ang mga pagpipilian sa boot sa pamamagitan ng paggawa:

sudo nano /boot/config.txt

At pagkatapos ay i-paste ang isa sa mga linyang ito sa config file:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

Ang una, 0, ay ang normal na pagsasaayos. Ang 1 ay magiging 90 degree, ang 2 ay 180 degree at ang huli ay 270 degree.

Pagkatapos ay i-reboot.

sudo reboot

Hakbang 2: Pag-install ng Mirror

Pag-install ng Mirror
Pag-install ng Mirror

Ngayon ay magse-set up kami ng isang lugar upang i-download ang aking code.

cd / home / pi /

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

Ngayon kopyahin namin ang ilang mga folder sa tamang patutunguhan

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

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

Ang pag-install ng database ay isang kinakailangang hakbang sa paggawa ng proyekto.

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

Hakbang 3: Pag-configure

Ang file ng pagsasaayos ay matatagpuan sa:

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

Ipasok ang gumagamit ng MYSQL at password.

Ito dapat ang gumagamit ng MySQL na ngayon lang namin ginawa.

Ang iba pang mga setting na pupuntahan namin mamaya ito ay nagtuturo.

Hakbang 4: Mga API

Natapos na namin ang pag-install ng Pi sasaklawin namin ang ilang mga paksang maaaring gusto mong gawin.

Madilim na langit

Lumikha ng isang key ng Darsky API sa pamamagitan ng

Kapag nakarehistro ka makikita mo ang iyong API key sa Dashboard.

Ipasok ang key na ito sa config file ng mirror project na na-install mo dati.

Ang Kalendaryo

Bilang default makakagamit ka lamang ng mga ical url upang matingnan ang iyong kalendaryo mula sa. Ngunit ang bahaging ito ay tungkol sa kung paano i-link ang iyong salamin sa Google Ecosystem. Ito ay isang pangkalahatang mas mahaba at mas masakit na proseso.

Mga bagay na tiyak na kakailanganin mo

Isang domainname

Ito ang mga bagay na mai-set up namin sa bahaging ito

  • CloudFlare account
  • Google Developer Account
  • Project ng Developer ng Google
  • I-setup ang API ng Kalendaryo

Hakbang 5: Ang Kalendaryo

Ang Kalendaryo
Ang Kalendaryo
Ang Kalendaryo
Ang Kalendaryo

Cloudflare

Mag-set up ng isang cloudflare account mula sa https://cloudflare.com at sundin ang wizard upang ilipat ang iyong domainname sa Cloudflare DNS.

Hindi na kailangang lumikha ng isang talaan ng iyong sarili na tumuturo sa raspberry pi. Gagawin iyon ng aking Mirror code para sa iyo. Dahil sa karamihan sa wifi ng sambahayan ang mga IP ay hindi static kaya pagkatapos ng pag-reboot ay maaaring hindi na ito gumana. Upang awtomatikong i-update ng aking code ang ip kakailanganin mo ang iyong account API key.

  1. I-click ang Kunin ang iyong API key button sa dashboard sa kanang bahagi. [Larawan 1]
  2. Mag-scroll pababa at tingnan ang iyong Global API key. [Larawan 2]

Ipasok ang key na ito sa config file ng mirror project na na-install mo dati.

Paglikha ng SSL Certificate

Hinihiling sa amin ng Google na magkaroon ng isang koneksyon sa SSL. Upang simulan ang seksyong ito siguraduhin na na-setup mo nang tama ang Cloudflare DNS.

Idagdag muna ang repository.

sudo add-apt-repository ppa: certbot / certbot

I-update ang packagelist.

sudo apt-get update

I-install ang CertBot

sudo apt i-install ang python-certbot-apache

Simulan ang paggawa ng sertipiko. Muli kakailanganin mong punan ang tamang domain name.

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

Matapos ang paglikha ay tatanungin ka namin kung dapat itong i-redirect ang lahat ng mga koneksyon sa SSL. Piliin ang pag-redirect.

Ngayon sasabihin nito sa iyo na matagumpay itong nakalikha ng isang sertipiko para sa iyong domain. Tiyaking i-save ang 2 mga landas na ibinibigay sa iyo.

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

Pumunta ngayon sa folder na may mga sertipiko sa pamamagitan ng:

Tiyaking palitan ang example.com sa tamang host.

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

Ngayon kopyahin natin ang mga nilalaman sa aming folder ng proyekto.

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

At

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

Ikonekta ang Apache sa iyong domain

Upang mai-configure nang tama ang Apache sa iyong domain kailangan naming lumikha ng isang config file. Tiyaking punan ang iyong pangalan ng domain halimbawa funergydev.com.

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

Pagkatapos i-paste ito sa file. Palitan ang example.com ng iyong domainname.

Tiyaking ang iyong cert at pribadong key ang tamang landas. Itakda ang mga ito sa landas na nai-save mo nang mas maaga noong lumikha kami noon sa pamamagitan ng certbot.

DocumentRoot "/ var / www / html /" SSLEngine sa SSLCert CertificateFile /home/pi/Mirror/resource/certs/cert.pem SSLCert CertificateKeyFile /home/pi/Mirror/resource/certs/privkey.pem # Iba pang mga direktiba dito Mga Pagpipilian Mga Index Sundin angSymLinks AllowOverride Lahat ng Kinakailangan lahat ng ipinagkaloob

Ngayon kailangan naming paganahin ang ilang mga pagbabago at pagkatapos ay pilitin ang Apache upang i-reload ang config sa pamamagitan ng paggawa:

sudo a2enmod ssl

sudo a2enmod muling isulat

sudo systemctl reload apache2

Ngayon ay maaari kang makapunta sa pamamagitan ng iyong domain name sa iyong pi at makita ang default na pahina ng Apache.

Hakbang 6: Google API

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

Pumunta sa developer console sa pamamagitan ng

Bahagi 1

Lumikha ng iyong unang proyekto sa pamamagitan ng pag-click sa tabi ng logo ng Google API at pag-click sa pindutang BAGONG PROYEKTO. Punan ang isang naaangkop na pangalan ng proyekto at i-click ang button na lumikha. [Larawan1]

Bahagi 2

Makakarating ka na sa pahinang ito. I-click ang pindutan ng library. [Larawan2]

Ito ay isang malaking listahan ng lahat ng mga API na maaari mong gamitin ngunit maghahanap kami para sa Google Calendar API. Mag-click dito at pindutin ang I-ENABLE. [Larawan3]

Maaabot mo ang isang pangkalahatang-ideya ng Calendar API. I-click ang logo ng Google API upang bumalik sa iyong proyekto. [Larawan4]

Bahagi 3

Upang mai-setup ang lahat nang tama mag-click sa kategorya ng mga kredensyal at piliin ang tab na Pag-verify ng domain.

Dito kakailanganin mong i-verify ang iyong domain name.

  1. I-click ang ADD DOMAIN
  2. Punan ang iyong domain
  3. Hihilingin nito na i-verify ang iyong domain. Mag-click magpatuloy.
  4. Piliin ang iyong domain provider ng pangalan. [Larawan5]
  5. Sundin ang proseso
  6. Ngayon ay maidadagdag mo na ito sa Listahan ng Pag-verify ng Domain sa Google API Console tulad nito. Tiyaking nasuri ang iyong domain. [Larawan6]

Bahagi 4

Piliin ngayon ang tab na screen ng pahintulot sa OAuth. [Larawan7]

Punan ang Pangalan ng Application

Susunod ay magdaragdag kami ng mga saklaw sa screen ng pahintulot. Nangangahulugan ito na tatanungin namin ang gumagamit sa screen ng pahintulot kung nais nilang ibahagi ang kanilang impormasyon sa kalendaryo sa salamin.

  1. I-click ang magdagdag ng saklaw at maghanap para sa kalendaryo.
  2. Suriin../auth/calendar.readonly at pindutin ang idagdag. [Larawan8]

Punan ang isang Awtorisadong Domain. Ito dapat ang domain na na-verify mo lang. [Larawan9]

Ngayon i-click ang malaking pindutan ng pag-save sa ibaba ng form.

Bahagi 5

Panghuli kailangan nating lumikha ng mga kredensyal. Sapagkat pinindot namin ang save button na nai-redirect kami sa tab ng mga kredensyal. I-click ang lumikha ng mga kredensyal at piliin ang OAuth Client ID. [Larawan10]

Piliin ang Uri ng aplikasyon: Web Application at bigyan ito ng isang pangalan.

Ipasok ang sumusunod na link sa Awtorisadong Redirect URI's at punan ang tamang domain.

example.comdagdag000/api/v1/setup/calendar/response

I-click ang lumikha. Ipapakita nito sa iyo ang isang popup i-click lamang ang OK. Pindutin ngayon ang pindutang mag-download sa mga kredensyal na iyong nagawa

Bahagi 6

Ngayon buksan ang JSON file at kopyahin ang mga nilalaman.

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

I-paste ang mga ito dito.

Bahagi 7

Ngayon kailangan naming tukuyin ang aming domain sa config sa pamamagitan ng paggawa:

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

Hakbang 7: Ang Disenyo ng Salamin

Ang Disenyo ng Salamin
Ang Disenyo ng Salamin
Ang Disenyo ng Salamin
Ang Disenyo ng Salamin
Ang Disenyo ng Salamin
Ang Disenyo ng Salamin
Ang Disenyo ng Salamin
Ang Disenyo ng Salamin

Ang pagdidisenyo ng iyong salamin ay nakasalalay sa kung paano mo ito nais. Gumawa ng tumpak na mga sukat ng LCD at mag-iwan ng 2 centimeter na puwang sa isang gilid ng salamin dahil nakaupo doon ang sensor ng paggalaw ng Micartz. Hindi ito maaaring nasa likod ng anumang metal.

Ikinonekta ko ang 4 na tabla ng kahoy na magkasama. Ang mga ito ay nagpagiling upang magkaroon ng magandang malinis na harapan ng salamin. Sa tuktok ay nag-drill din ako ng ilang mga butas upang madaanan ang tunog ng nagsasalita. Sa kabaligtaran ng salamin, sa ilalim, pinutol ko ang isang maliit na rektanggulo upang madali kong magawa ang mga kable ng kuryente. [Larawan1]

Ito ang 2 piraso ng murang kahoy kung saan bibigyan ng monitor ang monitor. Dahil sinabi kong kakailanganin namin ang tungkol sa isang 2centimeter na agwat sa pagitan ng salamin at ng kaso. Nagdagdag din ako ng 3 maliliit na piraso ng kahoy at inikot ito sa mga natitirang piraso. Kaya't ang monitor ay mananatili sa lugar. [Larawan2]

Sa huli ganito ang hitsura nito. Mayroon akong tungkol sa isang 3mm gapbet pagitan ng mga piraso ng pahinga at sa harap ng mirror case. Sapat lamang upang mailagay ko ang 3mm na makapal na Dalawang daan na salamin. [Photo3]

Hakbang 8: Paggawa ng Mga Kable

Paggawa ng Mga Kable
Paggawa ng Mga Kable
Paggawa ng Mga Kable
Paggawa ng Mga Kable
Paggawa ng Mga Kable
Paggawa ng Mga Kable

Tiyaking sundin nang maayos ang isa sa mga scheme na ito.

Sa sandaling ginawa ko ang mga kable ay inilagay ko ito sa likuran ng screen gamit ang dobleng sided tape. Dahil kung nais kong i-disassemble ang salamin at gamitin ito para sa iba pang mga proyekto madali ko itong matanggal. Kung natitiyak mo na maaari kang gumamit ng isang mainit na baril na pandikit at idikit ito sa likod ng salamin.

Hakbang 9: Pagsisimula ng Code

Pagsisimula ng Code
Pagsisimula ng Code
Pagsisimula ng Code
Pagsisimula ng Code
Pagsisimula ng Code
Pagsisimula ng Code

LXSession

Lumikha muna tayo ng isang pares ng mga folder

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

Ngayon ay lilikha kami ng isang file kung saan tutukuyin namin ang isang pares ng mga parameter ng pagsisimula / utos.

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

I-paste ang sumusunod sa file.

@lxpanel --profile 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

Ina-update namin ang panimulang mirror screen script upang tumugma sa aming host.

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

Piliin ang localhost kung hindi ka gumagamit ng google kalendaryo at isang domain.

#! / baseng / bash

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

Kung ginagamit mo ito pagkatapos ay punan ang iyong host.

#! / baseng / bash

matulog 15 chromium-browser --incognito --kiosk

Serbisyo

Ngayon ay mai-set up namin na awtomatikong tatakbo ang code ng Mirror.

Lumilikha kami ng isang serbisyo na awtomatikong nagsisimula ang code para sa amin.

Pumunta sa:

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

At i-paste ito sa file

[Yunit]

Paglalarawan = Mirror Backend Pagkatapos = network.target mariadb.service [Serbisyo] Uri = simpleng User = root ExecStart = / bin / sh /home/pi/Mirror/init.sh [I-install] WantedBy = multi-user.target

Ngayon kakailanganin nating i-reload ang systemd daemon sa pamamagitan ng paggawa:

sudo systemctl daemon-reload

At paganahin din namin ang serbisyo upang awtomatikong magsimula sa boot.

sudo systemctl paganahin ang salamin

Ngayon ay magpapalabas na kami.

sudo poweroff

Ang pangwakas na mga setting

Sa wakas kailangan naming alisin ang aming APIPA ip kaya gumagana lamang ito sa WiFi.

  1. Pumunta sa direktoryo ng boot ng SD card sa iyong PC.
  2. Buksan ang file na "cmdline.txt"
  3. Alisin ip = 169.254.10.1 Sa pagtatapos ng mahabang linya ng teksto.

Hakbang 10: Pagpapatakbo ng Salamin

Pagpapatakbo ng Salamin
Pagpapatakbo ng Salamin
Pagpapatakbo ng Salamin
Pagpapatakbo ng Salamin
Pagpapatakbo ng Salamin
Pagpapatakbo ng Salamin
Pagpapatakbo ng Salamin
Pagpapatakbo ng Salamin

Bisitahin ang ip na nasa mirror screen o kung mayroon kang pag-set up ng google kalendaryo punan ang domainname.

Ngayon ay magagawa mong i-set up ang iyong salamin!

Kung nakakuha ka ng isang error sa SSL sa iyong salamin baka gusto mong idagdag ang iyong mga sertipiko sa tindahan ng sertipiko ng Chromium.

Inirerekumendang: