top of page
Foto do escritorAlexandre Mainardi

ESP8266 + Homekit

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?

gif

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

gif

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:



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:


30 visualizações0 comentário

Posts recentes

Ver tudo

Comentarios


bottom of page