Protocolo FTP e Raspberry pi
- #Linux
- #C++
Neste artigo revisado, você aprenderá a configurar um programa em C++ em uma Raspberry Pi que recebe arquivos JSON via protocolo FTP.
Pré-requisitos
Certifique-se de que possui o seguinte:
- Raspberry Pi com Raspberry Pi OS instalado.
- Computador Windows para acessar a Raspberry Pi via SSH e usar o FileZilla.
- Conexão estável entre a Raspberry Pi e o computador Windows na mesma rede.
- Editor de texto/Código no Windows (como Visual Studio Code ou Notepad++).
- Noções básicas de Linux, SSH, C++ e FTP.
Configuração Inicial
1. Configure a Raspberry Pi
- Certifique-se de que o SSH está habilitado na Raspberry Pi. No terminal, execute:
sudo raspi-config
2. Acesse a Raspberry Pi via SSH
No Windows, abra o Prompt de Comando ou use um cliente SSH como o PuTTY. Conecte-se à Raspberry Pi com:
ssh pi@<endereço-IP-da-Raspberry-Pi>
Insira a senha para login.
3. Instale o Servidor FTP na Raspberry Pi
No terminal SSH, instale o servidor FTP vsftpd
:
sudo apt update
sudo apt install vsftpd
4. Localize o Arquivo de Configuração do FTP
Use o comando abaixo para verificar a existência do arquivo vsftpd.conf
:
ls /etc | grep vsftpd
Se o arquivo vsftpd.conf
estiver listado, você pode editá-lo com:
sudo nano /etc/vsftpd.conf
Adicione ou certifique-se de que as seguintes linhas estão configuradas:
write_enable=YES
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
Salve com Ctrl+O
e saia com Ctrl+X
.
Reinicie o servidor FTP para aplicar as configurações:
sudo systemctl restart vsftpd
Criando o Código em C++
1. Configure o Ambiente de Desenvolvimento
- Instale o compilador g++:
sudo apt install g++
2. Crie o Programa em C++
- Crie um diretório para o projeto:
mkdir projetos_cpp
cd projetos_cpp
Use o comando pwd
para verificar o caminho completo do diretório:
pwd
Anote esse caminho, pois será onde o arquivo JSON será colocado. Crie um novo arquivo chamado ftp_receiver.cpp
:
nano ftp_receiver.cpp
Adicione o seguinte código:
cpp
#include <iostream>
#include <fstream>
#include <string>
void processJson(const std::string& filePath) {
std::ifstream jsonFile(filePath);
if (jsonFile.is_open()) {
std::string line;
while (std::getline(jsonFile, line)) {
std::cout << line << std::endl; // Imprime o conteúdo do JSON
}
jsonFile.close();
} else {
std::cerr << "Erro ao abrir o arquivo JSON." << std::endl;
}
}
int main() {
std::string jsonFilePath = "config.json"; // Nome do arquivo esperado
processJson(jsonFilePath);
return 0;
}
Salve o arquivo e saia do editor.
3. Compile e Execute
Compile o programa com o g++:
g++ ftp_receiver.cpp -o ftp_receiver
Execute o programa:
./ftp_receiver
Transferindo o Arquivo JSON com FileZilla
1. Instale e Configure o FileZilla
Baixe e instale o FileZilla no Windows. Abra o programa e configure uma nova conexão:
- Host: Endereço IP da Raspberry Pi.
- Nome de usuário:
pi
(ou o nome do usuário configurado na Raspberry Pi). - Senha: A senha usada para SSH.
- Porta: 21.
Conecte-se ao servidor FTP.
2. Transfira o Arquivo config.json
- No FileZilla, navegue até o diretório do projeto (que você encontrou com
pwd
na Raspberry Pi, como/home/pi/projetos_cpp
). - Transfira o arquivo
config.json
da máquina Windows para este diretório.
3. Execute o Programa
Na Raspberry Pi, execute novamente o programa C++ para processar o arquivo JSON:
./ftp_receiver
Conclusão
Agora, você possui um programa funcional em C++ que recebe e processa arquivos JSON via FTP na Raspberry Pi.