Boas notícias, pessoal! Uma nova versão do firmware do DeviceHive para o ESP8266 foi lançada. Implementamos suporte para as interfaces mais populares para conectar dispositivos: GPIO, ADC, PWM, UART, I2C, SPI, 1 fio. Agora você pode conectar facilmente dispositivos com essas interfaces ao nosso serviço de nuvem. E o mais importante - a capacidade de configurar o firmware sem fio apareceu (veja a captura de tela abaixo). Vamos falar sobre isso hoje.RESET triplo ou "Vamos lá!"
Ao criar dispositivos IoT com uma conexão sem fio, muitas vezes você pode encontrar um problema desagradável: configurar o dispositivo para o usuário final não é tão fácil quanto parece. Esses dispositivos geralmente não são equipados com tela e teclado; portanto, a configuração inicial (dados da rede Wi-Fi, por exemplo) não funcionará sem um cabo adequado e software especializado. Tentamos resolver esse problema na nova versão do firmware.Agora, tudo é extremamente simples de configurar:• o dispositivo reinicia três vezes (com um intervalo de não mais que 3 segundos), após o que se transforma em um ponto de acesso Wi-Fi;• você se conecta a esse ponto e, através do navegador, insere todas as configurações necessárias;• depois de aplicar as configurações, o dispositivo reinicia automaticamente já com as novas configurações.Dessa maneira, os dois problemas são resolvidos de uma só vez - você não precisará de cabos ou software especial. Além do navegador ... mas você tem um navegador? O botão RESET geralmente está localizado diretamente no corpo do dispositivo, pressionando-o três vezes deve ser bastante simples.Além disso, nos sistemas operacionais móveis modernos, você nem precisa abrir um navegador, porque a maioria deles suporta autenticação de portal cativa. Nos dispositivos Apple, a página de entrada de dados é aberta automaticamente. O Android mostrará uma notificação clicando em qual, você se encontrará nesta página.No vídeo abaixo, você pode ver como tudo funciona com o novo firmware e o dispositivo Android.Faça Você Mesmo
Vamos ver como esse sistema de configuração funciona basicamente, porque pode ser implementado para qualquer outro dispositivo sem fio com Wi-Fi.Para começar, criamos a rede Wi-Fi usual. Nele, criamos um servidor DHCP que distribuirá endereços IP para os dispositivos conectados. Mas como servidor DNS, ele passa o endereço IP do DNS “astuto”. O truque é que o mesmo endereço IP do servidor HTTP com o qual podemos configurar o dispositivo sempre será retornado a qualquer registro "A" da consulta DNS. No caso do ESP8266, o servidor DHCP, DNS e HTTP trabalha diretamente no chip. Em uma versão muito básica, isso é suficiente - abrindo qualquer página no navegador, veremos uma página com as configurações. Mas, para ser bonito, você pode forçar os dispositivos que suportam a autenticação do portal a exibir uma notificação sobre a necessidade de inserir dados.A autenticação do portal geralmente é usada para inserir dados e / ou exibir um contrato de uso em hotéis, hotéis e outros pontos de acesso Wi-Fi. Usamos essa técnica para exibir nossa página.O Android ao conectar-se a uma rede Wi-Fi tentará acessar customers3.google.com/generate_204 .Os dispositivos Apple estão tentando se conectar ao captive.apple.com .Depois de enviar uma solicitação para lá, você receberá uma resposta do formulário:$ curl http://clients3.google.com/generate_204 -i
HTTP/1.1 204 No Content
Content-Length: 0
Date: Mon, 07 Sep 2015 14:58:21 GMT
Server: GFE/2.0
$ curl http://captive.apple.com -i
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 68
Date: Mon, 07 Sep 2015 15:00:32 GMT
Connection: keep-alive
<HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY></HTML>
Ou seja, em resposta a uma solicitação HTTP, eles retornam uma resposta com o status 2xx. Graças a essas solicitações, os dispositivos determinam se estão conectados à Internet. Para implementar a autenticação do portal, é necessário enviar uma resposta com o código 302 Movido temporariamente em resposta a essas solicitações (ou apenas a todas as solicitações que são interessantes para nós) e indicar o campo Localização com o nosso endereço no cabeçalho, ou seja, a resposta deve ser aproximada da seguinte forma:HTTP/1.1 302 Moved Temporarily
Content-Length: 0
Location: http://example.com
Após receber esta resposta, os dispositivos entenderão que é necessário exibir a página de configurações no endereço especificado - os dispositivos Apple abrirão esta página na tela e o Android exibirá uma notificação. Nos sistemas operacionais sem o suporte à autenticação do portal, basta escrever na barra de endereços do navegador qualquer endereço que comece com "http: //" - o navegador abrirá a página de configurações. Ao mesmo tempo, você não enganará o usuário, porque o endereço da página com as configurações será exibido na barra de endereços. No firmware do ESP8266, usamos o endereço devicehive.config .Esperamos que tudo isso seja útil para você. Boa sorte ao criar suas próprias soluções de IoT!Postado por Nikolai Khabarov, Desenvolvedor embarcado sênior