Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Tecnologia da Internet das Coisas

Como instalar um servidor da Web incorporado seguro em um dispositivo WiFi $ 3


Começar com o desenvolvimento embarcado pode ser difícil e caro, mas neste artigo irei mostrar a você como ativar o FreeRTOS e a pilha lwIP TCP / IP em um chip WiFi com um servidor da web embarcado seguro em menos de 30 minutos em um super baixo dispositivo de custo.

Por que usar um servidor habilitado para TLS seguro?

Os navegadores começaram a sinalizar os servidores padrão (HTTP) como “Não confiáveis” na barra do navegador (consulte a Figura 2 abaixo) e um servidor seguro parecerá mais confiável para o cliente final. Abordarei isso em detalhes na seção Considerações de segurança abaixo.

O chip WiFi ESP8266 e o ​​servidor Minnow

Você pode obter o ESP8266 por apenas US $ 1, mas eu recomendo usar uma placa que inclui USB. O USB é necessário para atualizar o firmware. Uma etapa adicional que inclui o uso de um conversor de USB para TTL seria necessária sem o USB integrado. Uma placa ESP8266 pronta para usar com USB pode ser adquirida por apenas $ 3.

O chip ESP8266 WiFi de baixo custo é ótimo para fins de aprendizado, mas é lento, especialmente com tarefas que exigem muito da CPU, como criptografar. Você realmente precisa pensar sobre o design ao usar um chip lento com tarefas intensivas de CPU.

O ESP8266 roda a 80 Mhz, o que é bom para um chip embutido, mas a execução do código é muito lenta com o código executado via memória SPI. A execução de um servidor habilitado para TLS neste dispositivo fornece uma chamada de alerta real quando se trata de limitações práticas com microcontroladores de recursos limitados e fornece uma ótima introdução ao que é possível executar em um microcontrolador lento. O tipo de servidor web seguro escolhido e o design do aplicativo web tornam-se críticos para dispositivos lentos.

Neste artigo, explicarei como compilar e executar o Minnow Server em um ESP8266. O Minnow Server e o exemplo de referência estão disponíveis no GitHub.

Recentemente, publiquei um artigo sobre o servidor Minnow aqui em embedded.com. O artigo explica como usar o Minnow Server para criar aplicativos modernos de gerenciamento de dispositivos baseados na web. O artigo também aborda os benefícios de usar um servidor WebSocket com um chamado Single Page Application (SPA) ao usar TLS. Recomendo a leitura deste artigo, pois estaremos preparando e compilando o mesmo código de exemplo para o ESP8266.

Primeiros passos

Estaremos usando o ambiente ESP8266 FreeRTOS / lwIP fornecido pelo projeto esp-open-rtos, mas não se preocupe, você não precisa passar pela configuração complexa do esp-open-rtos. Em vez disso, usaremos um ambiente pré-configurado e completamente pronto para usar com um IDE baseado na web fácil de usar.

Baixe o IDE FreeRTOS / lwIP ESP8266


Navegue até Real Time Logic e baixe o IDE ESP8266 que preparamos. O IDE, que é projetado para fins educacionais, inclui um esp-open-rtos pré-configurado junto com um IDE de código-fonte C baseado na web fácil de usar. O IDE requer VmWare ou VirtualBox. Eu prefiro o VmWare em vez do VirtualBox, pois acho mais fácil de usar. Observe que o VmWare é gratuito para uso não comercial.

O IDE ESP8266 também inclui uma pilha TLS incorporada (SharkSSL), e o Minnow Server usa TLS automaticamente quando compilado com SharkSSL.

Você pode começar a usar o IDE ESP8266 sem a placa ESP8266, mas não pode carregar e executar o código compilado. Em outras palavras, você pode baixar o IDE e seguir todas as etapas deste tutorial, exceto para executar o código no ESP8266.

A captura de tela na Figura 1 abaixo mostra a máquina virtual e o IDE baseado na web conectado à máquina virtual. Observe como a máquina virtual assumiu a propriedade da conexão USB ESP8266. O IDE baseado na web detecta isso e mostra o ESP8266 como conectado e pronto para ser atualizado com o novo firmware.

clique para ampliar a imagem

Figura 1:IDE baseado na Web conectado ao endereço IP da máquina virtual. (Fonte:Real Time Logic)

