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

Internet das Coisas (IoT) com Python

Internet das Coisas (IoT) com Python

Palestra que tivemos com a Juliana Karoline evidenciando como utilizar as placas da Intel Galileo no mundo da Internet das Coisas.

B2519015997dff04abe2568ebb2cf729?s=128

Opensanca

March 16, 2016
Tweet

More Decks by Opensanca

Other Decks in Technology

Transcript

  1. Python com IoT Utilizando as placas da Intel com Python

  2. Olá! Sou Juliana Karoline Estou aqui por motivos de Python

    <3 e IoT. Twitter/Facebook: @julianaklulo /julianaklulo
  3. IoT Entendendo o que há por trás do buzzword

  4. Sobre a Internet das Coisas Internet das Coisas (IoT): trata-se

    de uma rede onde coisas (things) trocam informações captadas do ambiente, assim como recebem comandos para alterar o mundo físico.
  5. Sobre as Coisas Coisas: objetos que coletam dados do ambiente

    por meio de sensores, transmitem esses dados via rede, e modificam o mundo físico por meio de atuadores que recebem os comandos também pela rede.
  6. Sobre as Coisas Exemplos de sensores: ▧ Luminosidade ▧ Umidade

    ▧ Distância ▧ Presença ▧ Corrente ▧ … ▧ Tudo que capta informações do ambiente
  7. Exemplos de atuadores: ▧ LEDs ▧ Motores ▧ Buzzer ▧

    Display TFT ▧ … ▧ Tudo que realiza uma ação no ambiente Sobre as Coisas
  8. Mas como controlar as coisas?

  9. Placas Escolhendo a placa correta para o projeto

  10. ▧ Para controlar os sensores e atuadores, utiliza-se placas de

    desenvolvimento. Placas disponíveis no mercado Raspberry Pi 2 Model B Arduino UNO R3 Beagle Bone Black
  11. Intel Galileo Gen 1

  12. Especificações Galileo ▧ Intel Quark SoC 32-bits 400MHz ▧ First

    board based on Intel architecture designed to be hardware and software pin- compatible with Arduino shields designed for the Uno R3. ▧ A full sized mini-PCI Express* slot, 100Mb Ethernet port, Micro-SD slot, USB Host port, USB Client port, RTC on-board ▧ Yocto Linux
  13. Intel Galileo Gen 2

  14. Intel Edison Arduino Breakout Board Mini Breakout Board

  15. ▧ Intel® SoC that includes a dual-core, dual- threaded Intel®

    Atom™ CPU at 500 MHz and a 32-bit Intel Quark microcontroller at 100 MHz ▧ 1 GB LPDDR3 POP memory ▧ WiFi and Bluetooth Low Energy 4.0 ▧ Yocto Linux Especificações Edison
  16. Mas o que essas placas têm em comum?

  17. GPIO General Purpose Input/Output

  18. Funcionamento das GPIOs ▧ As entradas e saídas de propósito

    geral (GPIOs) são um meio de comunicação com o mundo externo. Elas servem para conectar objetos que não possuem um padrão predeterminado, como USB, HDMI, VGA, etc. ▧ Através dos pinos é possível ler a tensão que um objeto fornece (Digital e Analog Read) ▧ É possível também fornecer uma tensão para um objeto (Digital e Analog Write)
  19. Localização das GPIOs

  20. Como manipular as GPIOs?

  21. MRAA Low Level Skeleton Library for Communication on GNU/Linux Plataforms

  22. MRAA ▧ Libmraa é uma biblioteca C/C++ de baixo nível

    para comunicação em plataformas GNU/Linux, com wrappers em javascript & python, que interfaceia com as entradas e saídas das Galileo, Edison e outras plataformas. ▧ O uso da libmraa não te amarra a um hardware específico, pois com a detecção da placa sendo feita durante o runtime o código se torna multiplataforma.
  23. Blink da MRAA

  24. E os sensores?

  25. Upm Useful Packages & Modules Sensor/Actuator repository for MRAA

  26. UPM ▧ UPM é um repositório de alto nível para

    sensores que utiliza a MRAA. Os sensores são abstraídos por meio de classes e são instanciados como objetos. ▧ A lista de sensors suportados cresce a cada dia (170+) e você pode contribuir abstraindo um sensor novo através do GitHub!
  27. Exemplos de sensores suportados pela UPM: ▧ Acelerômetro ▧ Pressão

    Atmosférica ▧ Sensor de cores ▧ Bússola, giroscópio, ▧ Potenciômetro digital ▧ Displays ▧ GPS ▧ Relés ▧ Servo motores ▧ ... UPM
  28. Exemplo UPM - Buzzer

  29. Exemplo UPM - Servo

  30. Exemplo UPM - Botão

  31. Exemplo de aplicação

  32. Clockwise An Intelligent Alarm Clock

  33. A Proposta Acordar com a previsão do tempo, temperatura local

    e seus compromissos do dia no Google Calendar sendo anunciados gentilmente pelo seu próximo despertador inteligente.
  34. Os Componentes ▧ Intel Edison + Arduino Breakout Board ▧

    Grove Base Shield ▧ Grove Push Button (x2) ▧ Caixa de som Bluetooth
  35. O Código Onde a magia acontece

  36. 1. Previsão do Tempo Recebendo os dados pela API pywapi

  37. Código da cidade conditions: contém os dados atuais do clima

    Pegando informações da API pywapi forecasts: contém as estimatimas para o dia
  38. 2. Google Calendar Obtendo os eventos do dia pela API

    do Google Calendar
  39. Pegando os eventos do dia events: armazena todos os dados

    dos eventos buscados Conexão com a API, feita usando OAuth2
  40. Filtrando os dados dos eventos Seta o alarme se tiver

    um evento cadastrado para isso Pega hora/minuto e nome do evento Gera uma string com dos dados dos eventos
  41. 3. Reproduzindo o texto Gerando .mp3 através da API voicerss

    (text-to-speech)
  42. Gerando .mp3 Composto pela string do clima e dos eventos

    Serializa a resposta e salva como .mp3
  43. 4. Lendo os Grove Push Buttons Usando a biblioteca MRAA

    da Intel para ler os push buttons da Grove
  44. Declarando os botões Pinos da Edison ligados no Grove Base

    Shield
  45. Lendo os botões Função que reproduz os .mp3 gerados

  46. Função soneca

  47. Demonstração

  48. None
  49. Instructables http://www.instructables.com/id/Clockwise-an-Intelligent-Alarm-Clock-Powered-by-In/

  50. Obrigada! http://github.com/julianaklulo/clockwise