Linux Básico e Python para Sistemas Embarcados na Agricultura
2 / 24Plataformas de Software
Linux embarcado aproxima sistema e aplicação
04
Aplicações
C e Python implementam aquisição, análise, interface e lógica de missão.
03
Espaço de usuário
Bibliotecas, serviços, ferramentas de depuração e software robótico.
02
Kernel e drivers
Gerenciam CPU, memória, câmeras, armazenamento e periféricos.
01
Boot e hardware
Inicializam a placa e preparam a execução confiável do sistema.
A pilha deixa explícita a passagem entre recurso físico e comportamento do sistema.
Plataformas móveis exigem que software, sensores e processamento operem como um único sistema.
Visão e IA
Linux acomoda câmeras, bibliotecas e pipelines de processamento para percepção local.
Quando visão, armazenamento e algoritmos exigem mais recursos, Linux transforma a plataforma embarcada em um ambiente completo de desenvolvimento.
Decisão de Projeto
A flexibilidade do Linux precisa ser equilibrada com os requisitos de tempo de resposta, confiabilidade e segurança operacional.
3 / 24Fundamentos
O que é Linux?
Termo
Definição
Linux
Kernel (núcleo) que gerencia hardware, memória e processos.
Open source
Código aberto — qualquer pessoa pode ver, usar e modificar.
Distribuição
Linux + ferramentas e pacotes prontos para uso (Ubuntu, Debian, Fedora...).
Ubuntu
Distribuição usada nesta disciplina — estável e amplamente documentada.
4 / 24Motivação
Por que Linux em linha de comando?
Sensores, gateways e placas embarcadas raramente têm interface gráfica.
Terminal é a forma padrão de configurar, testar e depurar esses dispositivos.
Base para automatizar tarefas e rodar scripts Python no campo.
O terminal (shell) é a interface de texto usada para operar o sistema Linux — é a forma padrão de interagir com dispositivos embarcados sem interface gráfica.
5 / 24Ambientes
Linux no Windows
Ambiente
Papel nesta aula
Docker Desktop
Ambiente principal desta aula.
Google Cloud Shell
Contingência — usado apenas se o Docker falhar.
WSL 2
Alternativa de mercado (mencionada brevemente).
6 / 24Docker
Iniciar Ubuntu com Docker
Comando principal
terminal
$ docker run -it --name ap711-ubuntu ubuntu bash
Alerta: este container inicia com o usuário root.
Retomar o mesmo container em outra sessão
terminal
$ docker start -ai ap711-ubuntu
7 / 24Docker Referência
Gerenciamento do container
Comando
Descrição
docker ps
Lista containers em execução.
docker ps -a
Lista todos os containers.
docker start ap711-ubuntu
Inicia o container existente.
docker exec -it ap711-ubuntu bash
Abre um novo terminal no container ativo.
docker stop ap711-ubuntu
Interrompe o container.
docker rm ap711-ubuntu
Remove o container.
8 / 24Contingência Fallback
Google Cloud Shell
1Acessar shell.cloud.google.com
2Terminal Linux disponível diretamente no navegador
9 / 24Ambientes Referência
Comandos básicos — WSL 2
Comando
Exemplo
Saída
wsl --install
wsl --install
Instalando: Ubuntu...
wsl --list
wsl --list --verbose
NAME: Ubuntu STATE: Running VERSION: 2
wsl -d
wsl -d Ubuntu
(abre o terminal da distro Ubuntu)
wsl --shutdown
wsl --shutdown
(sem saída — todas as distros encerradas)
10 / 24Linux
Primeiros comandos
Comando
Exemplo
Saída
pwd
pwd
/
ls -la
ls -la
drwxr-xr-x 1 root root 4096 ago 20 09:58 .
mkdir
mkdir teste
(sem saída — diretório criado)
cd
cd teste
root@ap711-ubuntu:/teste#
touch
touch arquivo.txt
(sem saída — arquivo criado)
cat
cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04 LTS"
cd ..
cd ..
root@ap711-ubuntu:/#
clear
clear
(tela limpa)
exit
exit
(sessão do terminal encerrada)
11 / 24Linux — Filesystem
Estrutura do projeto
Criação dos diretórios
terminal
$ mkdir ap711
$ cd ap711
$ mkdir scripts dados resultados
Estrutura resultante
ap711/
├── scripts/
├── dados/
└── resultados/
scripts/ recebe o código Python; dados/ e resultados/ organizam entradas e saídas do projeto.
12 / 24Linux Referência
Comandos adicionais
Comando
Exemplo
Saída
cp
cp clima.py clima_backup.py
(sem saída — arquivo copiado)
mv
mv clima_backup.py backup_clima.py
(sem saída — arquivo renomeado)
rm
rm backup_clima.py
(sem saída — arquivo removido)
find
find . -name "*.py"
./clima.py
grep
grep "import" clima.py
import requests
head
head -n 1 clima.py
import requests
tail
tail -n 2 clima.py
print("Condição atual: sem precipitação.")
chmod
chmod +x clima.py
(sem saída — permissão de execução adicionada)
13 / 24Permissões
sudo
Comando
Descrição
sudo
Executa um comando com privilégios de administrador (root).
sudo apt install ...
Uso típico — instalar pacotes fora do container Docker.
Por que existe
Evita que o usuário opere com privilégios totais o tempo todo — reduz o risco de comandos acidentais ou maliciosos. Cada uso de sudo é uma decisão explícita.
No container Docker desta aula
Usuário já é root — sudo não é necessário. Necessário em Ubuntu fora do Docker (ex.: WSL2).
No container Docker (usuário root) o sudo não é necessário. Em um Ubuntu fora do Docker (por exemplo, WSL2), inclua sudo antes dos comandos: sudo apt update, sudo apt install ...
15 / 24Python
Por que Python?
Prototipagem muito mais rápida que C — sem compilar, testa e ajusta na hora.
Bibliotecas prontas para sensores, câmeras e IA (GPIO, OpenCV, etc.) — menos código para escrever.
Roda direto no Linux embarcado (Raspberry Pi, Jetson) — mesma camada do C.
C continua no firmware de baixo nível e tempo real crítico — Python entra na camada de decisão.
requests: biblioteca Python para realizar chamadas HTTP — usada a seguir para consumir a API meteorológica. O prefixo (.venv) no início do prompt indica que o ambiente virtual está ativo.
18 / 24Integração de Dados
O que é uma API? Por que usar?
Termo
Definição
API
Forma padronizada de um programa pedir dados a outro sistema, pela internet.
Por que usar
Evita reconstruir o que já existe — previsão do tempo, imagens de satélite, dados climáticos.
Open-Meteo
API gratuita de previsão do tempo, sem cadastro nem chave de acesso.
NASA POWER
Dados climáticos e de radiação solar, usados em modelos agroclimáticos.
# clima.py — consulta e interpreta dados meteorológicos
import requests
url = "https://api.open-meteo.com/v1/forecast"
params = {
"latitude": -22.90,
"longitude": -47.06,
"current": "temperature_2m,relative_humidity_2m,precipitation",
"timezone": "auto",
}
# Faz a requisição HTTP e converte a resposta para JSON
response = requests.get(url, params=params)
data = response.json()
print(data["current"]) # exibe os dados brutos recebidos
Comentários em Python começam com # — o interpretador ignora o texto até o fim da linha.
21 / 24Python
Executar o script
Comando principal
terminal
$ python3 clima.py
Comando
Descrição
python3 clima.py
Executa o script passando-o ao interpretador Python.
./clima.py
Alternativa após chmod +x clima.py — executa o arquivo diretamente.
A cada alteração no código: salvar no nano (Ctrl+O, Enter, Ctrl+X) e executar novamente.
22 / 24Projeto AP711
Etapa 2 — Interpretar
clima.py
# clima.py — versão completa
import requests
url = "https://api.open-meteo.com/v1/forecast"
params = {
"latitude": -22.90,
"longitude": -47.06,
"current": "temperature_2m,relative_humidity_2m,precipitation",
"timezone": "auto",
}
# Faz a requisição HTTP e converte a resposta em JSON
response = requests.get(url, params=params)
data = response.json()
atual = data["current"]
# Extrai os valores de interesse
temperatura = atual["temperature_2m"]
umidade = atual["relative_humidity_2m"]
precipitacao = atual["precipitation"]
print(f"Temperatura: {temperatura} °C")
print(f"Umidade: {umidade} %")
print(f"Precipitação: {precipitacao} mm")
# Interpreta a condição atual
if precipitacao > 0:
print("Condição atual: há precipitação.")
else:
print("Condição atual: sem precipitação.")
clima.py — versão completa, combinando consulta (Etapa 1) e interpretação (Etapa 2).
23 / 24Fechamento
Do Linux à decisão no AP711
Linux
→
Python
→
HTTP / JSON
→
Dados
→
Interpretação
Próximos passos (fora desta aula)
Sensores reais · gateways IoT · MQTT · Docker Compose · bancos de dados · shell scripting · Python orientado a objetos
Esta base — terminal, Python, ambiente virtual e consumo de dados — sustenta o trabalho posterior com sensores, gateways e aplicações IoT no agronegócio.