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

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

  • 1.
    Impressões após 2dias 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 doUbuntu 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 pacoteiw 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çãodo 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 returnfloat(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 UbuntuIoT 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