Uma das características interessantes do ESP32-C6 é o suporte ao protocolo Zigbee. Neste post vamos ver como rodar dois exemplos que vem no pacote do ESP32 para a IDE Arduino (você vai precisar de duas placas, que irão conversar uma com a outra).
O suporte ao Zigbee estreou na versão 3.00 do suporte ao ESP32 no Arduino. Quando fui usar com o XIAO ESP32-C6 eu tive um pequeno problema, mas que foi corrigido na versão 3.01.
Instalando o Suporte ao ESP32
O primeiro passo é instalar o suporte ao ESP32 na IDE Arduino (se você ainda não fez isso). Vou me referir aqui à IDE versão 2 (alguém ainda usa a versão 1?). Na IDE, selecione File Preferences e acrescente "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json" em Additional boards manager URLs. Em seguida clique no ícone de placa na esquerda, para abrir o Boards Manager. Digite ESP32 no filtro:
O pacote que queremos é o "esp32 by Espressif Systems", clique em INSTALL.
Depois de instalado, selecione a placa XIAO_ESP32C6.
Os Exemplos
Os exemplos que vamos usar são Zigbee_Light_Bulb e Zigbee_Light_Switch. Estes exemplos estão dentro de File Examples ESP32 Zigbee e ilustram um uso simples do protocolo Zigbee.
O "Ligh Bulb" opera como um Zigbee End Device (ZED), um dispositivo simples que conversa com um Zigbee Coordinator (ZC) ou um Zigbee Router (ZR). No caso o Light Bulb irá acender ou apagar um LED conforme comandos recebidos de um ZC/ZR.
O "Light Switch" é o ZC. Ele monitora um botão ligado ao ESP32. Quando o botão é pressionado, ele envia um comendo para acender ou apagar o LED no Light Bulb.
Preparando o Light Bulb
Abra o exemplo na IDE, aperte o botão boot da XIAO e a conecte ao micro (isto só é necessário no primeiro upload pela IDE do Arduino). Use o menu Tools Port para selecionar a porta associada ao XIAO. Ainda no Menu Tools, ligue (Enabled) a opção Erase All Flash Before Sketch Upload, selecione "Zigbee 4MB with SPIFS" em Partition Scheme e "Zigbee ED" em Zigbee Mode.
O exemplo originalmente trabalhava com um LED RGB na placa de desenvolvimento da Espressif. Vamos mudar o programa para usar o LED normal da placa XIAO:
1) Altere a linha
#define LED_PIN RGB_BUILTIN
para
#define LED_PIN LED_BUILTIN
2) Na rotina zb_attribute_handler, substitua a linha
neopixelWrite(LED_PIN, 255 * light_state, ...
por
digitalWrite(LED_PIN, light_state? LOW : HIGH);
3) Na rotina setup, substitua a linha
neopixelWrite(LED_PIN, 0, 0, 0);
por
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
Preparando o Light Switch
Abra o exemplo na IDE, aperte o botão boot da XIAO e a conecte ao micro. Use o menu Tools Port para selecionar a porta associada ao XIAO. Ainda no Menu Tools, ligue (Enabled) a opção Erase All Flash Before Sketch Upload, selecione "Zigbee 4MB with SPIFS" em Partition Scheme e "Zigbee ZCZR" em Zigbee Mode.
Nenhum comentário:
Postar um comentário