Computação Física e o Jupyter Notebook

Computação Física e o Jupyter Notebook (1)

Aprenda a instalar o Jupyter Notebook em um Raspberry Pi e, diretamente ler e controlar sensores e atuadores.

Todos sabemos que o Jupyter Notebook é uma ferramenta fantástica, ou melhor, um aplicativo Web de código aberto que permite criar e compartilhar documentos que contenham códigos ativos, equações, visualizações e texto.

O Jupyter Notebook é amplamente utilizado no campo do Data Science, limpando e transformando dados, fazendo simulações numéricas, modelagem estatística, visualização de dados, aprendizado de máquina e muito mais!

Mas, que tal usar os Jupyter Notebooks para controlar os GPIOs de um Raspberry Pi?

É exatamente  isso que faremos neste tutorial. Aprenderemos como instalar o Jupyter Notebookem um Raspberry Pi, e diretamente nele, ler sensores e atuar em atuadores.

 

1. Introdução

O diagrama abaixo nos dá uma visão geral sobre o projeto:

Introdução

E o video poderá lhe dar uma pista do que é possível obter quando o Pi encontra Jupyte

 

2. O HW

 

O HW

Lista de materiais:

  • Raspberry Pi V3
  • Temperatura DHT22 e Sensor de Umidade Relativa
  • DS18B20 Sensor De Temperatura À Prova D ‘Água
  • BMP180 Pressão barométrica, temperatura e sensor de altitude
  • LEDS (3x)
  • Botão de pressão (1x)
  • Resistor 4K7 ohm (2x)
  • Resistor 1K ohm (1x)
  • Resistor 330 ohm (3x)
  • Protoboard e cabos

O diagrama elétrico

O diagrama elétrico
Vamos seguir o diagrama elétrico acima e conectar todos os 3 sensores, botões e LEDs ao Raspberry Pi.

Os sensores usados ​​neste projeto são os mesmos ulizados ​em meu tutorial:

Estação Meteorológica IoT Com RPi e ESP8266

Sugiro que você dê uma olhada nesse tutorial, onde explico um por um, como instalar os sensores e suas bibliotecas, testando-os individualmente antes de executar o programa completo.

 

3. Instalando o Jupyter

Para instalar o Jupyter em seu Raspberry (que será executado com o Python 3), abra o Terminal e insira os seguintes comandos:

sudo pip3 install jupyter

sudo ipython3 kernelspec install-self

Agora em seu terminal, execute o comando:

jupyter notebook

E é isso!!!! Surpreendente! muito simples e fácil. O Notebook será executado como um servidor em:

http:localhost:8888

3. Instalando o Jupyter

Mas, isso não é realmente importante para você saber, porque, automaticamente, seu navegador padrão será aberto nesse endereço, executando uma “Página Inicial”.

Página Inicial

Para parar o servidor e fechar os “kernels” (os Jupyter notebooks), você deve usar [Ctrl] + [C] no teclado de seu RPi.

A partir de agora, sempre que você iniciar seu Pi e quiser usar o Jupyter Notebook, basta digitar o comando “Jupyter notebook” no terminal do RPi, mantendo-o funcionando o tempo todo. 

Isto é muito importante!

Se você precisar usar o terminal de seu RPi para outra tarefa, como executar um outro script por exemplo, abra uma nova janela de Terminal.

 

4. Executando Scripts Python no Jupyter Notebook

Estamos assumindo que você esteje familiarizado com o Jupyter Notebook. Ele funcionará em seu Pi exatamente como funciona em seu desktop.

Há “toneladas” de bons tutoriais sobre como utilizar Jupyter notebooks  disponíveis na web, faça uma busca no Google e você certamente encontrará um adequado para você.

Vamos brincar com um notebook que criei especialmente para este tutorial.

Faça seu download desde meu GitHub: Sensores de estação meteorológica – Atuadores

Salve o notebook no seu Raspberry Pi. Em meu caso, o salvei no diretório principal (veja a tela da página inicial acima). Observe que existem 4 notebooks no meu diretório principal (notebooks possuem um “pequeno notebook” como ícone). Apenas clique nele. O notebook será carregado e aparecerá como este abaixo. Se você observar a página inicial novamente (“Home”), perceberá que o “ícone do notebook” agora está “verde”, o que significa que está em execução.

Jupyter Notebook

Além disso, observe que há uma imagem do HW na primeira célula de meu notebook. Para que a imagem apareça corretamente, você deve ou tê-lo no mesmo diretório (que é o meu caso) ou alterar o seu caminho no notebook, caso você use outro diretório para armazenar a imagem.

Você pode entrar com comandos Unix diretamente em uma célula do Notebook, da mesma forma que faz no Terminal.

Por exemplo, o comando:

ls

Listará todos os seus arquivos encontrados no diretório onde o notebook está sendo executado, como você pode ver aqui:

Terminal.

 

5. Inicialização (1): Criando um Script Python no Jupyter Notebook e Importando Bibliotecas

