Índice:
- Suprimentos
- Etapa 1: configuração
- Etapa 2: instalando o espelho
- Etapa 3: Configuração
- Etapa 4: API's
- Etapa 5: o calendário
- Etapa 6: API do Google
- Etapa 7: o design do espelho
- Etapa 8: Fazendo a fiação
- Etapa 9: Iniciando o Código
- Etapa 10: executando o espelho
Vídeo: Espelho inteligente multiusuário com Google Agenda: 10 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Neste instrutível, criaremos um espelho inteligente integrado ao Google Calendar. Fiz esse projeto porque acho os espelhos inteligentes muito legais, são uma dádiva de Deus pela manhã. Mas decidi fazer um do zero porque todos os outros têm uma falha. Eles são muito avançados e desordenados. Decidi manter isso simples.
Suprimentos
Antes
vamos começar, essas são as coisas que você definitivamente precisa para construir um espelho como o meu. Esses suprimentos custarão cerca de 250 a 350 euros, dependendo da sua região e dos preços atuais.
Hardware
Sensores
- Sensor de temperatura de um fio
- RWCL 0516 (sensor de movimento de microondas)
- Potenciômetro macio (Touchstrip da Sparkfun)
Informática
e IC's
- Alto-falante (3,2 W a 4Ω OU 1,8 W a 8Ω)
- MCP3008
- Quebra do amplificador Adafruit I2S 3W Classe D - MAX98357A
- Raspberry Pi 3 B +
- Cartão SD (8 GB é bom)
- Resistor 4.7K Ohm
Vários
- Jumperwires
- Tábua de pão
- Espelho acrílico bidirecional (15% de transmissão de luz)
- Monitor IPS (o tamanho depende do tamanho que você deseja)
- cabo HDMI
- Madeira
Programas
- PuTTY
- Editor de código (Notepad ++ é suficiente)
- Win32 Disk Imager
- Imagem do sistema operacional Raspbian
Etapa 1: configuração
Para começar, primeiro precisamos configurar seu Pi para o código que criei.
Você precisará de duas coisas:
- Win32 Disk Imager de
- Imagem do sistema operacional Raspbian em
Baixe o arquivo ZIP e extraia-o para onde quiser.
A instalação
- Selecione sua imagem através do ícone da pasta
- Selecione seu cartão SD no menu suspenso
- Clique em escrever
Agora precisaremos fazer alguns ajustes extras em algumas configurações para que possamos acessar o Pi.
- Vá para o diretório de inicialização do cartão SD
- Abra o arquivo "cmdline.txt"
- Adicione ip = 169.254.10.1 No final da linha longa do texto separado por um espaço (na mesma linha).
- Salve o arquivo.
- Crie um arquivo chamado ssh sem extensão no mesmo diretório
Agora você pode ejetar o cartão SD e colocá-lo no seu Pi.
Conectando
Agora precisaremos configurar o software.
Primeiro conecte um cabo LAN, uma extremidade em seu desktop / laptop e a outra em seu Pi.
Agora inicialize o Raspberry Pi.
- Instale o Putty de
- Digite 169.254.10.1 na caixa IP.
- Certifique-se de que SSH esteja selecionado e a porta 22 esteja preenchida.
- Clique para abrir
- Preencha o nome de usuário: pi
- Preencha a senha: framboesa
Raspi-config
Abra o utilitário Raspi-config usando:
sudo raspi-config
Habilite as seguintes opções na categoria de interfaces
- 1 fio
- SPI
Escolha o seu país WiFi através da categoria de localização.
Em seguida, desative as seguintes opções na categoria de opções de inicialização
Tela de abertura
Por último, defina a configuração Desktop / CLI na categoria de opções de inicialização como Desktop Autologin.
Wi-fi
Para o espelho, precisamos ter uma conexão wi-fi, então certifique-se de ter suas credenciais wi-fi fechadas.
Vá para o modo raiz
sudo -i
Cole esta linha, mas certifique-se de que o SSID e a senha estão preenchidos
wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Entre no cliente WPA.
wpa_cli
Selecione a interface
interface wlan0
Recarregue a configuração
reconfigurar
Certifique-se de que você está conectado corretamente digitando …
ip a
… E ver se você tem um IP nas interfaces WLAN0.
Pacotes
Agora que estamos conectados à internet, teremos que instalar alguns pacotes.
Primeiro, precisamos atualizar as listas de pacotes para a mais recente.
atualização do apt sudo
Pitão
Forçaremos o Raspbian a usar Python 3
atualizar-alternativas --install / usr / bin / python python /usr/bin/python2.7 1
atualizar-alternativas --install / usr / bin / python python / usr / bin / python3 2
MariaDB
Cole a seguinte linha para instalar o banco de dados.
sudo apt instalar servidor mariadb
Então, precisaremos proteger nossa instalação.
mysql_secure_installation
Ele nos pedirá a senha de root atual, já que não temos uma, basta pressionar enter.
Em seguida, ele pergunta se queremos um tipo de senha de root em y, já que queremos uma.
Para as próximas perguntas, basta inserir Y.
Por último, estaremos criando um usuário que poderemos usar para o espelho.
Entre no shell mysql fazendo:
Elevar-nos para enraizar
sudo -i
Entre no shell do mysql
mysql
Substitua por seu próprio nome de usuário e o mesmo por
concede todos os privilégios no mirror. * to '' @ '%' identificado por '';
Agora liberamos a tabela de permissões.
PRIVILÉGIOS DE FLUSH;
Apache Webserver
Para instalar o Webserver execute a linha abaixo.
sudo apt install apache2 -y
Pacotes Python
Vamos instalar esses pacotes
- Frasco
- Flask-Cors
- Flask-MySQL
- Flask-SocketIO
- PyMySQL
- Frasco-talismã
- Gevent
- Gevent-websocket
- Google-api-python-client
- Autenticação do Google
- Google-auth-httplib2
- Google-auth-oauthlib
- Httplib2
- Icalendar
- Icalevents
- Oauthlib
- Python-socketio
- solicitações de
- Wsaccel
- Ujson
Fazendo
pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Flask-Talisman gevent gevent-websocket google-api-python-client google-auth google-auth-httplib2 google-auth-oauthlib httplib2 icalendar icalevents oauthlib python-socketio solicitações wsaccel
Configuração de alto-falante
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Agora precisamos reiniciar, então pressione y.
Execute novamente o script
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Agora precisamos reiniciar uma segunda vez
sudo reboot
Tela (monitor)
Dependendo de como você deseja a orientação de sua tela, você pode querer girá-la.
Para girar a tela, precisamos acessar as opções de inicialização, fazendo:
sudo nano /boot/config.txt
E, em seguida, colando uma dessas linhas no arquivo de configuração:
display_rotate = 0
display_rotate = 1
display_rotate = 2
display_rotate = 3
O primeiro, 0, é a configuração normal. 1 terá 90 graus, 2 é 180 graus e o último terá 270 graus.
Em seguida, reinicie.
sudo reboot
Etapa 2: instalando o espelho
Agora vamos configurar um local para baixar meu código.
cd / home / pi /
git clone https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject
Agora vamos copiar algumas pastas para o destino correto
sudo cp -R frontend / mirror / / var / www / html / mirror /
sudo cp -R frontend / painel / / var / www / html / Sudo cp -R backend / / home / pi / Mirror /
A instalação do banco de dados é uma etapa necessária na confecção do projeto.
sudo mysql -u root -p << CREATEDATABASE.sql
Etapa 3: Configuração
O arquivo de configuração está localizado em:
sudo nano /home/pi/Mirror/resources/config.ini
Digite o usuário MYSQL e a senha.
Este deve ser o usuário mysql que acabamos de criar.
As outras configurações que veremos mais tarde são instrutíveis.
Etapa 4: API's
Agora que terminamos a instalação do Pi, cobriremos alguns tópicos que você pode querer fazer.
Céu escuro
Crie uma chave de API Darsky via
Depois de se registrar, você verá sua chave de API no painel.
Insira esta chave no arquivo de configuração do projeto de espelho que você instalou antes.
O calendário
Por padrão, você só poderá usar urls ical para visualizar seu calendário. Mas esta parte será sobre como vincular seu espelho ao ecossistema do Google. Este é um processo geralmente mais longo e doloroso.
Coisas que você definitivamente vai precisar
Um nome de domínio
Estas são as coisas que iremos configurar durante esta parte
- Conta CloudFlare
- Conta de desenvolvedor do Google
- Projeto Google Developer
- Configure a API do calendário
Etapa 5: o calendário
Cloudflare
Configure uma conta cloudflare em https://cloudflare.com e siga o assistente para transferir seu nome de domínio para Cloudflare DNS.
Não há necessidade de criar você mesmo um registro A que aponte para o pi de framboesa. Meu código Mirror fará isso por você. Como na maioria dos wi-fi domésticos, os IPs não são estáticos, portanto, após reiniciar, ele pode não funcionar mais. Para que meu código atualize automaticamente o ip, será necessária a chave API da sua conta.
- Clique no botão Obtenha sua chave de API no painel do lado direito. [Foto 1]
- Role para baixo e visualize sua chave API global. [Foto 2]
Insira esta chave no arquivo de configuração do projeto de espelho que você instalou antes.
Criação de certificado SSL
O Google exige que tenhamos uma conexão SSL. Para iniciar esta seção, certifique-se de configurar corretamente o DNS Cloudflare.
Primeiro adicione o repositório.
sudo add-apt-repository ppa: certbot / certbot
Atualize a lista de pacotes.
sudo apt-get update
Instale CertBot
sudo apt install python-certbot-apache
Inicie a criação do certificado. Novamente, você precisará preencher o nome de domínio correto.
sudo certbot --apache -d example.com -d www.example.com
Após a criação, ele perguntará se você deve redirecionar todas as conexões para SSL. Escolha redirecionar.
Agora, ele dirá que criou com êxito um certificado para o seu domínio. Certifique-se de salvar os 2 caminhos fornecidos.
- /etc/letsencrypt/live/example.com/cert.pem
- /etc/letsencrypt/live/example.com/privkey.pem
Agora vá para a pasta com os certificados via:
Certifique-se de alterar example.com para o host correto.
cd /etc/letsencrypt/live/example.com/
Agora vamos copiar esse conteúdo para a nossa pasta de projeto.
cp cert.pem /home/pi/Mirror/resources/certs/cert.pem
E
cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem
Conecte o Apache ao seu domínio
Para configurar o Apache corretamente com o seu domínio, teremos que criar um arquivo de configuração. Certifique-se de preencher seu nome de domínio, por exemplo funergydev.com.
sudo nano /etc/apache2/sites-enabled/example.com.conf
Em seguida, cole isso no arquivo. Substitua example.com pelo seu nome de domínio.
Certifique-se de que seu certificado e chave privada sejam o caminho correto. Defina-os para o caminho que você salvou anteriormente quando criamos por meio do certbot.
DocumentRoot "/ var / www / html /" SSLEngine em SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Outras diretivas aqui Opções Índices FollowSymLinks AllowOverride Todos exigem todos concedidos
Agora precisamos ativar algumas modificações e, em seguida, forçar o Apache a recarregar a configuração, fazendo:
sudo a2enmod ssl
sudo a2enmod reescrever
sudo systemctl reload apache2
Agora você deve ser capaz de ir através do seu nome de domínio ao seu pi e ver a página padrão do apache.
Etapa 6: API do Google
Acesse o console do desenvolvedor em
Parte 1
Crie seu primeiro projeto clicando ao lado do logotipo da API do Google e clicando no botão NOVO PROJETO. Preencha um nome de projeto apropriado e clique no botão criar. [Photo1]
Parte 2
Agora você chegará a esta página. Clique no botão da biblioteca. [Photo2]
Esta é uma grande lista de todas as APIs que você pode usar, mas estaremos procurando a API do Google Agenda. Clique nele e pressione ENABLE. [Photo3]
Em seguida, você terá uma visão geral da API do calendário. Clique no logotipo das APIs do Google para voltar ao seu projeto. [Photo4]
Parte 3
Para configurar tudo corretamente, clique na categoria de credenciais e escolha a guia Verificação de domínio.
Aqui você terá que verificar o seu nome de domínio.
- Clique em ADICIONAR DOMÍNIO
- Preencha o seu domínio
- Em seguida, ele pedirá para verificar seu domínio. Clique em continuar.
- Escolha seu provedor de nome de domínio. [Photo5]
- Siga o processo
- Agora você poderá adicioná-lo à Lista de verificação de domínio no console de API do Google desta forma. Certifique-se de que seu domínio esteja marcado. [Photo6]
Parte 4
Agora escolha a guia da tela de consentimento do OAuth. [Photo7]
Preencha o nome do aplicativo
Em seguida, adicionaremos escopos à tela de consentimento. Isso significa que perguntaremos ao usuário na tela de consentimento se ele deseja compartilhar as informações do calendário com o espelho.
- Clique em adicionar escopo e pesquise por calendário.
- Verifique../auth/calendar.readonly e pressione adicionar. [Photo8]
Preencha um domínio autorizado. Este deve ser o domínio que você acabou de verificar. [Photo9]
Agora clique no grande botão Salvar abaixo do formulário.
Parte 5
Por último, precisamos criar as credenciais. Como pressionamos o botão Salvar, fomos redirecionados para a guia de credenciais. Clique em criar credenciais e escolha ID do cliente OAuth. [Photo10]
Escolha o tipo de aplicativo: Aplicativo da Web e dê um nome a ele.
Insira o link a seguir nos URIs de redirecionamento autorizados e preencha o domínio correto.
example.com:5000/api/v1/setup/calendar/response
Clique em criar. Isso mostrará uma janela pop-up, basta clicar em OK. Agora pressione o botão de download nas credenciais que você acabou de fazer
Parte 6
Agora abra o arquivo JSON e copie o conteúdo.
sudo nano /home/pi/Mirror/resources/credentials/credentials.json
Cole-os aqui.
Parte 7
Agora precisamos definir nosso domínio na configuração, fazendo:
sudo nano /home/pi/Mirror/resources/config.ini
Etapa 7: o design do espelho
Projetar seu espelho depende de como você o deseja. Faça medições precisas do LCD e deixe uma lacuna de 2 centímetros em um lado do espelho, pois o sensor de movimento de micro-ondas ficará ali. Não pode estar atrás de nenhum metal.
Eu conectei 4 tábuas de madeira juntas. Estes foram fresados para ter uma frente do espelho bem limpa. Na parte superior, também fiz alguns furos para permitir que o som do alto-falante fosse ouvido. No lado oposto do espelho, a parte inferior, cortei um pequeno retângulo para poder facilmente fazer a fiação elétrica. [Photo1]
São 2 peças de madeira barata onde o monitor ficará preso. Como eu disse, precisaríamos de cerca de 2 centímetros de distância entre o espelho e a caixa. Também adicionei 3 pequenos pedaços de madeira e aparafusei-os nesses pedaços de descanso. Assim, o monitor permaneceria no lugar. [Photo2]
No final, ficou assim. Eu tinha uma lacuna de cerca de 3 mm entre essas peças de descanso e a frente da caixa do espelho. Apenas o suficiente para que eu pudesse colocar o espelho bidirecional de 3 mm de espessura. [Foto3]
Etapa 8: Fazendo a fiação
Certifique-se de seguir corretamente um desses esquemas.
Depois de fazer a fiação, colei na parte de trás da tela com fita dupla-face. Pois se eu quisesse desmontar o espelho e usá-lo para outros projetos, poderia facilmente removê-lo. Se você tiver certeza, pode usar uma pistola de cola quente e colá-la na parte de trás do espelho.
Etapa 9: Iniciando o Código
LXSession
Vamos primeiro criar algumas pastas
mkdir -p /home/pi/.config/lxsession/LXDE-pi/
Agora criaremos um arquivo onde especificaremos alguns parâmetros / comandos de inicialização.
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Cole o seguinte no arquivo.
@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
Atualizaremos o script da tela inicial do espelho para corresponder ao nosso host.
sudo nano /home/pi/Mirror/init_mirror.sh
Escolha localhost se você não estiver usando o Google Agenda e um domínio.
#! / bin / bash
sleep 15 chromium-browser --incognito --kiosk https:// localhost / mirror
Se você estiver usando, preencha seu host.
#! / bin / bash
sleep 15 chromium-browser --incognito --kiosk
Serviço
Agora vamos configurar que o código Mirror seja executado automaticamente.
Estaremos criando um serviço que inicia automaticamente o código para nós.
Vamos para:
sudo nano /etc/systemd/system/mirror.service
E cole isso no arquivo
[Unidade]
Descrição = Mirror Backend After = network.target mariadb.service [Service] Type = simple User = root ExecStart = / bin / sh /home/pi/Mirror/init.sh [Instalar] WantedBy = multi-user.target
Agora teremos que recarregar o daemon systemd fazendo:
sudo systemctl daemon-reload
E também habilitaremos o serviço para iniciar automaticamente na inicialização.
sudo systemctl enable mirror
Agora vamos desligar.
sudo poweroff
As configurações finais
Finalmente, precisamos remover nosso ip APIPA para que ele funcione apenas em wi-fi.
- Vá para o diretório de inicialização do cartão SD no seu PC.
- Abra o arquivo "cmdline.txt"
- Remova ip = 169.254.10.1 No final da longa linha de texto.
Etapa 10: executando o espelho
Visite o ip que está na tela do espelho ou, se você configurou o google calendar, preencha o nome do domínio.
Agora você poderá configurar seu espelho!
Se você receber um erro de SSL em seu espelho, pode adicionar seus certificados ao armazenamento de certificados do Chromium.
Recomendado:
C.Q: um espelho inteligente DIY: 5 etapas
C.Q: um espelho inteligente DIY: Somos Katrina Concepcion e Adil Qaiser, ambos do segundo ano na WBASD STEM Academy. Este é o projeto que teríamos colaborado e realizado para o melhor prêmio deste ano. Quando decidimos fazer este projeto, tínhamos em mente " qual seria o mais e
Eventos do Google Agenda para ESP8266: 10 etapas
Eventos do Google Calendar para ESP8266: Neste tutorial, explicarei como importar dados de eventos do Google Calendar no Arduino IDE para a placa ESP8266. Irei importar o horário de término e o horário de início do meu treinamento do Google Calendar e imprimi-los no monitor serial do IDE do Arduino
Wifi Wheelie Bins e Google Agenda: 4 etapas
Wifi Wheelie Bins e Google Calendar: Este projeto foi inspirado em vídeos de Andreas Spiess (You Tube). # 185 ESP8266 - Lembrete do Google Agenda: Como fazer sua esposa / namorada feliz (Arduino) & # 189, uma versão atualizada.Siga estes links: Andreas Spiess & Andreas Spiess Ver 2
Arduino Outlet Box Control Center com Google Agenda: 4 etapas
Arduino Outlet Box Control Center com Google Calendar: Neste Instructable, você aprenderá como construir um centro de controle para sua casa usando uma Adafruit Power Relay Module 4-Outlet. Você precisará de uma placa Arduino com um módulo wi-fi, como o Adafruit Feather Huzzah e um Adafruit Power Relay Module 4
Relógio inteligente do Google Agenda DIY Raspberry Pi: 4 etapas
DIY Raspberry Pi Smart Google Calendar Clock: este é um relógio inteligente que fiz para o Concurso de Relógios, espero que gostem! Ele contém um Raspberry Pi que está executando um programa Processing e Python para acessar meus dados do Google Agenda e imprimir o próximos 10 dias em que você tem algo na tela