Raspberry Pi. Partilhar internet via windows

Neste tutorial iremos ligar o RPi directamente ao PC e controlá-lo remotamente através de uma shell SSH sem necessidade de instalar no RPi qualquer periférico (teclado, rato e monitor).

A última imagem do Raspian Jessie deverá estar instalada no RPi. Ao londo deste tutorial é usada a versão de Fevereiro de 2016 (2016-02-09-raspbian-jessie.img).

São muito diversificados os modos de conectar um RPi à rede e, a partir de um PC, aceder e controlá-lo remotamente . Dependendo do contexto e do hardware disponível, são muitas as possibilidades de configuração.

A programação de aplicações no RPi pode ser efectuada directemente através do IDE da linguagem de programação no próprio sistema gráfico do Raspbian, contudo, por diversas razões, pode ser mais vantajoso e também mais prático programar e controlar remotamente o RPi a partir de um PC. Excluindo a solução de cross compiling, que é por norma muito complexo de instalar, grande parte dos programadores recorre ao acesso remoto via command Shell(SSH) e a aplicações que permitem aceder ou criar sessões gráficas remotamente no RPi, como são o caso do VNC, X11VNC ou ainda o Xming.

O cenário mais comum é simplesmente ligar o RPi à ethernet, disponibilizada por um router, quer seja através de uma cabo de rede (RJ45) quer através de um dispositivo wireless. Esta situação é muito comum em casas ou em pequenas empresas, nas quais, o utilizador tem acesso e privilégio de administração sobre os equipamentos.

setupNormal

Porém, noutras situações, como por exemplo em escolas ou universidades, ainda que seja possível ligar o RPi à Internet introduzindo os dados de uma conta de uitlizador pessoal, simplesmente pode não ser possível ter acesso a ele via ethernet pelo facto do serviço SSH não estar disponível.

 

feature

 

No contexto de uma sala de aula ou de um workshop, vários utilizadores têm necessidade de acederem ao RPi através dos seus PC e também de se conectar à Internet. Pode não ser possível, devido às razões já mencionadas, instalar um router e partilhar a internet aos vários RPi a ele ligados. Contudo, os utilizadores através das suas contas pessoais destas instituições podem aceder à internet via Wireless  e partilhar por cabo a conexão ao RPi. No windows esta funcionalidade chama-se ICS (Internet Connection Sharing).

Partilhar a ligação WiFi 

No PC vai ser necessário instalar um programa de linha de comandos SSH/Telnet, como é o caso do Putty ou do Kitty (o meu preferido).

1.Ligue o RPi e conecte-o ao PC através de um cabo de rede. Certifique-se que o PC tem acesso à Internet por WiFi e que o DHCP está activado.

2.Abra o Network and Sharing Center

3.Nas propriedades da ligação wireless, entre no tab Sharing.

 

sharing

4. Abra o Network and Sharing Center (disponível no control panel ou através do ícone de rede)

5. Aceda às propriedades da ligação local e consulte o IP atribuído ao seu PC. Geralmente o windows atribuí o endereço 192.168.137.1. O IP atribuído dinamicamente pelo PC ao RPi está no intervalo 192.168.137.[2 a 255]. Não sabemos qual é.

Determinar o IP dinâmico atribuído ao RPi

Ainda não podemos conectar-nos via linha de comandos SSH porque desconhecemos o endereço do RPi. Como saber o IP do RPi?

Existem várias maneiras de obter esta informação. Vamos excluir neste post a configuração do RPi em modo de IP estático e centrar-nos apenas no modo actual em que o IP é atribuído dinamicamente.

Ocorrem-nos três formas; a primeira consiste, simplesmente, em “pingar” manualmente todos os endereços no intervalo entre 192.168.137.1 e 192.168.137.255. Esta modalidade além de pouco elegante é muito pouco prática. É possível, contudo, correr um script na linha de comandos do windows que faça o trabalho sujo por nós, ou ainda tentar implementar um ping broadcast…

A segunda forma consiste em ligar um monitor, um teclado e um rato ao RPi. Para saber o seu IP basta colocar o cursor do rato no ícon de rede na desktop do Raspbian.

ipRPi

Alternativamente, podemos abrir a janela de terminal e executar o comando ifconfig.

ipTerm

Constatamos que o IP atribuído foi o 192.168.137.241.

Nem sempre é oportuno ter de ligar o RPi a um monitor e iniciar uma sessão gráfica para obter o IP. É de grande utilidade conseguir determinar o IP apenas a partir do PC, pois deste modo, podemos conectar-nos a um RPi cuja imagem do sistema operativo foi acabado de instalar. Assim, todo o processo de instalação, controle e configuração do RPi é efectuado integralmente a partir do PC sem que para tal seja necessário ter presentes periféricos (teclado, rato e monitor) ou um router. Este setup é vulgarmente conhecido por “headless”, que literalmente significa o RPi “sem cabeça”.

A solução passa por executar na linha de comandos do windows o comando arp. Esta instrução expõe, para cada rede presente no PC, a tabela de IPs e respectivos endereços físicos de todos os dispositivos conectados.

> arp -a

e obtemos o seguinte output:

arp

 

Abrir uma ligação SSH

1. Verifique se o PC consegue comunicar com o RPi. Abra uma linha de comandos no Windows (CMD) e execute ping 192.168.137.241.

ping

 

2. Abra o programa Kitty crie uma nova sessão com este último endereço no porto 22.

kityy

3. Na linha de comnados recém aberta introduza o seu nome de utilizador e password, os quais são por omissão pi e raspberry.

 

4. Experimente a sua ligação abrindo um site através do comando:

$ curl http://www.ua.pt

 

5.Ler a temperatura do processor:

$ vcgencmd measure_temp

ou

cat /sys/class/thermal/thermal_zone0/temp

 

6.  Aproveite para actualizar o sistema.

$ sudo apt-get update

e depois

$ sudo apt-get upgrade

 

8.Por fim, abra remotamente o Minecraft.

$ DISPLAY=:0 minecraft-pi

 

Explore estes e outros comandos do sistema operativo linux.

 

Próximo: ACESSO GRÁFICO E REMOTO AO RASPBERRY PI: VNC SERVER, X11VNC SERVER E XMING.

 

 

Anúncios