Criando um roteador IoT com Raspberry Pi 3

Quando falamos de Internet das Coisas, pensamos muito nos dispositivos e na núvem, as vezes esquecendo dos elementos que irão compor a rede local, os roteadores. No mundo da Internet das Coisas, vamos precisar repensar o modo como hoje utilizamos a rede WiFi de casa, com aumento do número de dispositivos, os problemas também irão aumentar.

Sabemos que, no geral, o consumo de banda de um dispositivo não será muito grande, exceto os dispositivos de monitoramento por video, mas que no combinado de dispositivos, o roteador convencional poderá sofrer uma sobrecarga.

Roteadores para IoT

O que já se tornou comum em algumas arquiteturas, é o uso de um roteador especifico para os dispositivos IoT, paralelo ao roteador convencional. Isso faz com que um roteador, fique com foco nesses dispositivos, podendo atender até a regras especificas de segurança, diferentes da rede convencional.

Já existem roteadores ou gateways para IoT, mas no geral são mais caros que o normal e na maioria das vezes são específicos para os dispositivos do mesmo fabricante. Muitas vezes o usuário acaba por utilizar um roteador comum para esse fim.

Alguns exemplos de roteadores para IoT são:

Google WiFi Router

Securify Almond

Engenius IoT Intelligent Cloud Gateway

Criando o nosso próprio roteador IoT

Uma alternativa para contornar esse “problema”, é criar o nosso próprio roteador WiFi, que aos iniciantes, isso pode parecer uma missão quase impossível, mas não é.

Para iniciar o projeto do roteador, vamos primeiramente precisar do hardware, que nesse caso será uma Raspberry Pi 3, que já conta com WiFi e Bluetooth. A Raspberry utilizada neste artigo, foi cedida pela loja Usinainfo, e que pode ser adquirida pelo link abaixo:

Comprar na Usinainfo

O próximo passo será criar a imagem do sistema operacional, que nesse caso será o LEDE (Linux Embedded Development Environment). O LEDE é um fork do openWRT, sistema operacional baseado em Linux bem conhecido nos roteadores.

Vantagens e desvantagens em criar o nosso próprio roteador IoT

Devemos pensar nos motivos de criar ou não o nosso próprio roteador IoT. Avaliar se essa será a melhor solução aos problemas que podemos enfrentar.

Vantagens:

  • Processamento superior aos roteadores convencionais
  • Memoria superior
  • Maior Armazenamento
  • 4 portas USB
  • Bluetooth nativo
  • GPIOs e outros periféricos

Desvantagens:

  • Custo superior aos roteadores de entrada
  • Antena interna sem conector para antena externa
  • Não é 5GHz
  • Apenas uma porta de rede Ethernet
  • Configuração inicial não intuitiva

Já sabendo das vantagens e desvantagens, podemos seguir com a construção ou buscar por uma solução alternativa, ou apenas servir de conhecimento.

Mas é só isso?

Não! A criação de um roteador IoT, vai além de apenas ter um novo hardware.

Em um roteador IoT, podemos ter um broker MQTT, banco de dados, APIs, regras de firewall especificas para os dispositivos entre outras aplicações locais. Podemos deixar parte do processamento ocioso para fazer analises dos dados, além de poder integrar as soluções diretamente com plataformas como o node-red, de forma bem fácil.

Outra opção é colocar outros rádios na porta USB, como modem 3G/4G, LoRa ou qualquer outro dongle USB.

Em outras palavras, o roteador será um dispositivo de borda, com um enorme poder de processamento local.

Além do roteador IoT

Devemos também dizer, que essa solução não é apenas para roteadores IoT. Podemos utilizar uma Raspberry como roteador para substituir, provisoriamente um roteador danificado, caso uma Raspberry esteja dando bobeira, criar um novo spot de internet auxiliar, uma extensão WiFi (repetidor) ou um conversor WiFi para rede cabeada (ethernet).

Existem inúmeras aplicações para uma Raspberry Pi na rede!

Criando uma imagem LEDE

Para criar uma nova imagem, vamos seguir os mesmos passos do artigo “Customizando e atualizando a Omega2”, apenas mudando a plataforma no ambiente Linux.

Na configuração da build, podemos escolher pacotes para compor a imagem, como o broker MQTT Mosquitto, mas o mesmo poderá ser instalado posteriormente, se necessário.

Passos

Primeiro devemos fazer o clone do projeto LEDE:

$ git clone https://github.com/lede-project/source.git
$ cd source
$ ./scripts/feeds update -a
$ ./scripts/feeds install -a

Feito o clone e o link para os pacotes, vamos configurar a imagem a ser criada:

$ make menuconfig

Agora devemos selecionar a plataforma Raspberry Pi 3

Target System (Broadcom BCM27xx)

Subtarget (BCM2710 64 bit based boards)

Target Profile (Raspberry Pi 3B (64 bit))

Saia da configuração, salvando as alterações.

Para facilitar futuras configurações, podemos instalar também o pacote LuCi (interface web de configuração).

Agora podemos seguir com a build da imagem:

$ make -j1 V=s

Esse processo deverá levar pelo menos 40 minutos, dependendo das configurações do computador que está fazendo a build.

 

Caso não queira fazer a própria imagem, baixe aqui: LEDE Raspberry Pi 3

 

Gravando a imagem no cartão SD

Para gravar a imagem no cartão SD, vamos utilizar o comando “dd”, que deve ser utilizado com cautela, já que pode causar danos no sistema.

Passos:

Descompacte o arquivo lede-brcm2708-bcm2710-rpi-3-ext4-sdcard.img.gz” para obter a imagem.

Identifique o cartão SD no sistema pelo comando dmesg no terminal.

No meu caso o resultado foi o seguinte: mmcblk0: mmc0:1234 SA04G 3.65 GiB.

Execute o comando: $ sudo dd if=”arquivo.img” of=/dev/mmcblk0

Quando o processo finalizar:

$ sync

Configurando o LEDE

Feita a criação do cartão SD com a imagem, já podemos fazer o boot do LEDE na Raspberry.

Após o primeiro boot, já podemos configurar as interfaces para a Raspberry Pi operar como roteador WiFi, pegando Internet pela porta Ethernet.

A forma mais conveniente de fazer a primeira configuração, é colocar o cartão SD no computador e alterar os arquivos de configuração diretamente.

Os arquivos para serem alterados são:

  • /etc/config/wireless
  • /etc/config/network
  • /etc/config/dhcp
  • /etc/config/firewall
Arquivo wireless

As opções SSID e KEY (senha), podem ser alteradas conforme as necessidades.

Arquivo network

Arquivo dhcp

Arquivo firewall

Com essas configurações, o Raspberry pode ser ligado em um cabo de rede com internet, para fazer o roteamento da internet pelo WiFi. Logo após o boot, o SSID configurado deverá aparecer.

Em um artigo futuro, poderá ser utilizado como um broker de MQTT.

Conclusão

Se você precisar de um roteador para IoT, e estiver com tempo para criar o seu próprio, essa alternativa cairá como uma luva. Mas se você também quiser estudar o sistema LEDE para roteadores, também será uma excelente alternativa, já que o risco de “brickar” a Raspberry é praticamente nula, já que basta regravar o cartão SD e tudo volta ao normal.

Criar o seu próprio roteador pode ser uma boa diversão, além de ser muito útil!

 

Happy Hacking!

Deixe seu comentário