Índice:
- Etapa 1: suprimentos
- Etapa 2: esquema e fiação
- Etapa 3: Design de banco de dados
- Etapa 4: configuração do Raspberry Pi
- Step 5: Setting Up the Database to the RPi
- Etapa 6: Configurando Bluetooth em Nosso RPi
- Etapa 7: Escrevendo o back-end completo
- Etapa 8: Escrevendo o front-end (HTML, CSS e JavaScript)
- Etapa 9: Construindo meu caso e juntando tudo
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Ei!
Para o meu projeto escolar no MCT Howest Kortrijk, eu fiz um Mood Speaker, este é um dispositivo de alto-falante Bluetooth inteligente com diferentes sensores, um LCD e WS2812b ledstrip incluído. O alto-falante toca música de fundo com base na temperatura, mas também pode ser usado como um bluetooth normal alto falante. Tudo é executado no Raspberry Pi (banco de dados, servidor da Web, backend).
Portanto, este instrutível é um processo passo a passo de como realizei este projeto em 3 semanas. Então, se vocês querem recriar meu projeto, podem seguir o guia
Este instrutível é o meu primeiro que escrevi, então se houver alguma pergunta, tentarei respondê-la o mais rápido possível!
Meu GitHub:
Etapa 1: suprimentos
Raspberry Pi 3B e cartão SD de 16GB
Todo o meu projeto é executado no meu Raspberry Pi 3B com uma imagem configurada, que explicarei em uma etapa posterior (Etapa 4: Configuração do Raspberry Pi)
Display LCD 16x2
Usei um display LCD básico para imprimir minha temperatura, brilho e endereço IP.
Folha de dados:
Sensor de Temperatura DS18B20
O DS18B20 é um sensor monofilar que mede a temperatura, fabricado pela Maxim Integrated. Existem 2 tipos de sensores DS18B20, o componente apenas (que usei) e a versão à prova d'água, que é muito maior, mas não era o que eu precisava para o meu projeto, então usei apenas o componente. O sensor pode medir a temperatura em uma faixa de -55 ° C a + 125 ° C (-67 ° F a + 257 ° F) e tem uma precisão de 0,5 ° C de -10 ° C a + 85 ° C. Ele também tem uma resolução programável de 9 bits a 12 bits.
Folha de dados:
MCP3008
Para ler os dados do meu LDR e sensor PIR, usei um MCP3008, que é um conversor analógico-digital de 8 canais e 10 bits com interface SPI e é muito fácil de programar.
Folha de dados:
Sensor de movimento PIR
Para detectar quando há alguém entrando e saindo do meu quarto, usei um sensor infravermelho passivo, pois eles são fáceis de usar e são pequenos.
Folha de dados:
LDR
Eu usei um fotorresistor ou LDR (Light Decreasing Resistance, ou resistor dependente de luz) para detectar o nível de brilho da sala em que está. E também para ligar meu Ledstrip quando estiver escuro.
Alto-falante - 3”de diâmetro - 4 Ohm 3 Watt
Este é o cone do alto-falante que escolhi depois de calcular a Voltagem e Amperes de que precisaria e foi um ajuste perfeito para o meu projeto Raspberry Pi, fabricado pela Adafruit.
Visão geral:
MAX98357 I2S Class-D Mono Amplifier
Este é o amplificador que vem com o alto-falante, não é apenas um amplificador, é também um conversor digital para analógico I2S, então também é perfeito para meu alto-falante e sistema de áudio.
Visão geral:
Folha de dados:
Arduino Uno
O Arduino Uno é uma placa de microcontrolador de código aberto baseada no microcontrolador Microchip ATmega328P, fabricado pela Arduino.cc. A placa Uno possui 14 pinos digitais, 6 pinos analógicos e é totalmente programável com o software Arduino IDE
Visão geral:
Levelshifter
Esta é uma pequena placa que cuida da comunicação entre o Arduino Uno e o Raspberry Pi e as diferentes tensões, Arduino: 5V e Raspberry Pi: 3,3V. Isso é necessário porque o ledstrip está conectado ao Arduino e é executado nele, enquanto todas as outras coisas são executadas no Raspberry Pi.
WS2812B - Ledstrip
Este é um ledstrip com 60 leds RGB (você pode comprar tiras mais longas com mais leds RGB, se quiser). Que no meu caso está conectado ao Arduino Uno, mas também pode ser conectado a vários outros dispositivos e é muito simples de usar.
Folha de dados:
GPIO T-Part, 1 breadboard e muitos jumperwires
Para conectar tudo que eu precisava de breadboards e jumperwires, eu não usei a parte GPIO T, mas você pode usá-la para saber claramente qual compartimento vai para onde.
Etapa 2: esquema e fiação
Para fazer meu esquema, usei o Fritzing, é um programa que você pode instalar e que permite criar um esquema realmente fácil em diferentes tipos de visualizações. Usei a breadboard e a visualização esquemática.
Baixe o Fritzing:
Certifique-se de que tudo está conectado corretamente. Usei cores para tornar um pouco mais claro saber onde conectar os fios. No meu caso usei cores diferentes para os fios
Etapa 3: Design de banco de dados
Estamos coletando muitos dados dos 3 sensores (Temperatura do DS18B20, Brilho do LDR e Status do sensor PIR). Portanto, é melhor manter todos esses dados em um banco de dados. Explicarei em uma etapa posterior como configurar o banco de dados (Etapa 5: Encaminhar Nosso Banco de Dados para o RPi!) Mas primeiro o projeto ou ERD (Diagrama de Relacionamento de Entidade) deve ser feito. O meu foi normalizado com 3NF, por isso dividimos os componentes e o histórico dos componentes em outra tabela. Usamos o banco de dados de músicas para rastrear as músicas que foram ouvidas.
No geral, este é um projeto de banco de dados realmente básico e fácil de trabalhar.
Etapa 4: configuração do Raspberry Pi
Então, agora que terminamos algumas noções básicas do projeto. Vamos começar a configurar o Raspberry Pi!
Parte 1: Configurando o Cartão SD
1) Baixe o software e os arquivos necessários
Você precisa baixar 2 softwares e 1 sistema operacional, ou seja, Raspbian para este processo completo. 1º software: O primeiro software é Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
2º software: o segundo software é o formatador de cartão SD.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Este é o sistema operacional principal do Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Extraia todos os arquivos para a área de trabalho.
2) Obtenha o cartão SD e o leitor de cartão
Obtenha um cartão SD de classe 10 de, no mínimo, 8 GB com um leitor de cartão. Insira o cartão no leitor de cartão e conecte-o à porta USB.
3) Formate o cartão SD
Abra o SD Card Formatter e selecione a unidade.
Clique no formato e não altere nenhuma outra opção.
Quando a formatação estiver concluída, clique em OK.
4) Escreva o sistema operacional no cartão SD
Abra win32diskimager.
Procure o arquivo.img do Raspbian OS que foi extraído do arquivo baixado.
Clique em abrir e depois em Escrever.
Se algum aviso aparecer, ignore-o clicando em OK. Aguarde a conclusão da gravação, que pode demorar alguns minutos. Então seja paciente.
n
5) Feito isso, estamos prontos para fazer alguns ajustes finais antes de colocar a imagem em nosso RPi.
Vá para o diretório do cartão SD, procure o arquivo chamado 'cmdline.txt' e abra-o.
Agora adicione 'ip = 169.254.10.1' na mesma linha.
Salve o arquivo.
Crie um arquivo chamado 'ssh' sem extensão ou conteúdo. (A maneira mais fácil é criar um arquivo txt e remover o.txt depois)
Agora que tudo está instalado no cartão SD, você pode ejetá-lo com SEGURANÇA do seu computador e colocá-lo no Raspberry Pi SEM conectar a energia. Uma vez que o cartão SD esteja no RPI, conecte um cabo LAN do seu computador à porta RPi LAN, uma vez conectado você pode conectar a alimentação ao RPi.
Parte 2: Configurando o RPi
Massa
Agora queremos configurar nosso Raspberry Pi, isso é feito através do Putty.
Software Putty:
Depois de fazer o download, abra o Putty e insira o IP '169.254.10.1' e a porta '22' e o tipo de conexão: SSH.
Agora podemos finalmente abrir nossa interface de linha de comando e fazer o login com as informações de login inicial -> Usuário: pi e Senha: raspberry. (É recomendável alterá-lo o mais rápido possível. Aqui está um guia de como:
Raspi-config
Teremos que habilitar interfaces diferentes e, para isso, primeiro temos que digitar o seguinte código:
sudo raspi-config
As coisas que precisamos habilitar estão na seção de interface. Precisamos habilitar as seguintes interfaces:
- One-wire
- Serial
- I2C
- SPI
Isso era tudo o que precisávamos fazer com o raspi-config
Adicionando seu WIFI
Primeiro, você precisa ser root para que o seguinte comando se torne root
sudo -i
Depois de fazer o root, use o seguinte comando: (Substitua o SSID pelo nome da rede e a senha pela senha da rede)
wpa_passphrase "ssid" "senha" >> /etc/wpa_supplicant/wpa_supplicant.conf
Caso você tenha feito algo errado, você pode verificar, atualizar ou excluir esta rede apenas digitando o seguinte comando:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Então, depois de entrarmos em nossa rede, vamos entrar na interface do cliente WPA
wpa_cli
Selecione sua interface
interface wlan0
Recarregue o arquivo
reconfigurar
E, finalmente, você pode ver se está bem conectado:
ip a
Parte 3: Atualizando o software de instalação RPi +
Agora que estamos conectados à internet, atualizar os pacotes já instalados seria uma jogada inteligente, então vamos fazer isso antes de instalar outros pacotes.
sudo apt-get update
sudo apt-get upgrade
Após atualizar o RPi, teremos que instalar o seguinte software:
Banco de dados MariaDB
sudo apt-get install servidor mariadb
Servidor da Web Apache2
sudo apt install apache2
Pitão
atualização-alternativas --install / usr / bin / python python /usr/bin/python3.7 1 atualização-alternativas --install / usr / bin / python python / usr / bin / python3 2
Pacote Python
Você terá que instalar todos esses pacotes para que o back-end funcione perfeitamente:
- Frasco
- Flask-Cors
- Flask-MySql
- Flask-SocketIO
- Solicitações PyMySQL
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Biblioteca de palestrantes
Para usar o alto-falante com o amplificador, teremos que instalar uma biblioteca para ele
curl -sS > | bash
Step 4: Reboot
After everything has been installed we will have to reboot the pi to make sure everything works correctly
sudo reboot
Step 5: Setting Up the Database to the RPi
Agora que instalamos tudo o que precisávamos, vamos colocar nosso banco de dados que projetamos em nosso Raspberry Pi!
Para configurar o banco de dados, teremos que conectar MySql e RPi. Para isso, abriremos o MySQLWorkbench e faremos uma nova conexão. Ao olhar para a imagem, você terá que mudar para alterar as informações para as suas.
Se você não mudou nada ainda, você pode usar para SSH pi e raspberry, para MySQL mysql e mysql.
Quando algo não estiver claro, você também pode seguir este tutorial:
Para exportar seu banco de dados deve ser mais fácil usar PHPmyAdmin porque você pode obter muitos erros fazendo isso com MySql
Etapa 6: Configurando Bluetooth em Nosso RPi
Estamos criando um alto-falante Mood, que também podemos usar com nossa própria música, então é mais fácil quando o RPi está
conectado ao bluetooth segui um tutorial para ele que você encontra aqui:
scribles.net/streaming-bluetooth-audio-fr…
Eu escrevi tudo aqui também para todos que desejam recriá-lo
Removendo o bluealsa já em execução
sudo rm / var / run / bluealsa / *
Adicionar função de coletor de perfil A2DP
sudo bluealsa -p a2dp-sink &
Abra a interface bluetooth e ligue o bluetooth
bluetoothctl ligado
Configure um agente de emparelhamento
agente no agente padrão
Torne seu RPi detectável
detectável em
- Agora, em seu dispositivo bluetooth, procure o RPi e conecte-se a ele.
- Confirme o emparelhamento em ambos os dispositivos, digite 'sim' em sua massa.
- Autorize o serviço A2DP, digite 'sim' novamente.
- Uma vez feito isso, podemos confiar em nosso dispositivo, então não temos que passar por tudo isso toda vez que quisermos nos conectar
trust XX: XX: XX: XX: XX: XX (seu endereço bluetooth mac de nosso dispositivo de origem)
Se você deseja que seu RPi continue sendo detectável, você escolhe, mas prefiro desligá-lo novamente, para que as pessoas não possam tentar se conectar com sua caixa
fora de descoberta
Então podemos sair da nossa interface bluetooth
saída
E, finalmente, nosso roteamento de áudio: nosso dispositivo de origem encaminhando para nosso RPi
bluealsa-aplay 00: 00: 00: 00: 00: 00
Agora nosso dispositivo está conectado ao nosso Raspberry com bluetooth e você deve ser capaz de testá-lo reproduzindo qualquer mídia, por exemplo, Spotify, etc.
Etapa 7: Escrevendo o back-end completo
Agora que a configuração está concluída, podemos finalmente começar a escrever nosso programa de back-end!
Usei o código do Visual Studio para todo o meu back-end, você só precisa ter certeza de que o seu projeto do Visual Studio está conectado ao seu Raspberry Pi, isso significa que o seu cabo LAN deve estar conectado ao seu RPi e fazer uma conexão SSH. (informações sobre como criar uma conexão remota podem ser encontradas aqui:
Usei minhas próprias classes e elas também estão incluídas no meu GitHub.
No meu arquivo de back-end usei classes diferentes, para que tudo possa ser usado separadamente e para que meu código principal não seja uma bagunça com todos os threads diferentes. Usei threading para executar todas as classes diferentes de uma vez. E na parte inferior você tem todas as rotas para que possamos facilmente obter dados em nosso front-end.
Etapa 8: Escrevendo o front-end (HTML, CSS e JavaScript)
Agora que o back-end está pronto, podemos começar a escrever o front-end completo.
HTML e CSS foram muito difíceis para mim. Eu fiz o meu melhor para torná-lo móvel primeiro, porque posso conectá-lo com bluetooth para alterar as músicas com o Spotify. Portanto, seria mais fácil controlar a partir de um painel móvel
Você pode projetar seu painel da maneira que quiser, vou apenas deixar meu código e design aqui, você pode fazer o que quiser!
E o Javascript não foi mais fácil para mim, trabalhei com alguns GETs das minhas rotas de backend, toneladas de ouvintes de eventos e algumas estruturas socketio para obter os dados dos meus sensores.
Etapa 9: Construindo meu caso e juntando tudo
Comecei a esboçar como queria que a caixa fosse, algo importante era que tinha que ser grande o suficiente para que tudo se encaixasse, já que tínhamos um grande circuito para colocar na caixa, mas tínhamos que ficar compacto para que não não ocupa muito espaço
Eu fiz a caixa de madeira, acho que é mais fácil de trabalhar quando você não tem muita experiência com a construção de caixas e também tem muitas coisas que pode fazer com ela.
Comecei a partir de uma velha prancha que estava ao redor e comecei a serrar a madeira. Assim que tive meu gabinete básico, só tive que fazer furos (muito na frente do case, como vocês podem ver nas fotos e colocar alguns pregos nele, é um case bem básico, mas parece bem legal e se encaixa perfeitamente. Também decidi pintar de branco para ficar bem.
E uma vez feito o case, era hora de colocar tudo junto, como vocês podem ver na última foto! É uma bagunça dentro da caixa, mas tudo funciona e eu não tinha muito mais espaço, então aconselho você a talvez criar um case maior se estiver recriando meu projeto.
Recomendado:
Como fazer um ambiente e uma lâmpada de leitura com alto-falantes: 10 etapas
Como Fazer uma Ambiência, e Ler, Lâmpada com Alto-falantes: O início desse projeto foi lento, tivemos que passar pelo processo de Design Thinking, esse processo é Empatizar, Definir, Ideatar, Prototipar e finalmente, Testar. Começamos em # 1, Empatia, e passamos por uma série de entrevistas com
Como usar alguns pedaços de madeira para montar em um braço robótico de madeira bonito e poderoso: 10 etapas
Como usar alguns pedaços de madeira para montar em um braço robótico de madeira bonito e poderoso: O nome do braço do robô é WoodenArm. Parece muito fofo! Se você quiser mais detalhes sobre o WoodenArm, consulte www.lewansoul.com. Agora podemos fazer uma introdução sobre o WoodenArm, vamos prosseguir
Luz reativa para música -- Como tornar uma luz reativa para música super simples para tornar a área de trabalho incrível: 5 etapas (com imagens)
Música reativa luz || Como fazer música super simples luz reativa para tornar a área de trabalho incrível .: Ei, e aí galera, hoje vamos construir um projeto muito interessante. Hoje vamos construir uma luz reativa musical. O led mudará seu brilho de acordo com o baixo, que na verdade é um sinal de áudio de baixa frequência. É muito simples de construir. Vamos
Alto-falantes de prateleira com dock para ipod (Parte I - Caixas de alto-falantes): 7 etapas
Alto-falantes de prateleira com dock para ipod (Parte I - Caixas de alto-falantes): Comprei um ipod nano em novembro e, desde então, queria um sistema de alto-falantes atraente para ele. No trabalho, um dia, percebi que os alto-falantes do computador que uso funcionavam muito bem, então fui ao Goodwill mais tarde e encontrei um par de alto-falantes ok por $
Adicionar lâmpadas de batida a seus alto-falantes portáteis ou alto-falantes de PC : 5 etapas
Adicione lâmpadas de batida aos seus alto-falantes portáteis ou alto-falantes do pc …: você já quis que seus pequenos alto-falantes de áudio portáteis ou alto-falantes do pc tivessem a mesma aparência de se você estivesse no clube ?? Bem, neste instrutível, mostraremos como obter sua fala através do site e do som do clube