Assistente virtual do Raspberry PI, desenvolvido em Python.
Scratch: Ambiente de programação visual para crianças e iniciantes.
Sonic Pi: Ambiente de programação para criação de músicas em tempo real.
Minecraft Pi: Versão do Minecraft desenvolvida para o Raspberry PI.
Kodi: Media Center para reprodução de mídias em HD.
OctoPrint: Impressão 3D com interface web.
MotionEyeOS: Sistema operacional para câmeras de vigilância.
Pi-hole: Filtragem de anúncios na rede.
Ret
2. Raspberry PI
• O Raspberry PI desde o seu lançamento passou por algumas
mudanças:
• Modelo A/ A+
Este Modelo possui um Chipset
Broadcom BCM2835 , com 256MB
LP DDR2 RAM, Saida HDMI, Saida
USB e entrada para cartão SD
(Micro SD na versão A+)
Uma característica interessante é o
chip de memória RAM soldado
diretamente acima do Chipset.
3. Raspberry PI
• Modelos B, B+ e B2:
Modelo B (BCM 2835)
Frequência do Processador:700MHZ
Armazenamento por cartão SD
Memoria RAM LP DDR2 512MB
Conexão de 26 pinos para periféricos
Saída HDMI e RCA CRT e áudio stereo P2
2 Portas USB
Uma Porta EJ45 10/100 Mbps
Entrada de Câmera VGA (Flat Cable)
Saída para LCD (Flat Cable)
Fonte necessária: 5V 0,7A 3,5W MicroUSB
Modelo B+ (BCM 2835)
Frequência do Processador:700MHZ
Armazenamento por cartão MicroSD
Memoria RAM LP DDR2 512MB
Conexão de 40 pinos para periféricos
Saída HDMI, áudio e vídeo P2 ( 3 polos)
4 Portas USB
Uma Porta EJ45 10/100 Mbps
Entrada de Câmera VGA (Flat Cable)
Saída para LCD (Flat Cable)
Fonte necessária: 5V 1,5A 7,5W MicroUSB
Modelo B 2 (BCM 2836)
Frequência do Processador: 4x 900MHZ
Armazenamento por cartão MicroSD
Memoria RAM LP DDR2 1GB
Conexão de 40 pinos para periféricos
Saída HDMI, áudio e vídeo P2 ( 3 polos)
4 Portas USB
Uma Porta EJ45 10/100 Mbps
Entrada de Câmera VGA (Flat Cable)
Saída para LCD (Flat Cable)
Fonte necessária: 5V 2,0A 10W MicroUSB
4. Raspberry PI
• Modelo B 3:
Modelo B 3 (BCM 2837)
Frequência do Processador: 4x 1200MHZ
Suporte a 64 Bits
Armazenamento por cartão MicroSD
Memoria RAM LP DDR2 1GB
Conexão de 40 pinos para periféricos
Saída HDMI, áudio e vídeo P2 ( 3 polos)
4 Portas USB
Uma Porta EJ45 10/100 Mbps
Entrada de Câmera VGA (Flat Cable)
Saída para LCD (Flat Cable)
Wi-Fi Broadcom 150 mbps b/g/n
Bluetooth Broadcom 4.1, Low Energy
Ambos do chip Broadcom BCM43438
Fonte necessária: 5V 2,5A 12,5W MicroUSB
7. Instalando o Raspbian no
Raspberry Pi 2
Programas necessários:
• Imagem do Raspbian (Ultima versão):
(http://downloads.raspberrypi.org/raspbian_latest)
• Sd Formatter 5.0:
(https://www.sdcard.org/downloads/)
• Win32 imager:
(http://sourceforge.net/projects/win32diskimager/)
• 7zip ou programa para descompactar arquivos:
(http://www.7-zip.org/)
• PuTTY:
(http://www.putty.org/)
8. Preparando o cartão SD
• Para instalar o Raspbian, é necessário ter
certeza que o cartão não tem partições ou
arquivos, é utilizado o SD Card Formatter.
Após a formatação segue-se
para a copia dos arquivos no SD
9. Copiando os arquivos para o SD
• Com o cartão pronto extrai se a imagem do
Raspbian da seguinte maneira, usando no caso o 7-zip:
10. Copiando os arquivos para o SD
• Com o Win32imager, pega-se o arquivo extraido, colocando-o
no cartão da seguinte maneira:
11. Copiando os arquivos para o SD
A Copia dos arquivos demora alguns minutos:
Importante verificar se após o processo aparece
“Write Successful”, caso apresente algum erro, repita
o processo.
12. Colocando o cartão no Raspiberry Pi 2
e inicializando:
• O Raspberry pi 2 possui o seguinte layout:
13. Colocando o cartão no Raspiberry Pi 2
e inicializando:
• Coloca-se o cartão SD no slot que fica abaixo
da placa
• Conecta-se o adaptador HDMI – VGA na porta
HDMI do raspberry, conectando o cabo no
monitor
• Alimenta-se o Raspberry PI 2 de acordo com o
layout a seguir:
18. Instalando o Raspbian
• Acessando o raspi-config da tela de SSH:
Apos aberta a tela, o nome de usuário e senha padrão são:
User: pi
Password: raspberry
Após co entrar com o comando raspi-config:
20. Instalando o Raspbian
• 1 – Change User Password: Se nessessário, definir um “password”
• 7 – Advanced Options: Na primeira inicialização é necessario expandir a
partição interna para ocupar todo o cartão de memoria, esta opção encontra-se
neste menu.
• 1– Expand File System: Deve ser habilitado para o Raspbian utilizar toda a
extensão do cartão SD. O Seguinte aviso irá aparecer na tela, após a expansão é
necessário reinicializar o Raspberry Pi:
21. Instalando o Raspbian
• 2– Hostname: Deve se definido um nome para o Raspberry Pi. Este nome é como
o seu Raspberry Pi é encontrado na rede.
• 3 – Boot Options: Na primeira inicialização é necessario expandir a partição
interna para ocupar todo o cartão de memoria, esta opção encontra-se neste
menu.
– B1 – Desktop/CLI : Define se o boot será efetuado por linha de comando ou ambiente
gráfico.
– B2 – Wait for Network at Boot: Aguarda as interfaces de rede atribuirem um IP antes de
continuar o boot.
– B3 – Splash Screen: Habilita a tela de inicialização (Desabilitado a o sistema inicializa no
modo “Verbose”).
22. Instalando o Raspbian
• I1– Change Locale: Deve ser selecionado e definido o padrão
– [*] pt_BR.UTF-8 UTF-8
• I2 – Timezone: Deve ser selecionado “America” e em seguida “Sao Paulo”.
• I4 – Change Wi-Fi Country: Selecione a opção “BR Brazil”
24. Instalando o Raspbian
• P1 – Camera: Habilita a câmera se houver uma conectada na interface nativa do
Raspberry Pi.
• P2 – SSH: (Habilitado) Habilita comunicação SSH para acesso ao Raspberry PI.
• P3 - VNC :(Habilitado) Habilita o protocolo VNC para conexão remota.
• P4 – SPI: (Habilitado) Habilita o protocolo SPI na GPIO.
• P5 – I2C: (Habilitado) Habilita o protocolo I2C na GPIO.
• P6 – Serial: (Habilitado) Habilita o protocolo Serial padrão.
• P7 – 1-Wire: (Habilitado) Habilita o protocolo 1 Wire para alguns tipos de
sensores.
• P8 – Remote GPIO: (Habilitado) Habilita o acesso pela rede das portas GPIO
usando o daemon pigpio*.
* Mais informações e biblioteca: http://http://abyz.co.uk/rpi/pigpio/
25. Instalando o Raspbian
• 6 Overclock: (Desabilitado) ATENÇÃO!Opção arriscada, não recomendada.
Aumenta a frequência de trabalho do Raspberry Pi para aplicações específicas. Reduz a vida útil do
Rpi e necessita de refrigeração adequada .
• Advanced:
– A2 Ovescan (Desabilitado) Serve para compensar cortes em telas de monitor de tubo
adicionando bordas pretas.
– A3 Memory Split: (256MB) Quantidade de memoria selecionada para ser dedicada ao
vídeo. Ideal utilizar ¼ da memória disponível. EX: Placas de1GB -> 256MB dedicados para vídeo..
– A4 Audio: (Auto) Seleciona a saída de áudio.
– A5 Resolution: (Default) Seleciona a resolução de vídeo.
– A6 Gl Driver: (Desabilitado) Habilita aceleração 3D experimental, pode ser necessário
instalar algumas dependências de pacotes. Instável .
• FullKMS :Aceleração 3D completa
• FakeKMS ; Aceleração 3D emulada
• Legacy: 3D processado por Software
– A7 - Network Interface Names: (Habilitado) Habilita o auto-nomeamento das interfaces de
rede internas , no caso de houver mais de uma. Ex: (WLAN0, ETH0).
• * Update: Atualiza o utilitário Raspi-config.
26. Acessando o Raspbian
• VNC Viewer: Com o VNC Viewer instalado você pode acessar seu Rpi via VNC:
https://www.realvnc.com/en/connect/download/viewer/ .
• Opcional: Caso queira acessar diretamente o Rpi via windows você pode usar o
XRdp, Basta instalar pelo comando:
– $ sudo apt-get install xrdp.
– No windows , apos isso, acessar o Remote Desktop Connection
28. Sistemas Operacionais
• Raspbian: na verdade é uma distribuição baseada em uma já muito
conhecida, o Debian. Tem como característica, ser um sistema bem
leve com apenas o necessário para o funcionamento do Raspberry
PI
• Existem outras distribuições do Linux que podem ser instalados no
Raspiberry, como o Ubuntu, OSMC, OpenELEC e PiNET.
• Existem sistemas que não são Linux que podem ser colocados no
Raspberry PI, Como o Windows 10 IoT, e o Risc OS
• Todos estes sistemas podem ser instalados utilizando o cartão SD
Noobs, que pode ser criado, fazendo o download no site:
https://www.raspberrypi.org/downloads/noobs/ e prosseguindo
com a instalação de acordo com o passo a passo.
29. Sistemas Operacionais
Uma boa alternativa para instalar OS no Raspberry Pi, que não estão
listados como oficiais, é através do Berryboot, que pode ser encontrado em:
www.berryterminal.com/doku.php/berryboot
30. Linux: Comandos básicos
Comandos:
– $ ls: Lista os arquivos no diretorio presente
– $ cd: Muda para um diretório
– $ mkdir: Cria diretório
– $ rmdir: Exclui diretório
– $ clear: Limpa a tela do terminal
– $ nano: Editor de texto simples
– $ dmesg: Lista todas as mensagens desde o boot no terminal
– $ lsusb: Lista os periféricos presentes no barramento USB
– $ sudo: Executa comando com privilegio de Super Usuário
• Uso: sudo startx (Inicia o ambiente gráfico do Raspbian como Super Usuário)
– $ ping: envia um comando ping para um endereço de IP
• Uso: $ ping <endereço de ip>
31. Introdução ao Raspbian
• Gerenciador de pacotes do raspbian:
– apt-get (Mais utilizado).
– Synaptic (Interface Gráfica para o apt-get).
– aptitude
• Usando o apt-get para atualizar o Raspbian:
– $ sudo apt-get update (atualiza lista de pacotes disponíveis).
– $ sudo apt-get upgrade (atualiza com base na lista de pacotes atuais no sistema).
– $ sudo apt-get dist-upgrade (atualiza a distribuição do Raspbian para a mais
atual).
32. Introdução ao Raspbian
• Programas úteis
Emacs: (Editor de texto similar ao notepad++, muito utilizado para editar arquivos de
configuração dentro do linux).
Comando de instalação no console: sudo apt-get install emacs
LibreOffice: (Pacote de programas similar ao office do Windows)
Comando de instalação no console: sudo apt-get install libreoffice
33. Introdução ao Raspbian
• Ambientes de desenvolvimento (IDEs)
Geany: Ambiente de programação em C/C++ similar ao DevC++ do windows.
Comando de instalação no console: sudo apt-get install geany
Code::Blocks: Ambiente de desenvolvimento similar ao Geany, porem suporta uma
varias plataformas.
Comando de instalação no console: sudo apt-get install libreoffice
34. Wiring PI e Code::Blocks
Programando em C No Raspberry PI
A instalação do Wiring PI para utilizar a programação em C com o Codeblocks
é simples, basta seguir o Passo-a-passo abaixo para dar download e compilar
ele através do lxterminal:
- $ sudo apt-get install git-core
- $ sudo git clone git://git.drogon.net/wiringPi
- $ cd wiringPi
- $ sudo git pull origin
- $ sudo ./build
Para mais coisas sobre o Wiring PI, visite :
http://wiringpi.com/
35. Wiring PI e Code::Blocks
Configurando o CodeBlocks
Para o Codeblocks funcionar com o GPIO do Rpi, é necessário adicionar a
biblioteca wiringPi para conseguir ter acesso às portas:
- $ sudo codeblocks
Quando o Codeblocks abrir, crie um novo projeto:
Após criar um novo projeto, clique em next, selecione C como linguagem do
novo projeto, de um nome e um local para seu projeto e clique em finish.
36. Wiring PI e Code::Blocks
Configurando o CodeBlocks
Agora , nesta tela, clique em settings e em compiler:
Na seguinte tela, é necessário adicionar a biblioteca conforme a figua a
seguir:
37. Wiring PI e Code::Blocks
Configurando o CodeBlocks
38. Wiring PI e Code::Blocks
Configurando o CodeBlocks
Após clicar OK, Vamos inserir um programa para verificar o funcionamento da
porta com um LED. No Caso utilizaremos a porta 29 do Wiring PI que
corresponde ao pino 40, neste caso o pino GND mais próximo é o 39.
39. Wiring PI e Code::Blocks
Configurando o CodeBlocks
Vamos adicionar um programa para rodar com o CodeBlocks e a porta 40,
para fazer piscar um led:
40. Wiring PI e Code::Blocks
Diagrama de conexão
• Pisca Led:
– Conectar o led de acordo ao diagrama:
41. Instalando o Real Time Clock
Diagrama de conexão
Quando é necessário que o Raspberry PI tenha data e hora atualizados, e não
se tem acesso a internet, uma das saídas é a utilização de um RTC:
– Conectar o RTC de acordo ao diagrama:
42. Instalando o Real Time Clock
Primeiramente é necessário instalar os módulos necessários para o
funcionamento do RTC:
– $ sudo apt-get install python-smbus
– $ sudo apt-get install python3-smbus
– $ sudo apt-get install python-dev
– $ sudo apt-get install python3-dev
– $ sudo apt-get install i2c-tools
Apos efetuada a instalação dos modulos, é necessário verificar o funcionamento
do modulo RTC conectado na porta I2C do Raspberry pi atravez do comando:
– $ sudo i2cdetect –y 1
43. Introdução ao Raspbian
Idle: Ambiente de programação em Python mais utilizado no Raspberry PI,
já esta incluso na instalação básica.
No IDE Idle temos duas janelas:
- O Python Shell que interpreta diretamente os comandos digitados na
tela.
- O Idle, onde você pode escrever o programa, ou editar um arquivo do
tipo .py, para rodar posteriormente no Python Shell
45. Python no Raspberry PI
• Idle
– Execute o Python 3.
– Clique em file e em seguida New File.
– Na tela que surgir digite o seguinte código.
• print (“Hello World”)
– Clique em “Run” e em seguida “Run Module” (ou tecle F5)
– Tente digitar este mesmo comando na tela “Shell”
– Agora tente da seguinte maneira o código:
• a = (“Hello World”)
• print (a)
47. Python no Raspberry PI
• GPIO:
– Funcionalidades de cada porta GPIO do Raspberry pi:
• Obs. Este diagrama é apenas para o Raspberry Pi B+, B2 e B3
48. Pisca Led com Python
• Pisca Led:
– Conectar o led de acordo ao diagrama:
49. Pisca Led com Python
• Importante:
– Para Led Vermelho, o valor do resistor é 220 ohms.
– Dependendo do LED, não é necessário resistor, pois a saída da porta
do Rpi, é 3,3V. Ex: Led verde e azul.
• Iniciando o código:
– Iniciar o Idle
– Abrir o arquivo pisca led.py (Pasta programas)
• OBS: Para executar qualquer programa que utiliza os pinos, é necessário executar o
Idle como super usuário: $ sudo idle
• Código :
51. Pisca Led com Python
• Altere a variável tempo para outros valores:
– tempo = 0.001
– tempo = 0.01
– tempo = 0.1
– Tempo = 1
• Verifique o que acontece com o led. Note que quanto tempo = 1, o led fica por 1s
aceso e 1s apagado
• Crie uma segunda variável “tempo2”, e substitua nas funções
time.sleep e verifique o que acontece:
– Exemplo:
acendeled(33)
time.sleep(tempo)
apagaled(33)
time.sleep(tempo2)
52. Python com sensor DHT11
• O Sensor DHT11 é um sensor de temperatura e umidade com
as seguintes características:
– Tensão de trabalho de 3.3 a 5V
– Leitura de umidade de 20% a 80% com 5% de precisão
– Leitura de temperatura de 0ºC a 50ºC com precisão de +/-2ºC
– Tempo = 1
• Diagrama de conexão:
53. Python com sensor DHT11
• Instalando a Biblioteca do DHT11:
– Primeiro é necessário dar download dos arquivos do repositório Gitub
do sensor DHT11:
• $ sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git
– Depois, entre no diretório:
• $ cd Adafruit_Python_DHT
– Verifique se seu Raspbian esta atualizado:
• $ sudo apt-get update
– Após atualize o Python:
• $ sudo apt-get install build-essential python-dev
– Agora instale a Biblioteca:
• $ sudo python setup.py install
55. Python com sensor DHT11
• Quando executado o código, na tela do console do Python
deve aparecer:
56. Introdução ao LAMP
• O LAMP é uma importante plataforma que inclui um servidor de
paginas da web, Apache, com o Servidor de banco de dados
MariaDB, com a linguagem PHP.
– Apache versão 2.4.25
– MariaDB versão 10.1.23
– PHP versão 7.0
• Obs: É importante saber as versões, pois há pequenas mudanças de sintaxe de versão
para versão em alguns casos.
57. Gerenciador de Banco
de dados phpMyAdmin
• O phpMyAdmin é uma ferramenta simples e poderosa onde você
pode:
– Criar, Editar e excluir tabelas e banco de dados do MariaDB.
– Criar usuários para administrar tabelas.
– Diagnosticar as funções no banco de dados.
– Efetuar Backups de tabelas e banco de dados.
– Exportar banco de dados no formato csv (compatível com o Excel do
Windows).
58. Ambiente LAMP
• Preparando o Ambiente LAMP:
– Instalando o Apache 2:
• $ sudo apt-get install apache2
• $ sudo service apache2 restart
– Após a instalação, fazer a tentativa de carga da pagina em http://localhost, deve aparecer algo
conforme a imagem abaixo.
– Instalando o MariaDB com o php7:
• $ sudo apt-get install mariadb-server mariadb-client
• $ sudo apt-get install php php7.0-mysql libapache2-mod-php7.0
– Instalando o phpMyAdmin:
• $ sudo apt-get install phpmyadmin
• $ sudo mysql_secure_installation
59. Ambiente LAMP
• Criando Usuário SQL para acessar banco de
dados:
– No terminal digite mysql:
• > CREATE USER 'admin'@'localhost' IDENTIFIED BY 'raspberry';
• > GRANT ALL PRIVILEGES ON * . * TO 'admin'@'localhost' WITH
GRANT OPTION;
• > FLUSH PRIVILEGES;
– Após a instalação, fazer a tentativa de carga da pagina em
http://localhost/phpmyadmin/.
• Importante: Para todas as senhas que forem requisitadas, digite a
senha “raspberry”. Isto evitará erros por falha de comunicação
entre os programas e as tabelas MySQL.
60. phpMyAdmin
• Criando o primeiro banco de dados:
– Digite no navegador: http://localhost/phpmyadmin
– Nome de usuário “admin” senha “raspberry”
62. phpMyAdmin
• Clique em “Privileges” e em seguida “Add a new User” e crie o
usuario dht11 (tudo minúsculo):
• Importante: Utilize o Password “raspberry”, e desça a barra de
rolagem, não clique em “Create User” ainda!
63. phpMyAdmin
• Clique em “Create database with same...” e clique em Check All, logo em
seguida clique em “Create User”.:
64. phpMyAdmin
• O Banco de dados dht11 deve ficar disponível:
– Clique no banco de dados (db) dht11 e loco em seguida adicione uma tabela:
– Abaixo terá um pequeno menu para adicionar colunas, adicione duas e clique em go:
65. phpMyAdmin
• Criando a tabela:
– Defina as 4 colunas com os nomes “id”, “temp”,”umid”,”data”. Tipo das variáveis são
int[11], int[255], int[255], TIMESTAMP.
– Em Default, defina apenas CURRENT_TIMESTAMP:
66. phpMyAdmin
• Criando a tabela:
– Apenas na linha do “id”, selecione em “Index”,”PRIMARY” e selecione o “auto
incremente”, “A_I”
• Defina o nome da tabela de “parametros” e logo em seguida clique em
save:
68. Código em Python
• Primeiro é necessário instalar a biblioteca para Python para utilizar o
MySQL:
– $ sudo apt-get install python-mysqldb
• Verificando se há comunicação entre a tabela e o python:
69. Código em Python
• Rodando o programa para popular a tabela parâmetros do MySQL
• (Arquivo DHT11_DataLogger_LED_py2.py)
70. Código em Python
• Rodando o programa para popular a tabela parâmetros do MySQL
71. Verificação da tabela
• Se o programa executar sem erros, a tabela começará a ser atualizada da
seguinte maneira:
72. Criando a Visualização
da tabela em php
• O arquivo index.php, deve ser colocado em /var/www, este arquivo é um
simples indexador de tabela, que serve para visualizar uma tabela do
MySQL, neste arquivo, logo nas informações mysqli tem as informações de
conexão da tabela:
• Importante: Dentro da pasta existira um arquivo index.html que deve ser
renomeado ou deletado!
75. Programas úteis para o
Raspiberry PI
• Utilitário similar ao Fdisk, muito útil para redimensionar o cartão SD ou
particionar.
– $ sudo apt-get gparted
• Media player muito bom para Linux similar ao Winamp
– $ sudo apt-get audacious
• Editor de áudio poderoso para Linux
– $ sudo apt-get audacity