Índice:
- Suprimentos
- Etapa 1: Prototipagem
- Etapa 2: Preparando o Raspberry Pi
- Etapa 3: Banco de dados
- Etapa 4: Backend
- Etapa 5: Frontend
- Etapa 6: Exibir o painel na tela
- Etapa 7: soldando os eletrônicos
- Etapa 8: Fonte de alimentação
- Etapa 9: Alojamento
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Como estudante de tecnologia de multimídia e comunicação em Howest Kortrijk, tive que fazer meu próprio projeto de IoT. Isso combinaria todos os módulos seguidos no primeiro ano em um grande projeto. Como eu dirijo muito minha motocicleta no meu tempo livre, decidi usar minhas habilidades adquiridas no MCT para construir algo para minha motocicleta: Um painel inteligente.
O MotoDash é um painel movido a Raspberry Pi projetado para motociclistas fanáticos que dá ao piloto a capacidade de monitorar seu desempenho.
Quais são os recursos deste painel?
- Visualizando o ângulo de inclinação atual
- Visualizando a aceleração atual
- Capacidade de monitorar a temperatura do óleo
- Mudar automaticamente para o tema escuro ao andar no escuro
- Registre dados de suas viagens e veja suas próprias estatísticas
Suprimentos
Unidade de computação principal:
Raspberry Pi Este é o principal controlador do sistema
Eletrônicos:
- Carregador USB para motocicleta 12V-5 VMain fonte de alimentação para RPi
- Relé com fusível de 4 pinos 12VSwitch para ligar / desligar o circuito de alimentação do RPi
- Placa de ensaio com fios de jumper (opcional) Para teste e prototipagem
-
Breakout Pi plusEsta é uma placa de prototipagem onde você pode soldar todos os seus componentes. Ele é feito para caber diretamente em cima do Raspberry Pi, para que as dimensões do projeto sejam mínimas.
Um conjunto de resistores
Diferentes cores de fio de 0,2 mm
Sensores e módulos:
- Sensor de temperatura à prova d'água DS18B20 de 1 fio Sensor de temperatura do óleo
- Giroscelerômetro de 3 eixos MPU6050Tilt / sensor de aceleração
- Resistência dependente de luz (LDR)
MCP3008 - ADC de 8 canais e 10 bits com interface SPI
Tela TFT SPI (ou qualquer outra tela lcd que atenda às suas necessidades)
LED RGB
Carcaça:
- Caixa de plástico
- Estojo framboesa pi
Ferramentas:
- Ferro de solda e solda
- Parafusos e espaçadores de 2,5 mm
- Conectores de cabo à prova d'água
- Supercola
- …
Etapa 1: Prototipagem
Antes de tornar tudo permanente, montaremos o projeto em uma placa de ensaio. Esta etapa pode ser ignorada se você tiver certeza absoluta de que não cometerá erros. O esquema elétrico / placa de ensaio pode ser encontrado no PDF abaixo. Monte o circuito exatamente como descrito. Certifique-se de usar apenas o pino de 3,3 V e não o pino de 5 V no RPi. Além disso, antes de ligar o Raspberry Pi, verifique o circuito. Certifique-se de que não há shorts!
Etapa 2: Preparando o Raspberry Pi
Em primeiro lugar, vamos configurar o Raspberry Pi. O Raspberry Pi é um mini computador capaz de rodar seu próprio sistema operacional. Para este projeto, é responsável por processar sensordata, hospedar o site, executar o backend e banco de dados,…
1. Instale a imagem Raspbian personalizada
A imagem fornecida já contém os pacotes de software necessários para iniciar este projeto:
- Apache para o frontend do site
- MariaDB para o banco de dados
- PhpMyAdmin para manipular o banco de dados
- Permissões personalizadas para evitar problemas
A imagem personalizada pode ser baixada aqui.
Um tutorial para instalar imagens pode ser encontrado aqui:
Assim que a imagem estiver instalada, conecte o Raspberry Pi ao seu PC com um cabo Ethernet. Agora você pode usar um cliente SSH para se conectar a ele no endereço IP 169.254.10.1
É uma boa prática definir imediatamente uma nova senha usando o comando passwd
2. Configurando AP sem fio
Quando o projeto estiver finalizado, queremos ser capazes de nos conectar ao RPi via wi-fi, então vamos transformá-lo em um AP sem fio. Um tutorial para isso pode ser encontrado aqui.
Você só precisa seguir este tutorial até a etapa 7. A etapa 8 não é necessária, pois não precisamos fazer a ponte de uma conexão de Internet, mas criar uma rede autônoma.
3. Habilitando interfaces
Acesse raspi-config
sudo raspi-config
Vá para as opções de interface e habilite 1 fio, SPI e I2C e reinicie o Pi
3. Configurando drivers para o monitor
Inicializando o display
Edite o arquivo / etc / modules
sudo nano / etc / modules
Adicione as 2 linhas a seguir
spi-bcm2835fbtft_device
Agora edite /etc/modprobe.d/fbtft.conf
sudo nano /etc/modprobe.d/fbtft.conf
Adicione a seguinte linha
opções fbtft_device name = tm022hdh26 gpios = reset: 25, dc: 24, led: 18 rotate = 90 speed = 80000000 fps = 60
Reinicie o Pi. Se você vir a luz de fundo da tela acender, tudo correu bem. Isso inicializará a tela toda vez que o Pi for inicializado, no entanto, ele apenas exibirá uma tela preta agora. Para obter o conteúdo do Pi no visor, precisamos copiar o conteúdo da tela principal para o pequeno LCD. Usaremos um serviço chamado 'fbcp' para isso.
Instalando o serviço fbcp
sudo apt-get install cmake
git clone
cd rpi-fbcp
construção mkdir
construção de cd /
cmake..
faço
sudo install fbcp / usr / local / bin / fbcp
Agora instalamos o serviço. No entanto, como estamos usando o Pi sem cabeça, não há tela disponível para copiar o conteúdo. Para forçar o Pi a produzir o conteúdo da tela, edite /boot/config.txt
sudo nano /boot/config.txt
Encontre e descomente ou adicione as seguintes linhas a este arquivo:
hdmi_force_hotplug = 1
hdmi_cvt = 640 480 60 0 0 0 0
display_rotate = 0
hdmi_group = 2
hdmi_mode = 87
Reinicialize o RPi e teste o serviço fbcp digitando fbcp no console. Agora você deve ver o conteúdo da tela no LCD.
Executando fbcp na inicialização
Edite /etc/rc.local e adicione a seguinte linha entre o endereço IP e a linha de saída
fbcp &
Agora, o visor deve ligar cada vez que o RPi inicializa
Etapa 3: Banco de dados
Para registrar e armazenar sensordata, projetei meu próprio banco de dados, que contém 4 tabelas. O diagrama EER é mostrado na imagem acima.
1. Dispositivos
Esta tabela contém todos os sensores. Ele descreve o nome do sensor, descrição e unidade de medição. Esta tabela tem uma relação um-para-muitos com as ações da tabela, pois no meu caso, o sensor do acelerador pode realizar diferentes tarefas.
2. Ações
Esta tabela armazena ações para diferentes sensores. Uma ação está sempre ligada a um sensor específico. Por exemplo: a ação 'TEMP' está vinculada ao dispositivo que mede a temperatura. Este seria o sensor de temperatura de 1 fio.
3. História
Esta tabela contém todos os registros do sensor. Cada registro tem um id de ação, um valor, um timestamp e um rideid
4. Passeios
Esta tabela armazena diferentes passeios. Cada vez que o usuário inicia um novo passeio, uma nova entrada nesta tabela é feita
Para obter esse banco de dados em seu Raspberry Pi, vá até meu GitHub e clone / baixe o repositório. No banco de dados, você encontrará 2 arquivos.sql. Execute-os no ambiente de trabalho PhpMyAdmin ou MySQL. Agora o banco de dados deve estar em seu RPi.
Etapa 4: Backend
Se ainda não o fez, vá para o meu GitHub e clone / baixe o repositório. Na pasta Backend você encontrará o backend completo do projeto.
A pasta contém classes para leitura de sensores em / helpers, arquivos para se comunicar com o banco de dados em / repositories e o aplicativo principal está localizado na raiz com o nome app.py.
Instalação de pacotes Python
Antes de tentarmos executar qualquer coisa, primeiro precisamos instalar alguns pacotes para python. Vá para o terminal do seu RPi e digite os seguintes comandos:
pip3 instalar mysql-connector-python
pip3 instalar flask-socketio
pip3 instalar flask-cors
pip3 instalar gevent
pip3 install gevent-websocket
NOTA IMPORTANTE: se você alterou sua senha Mariadb / Mysql, altere a senha em config.py!
Teste o back-end
Execute app.py usando o interpretador python3 (/ usr / bin / python3). Certifique-se de que não haja erros.
Executando o back-end na inicialização
Edite motoDash_backend.service e altere YOURFILEPATH para o caminho onde o repositório está salvo.
Agora copie este arquivo para / etc / systemd / system /
sudo cp motoDash_backend.service /etc/systemd/system/motoDash_backend.service.
Agora, o back-end será iniciado automaticamente sempre que o RPi for inicializado.
Etapa 5: Frontend
Acesse o repositório GitHub. Copie o conteúdo do diretório Frontend em / var / www / html.
Isso é tudo que você deve fazer para que o front-end funcione. Esta pasta contém todas as páginas da web, estilos e scripts para a interface da web. Ele também se comunica com o back-end. Para testar se tudo funciona como deveria, certifique-se de estar conectado ao seu RPi e digite o endereço IP do RPi em um navegador. Você deverá ver a página inicial da interface da web.
Observação: o site é responsivo, então você pode usá-lo tanto no celular quanto no desktop
Etapa 6: Exibir o painel na tela
O frontend tem sua própria página da web oculta, usada apenas para a tela pequena. Faremos o Pi inicializar automaticamente neste site em modo de tela inteira.
Certifique-se de que o RPi está configurado para logon automático no desktop em raspi-config nas opções de inicialização
sudo raspi-config
Agora vá para a pasta de configuração oculta e crie um novo arquivo lá
cd.config
sudo mkdir -p lxsession / LXDE-pi
sudo nano lxsession / LXDE-pi / autostart
Adicione as seguintes linhas neste arquivo e salve
@xscreensaver -no-splash
@xset está desligado
@xset -dpms
@xset s noblank
@ chromium-browser --noerrors --disable-session-crashed-bubble --disable-infobars --kiosk --incognito
Agora, o Pi deve inicializar nesta página da Web todas as vezes
Etapa 7: soldando os eletrônicos
Pegue a placa de expansão e faça o layout de seus componentes de maneira estruturada. Não vou discutir o layout de como soldou os componentes nele, pois fiz um trabalho muito ruim. Usei cabeçalhos de pinos separados na placa, de modo que só precisei conectar os sensores e módulos ao pino certo. Certifique-se de saber qual pino é para quê!
Algumas dicas durante a soldagem:
- Use fios isolados ao cruzar distâncias maiores. A última coisa que você quer são curtos em seu circuito
- Após soldar um componente ou fio, verifique sua continuidade com um multímetro. Verifique também se há curtos-circuitos regularmente.
- Não use solda demais ou de menos!
- Se você não sabe como soldar, pratique primeiro em outra placa de prototipagem. Um tutorial sobre soldagem pode ser encontrado aqui.
Agora solde os fios longos o suficiente para os sensores e coloque um filme retrátil ao redor deles para garantir que tudo não esteja em curto e limpo.
Quando terminar, verifique se há curtos ou conexões ruins e verifique se todas as conexões com o esquema elétrico estão corretas. Depois de ter certeza de que tudo está feito corretamente, vá em frente e coloque a placa de breakout no RPi, aparafuse bem com alguns parafusos de 2,5 mm e espaçadores. Prenda os sensores nos pinos corretos e teste todos usando o site.
Etapa 8: Fonte de alimentação
Para alimentar o Raspberry Pi, usaremos um adaptador USB 12V-5V. Este adaptador será conectado à bateria da motocicleta. Para garantir que o RPi seja ligado quando a chave de ignição for ligada, usaremos um relé. O relé fechará o circuito de alimentação RPi quando detectar uma tensão da luz traseira (a luz traseira sempre acende ao ligar a ignição).
Para um tutorial mais detalhado sobre isso, confira esta página: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -controladores.16921 /
Etapa 9: Alojamento
Caixa de exibição
Para a tela, pegue uma caixa de plástico rígido do tamanho da tela. Faça um orifício quadrado tão grande quanto a tela e os orifícios correspondentes para aparafusar a tela. Na frente, você precisa fazer mais 2 orifícios para o LED RGB e o LDR.
Montei esta caixa em cima de um suporte de smartphone usando um parafuso.
Sensor de temperatura
Para abrigar o sensor de temperatura, imprimi em 3D um medidor de óleo que cabe na minha motocicleta.
Raspberry Pi
Monte o Raspberry Pi em um lugar seguro dentro da motocicleta, coloquei sob um dos para-lamas usando algumas tiras de velcro. E protegeu-o das intempéries usando uma caixa e um pouco de plástico.
Acelerômetro
Monte o acelerômetro em local seguro, de preferência no próprio quadro da motocicleta.
Observação:
Você não precisa ter exatamente a mesma carcaça que eu tinha, você é livre para terminá-la como quiser. Apenas certifique-se de que os componentes eletrônicos estejam protegidos da chuva e da poeira.
Recomendado:
FAÇA SEU PRÓPRIO PAINEL DIGITAL BASEADO EM GPS PARA EBIKE OU MOTOCICLETA ELÉTRICA: 13 etapas
FAÇA SEU PRÓPRIO PAINEL DIGITAL BASEADO EM GPS PARA EBIKE OU MOTOCICLETA ELÉTRICA: OLÁ TODOS Desta vez, eu vim com um novo instrutível com display autônomo, bem como logger usando arduino mega 2560 e display Nextion Lcd E para fins de rastreamento, você também pode registrar as sentenças NMEA do Gps em sdcardand, é claro, projec
Painel de controle da nave espacial - Brinquedo Arduino Laser Cut: 11 etapas (com imagens)
Painel de controle da nave espacial - Laser Cut Arduino Toy: Há alguns meses, decidi me tornar um membro do espaço do maker local, já que há muito tempo quero aprender as ferramentas do ofício do maker. Tive um pouco de experiência com o Arduino e fiz um curso de fusão aqui no Instructables. No entanto eu h
Relógio de animação SMART LED conectado à web com painel de controle baseado na web, servidor de hora sincronizado: 11 etapas (com imagens)
Relógio de animação SMART LED conectado à web com painel de controle baseado na web, servidor de tempo sincronizado: a história desse relógio remonta há muito tempo - mais de 30 anos. Meu pai foi o pioneiro dessa ideia quando eu tinha apenas 10 anos de idade, muito antes da revolução do LED - na época em que os LEDs tinham 1/1000 do brilho de seu atual brilho ofuscante. Um verdadeiro
KerbalController: um painel de controle personalizado para o jogo de foguetes Kerbal Space Program: 11 etapas (com imagens)
KerbalController: um painel de controle personalizado para o jogo de foguetes Kerbal Space Program: Por que construir um KerbalController? Bem, porque apertar botões e lançar interruptores físicos parece muito mais substancial do que clicar com o mouse. Especialmente quando é um grande interruptor de segurança vermelho, onde você tem que abrir a tampa primeiro, aperte o interruptor
Faça você mesmo - economize ~ $ 200 e substitua as lâmpadas do painel do painel com LEDs: 8 etapas
Faça você mesmo - economize ~ $ 200 e substitua as lâmpadas do painel de instrumentos com LEDs: O revendedor de automóveis queria mais de $ 200,00 (peças e mão de obra - a maior parte dele mão de obra) para substituir as lâmpadas no painel de instrumentos de nosso Voyager 2001. Se você seguir essas instruções, poderá fazer isso sozinho por cerca de 20 minutos do seu tempo e ~ $ 22,90