A captura de tela na Figura 1 mostra o ESP8266 conectado a LEDs por meio de uma placa de ensaio. Você não precisa de LEDS extras ou da placa de ensaio, a menos que queira controlar os LEDs externos usados ​​pelo aplicativo de exemplo.

Observe que o endereço IP de sua VM provavelmente será diferente do que na Figura 1. Certifique-se de clicar na janela da máquina virtual para o endereço IP. Se a janela estiver em branco, clique na janela e pressione a tecla Enter. Você deve inserir este endereço IP em seu navegador para abrir o IDE da web.

Instalando o servidor Minnow e o código de exemplo

O exemplo de referência do Minnow Server não está incluído no IDE ESP8266 e deve ser instalado separadamente. A Figura 1 mostra o exemplo do Minnow Server já instalado no diretório 'ESP / ms'. O servidor Minnow deve ser instalado a partir da linha de comando do Linux, mas não se preocupe se você não tiver usado o Linux. Você pode simplesmente copiar e colar os comandos que preparamos. A figura a seguir mostra uma captura de tela dos comandos de instalação do Minnow Server colados no shell da web do Linux disponível em http:// vm-ip-address / webshell /.

clique para ampliar a imagem

Figura 2:Comandos de instalação do Minnow Server colados no shell da web do Linux. (Fonte:Real Time Logic)

Ao inserir a URL para o shell da web em seu navegador, você será solicitado a fazer login. O nome de usuário é sharkssl e a senha é SharkSSL.

O tutorial ESP8266 no GitHub explica como configurar a máquina virtual, instalar tudo, compilar o exemplo de servidor da web e atualizar o firmware. O vídeo a seguir simplifica o processo, explicando tudo passo a passo.


Vídeo 1:Como baixar e instalar o exemplo do Minnow Server, compilar e enviar o código. (Fonte:Real Time Logic)

Seguro x não seguro

O Minnow Server pode ser usado no modo seguro ou não seguro e usa automaticamente o modo seguro (TLS) quando usado com o IDE ESP8266 e SharkSSL. Usar um servidor da web habilitado para TLS em um dispositivo adiciona complexidade e o usuário final fica com a carga administrativa de lidar com certificados SSL. No vídeo acima, mostramos como remover o erro de certificado apresentado no navegador instalando o certificado da Autoridade de Certificação (CA) no navegador. O certificado CA é o certificado que foi usado para assinar o certificado no exemplo do servidor da web.

Dispositivos incorporados são normalmente instalados em redes privadas protegidas, mas muitos clientes ainda exigem que as conexões do servidor web usem TLS. O uso de servidores habilitados para TLS em redes privadas é problemático, pois nenhuma autoridade de certificação conhecida assinará endereços IP ou nomes não padrão (rede privada). Uma opção é ser sua própria autoridade de certificação. Se você estiver interessado em aprender mais sobre isso, confira nosso tutorial Como agir como uma autoridade de certificação.

Como mencionado acima, o ESP8266 é lento. O TLS usa muito a CPU e você notará que leva algum tempo para se conectar e estabelecer uma conexão. O exemplo de aplicativo de página única, que usa WebSockets para comunicação, é otimizado para dispositivos com restrição de CPU, mas a criptografia assimétrica inicial (handshake TLS) ainda leva tempo, especialmente com alguns navegadores que não seguem boas práticas de design e abrem muitas conexões TCP que todos requer handshake TLS completo. Para saber mais sobre o problema com navegadores da web modernos e microcontroladores lentos, consulte nosso tutorial Criando aplicativos de página única com o servidor Minnow, que aborda o problema em detalhes.

Tecnologia da Internet das Coisas

  1. Como proteger a tecnologia em nuvem?
  2. Como instalar o WordPress no Google Cloud
  3. Como tornar os produtos e soluções IoT seguros
  4. Como identificar qual tipo de módulo IoT você precisa
  5. Obter umidade / temperatura da web
  6. Raspberry Pi 4 como um servidor da Web [Crie seu próprio site]
  7. Uma introdução ao hackeamento de hardware embarcado de dispositivo IoT
  8. O que é chamada WiFi? Como funciona?
  9. Como instalar um nivelador de dock
  10. Como a automação de servidores chegou ao FANG