Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Expondo o Raspberry Pi via servidor web

Expondo o Raspberry Pi via servidor web

Palestra apresentada no Arduino Day no DC/UFSCar

Esta palestra ensina como acessar os pinos de um Raspberry Pi através de uma aplicação web escrita em Python e Bottle.

Luiz Menezes

April 02, 2016
Tweet

More Decks by Luiz Menezes

Other Decks in Programming

Transcript

  1. Python Visão Geral ▷ Simples, enxuta e poderosa ▷ Pilhas

    inclusas ▷ Interpretada e dinâmica ▷ Comunidade ativa e amigável
  2. ▷ IoT ◦ MicroPython ◦ Arduino, RaspberryPi, Intel Galileo, ...

    ▷ Web ◦ Django, Flask, Bottle, Web2py, tornado, twisted, Celery, RQ ▷ Scripting Python Para que é usada?
  3. ▷ Programação científica ◦ SciPy, numpy, scikit-learn, pandas, IPython, matplotlib,

    ... ▷ Desktop ◦ PyGTK, PyQT, WxPython, tkinter ▷ Educação ◦ "BBC begin to deliver 1 million small programmable devices to the UK's 11 and 12 year old children." (PSF, 2016) Python Para que é usada?
  4. “ HTTP é um protocolo de comunicação utilizado para sistemas

    de informação de hipermídia, distribuídos e colaborativos Tim Berners-Lee
  5. HTTP HyperText Transfer Protocol ▷ Definido pelo RFC 2616 ▷

    Modelo cliente-servidor ◦ Exemplos ▪ Cliente: browser ▪ Servidores: apache, nginx, microsoft IIS, etc.
  6. HTTP HyperText Transfer Protocol ▷ Demonstração GET / HTTP/1.1 Host:

    uol.com.br GET / HTTP/1.1 Host: www.uol.com.br
  7. ▷ Requisição HTTP ◦ Requisição GET /static/image/logo.png HTTP/1.1 Host: www.exemplo.com.br

    ◦ Cabeçalho ▪ Host ▪ Accept-Language ▪ Last-Modified HTTP HyperText Transfer Protocol
  8. HTTP HyperText Transfer Protocol ▷ Resposta HTTP ◦ Status (ex:

    HTTP/1.1 200 OK) ◦ Cabeçalho de resposta ▪ Content-Type (text/html, image/png, ...) ▪ Content-Encoding (utf-8, ascii, ...) ▪ Content-Length ▪ Last-Modified
  9. HTTP HyperText Transfer Protocol ▷ Códigos de status ◦ 2xx

    Sucesso ◦ 3xx Redirecionamento ◦ 4xx Erro do cliente ◦ 5xx Erro do servidor
  10. HTTP HyperText Transfer Protocol ▷ Códigos de erros ◦ 4xx

    Erro do cliente ▪ 400 Bad Request ▪ 401 Unauthorized ▪ 403 Forbidden ▪ 404 Not found ◦ 5xx Erro do servidor ▪ 500 Internal Server Error ▪ 503 Service Unavaiable
  11. ▷ Micro ▷ Arquivo único ◦ Depende somente do Python

    ▷ Roteamento e Templates ▷ Servidor HTTP embutido ◦ Testes locais e aplicações pequenas Bottle Microframework Web
  12. ▷ PyPI ◦ pip install bottle ▷ Manual ◦ baixe

    o bottle.py e coloque no diretório da sua aplicação Bottle Como instalar
  13. Mãos na massa O que faremos ▷ Servidor ◦ Raspberry

    Pi ▷ Cliente ◦ Navegador ◦ Aplicação que faz requisições
  14. ▷ Rotas ◦ Modo: /modo/<modo>/<pino> ▪ Modos: input e output

    ◦ Leitura de pino: /<pino> ◦ Saida: /<pino>/<sinal> ▪ sinal : 0 e 1 Mãos na massa Aplicação servidor
  15. ▷ Exemplo ◦ http://localhost:8080/modo/output/24 ▪ Coloca o pino 24 em

    modo de saída ◦ http://localhost:8080/24/1 ▪ Manda um sinal '1' para o pino 24 ◦ http://localhost:8080/24 ▪ Lê o pino Mãos na massa Aplicação servidor