LINUX BÁSICO E PYTHON PARA SISTEMAS EMBARCADOS NA AGRICULTURA Guia do Professor — versão web, navegação por slide
1 / 24 Workshop Prático · AP711 — Sistemas Embarcados na Agricultura

Linux Básico e Python
para Sistemas Embarcados na Agricultura

2 / 24 Plataformas 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.
Drone agrícola sobrevoando plantação de milho
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 / 24 Fundamentos

O que é Linux?


TermoDefinição
LinuxKernel (núcleo) que gerencia hardware, memória e processos.
Open sourceCódigo aberto — qualquer pessoa pode ver, usar e modificar.
DistribuiçãoLinux + ferramentas e pacotes prontos para uso (Ubuntu, Debian, Fedora...).
UbuntuDistribuição usada nesta disciplina — estável e amplamente documentada.
4 / 24 Motivação

Por que Linux em linha de comando?


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 / 24 Ambientes

Linux no Windows


AmbientePapel nesta aula
Docker DesktopAmbiente principal desta aula.
Google Cloud ShellContingência — usado apenas se o Docker falhar.
WSL 2Alternativa de mercado (mencionada brevemente).
6 / 24 Docker

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 / 24 Docker Referência

Gerenciamento do container


ComandoDescrição
docker psLista containers em execução.
docker ps -aLista todos os containers.
docker start ap711-ubuntuInicia o container existente.
docker exec -it ap711-ubuntu bashAbre um novo terminal no container ativo.
docker stop ap711-ubuntuInterrompe o container.
docker rm ap711-ubuntuRemove o container.
8 / 24 Contingência Fallback

Google Cloud Shell


9 / 24 Ambientes Referência

Comandos básicos — WSL 2


ComandoExemploSaída
wsl --installwsl --installInstalando: Ubuntu...
wsl --listwsl --list --verboseNAME: Ubuntu STATE: Running VERSION: 2
wsl -dwsl -d Ubuntu(abre o terminal da distro Ubuntu)
wsl --shutdownwsl --shutdown(sem saída — todas as distros encerradas)
10 / 24 Linux

Primeiros comandos


ComandoExemploSaída
pwdpwd/
ls -lals -ladrwxr-xr-x 1 root root 4096 ago 20 09:58 .
mkdirmkdir teste(sem saída — diretório criado)
cdcd testeroot@ap711-ubuntu:/teste#
touchtouch arquivo.txt(sem saída — arquivo criado)
catcat /etc/os-releasePRETTY_NAME="Ubuntu 24.04 LTS"
cd ..cd ..root@ap711-ubuntu:/#
clearclear(tela limpa)
exitexit(sessão do terminal encerrada)
11 / 24 Linux — 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 / 24 Linux Referência

Comandos adicionais


ComandoExemploSaída
cpcp clima.py clima_backup.py(sem saída — arquivo copiado)
mvmv clima_backup.py backup_clima.py(sem saída — arquivo renomeado)
rmrm backup_clima.py(sem saída — arquivo removido)
findfind . -name "*.py"./clima.py
grepgrep "import" clima.pyimport requests
headhead -n 1 clima.pyimport requests
tailtail -n 2 clima.pyprint("Condição atual: sem precipitação.")
chmodchmod +x clima.py(sem saída — permissão de execução adicionada)
13 / 24 Permissões

sudo


ComandoDescrição
sudoExecuta 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).
14 / 24 Pacotes

apt


ComandoDescrição
apt updateAtualiza a lista de pacotes disponíveis.
apt installInstala um pacote.
apt removeRemove um pacote.
Instalar o ambiente Python
terminal
$ sudo apt update
$ sudo apt install -y python3 python3-pip python3-venv nano
terminal
$ python3 --version
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 / 24 Python

Por que Python?


16 / 24 Python

Preparar o Python


ComandoDescrição
python3Interpretador Python 3.
python3 --versionVerifica a versão instalada.
python -m pipGerenciador de pacotes Python.
python3 -m venvCria um ambiente virtual isolado.
Python — linguagem usada no exercício.
pip — instala bibliotecas Python.
venv — cria um ambiente isolado para o projeto.
17 / 24 Python

Ambiente virtual e pip


Criar e ativar
terminal
$ python3 -m venv .venv
$ source .venv/bin/activate
Instalar a dependência
terminal
$ python -m pip install requests

requests: biblioteca Python para realizar chamadas HTTP — usada a seguir para consumir a API meteorológica.

18 / 24 Integração de Dados

O que é uma API? Por que usar?


TermoDefinição
APIForma padronizada de um programa pedir dados a outro sistema, pela internet.
Por que usarEvita reconstruir o que já existe — previsão do tempo, imagens de satélite, dados climáticos.
Open-MeteoAPI gratuita de previsão do tempo, sem cadastro nem chave de acesso.
NASA POWERDados climáticos e de radiação solar, usados em modelos agroclimáticos.
Exemplo — requisição via curl
ComandoExemploSaída
curl curl "https://api.open-meteo.com/v1/forecast?latitude=-22.89&longitude=-47.06&current=temperature_2m,wind_speed_10m" {"current": {"temperature_2m": 28.5, "wind_speed_10m": 12.3}}
19 / 24 Editor

Criar o script com nano


Abrir o editor
terminal
$ nano clima.py
TeclaAção
Ctrl+OSalvar
EnterConfirmar o nome do arquivo
Ctrl+XSair do editor
20 / 24 Python

Executar o script


Comando principal
terminal
$ python3 clima.py
ComandoDescrição
python3 clima.pyExecuta o script passando-o ao interpretador Python.
./clima.pyAlternativa 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.
21 / 24 Projeto AP711

Etapa 1 — Consultar e exibir


clima.py
clima.py
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",
}

response = requests.get(url, params=params)
data = response.json()

print(data["current"])
Fluxo
Python
HTTP
Open-Meteo
JSON
Python
Terminal
22 / 24 Projeto AP711

Etapa 2 — Interpretar


clima.py (continuação)
clima.py
atual = data["current"]

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")

if precipitacao > 0:
    print("Condição atual: há precipitação.")
else:
    print("Condição atual: sem precipitação.")
Fluxo
dados brutos

processamento

informação útil
23 / 24 Fechamento

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.
24 / 24 Referências

Documentação oficial


FonteLink
Dockerdocs.docker.com
Ubuntuubuntu.com
Pythondocs.python.org/3
Python — venvdocs.python.org/3/tutorial/venv.html
Open-Meteo — APIopen-meteo.com/en/docs
NASA POWER — APIpower.larc.nasa.gov/docs/services
Google Cloud Shelldocs.cloud.google.com/shell/docs
WSL 2 — instalaçãolearn.microsoft.com/windows/wsl/install
Navegue com · Home/End vai ao primeiro/último slide · Esc sai da tela cheia