Índice:
- Suprimentos
- Etapa 1: Configurando o Raspberry Pi
- Etapa 2: Conectando os eletrônicos
- Etapa 3: Design de banco de dados
- Etapa 4: configuração do Arduino
- Etapa 5: Back-end do Raspberry Pi
- Etapa 6: Caso
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Wake me up é um despertador inteligente que também pode ser usado como uma luz inteligente.
A faixa de led embutida simula a luz natural que entra em sua sala. Isso possibilita uma maneira calma e natural de começar o dia.
O despertador também está equipado com um display de 4 * 7 segmentos para ler as horas, alto-falantes para acordar com sua música favorita, um botão de toque, um ldr para ajustar o brilho da faixa de led e um sensor de temperatura que você pode usar para ver o temperatura do seu quarto.
Suprimentos
Uma lista dos preços exatos que paguei pode ser encontrada aqui:
Microcontroladores e computadores:
Raspberry Pi 4I usei raspberry pi 4 4GB, no entanto, qualquer raspberry pi modelo 3+ deve servir
Arduino Uno
O arduino é usado para controlar a exibição do relógio de 4 * 7 segmentos.
Sensores:
- TMP36: sensor de temperatura
- LDR: resistor dependente de luz
Atuadores:
- WS2801: Faixa de led individualmente endereçável
- Visor LCD: Um visor LCD 16 * 2.
- Display de relógio de 4 * 7 segmentos
IC's:
- 74HC595: Shiftregister para o display LCD
- MCP3008: conversor analógico para digital de 8 bits
- Conversor de nível lógico: usado para comunicação entre raspi e arduino
Outras coisas:
- Um amplificador adafruit MAX9744 para alimentar os alto-falantes
- Qualquer alto-falante, usei um alto-falante Visaton 4Ohm 8Watt full range (Art. No. 2240)
- Uma fonte de alimentação de 9 volts para alimentar o amplificador
- Uma fonte de alimentação de 5 volts para fornecer o ledstrip e outros componentes. Lembre-se de que cada led no ledstrip pode drow 60mA, portanto, certifique-se de que sua fonte de alimentação seja suficiente.
- Alguns resistores de 220 ohm
- Uma pequena placa de ensaio para colocar na sua caixa.
Ferramentas:
- Um ferro de solda.
- Algo para fazer o case (usei uma impressora 3D com PLA e PETG e alguns adesivos de vinil para obter o efeito de madeira).
Etapa 1: Configurando o Raspberry Pi
O framboesa pi é o nosso microcontrolador principal.
O raspberry pi executa nosso servidor web local, banco de dados, controla a faixa de led, alto-falantes, …
Parte 1: Instalando o Raspbian
Use este tutorial para instalar o raspbian:
Certifique-se de que o SSH esteja habilitado
Parte 2: Conectando-se
Para se conectar à internet, você precisa acessar o terminal do raspberry pi. Eu recomendo usar massa. No tipo de terminal:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
"YourNetwork" é o nome da sua rede wi-fi e "YourSSID" é a senha da rede.
Depois de adicionar a rede, tente reiniciar o Raspberry Pi.
Digite o comando 'ping 8.8.8.8' que enviará um pacote para os servidores do google se você obtiver resposta, sua rede está configurada e funcionando!
Parte 3: Instale os programas necessários
Precisaremos instalar alguns programas extras para colocar este projeto em funcionamento.
Antes de começarmos, execute estes 2 comandos para se certificar de que tudo está atualizado.
atualização do apt sudo
atualização do apt sudo
Isso pode demorar um pouco.
Apache
sudo apt install apache2 -y
sudo apt install php libapache2-mod-php -y
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt install php-mysql -y
PHPMyAdmin
sudo apt install phpmyadmin -y
Python pip
Precisamos instalar o pip para habilitar algumas bibliotecas Python
pip3 instalar mysql-connector-python
pip3 instalar flask-socketio
pip3 instalar flask-cors
pip3 instalar gevent
pip3 install gevent-websocket
Etapa 2: Conectando os eletrônicos
Eu adicionei 2 esquemas, 1 é um esquema de breadboard para fins de teste. Eu recomendo construir o primeiro esquema e tentar fazer o código funcionar.
Eu adicionei os arquivos fritzing abaixo.
Etapa 3: Design de banco de dados
Este é o esquema de banco de dados que fiz. As palavras estão em holandês, mas explicarei cada tabela em detalhes.
Tabela 1: tblMuziek
Esta é uma mesa bastante básica. Ele salva o nome do artista, o nome da música e o nome do arquivo de uma música.
Tabela 2: tblLedstrip
Esta tabela mantém o controle do estado atual do ledstrip e salva o estado do ledstrip. Precisamos disso para a função de luz inteligente.
Tabela 3: tblSensoren
Esta tabela mantém o controle dos sensores em nosso alarme. Armazenamos o nome do sensor e o canal do MCP3008
Tabela 4: tblMeting
Esta tabela armazena os valores de nossos sensores junto com seu tempo.
Tabela 5: tblWekker
Esta tabela armazena a senha e o nome do seu despertador (por exemplo, Quarto). Esta tabela não é obrigatória, mas eu a adicionei porque suponho que você terá mais de 1 despertador em sua casa.
Tabela 6: tblAlarm
Esta é provavelmente a tabela mais importante. Ele mantém um registro dos alarmes que você configurou e o que o relógio deve fazer (qual música tocar, qual sequência de led, em que dias deve tocar, …). É muito importante manter o controle de 2 datas. 1 data é usada para armazenar em que horas o alarme deve tocar. O outro acompanha a última vez que o alarme disparou. Para saber em que dia da semana deveria sair, usei um varchar que contém um número de 7 dígitos. O primeiro dígito é segunda-feira, a segunda terça-feira, … Se for 1, então deve soar, se for 0, não deve. Exemplo: 1111100 significa que este alarme deve tocar na segunda, terça, quarta, quinta e sexta-feira.
Etapa 4: configuração do Arduino
Esta etapa é muito fácil. Haverá um link para meu github na próxima etapa, onde você pode baixar o arquivo arduino.
O que o programa faz?
O programa espera que os dados seriais venham do pi.
Assim que os dados são recebidos, ele analisa a string e envia de volta uma confirmação para o pi.
A string será mais ou menos assim: '1201' significa que são 12:01. Usei um display de ânodo comum de 7 segmentos, o que significa que os dígitos devem ser altos e A, B, C, D, E, F, G e DP devem ser baixos para ativá-los. Se você usar um cátodo comum, você deve apenas alterar HIGH para LOW e LOW para HIGH.
Aqui está um link com mais informações sobre como funcionam as telas de 7 segmentos. (com o uso de biblioteca):
www.instructables.com/id/Using-a-4-digit-7…
Aqui está um link sobre exibições de 7 segmentos sem o uso de uma biblioteca:
create.arduino.cc/projecthub/SAnwandter1/p…
Etapa 5: Back-end do Raspberry Pi
Você pode baixar meu código usando o Github. (https://github.com/VanHevelNico/WakeMeUp)
Como instalar o programa:
O back-end é escrito em python usando flask. Você pode fazer um serviço que inicia este programa (app.py) automaticamente.
Você deve colocar o código do frontend no arquivo html do servidor apache que baixamos anteriormente. (/ var / html)
Como funciona o programa?
Quando o despertador estiver ligado, vá para o endereço IP do seu relógio (ele será exibido no LCD)
Assim que você acessar esse endereço IP em seu navegador, seu computador enviará uma solicitação socket.io para o backend dizendo que um cliente se conectou. Quando o back-end receber isso, alguns tópicos serão iniciados, os quais explicarei a seguir.
Configurar
Isso inicializa todos os objetos necessários.
GetTemp
Isso lê o canal 0 do mcp3008 e converte os dados binários para a temperatura real e os coloca no banco de dados com a data e hora atuais.
GetTempGrafiek
Isso obtém os últimos 20 valores do sensor de temperatura e os emite para o frontend.
tijd_sturen
Este método obtém a hora atual e verifica se o minuto mudou. Se ele mudou, o programa envia o novo horário para o arduino usando comunicação serial
checkAlarmen
Este é o método mais importante. Ele obtém todos os alarmes que estão ativados e verifica se algum desses alarmes deve sair entre agora e 5 minutos atrás (este é um buffer para garantir que cada alarme seja acionado quando for necessário). Se o alarme tiver que disparar, vamos iniciar a música, o ledstrip, … Lemos o resistor sensível à força continuamente e quando o valor cai abaixo de 1000 (leia o fsr é pressionado) Desligamos o alarme e atualizamos o alarme no base de dados. Ajustamos a data em que o alarme disparou pela última vez para a data atual.
statusLight
Este método emite o valor do ledstrip e liga o ledstrip se necessário.
lichtAanpassen
Este é um método extra para garantir que a faixa de led e a luz do alarme não entrem em conflito.
Etapa 6: Caso
O link para meus arquivos pode ser encontrado aqui:
Usei uma impressora 3D para imprimir o invólucro. É impresso em 4 partes diferentes:
- A placa frontal com orifícios para o alto-falante e algumas paredes para a tela de 7 segmentos
- O anel externo para o ledstrip em PETG transparente.
- A parte do meio
- A placa traseira com um orifício para o lcd e um orifício para os cabos.
No modelo original não havia orifício para a tela de 7 segmentos, no entanto, isso é necessário porque, caso contrário, a luz da tela de 7 segmentos não brilhará através dela.
Como você pode ver depois de colocar todos os componentes, usei adesivos de vinil com aspecto de madeira para deixar o resultado final mais bonito. O visor do relógio brilha através do adesivo, o que cria um efeito de aparência muito agradável.
Recomendado:
Despertador inteligente usando Magicbit (Arduino): 10 etapas
Despertador inteligente usando Magicbit (Arduino): Este tutorial mostra como fazer um despertador inteligente usando display OLED na placa de desenvolvimento de Magicbit sem usar qualquer módulo RTC
Despertador inteligente - Intel Edison - Iot RoadShow - São Paulo: 4 etapas
Despertador Inteligente - Intel Edison - Iot RoadShow - São Paulo: Uma das grandes virtudes de quem mora ou trabalha em uma cidade grande é o gerenciamento do tempo. Hoje em dia as viagens são constantes e, como o trânsito é um dos principais fatores. Pensando nisso, fiz um pequeno aplicativo que utiliza a integração com Google M
WakeupNow - Despertador inteligente: 8 etapas
WakeupNow - Despertador Inteligente: Como todos sabem, a vida dos alunos é muito difícil, eles têm um dia longo com palestras, muito dever de casa e, em geral, têm uma vida louca. Eles não têm tempo para nada, e se você sugerir que acrescentem algumas horas ao dia, eles ficarão felizes. Unfo
Luz inteligente do despertador reciclado: 8 etapas (com imagens)
Luz Inteligente de Despertador Upcycled: Neste projeto, eu atualizei um despertador de corda completamente quebrado. O mostrador do relógio é substituído por 12 LEDs, iluminados por uma faixa de LED ao redor da borda do relógio. Os 12 LEDs informam a hora e a faixa de LED está programada para funcionar como um alarme, girando
Despertador inteligente: um despertador inteligente feito com Raspberry Pi: 10 etapas (com imagens)
Despertador inteligente: um despertador inteligente feito com Raspberry Pi: Você sempre quis um relógio inteligente? Se sim, esta é a solução para você! Fiz o Smart Alarm Clock, é um relógio que você pode alterar a hora do alarme de acordo com o site. Quando o alarme disparar, haverá um som (campainha) e 2 luzes