ATENÇÃO! Este tutorial é para usuários avançados do programação
Depois de ANOS procurando uma solução definitiva para finalmente aplicar a automação na minha casa / empresa, eis que descubro um projeto que torna possível instalar o SDK do HomeKit dentro de um ESP8266! Isso faz com que o dispositivo de USD 2 passe a se comportar como um Acessório nativo do HomeKit de USD60+, incrível não?
Chega de conversa e vamos colocar as idéias em pratica!
Configurando o ambiente
Antes de começarmos é preciso instalar alguns softwares. As instruções que eu vou passar aqui são pra OSX. No momento eu estou usando o Docker para configurar meu ambiente. Você também pode usar o Virtual Box da Oracle e instalar o Ubuntu, mas na minha opinião essa solução é mais complexa pois você precisa ficar alternando entre os sistemas para compilar. Com o docker você compila o código diretamente no Mac.
Instalando o Docker
Faça o download do Docker em https://www.docker.com/ , clique em Get Started e selecione "Download for Mac". É preciso fazer uma conta antes de iniciar o download. Anote seu dados de login, vamos precisar deles no futuro.
Docker Desktop para MAC
Docker desktop é a melhor maneira de desenvolver, debugar e testar apps desktop em um Mac.
Instalando o Docker
Duplo click em Docker.dmg para iniciar o instalador, a instalação no Mac é rápida e do tipo Drag-N-Drop, o Docker vai perguntar pela senha do administrador para rodar, pois ele precisa de permissões profundas no sistema.
Depois de instalado você verá o ícone da baleinha azul em sua barra de status:
Com o Docker instalado vamos aos docker containers.
Atom
Atom é um editor de código / texto grátis e open source para macOS, Linux e Windows com suporte para plug-ins escritos em Node.js e integração com o GitHub (Git Control).
Você pode fazer o download do Atom clicando aqui.
Containers
Crie um pasta em seu computador e em seguida, usando o ATOM, crie um novo arquivo nesta pasta chamado esp-sdk-dockerfile com o seguinte conteúdo:
Crie outro arquivo no ATOM chamado esp-rtos-dockerfile nesta mesma pasta com o seguinte conteúdo:
Em seguida abra o Terminal (CMD + Barra de espaço e digite "Terminal") e navegue até a pasta que criamos com os dois arquivos, para compilarmos o esp-sdk docker container (isso pode levar vários minutos) use o seguinte comando:
Para compilarmos o esp-rtos use o comando:
Crie uma nova pasta chamada ESP. Onde o Your_Username é seu nome de usuário do OSx usando o seguinte comando:
Mude o cursor para o diretório digitando:
Agora você pode clonar o repositório esp-open-rtos repository neste diretório:
O próximo passo é ajustar as variáveis do ambiente:
Instalando o Esptool
Esptool é um código open source baseado em Python que se comunica com a ROM do bootloader nos chips ESP8266 e ESP32.
Caso você não tenha o PIP instalado, instale com:
$ sudo easy_install pip $ sudo pip install --upgrade pip
Vamos clonar também o repositório principal:
Configurando o esp-homekit-demo
Copie o wifi.h.sample e salve como wifi.h
Abra o editor nano:
Edite com suas credenciais de Wifi e Senha e pressione CTRL + O, mude o nome para Wifi.h e pressione ENTER e e seguida CTRL + X
Compilando o código
Chegou a tão esperada hora de compilar o código! Use o comando:
Se você estiver usando o ESP8266 com 4mb de flash (32m bit), estão você estará ok. Caso você precise usar o chip de 1mb, então você precisa adicionar:
Vamos usar o Lifecycle Manager (Falaremos disso mais tarde) para distribuir nossos arquivos binários, por esse motivo vamos precisar trocar o endereço 0x7a000 para 0x8c000 adicionando o comando:
Então compile o exemplo que você quiser (o do LED por exemplo) rodando o comando:
Aguarde a compilação ser concluida
Agora você pode acessar o diretório examples/led/firmware que você irá encontrar o arquivo binário compilado Led.bin.
A compilação está concluída, fazendo o upload para o seu ESP o exemplo do LED via homebridge já irá funcionar.
Mas eu não quero parar por aqui, vamos estudar as alternativas para tornar esse processo de upload mais fácil.
Instalando o firmware
Antes de executarmos o upload do firmware para o ESP precisamos instalar outros softwares. O software que precisaremos é o Open Source FreeRTOS-based ESP8266 Software Framework, ou abreviando ESP Open RTos. Vamos precisar também de um sistema de distribuição dois arquivos, e para isso utilizaremos o GitHub.
Por ultimo, é necessário um sistema que faça o gerenciamento e instalação do firmware no ESP, para isso utilizaremos o LifeCycle Manager.
ESP Open RTos
É um framework de código aberto desenvolvido pela comunidade dos usuários de ESP, com o intuito de ser utilizado em projetos comerciais ou de código aberto. Ele é baseado no SDK da própria Espressif (Fabricante dos chips ESP).
Você vai precisar de 2 arquivos para instalar o ESP Open RTos, você pode fazer o download deles a seguir:
1. Arquivo rboot.bin
2. Arquivo blank_config.bin
LifeCycle Manager
Este gerenciador irá instalar, configurar seu WiFi e atualizar OTA (Over the air) seus dispositivos usando qualquer repositório usando esp-open-rtos. Incrível não?
Para utilizarmos o LifeCycle Manager faça o download di seguinte arquivo:
3. OTABoot.bin
Preparando seu código para o LifeCycle Manager
Você se lembra que alteramos o arquivo wifi.h.sample anteriormente? Isso foi necessário para que o ESP pudesse se conectar a sua rede de WiFi. Nós não queremos esquecer muitas linhas de código no seu arquivo binário. Como vamos usar o Lifecycle Manager, vamos ter que mudar algumas linhas.
Abra o terminal e navegue até a pasta do exemplo do LED
Lá dentro você vai encontrar dois arquivos, led.c e makefile.
Abra o led.c usando o editor Atom e altere o código original:
Para:
Comentarios