Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Nesses instrutíveis, criaremos um sistema de estacionamento totalmente automático conectado a uma interface da web. Poderá ver o local escolhido, decidir quem entra e quem sai e está equipado com sistema de iluminação automática.
Suprimentos
Hardware
- 2 sensores ultrassônicos
- 1x servo motor
- 4x LEDs brancos
- 1x resistor dependente de luz
- 1x 2 * 16 LCD Display
Informática
- 1x Raspberry Pi 3 B +
- 1 cartão SD (8-16 GB a escolha é sua)
- 1x Adafruit I2S 3W Classe D Amplificador Breakout - MAX98357A
- 1x MCP3008
- 1x Resistor 2.2K Ohm
- 9x resistores 1K Ohm
Vários
- Fios de ligação
- Tábua de pão
- Cabo UTP
- Adaptador para framboesa pi
- Uma folha de multiplex (você pode usar qualquer tipo de material que quiser para o invólucro)
- Uma pistola de cola
Programas
- PuTTY
- Software para editar código (você pode usar o que quiser, desde que suporte: Python, HTML, CSS e java script
- Win32 Disk Imager
- Imagem do sistema operacional Raspbian
- Visualizador VNC (opcional)
Etapa 1: Configurar RPI
Antes de começarmos com a fiação do hardware, escrevendo o
e fazer o invólucro de que precisaremos configurar seu PI com o software necessário de que você precisará para fazer o projeto funcionar.
Você precisará de uma imagem do Raspbian para colocar no cartão SD e gravá-la no Win32 Disk Imager do cartão SD. Você pode encontrar links para ambos abaixo.
- Win32 Disk Imager:
- Imagem Raspbian:
A instalação
-
Abra o Win32 Disk Imager
- Selecione a imagem que você acabou de baixar através do ícone da pasta
- Selecione seu cartão SD no menu suspenso
- Clique em escrever
- Quando o processo terminar o seu computador provavelmente irá perguntar se você deseja formatar o cartão SD, não faça isso
Ao concluir essas etapas, você precisará fazer algumas coisas extras para poder acessar o software do seu PI.
- Abra o cartão SD no seu explorador
- Abra o arquivo “cmdline.txt”
- Você verá uma longa linha de texto no final add: ip = 169.254.10.1
- Salve o arquivo
- Crie um arquivo chamado ssh sem extensão (se você não souber como fazer isso, clique no novo arquivo, selecione o novo arquivo de texto, exclua a extensão e nomeie-o como ssh)
- A última etapa desta parte é ejetar com segurança o cartão SD e colocá-lo no Raspberry PI
Conectando
Quando você terminar de fazer as etapas anteriores, é hora de se conectar ao seu pi pela primeira vez. Primeiro você precisa conectar o cabo UTP, uma extremidade no computador e a outra no pi (é importante que você conecte o cabo LAN antes de conectá-lo).
- Instale o Putty:
- Depois de instalado, abra-o e digite 169.254.10.1 na caixa IP
- Selecione SSH e preencha a porta 22
- Clique para abrir
- Preencha o nome de usuário: pi e a senha raspberry este é o login padrão em uma imagem totalmente nova
Raspi-config
Antes de prosseguirmos, você terá que alterar algumas configurações no menu raspi-config para abri-lo usando:
sudo raspi-config
1. Habilite I2C e SPI nas opções da categoria interfaces
2. Escolha o seu país WIFI através da categoria de localização
3. Defina a configuração Desktop / CLI na categoria de opções de inicialização como Desktop Autologin.
4. Nas opções avançadas, escolha A1 Expand Filesystem (isso garante que você use o espaço de todo o cartão SD
5. Agora saia e reinicie o sudo
Wi-fi
Agora é hora de configurar sua conexão wi-fi do curso, você precisará das credenciais de seu wi-fi.
Primeiro vá para o modo root executando este comando
Sudo -i
Agora você tem os direitos necessários para executar estes comandos:
Certifique-se de alterar o SSID para o nome do seu wi-fi e PASSWORD para a sua senha do wi-fi
Wpa_passphrase “SSID” “PASSWORD” >> /etc/wpa_supplicant/wpa_supplicant.conf
Entre no cliente WPA executando este comando:
wpa_cli
Selecione a interface
Interface wlan0
Recarregue a configuração
Reconfigurar
Por último, mas não menos importante, verifique se funcionou. Você pode fazer isso inserindo:
Ip a
Aqui você pode verificar se você tem um ip nas interfaces WLAN0 se não sudo reboot (nunca falha (:).
Se você não se sentir confortável em fazê-lo através da linha de comando, você sempre poderá fazê-lo através da GUI do Raspbian, que é um pouco mais amigável.
- Instale o VNC-viewer aqui:
- Clique em arquivo, nova conexão e digite na barra de endereço IP: 169.254.10.1 e escolha o nome que desejar
- Preencha o nome de usuário: pi e a senha raspberry
- Clique no ícone wi-fi e conecte-se dessa forma
Pacotes
Agora que estamos conectados à internet, podemos instalar os pacotes de que precisamos para executar todo o código.
Primeiro, precisamos atualizar a lista de pacotes para a mais recente executando:
atualização do apt sudo
atualização do apt sudo
Apache Webserver
Precisaremos de um servidor web para rodar nosso aplicativo web. Podemos conseguir isso instalando o servidor da web apache executando este comando:
sudo apt install apach2 -y
Pacotes Python
Para fazer tudo funcionar, vamos precisar de alguns pacotes. Esses são os que vamos precisar.
- Frasco
- Flask-Cors
- Flask-Extension
- Flask-MySQL
- Flask-SocketIO
- Python-socketio
Você pode instalá-los executando este comando:
pip install Flask Flask-Cors Flask-Extension Flask-MySQL Flask-SocketIO python-socketio
Etapa 2: Banco de dados
MariaDB
Execute o seguinte comando para instalar o MariaDB, este é o sistema de banco de dados necessário para manter o controle de todos os dados que os sensores lêem.
sudo apt instalar servidor mariadb
Agora precisaremos proteger nossa instalação
Mysql_secure_installation
Depois de executar o comando, ele nos pedirá uma senha de root, ainda não temos uma, então basta pressionar enter.
Agora ele irá perguntar se você deseja uma por motivos de segurança, nós queremos uma, então pressione Y no seu teclado e escolha a senha desejada.
Agora ele continuará a fazer mais algumas perguntas, basta responder Y a todas elas
Tudo bem, agora que chegamos a este ponto, precisamos ir para o shell SQL.
Para fazer isso, primeiro temos que nos tornar root novamente para nos conceder os privilégios para fazer isso digitando este comando novamente:
sudo -i
Agora entre no shell do mysql
mysql
Agora vamos criar um usuário que coloque o nome que deseja entre as aspas antes de @ e a senha que deseja após identificada por
Agora temos que limpar a tabela de permissões executando este comando:
PRIVILÉGIOS DE FLUSH;
Depois de concluir essas etapas, você pode recriar o esquema db da imagem acima. Infelizmente, não posso fornecer um dump do banco de dados porque estou tendo alguns erros de software.
Etapa 3: Fiação
Agora é hora de fazer a fiação do projeto. Para tornar o processo um pouco mais fácil, primeiro crie um esquema em um programa denominado fritzing. O Fritzing torna mais fácil recriar sua fiação na vida real e você obtém uma imagem clara do que está fazendo.
Etapa 4: Alojamento
O primeiro passo é cortar a madeira nas formas que aparecem no desenho. Eu fiz isso com corte a laser, mas uma serra normal funcionará da mesma forma. Depois disso, você vai querer pintar a madeira de preto para obter a cor do asfalto. Depois que a tinta secar, você pode pintar as listras brancas para dar a sensação de estacionamento. Para a cerca, eu spray canudos pintados para parecerem postes. Para a própria vedação, coloquei algumas goas nos postes. A barreira é feita de paer maché que depois pintei com spray.
Etapa 5: codificação
Backend: o backend do projeto é escrito em Python e TSQL. Ele lê todos os dados dos sensores e os grava no banco de dados que criamos um pouco antes. Ele também roda um servidor web para que possamos conectar nosso frontend a ele. Eu escrevi o código necessário para o back-end em pycharm, mas é claro que você pode usar o que quiser.
Você pode encontrar o código para o back-end aqui:
Frontend: O frontend é escrito em HTML, CSS e Javascript. Usei uma combinação de código de estúdio visual e phpstorm para escrever o código. O código basicamente escreve todo o site e nos arquivos javascript você pode encontrar o código necessário para obter os dados do backend.
Você pode encontrar o código para o frontend aqui: