SlideShare uma empresa Scribd logo
1 de 7
Impressões após 2 dias utilizando o Ubuntu IoT
com Raspberry Pi 3 B+.
RTC DS3231
Relógio digital alimentado
por bateria
DHT22
Detector de Umidade e da
temperatura
LDR
Detector do nível de
luminosidade
Este estudo foi preparado analisando o sistema operacional
Ubuntu IoT (18.04.2 LTS - Bionic Beaver) com o módulo RTC
DS3231 e os sensores DHT22 e o LDR.
Componentes:
 Microprocessador Raspberry Pi 3 B+ 64bits
 Módulo clock RTC DS3231
 Microcontrolador Arduino Uno R3 8bits
 Monitor LG SmartTV 24” com saída HDMI
 Teclado e Mouse genéricos
 MicroSD Sandisk 16GB Ultra HC I Classe 10
 Linux Ubuntu IoT versão 18.04.2 de 64bits
Informações gerais:
A fundação Raspberry Pi assim define a placa 3 B+ : “Um
computador pequeno e acessível que você pode usar para
aprender programação”.
Ubuntu core, o Ubuntu para IoT. A Canonical Ltd. assim
define o Ubuntu Core1: “é o mais novo sistema operacional
Ubuntu (OS). Ele atinge principalmente os requisitos de
dispositivos IoT sem cabeça e seus distribuidores. É uma
1 https://docs.ubuntu.com/core/en/
versão minimalista do Ubuntu que é leve, altamente segura e
transacionalmente atualizada”.
O termo “sem cabeça” dá significado a um sistema que opera
sem monitor, interface gráfica para o usuário (GUI),
teclado e mouse. São os servidores, as máquinas
industriais, os eletrodomésticos, os automóveis, os
brinquedos, as máquinas de venda automática, etc.
Sábado(8/6/2019):
Fiz a formatação do cartão SD e a instalação do Linux
Ubuntu IoT.
Iniciei o Raspberry Pi com o Ubuntu IoT. A primeira
percepção foi que o sistema operacional opera dentro de um
ambiente caracter mode, ou seja, não tem um ambiente
gráfico similar ao encontrado em sistemas operacionais,
como: Linux Mint, Ubuntu Desktop, Linux Fedora, Windows,
MAC, etc. Caso você deseje, mas pode sair da proposta
inicial do sistema operacional, a instalação de um ambiente
gráfico é possível como o comando: sudo apt install
xubuntu-desktop, consequentemente, será necessário 2.3GB de
espaço adicional.
Versão instalada do Ubuntu
core
Espaço ocupadoemmemória Espaço ocupadoemcartão SD
Caracter mode 350MB 4.0GB
Gráfica 482MB 6.3GB
A instalação em caracter mode é interessante em diversos
aspectos, como por exemplo: a) a instalação torna-se menor
e consome menos quantidade de espaço em disco/ssd/m2, b) o
processador tem melhor desempenho porque executa apenas o
código que realmente interessa para a solução, c) a memória
trabalha com mais espaço disponível, d) maior segurança
porque elimina a possibilidade da exploração de brechas de
segurança conhecidas.
A conexão com a internet não estava ativa. Com um
computador auxiliar, fiz algumas pesquisas na internet e
configurei a conexão do Wi-Fi network por meio de comandos
shell do Linux, exibidos abaixo:
Verifique o nome da interface de rede com o comando abaixo:
sudo iw dev
Se o pacote iw não estiver instalado: sudo ip link show
Coloque a interface de rede em modo UP:
sudo ip link set <nome interface rede> up
Verifique se a interface de rede está UP:
sudo iw <nome interface rede> scan
Configure o access point com sua respectiva senha:
sudo wpa_passphrase <access point> <senha> >>
/etc/wpa_supplicant/wpa_supplicant.conf
sudo su -
Conexão:
sudo wpa_supplicant -B -D wext -i <nome interface rede> -c
/etc/wpa_supplicant/wpa_supplicant.conf
Associar um endereço IP:
sudo dhclient <nome interface rede>
Execute o comando abaixo para verificar se conexão com a
internet foi estabelecida:
ping 8.8.8.8
É preciso dizer o quão vibrante e generosa é a comunidade
open-source, com algumas páginas lidas eu encontrei o que
precisava. Eu espero retribuir, com o estudo aqui
apresentado, o muito que recebo dessa comunidade
maravilhosa.
Com a internet configurada e ativa, atualizei apenas os
pacotes do Linux e do Python que estavam desatualizados.
Ao tentar instalar as bibliotecas libffi-dev e libssl-dev
com o comando apt, o sistema informou que esses pacotes não
existiam. Após várias pesquisas descobri que os pacotes são
instalados com o comando apt-get e desta vez funcionou. Ou
seja, os comandos apt e apt-get ainda devem ser usados. O
comando apt não substitui o comando apt-get, como eu
julgava, pelo menos até esta data.
Diferentemente do Linux Raspbian que vem configurado
inicialmente com um swap de 100MB, O Ubuntu IoT não tem
essa configuração. Incluí um swap de 1GB, conforme exibido
abaixo em negrito. Sem essa solução o sistema trava e
congela muito facilmente quando novos programas são abertos
ao mesmo tempo.
$ swapon -s
Filename Type Size Used Priority
/swapfile file 1228796 641280 -2
O PGP (proprietário) e o GPG (GnuPG) são programas de
criptografia com mecanismos de criptografia de alta
segurança. Apesar de o PGP estar disponível sem uma taxa,
ele não é um software realmente livre. O GPG (GnuPG), por
outro lado, é realmente um software livre e possui recursos
adicionais, mas com uma sintaxe de linha de comando
diferente do PGP.
Ao executar a instalação do PGP foi exibido a seguinte
mensagem: “Note, selecting 'pgpgpg' instead of 'pgp'”,
porque PGP é um software proprietário e dessa forma as
distribuições Linux optam por instalar a versão open-source
que neste caso é o GPG (GnuPG). PGPGPG é um “embrulho” que
permite chamadas para o GPG (GnuPG) (Gnu Privacy Guard)
usando as opções de linha de comando (Pretty Good Privacy).
O objetivo do pgpgpg é conectar uma sintaxe de linha de
comando na frente do GPG (GnuPG) igual ao PGP 2.6. O
comando gpg --version exibe a versão com informações
extras.
Ao final do dia fiz a instalação do ambiente gráfico de
interface com o usuário xubuntu-desktop, para conhecimento.
Domingo(9/6/2019):
Durante o processo inicial de inicialização do sistema
operacional, um dos processos de conexão com a rede
demorava demasiadamente. Após pesquisa encontrei os
comandos abaixo, executei os comandos e resolveram o
problema:
sudo systemctl disable systemd-networkd-wait-online.service
sudo systemctl mask systemd-networkd-wait-online.service
Atenção, o processo só é indicado se você instalou o
ambiente gráfico de interface com o usuário (xubuntu ou
outros), porque após o logon, em modo gráfico, é solicitado
manualmente a senha da rede Wi-Fi. (Atualização deste
documento em 30/06/2019: Ao atualizar o sistema
operacional, o wi-fi passa a se conectar automaticamente no
modo gráfico).
Ao abrir um podcast para escutar e esclarecer os comandos
acima, percebi que a instalação do driver de som não estava
funcionando. Entendi a característica principal do sistema
operacional, conforme explicado anteriormente, fato
totalmente justificado.
Fiz a instalação do IDE Python Idle3, trabalhando em
conjunto com o REPL, fiz melhorias em uma determinada
função de um programa Python IoT que controla um motor
(ventoinha), conforme parâmetros da temperatura interna do
processador, da temperatura externa do ambiente e o nível
de luminosidade.
def measure_CPUtemperature():
try:
'''
formato para o Ubuntu IoT
'''
result = subprocess.run(['cat',
'/sys/class/thermal/thermal_zone0/temp'],
stdout=subprocess.PIPE)
m = (int(result.stdout.decode('utf-8'))/1000)
return float(m)
except Exception as e:
'''
formato para o Raspbian
'''
try:
m = subprocess.run(['vcgencmd',
'measure_temp'],
stdout=subprocess.PIPE)
m = re.match("temp=(d+.?d*)'C", m)
return float(m.group(1))
except Exception as e:
'''
Assume o valor 34. Não iremos testar
centenas de Linux disponíveis (apenas os
aderentes)
'''
m = 34
return float(m)
Os sensores de temperatura e umidade (DHT22) controlam o
acionamento do motor. O sensor de luminosidade (LDR)
controla o tempo (com ajustes variáveis) em que o motor
ficará ligado ou desligado.
DHT22
LDR
A placa Raspberry Pi 3 B+ necessita estar conectada na
internet para manter a data do sistema ativa. Uma forma de
contorno, e não depender de uma conexão com a internet, é a
instalação do módulo de relógio com bateria do tipo pilha
(RTC DS3231). A instalação do módulo e a configuração do
Linux foi concluído com sucesso no sistema operacional
Raspbian. No sistema operacional Ubuntu IoT exigiu ajustes
extras.
clock RTC DS3231
Impressões gerais:
O Ubuntu IoT exige a instalação e ajuste de diversos
componentes de software para a utilização da pinagem do
Raspberry Pi. O Linux Raspbian, por outro lado, é mais
amigavel e maximamente ajustado a placa Raspberry Pi, aos
módulos e aos sensores.
Ubuntu IoT, trata-se de um sistema operacional
incrivel com baixa pegada ecológica. Muito interessante
para sistemas sem cabeça.
Gostou? Dê um like! Fique a vontade em compartilhar e usar no seu
estudo de caso. Apenas informe a fonte. Obrigado e sucesso!
Ahhh eu tenho uma lista de desejo na Amazon:
I have a wishlist at Amazon
https://www.amazon.com.br/hz/wishlist/ls/2Y2J3ADYO50TH
Could you do me a kindness? :-)
Marcos Aurelio Barranco
SP/SP
8/Junho/2019
Atualizado em: 10/Julho/2019

Mais conteúdo relacionado

Mais procurados

Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores LinuxJoão Sá
 
Guia de instalação ms windows e para o sistema
Guia de instalação ms windows e para  o  sistemaGuia de instalação ms windows e para  o  sistema
Guia de instalação ms windows e para o sistemaLucikelly Oliveira
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoAdriano Teixeira de Souza
 
Introdução ao Linux - aula 02
Introdução ao Linux - aula 02Introdução ao Linux - aula 02
Introdução ao Linux - aula 02Renan Aryel
 
Impressões após 5 dias utilizando o Raspberry Pi 3 B+ como um computador resi...
Impressões após 5 dias utilizando o Raspberry Pi 3 B+ como um computador resi...Impressões após 5 dias utilizando o Raspberry Pi 3 B+ como um computador resi...
Impressões após 5 dias utilizando o Raspberry Pi 3 B+ como um computador resi...Marcos Aurelio Barranco
 
Processadores tipos e modelos amd intel e cpuz
Processadores tipos e modelos amd intel e cpuzProcessadores tipos e modelos amd intel e cpuz
Processadores tipos e modelos amd intel e cpuzRogério Cardoso
 
Introdução ao Linux - aula 01
Introdução ao Linux - aula 01Introdução ao Linux - aula 01
Introdução ao Linux - aula 01Renan Aryel
 
Processador Intel Core i7
Processador Intel Core i7Processador Intel Core i7
Processador Intel Core i7José Lamaison
 
Processadores de servidores apresentação
Processadores de servidores apresentaçãoProcessadores de servidores apresentação
Processadores de servidores apresentaçãoMiguel Ferreira
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de ProgramasÁtila Camurça
 

Mais procurados (20)

Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores Linux
 
Guia de instalação ms windows e para o sistema
Guia de instalação ms windows e para  o  sistemaGuia de instalação ms windows e para  o  sistema
Guia de instalação ms windows e para o sistema
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
Introdução ao Linux - aula 02
Introdução ao Linux - aula 02Introdução ao Linux - aula 02
Introdução ao Linux - aula 02
 
Impressões após 5 dias utilizando o Raspberry Pi 3 B+ como um computador resi...
Impressões após 5 dias utilizando o Raspberry Pi 3 B+ como um computador resi...Impressões após 5 dias utilizando o Raspberry Pi 3 B+ como um computador resi...
Impressões após 5 dias utilizando o Raspberry Pi 3 B+ como um computador resi...
 
Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM
Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COMTutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM
Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM
 
Processadores tipos e modelos amd intel e cpuz
Processadores tipos e modelos amd intel e cpuzProcessadores tipos e modelos amd intel e cpuz
Processadores tipos e modelos amd intel e cpuz
 
Introdução ao Linux - aula 01
Introdução ao Linux - aula 01Introdução ao Linux - aula 01
Introdução ao Linux - aula 01
 
Lab so-abertos-unidade2
Lab so-abertos-unidade2Lab so-abertos-unidade2
Lab so-abertos-unidade2
 
Gentoo
GentooGentoo
Gentoo
 
Tutorial: Instalação de Ubuntu em uma Gumstix Overo
Tutorial: Instalação de Ubuntu em uma Gumstix OveroTutorial: Instalação de Ubuntu em uma Gumstix Overo
Tutorial: Instalação de Ubuntu em uma Gumstix Overo
 
Processador Intel Core i7
Processador Intel Core i7Processador Intel Core i7
Processador Intel Core i7
 
Tutorial beagleboard
Tutorial beagleboardTutorial beagleboard
Tutorial beagleboard
 
Processadores
ProcessadoresProcessadores
Processadores
 
Processador
ProcessadorProcessador
Processador
 
Processadores
ProcessadoresProcessadores
Processadores
 
Processadores
ProcessadoresProcessadores
Processadores
 
Processadores de servidores apresentação
Processadores de servidores apresentaçãoProcessadores de servidores apresentação
Processadores de servidores apresentação
 
Aula 15 processadores
Aula 15 processadoresAula 15 processadores
Aula 15 processadores
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de Programas
 

Semelhante a Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi

Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceRicardo Rufino
 
Segurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFSegurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFLuiz Arthur
 
Instalando um servidor virtual Linux on z (Red hat ou SUSE) no emulador z pdt
Instalando um servidor virtual Linux on z (Red hat ou SUSE) no emulador z pdtInstalando um servidor virtual Linux on z (Red hat ou SUSE) no emulador z pdt
Instalando um servidor virtual Linux on z (Red hat ou SUSE) no emulador z pdtAnderson Bassani
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-trackMarcio Pereira
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-trackMarcio Pereira
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Tchelinux
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linuxelliando dias
 
Como clonar h ds e fazer backup sem precisar do ghost
Como clonar h ds e fazer backup sem precisar do ghostComo clonar h ds e fazer backup sem precisar do ghost
Como clonar h ds e fazer backup sem precisar do ghostVanderlei Nascimento
 
1os passoscisco
1os passoscisco1os passoscisco
1os passoscisconogueira
 
Kubuntu filipe simao n11 12 l
Kubuntu filipe simao n11 12 lKubuntu filipe simao n11 12 l
Kubuntu filipe simao n11 12 lginho17
 
Comparação de sistemas operativos cliente
Comparação de sistemas operativos clienteComparação de sistemas operativos cliente
Comparação de sistemas operativos clienteAndré Dias
 
Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"
Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"
Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"Ponce Edition
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
Tutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxTutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxLuiz Francisco Bozo
 

Semelhante a Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi (20)

Mini-curso CUDA
Mini-curso CUDAMini-curso CUDA
Mini-curso CUDA
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
 
Segurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFSegurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PF
 
Instalando um servidor virtual Linux on z (Red hat ou SUSE) no emulador z pdt
Instalando um servidor virtual Linux on z (Red hat ou SUSE) no emulador z pdtInstalando um servidor virtual Linux on z (Red hat ou SUSE) no emulador z pdt
Instalando um servidor virtual Linux on z (Red hat ou SUSE) no emulador z pdt
 
Minicurso GNU/Linux
Minicurso GNU/LinuxMinicurso GNU/Linux
Minicurso GNU/Linux
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-track
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-track
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
 
Como clonar h ds e fazer backup sem precisar do ghost
Como clonar h ds e fazer backup sem precisar do ghostComo clonar h ds e fazer backup sem precisar do ghost
Como clonar h ds e fazer backup sem precisar do ghost
 
1os passoscisco
1os passoscisco1os passoscisco
1os passoscisco
 
Dhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamentoDhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamento
 
Kubuntu filipe simao n11 12 l
Kubuntu filipe simao n11 12 lKubuntu filipe simao n11 12 l
Kubuntu filipe simao n11 12 l
 
Comparação de sistemas operativos cliente
Comparação de sistemas operativos clienteComparação de sistemas operativos cliente
Comparação de sistemas operativos cliente
 
Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"
Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"
Planejamento de uma Rede para uma Lan House + Custo Benefício..."AMD vs INTEL"
 
Cygwin
CygwinCygwin
Cygwin
 
Mrtg
MrtgMrtg
Mrtg
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
Linux lpi 101
Linux lpi 101Linux lpi 101
Linux lpi 101
 
Tutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxTutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando Linux
 

Mais de Marcos Aurelio Barranco

Mais de Marcos Aurelio Barranco (11)

Criatividade na solução de problemas
Criatividade na solução de problemasCriatividade na solução de problemas
Criatividade na solução de problemas
 
Python e Golang - Parte 2
Python e Golang - Parte 2Python e Golang - Parte 2
Python e Golang - Parte 2
 
Python e Golang - Parte 1
Python e Golang - Parte 1Python e Golang - Parte 1
Python e Golang - Parte 1
 
Group by and order by desc with python pandas
Group by and order by desc with python pandasGroup by and order by desc with python pandas
Group by and order by desc with python pandas
 
O hábito saudável de correr
O hábito saudável de correrO hábito saudável de correr
O hábito saudável de correr
 
Como instalar o IRPF no Linux
Como instalar o IRPF no LinuxComo instalar o IRPF no Linux
Como instalar o IRPF no Linux
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, CythonPython, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
 
Saindo da caixa para criar e inovar
Saindo da caixa para criar e inovarSaindo da caixa para criar e inovar
Saindo da caixa para criar e inovar
 
Coaching e a carruagem
Coaching e a carruagemCoaching e a carruagem
Coaching e a carruagem
 
Criatividade e inovacao
Criatividade e inovacaoCriatividade e inovacao
Criatividade e inovacao
 
Compile and install MongoDB v. 3.2.12 on Raspbian 32 bits with Raspberry PI 3 B+
Compile and install MongoDB v. 3.2.12 on Raspbian 32 bits with Raspberry PI 3 B+Compile and install MongoDB v. 3.2.12 on Raspbian 32 bits with Raspberry PI 3 B+
Compile and install MongoDB v. 3.2.12 on Raspbian 32 bits with Raspberry PI 3 B+
 

Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi

  • 1. Impressões após 2 dias utilizando o Ubuntu IoT com Raspberry Pi 3 B+. RTC DS3231 Relógio digital alimentado por bateria DHT22 Detector de Umidade e da temperatura LDR Detector do nível de luminosidade Este estudo foi preparado analisando o sistema operacional Ubuntu IoT (18.04.2 LTS - Bionic Beaver) com o módulo RTC DS3231 e os sensores DHT22 e o LDR. Componentes:  Microprocessador Raspberry Pi 3 B+ 64bits  Módulo clock RTC DS3231  Microcontrolador Arduino Uno R3 8bits  Monitor LG SmartTV 24” com saída HDMI  Teclado e Mouse genéricos  MicroSD Sandisk 16GB Ultra HC I Classe 10  Linux Ubuntu IoT versão 18.04.2 de 64bits Informações gerais: A fundação Raspberry Pi assim define a placa 3 B+ : “Um computador pequeno e acessível que você pode usar para aprender programação”. Ubuntu core, o Ubuntu para IoT. A Canonical Ltd. assim define o Ubuntu Core1: “é o mais novo sistema operacional Ubuntu (OS). Ele atinge principalmente os requisitos de dispositivos IoT sem cabeça e seus distribuidores. É uma 1 https://docs.ubuntu.com/core/en/
  • 2. versão minimalista do Ubuntu que é leve, altamente segura e transacionalmente atualizada”. O termo “sem cabeça” dá significado a um sistema que opera sem monitor, interface gráfica para o usuário (GUI), teclado e mouse. São os servidores, as máquinas industriais, os eletrodomésticos, os automóveis, os brinquedos, as máquinas de venda automática, etc. Sábado(8/6/2019): Fiz a formatação do cartão SD e a instalação do Linux Ubuntu IoT. Iniciei o Raspberry Pi com o Ubuntu IoT. A primeira percepção foi que o sistema operacional opera dentro de um ambiente caracter mode, ou seja, não tem um ambiente gráfico similar ao encontrado em sistemas operacionais, como: Linux Mint, Ubuntu Desktop, Linux Fedora, Windows, MAC, etc. Caso você deseje, mas pode sair da proposta inicial do sistema operacional, a instalação de um ambiente gráfico é possível como o comando: sudo apt install xubuntu-desktop, consequentemente, será necessário 2.3GB de espaço adicional. Versão instalada do Ubuntu core Espaço ocupadoemmemória Espaço ocupadoemcartão SD Caracter mode 350MB 4.0GB Gráfica 482MB 6.3GB A instalação em caracter mode é interessante em diversos aspectos, como por exemplo: a) a instalação torna-se menor e consome menos quantidade de espaço em disco/ssd/m2, b) o processador tem melhor desempenho porque executa apenas o código que realmente interessa para a solução, c) a memória trabalha com mais espaço disponível, d) maior segurança porque elimina a possibilidade da exploração de brechas de segurança conhecidas. A conexão com a internet não estava ativa. Com um computador auxiliar, fiz algumas pesquisas na internet e configurei a conexão do Wi-Fi network por meio de comandos shell do Linux, exibidos abaixo: Verifique o nome da interface de rede com o comando abaixo: sudo iw dev
  • 3. Se o pacote iw não estiver instalado: sudo ip link show Coloque a interface de rede em modo UP: sudo ip link set <nome interface rede> up Verifique se a interface de rede está UP: sudo iw <nome interface rede> scan Configure o access point com sua respectiva senha: sudo wpa_passphrase <access point> <senha> >> /etc/wpa_supplicant/wpa_supplicant.conf sudo su - Conexão: sudo wpa_supplicant -B -D wext -i <nome interface rede> -c /etc/wpa_supplicant/wpa_supplicant.conf Associar um endereço IP: sudo dhclient <nome interface rede> Execute o comando abaixo para verificar se conexão com a internet foi estabelecida: ping 8.8.8.8 É preciso dizer o quão vibrante e generosa é a comunidade open-source, com algumas páginas lidas eu encontrei o que precisava. Eu espero retribuir, com o estudo aqui apresentado, o muito que recebo dessa comunidade maravilhosa. Com a internet configurada e ativa, atualizei apenas os pacotes do Linux e do Python que estavam desatualizados. Ao tentar instalar as bibliotecas libffi-dev e libssl-dev com o comando apt, o sistema informou que esses pacotes não existiam. Após várias pesquisas descobri que os pacotes são instalados com o comando apt-get e desta vez funcionou. Ou seja, os comandos apt e apt-get ainda devem ser usados. O comando apt não substitui o comando apt-get, como eu julgava, pelo menos até esta data. Diferentemente do Linux Raspbian que vem configurado inicialmente com um swap de 100MB, O Ubuntu IoT não tem essa configuração. Incluí um swap de 1GB, conforme exibido abaixo em negrito. Sem essa solução o sistema trava e congela muito facilmente quando novos programas são abertos ao mesmo tempo. $ swapon -s Filename Type Size Used Priority /swapfile file 1228796 641280 -2
  • 4. O PGP (proprietário) e o GPG (GnuPG) são programas de criptografia com mecanismos de criptografia de alta segurança. Apesar de o PGP estar disponível sem uma taxa, ele não é um software realmente livre. O GPG (GnuPG), por outro lado, é realmente um software livre e possui recursos adicionais, mas com uma sintaxe de linha de comando diferente do PGP. Ao executar a instalação do PGP foi exibido a seguinte mensagem: “Note, selecting 'pgpgpg' instead of 'pgp'”, porque PGP é um software proprietário e dessa forma as distribuições Linux optam por instalar a versão open-source que neste caso é o GPG (GnuPG). PGPGPG é um “embrulho” que permite chamadas para o GPG (GnuPG) (Gnu Privacy Guard) usando as opções de linha de comando (Pretty Good Privacy). O objetivo do pgpgpg é conectar uma sintaxe de linha de comando na frente do GPG (GnuPG) igual ao PGP 2.6. O comando gpg --version exibe a versão com informações extras. Ao final do dia fiz a instalação do ambiente gráfico de interface com o usuário xubuntu-desktop, para conhecimento. Domingo(9/6/2019): Durante o processo inicial de inicialização do sistema operacional, um dos processos de conexão com a rede demorava demasiadamente. Após pesquisa encontrei os comandos abaixo, executei os comandos e resolveram o problema: sudo systemctl disable systemd-networkd-wait-online.service sudo systemctl mask systemd-networkd-wait-online.service Atenção, o processo só é indicado se você instalou o ambiente gráfico de interface com o usuário (xubuntu ou outros), porque após o logon, em modo gráfico, é solicitado manualmente a senha da rede Wi-Fi. (Atualização deste documento em 30/06/2019: Ao atualizar o sistema operacional, o wi-fi passa a se conectar automaticamente no modo gráfico). Ao abrir um podcast para escutar e esclarecer os comandos acima, percebi que a instalação do driver de som não estava funcionando. Entendi a característica principal do sistema operacional, conforme explicado anteriormente, fato totalmente justificado.
  • 5. Fiz a instalação do IDE Python Idle3, trabalhando em conjunto com o REPL, fiz melhorias em uma determinada função de um programa Python IoT que controla um motor (ventoinha), conforme parâmetros da temperatura interna do processador, da temperatura externa do ambiente e o nível de luminosidade. def measure_CPUtemperature(): try: ''' formato para o Ubuntu IoT ''' result = subprocess.run(['cat', '/sys/class/thermal/thermal_zone0/temp'], stdout=subprocess.PIPE) m = (int(result.stdout.decode('utf-8'))/1000) return float(m) except Exception as e: ''' formato para o Raspbian ''' try: m = subprocess.run(['vcgencmd', 'measure_temp'], stdout=subprocess.PIPE) m = re.match("temp=(d+.?d*)'C", m) return float(m.group(1)) except Exception as e: ''' Assume o valor 34. Não iremos testar centenas de Linux disponíveis (apenas os
  • 6. aderentes) ''' m = 34 return float(m) Os sensores de temperatura e umidade (DHT22) controlam o acionamento do motor. O sensor de luminosidade (LDR) controla o tempo (com ajustes variáveis) em que o motor ficará ligado ou desligado. DHT22 LDR A placa Raspberry Pi 3 B+ necessita estar conectada na internet para manter a data do sistema ativa. Uma forma de contorno, e não depender de uma conexão com a internet, é a instalação do módulo de relógio com bateria do tipo pilha (RTC DS3231). A instalação do módulo e a configuração do Linux foi concluído com sucesso no sistema operacional Raspbian. No sistema operacional Ubuntu IoT exigiu ajustes extras. clock RTC DS3231
  • 7. Impressões gerais: O Ubuntu IoT exige a instalação e ajuste de diversos componentes de software para a utilização da pinagem do Raspberry Pi. O Linux Raspbian, por outro lado, é mais amigavel e maximamente ajustado a placa Raspberry Pi, aos módulos e aos sensores. Ubuntu IoT, trata-se de um sistema operacional incrivel com baixa pegada ecológica. Muito interessante para sistemas sem cabeça. Gostou? Dê um like! Fique a vontade em compartilhar e usar no seu estudo de caso. Apenas informe a fonte. Obrigado e sucesso! Ahhh eu tenho uma lista de desejo na Amazon: I have a wishlist at Amazon https://www.amazon.com.br/hz/wishlist/ls/2Y2J3ADYO50TH Could you do me a kindness? :-) Marcos Aurelio Barranco SP/SP 8/Junho/2019 Atualizado em: 10/Julho/2019