A idéia é começar a escrever seu script da mesma forma (e ordem) em que você está acostumado a fazer com um IDE do Python.

Vou dividir meu notebook em 3 fases, onde faremos:

1. Inicialização

  • Importar Bibliotecas
  • Definir GPIOs
  • Inicialize os GPIOs
  • Crie funções importantes

2. Sensores de Leitura

3. Leitura e atuação em GPIOs (botão e LEDs)

Importante observar que, normalmente, você executará a fase de inicialização apenas uma vez. Depois disso, você pode brincar com sensores e GPIOs, executando apenas as células pertinentes criadas para as Fases 2 e 3, como neste exemplo.

 

6. Inicialização (2): Definindo e inicializando os GPIOs

inicializando os GPIOs

 

7. Inicialização (3): Funções para exibição de dados

Funções para exibição de dados

 

 

9. Inicialização (5): Funções para Manipulação de GPIOs

Funções para Manipulação de GPIOs

 

10. Obtendo dados de sensores e manipulando com GPIOs

manipulando com GPIOs

 

Executando a célula [11], você obterá todos os dados dos sensores:

Widgets

Neste ponto é importante chamar a atenção para os “Widgets”.

Os widgets são objetos python como elementos ativos no navegador, geralmente como um controle deslizante, uma caixa de texto, botões, etc. Você pode utilizar widgets para criar GUIs interativas para seus Notebooks.

Aqui neste exemplo, estamos usando widgets (“Sliders”) na célula [12}, para o controle em TEMPO REAL do estado dos atuadores, neste caso ligando ou desligando os LEDs. Os widgets são ótimos para adicionar um comportamento mais dinâmico aos notebooks.

 

quisermos um valor de atualização de sensores, mas é claro, um widget também poderá ser implementado para fazê-lo de maneira automatica, ou mesmo pressionando-se um botão criado como widget, para exemplo. Deixarei isso Como você deve ter observado, no código

devemos executar a célula [11] sempre que como um desafio à você!

Instalação da Biblioteca de Widgets

Para usar Widgets, você deve instalar a biblioteca Ipywidgets. Para isso, use os comandos abaixo:

sudo pip3 install ipywidgets

jupyter nbextension enable –py widgetsnbextension

Após a instalação, chame a biblioteca em uma célula de seu Notebook.

Note que fizemos isso, no começo, na fase de inicialização

# widget library

from ipywidgets import interactive

import ipywidgets as widgets

from IPython.display import display

Este Widget, “interativo”, é simples de ser implementado e muito poderoso. Você poderá aprender mais sobre este assunto neste link: Widget interativo .

 

11. DataScience, Machine Learning, Computação Física, Visão por Computador, IoT e… o Futuro!

Futuro

Estou iniciando novas jornadas neste fascinante mundo da tecnologia. Tudo o que vemos hoje tem dados relacionados e o conhecimento desses dados pode ser fundamental para projetos relevantes que podem ajudar as pessoas. Você verá mais e mais, aqui em meu blog, tutoriais onde o DataScience é misturado com Computação Física, Visão por Computador, Aprendizado de Máquina e IoT.

Como exemplo, para um curso On-line de Data Science que fiz pela plataforma EDX (Universidade da California – San Diego), trabalhei com os dados que capturado em um projeto anterior de IoT, o ArduFarmBot  :

Máquina e IoT.

registrados na plataforma de IoT, ThingSpeak e aplicando algorítmos de “Machine Learn” nesses dados, foi possível prever (na verdade, confirmar) quando a lâmpada e a bomba devem ser ligadas.

Os resultados foram incríveis !!!!!!

Você poderá ver o o Jupyter Notebook e o relatório final do projeto em meu GitHub:

ArduFarmBot_Data_Analysis

Isso é tudo, pessoal!

 

12. Conclusão

Como sempre, espero que este projeto possa ajudar o outros a encontrar seus caminhos no emocionante mundo da eletrônica!

Para detalhes e código final, por favor visite meu depositário do GitHub: Pyhon4DS / RaspberryPi

Fique ligado! Em um futuro tutorial, enviaremos dados de uma estação meteorológica remota para uma estação central, com base em um servidor da Web Raspberry Pi Flask:

Web Raspberry Pi Flask:

Saludos desde el sur del mundo!

Vejo você em meu próximo tutorial!

 

Compartilhe com seus amigos

Compartilhar no facebook
Facebook
Compartilhar no twitter
Twitter
Compartilhar no linkedin
LinkedIn
Compartilhar no telegram
Telegram
Compartilhar no whatsapp
WhatsApp
Classifique:
5/5

Gostou do artigo? Deixe seu comentário abaixo

congresso Tudo sobre IoT

Internet das Coisas

O IoT tem como objetivo permitir uma melhor relação entre o mundo físico (as coisas), o mundo biológico (nós) e o mundo digital (a computação).

Inscreva-se em nossa newsletter