MQTT

Hack do SONOFF RF Bridge (433MHz) usando Tasmota

María Hernández
· 7 min de leitura
Enviar por e-mail

SONOFF permitem que qualquer pessoa transforme diferentes espaços, como casas e escritórios tradicionais, em espaços inteligentes a um preço acessível. Eles oferecem uma variedade de produtos sem fio para soluções de controle e monitoramento, ideais para construir uma prova de conceito (POC) da Internet das Coisas (IoT) sem precisar gastar centenas de dólares.

No entanto, se você estiver interessado em criar uma prova de conceito (POC), provavelmente desejará ter controle sobre a arquitetura e os serviços onde seus dados serão hospedados e exibidos. Com base nisso, decidi ir além e explorar as funcionalidades dos produtos SONOFF, criando minhas próprias soluções a um custo acessível.

Se você quer aprender a hackear o SONOFF 433 MHz Bridge para criar coisas incríveis, você precisa terminar este guia. Confie em mim!

Requisitos

Serviços e ferramentas:

Passo a passo

  1. Compreensão da Arquitetura
  2. Hack de ponte RF
  3. Configurando uma ponte de RF
  4. Configuração do Node-RED (MQTT)

1. Compreensão da Arquitetura

A coisa mais importante que precisamos fazer antes de iniciar qualquer integração é entender a arquitetura por trás dela.

Para esta integração, vamos aplicar a seguinte arquitetura:

Basicamente, os dispositivos de radiofrequência enviam um sinal sempre que um dispositivo altera seu estado. Esses sinais são recebidos pelo SONOFF RF Bridge, que então encaminha os dados recebidos para o Node-RED via MQTT; isso só é possível se o firmware do bridge for substituído, neste caso, optamos pelo Tasmota. Uma vez que os dados são recebidos no Node-RED, você poderá manipulá-los conforme necessário, bem como conectá-los a serviços de terceiros, como IoT plataformas Ubidots, redes sociais, assistentes de voz ou qualquer outro serviço que permita a comunicação via API.

2. Hack da Ponte RF

1. Remova as tampas pretas dos 4 parafusos na parte inferior da ponte. Em seguida, remova os parafusos usando a chave de fenda apropriada.

2. Remova a tampa com cuidado para retirar a placa de circuito impresso principal. Após a desmontagem, você deverá obter o seguinte resultado:

3. Com cuidado, segure a placa e levante o visor de LED. Em seguida, remova a espuma localizada abaixo do visor e coloque a chave na posição DESLIGADO, conforme mostrado abaixo:

4. Para poder alterar o firmware SONOFF da ponte, você precisa usar um adaptador serial USB. Para conectar o adaptador à ponte, você precisa soldar alguns pinos macho, como mostrado aqui:

Uma segunda opção é não soldar os pinos e usar fios jumper macho, segurando-os com o dedo durante o processo de upload.

5. Estabeleça a seguinte conexão entre o módulo e a ponte:

6. Pressione o botão de reinicialização na ponte e, enquanto mantém o botão pressionado, conecte o adaptador serial USB ao seu computador.  

NOTA IMPORTANTE: Para poder carregar o firmware, você precisa ter o driver VCP da ponte USB para UART CP210x instalado. Caso não o tenha, clique aqui para baixá-lo.

7. Dependendo do sistema operacional utilizado, consulte as seguintes ferramentas para fazer o upload do Tasmota. Clique aqui para baixar o arquivo binário.

Windows: nodeMCU-flasher.

1. Inicie o nodeMCU-flasher.

2. Na guia "Operação", selecione a porta COM atribuída à ponte.

3. Naaba "Configuração", selecione o arquivo Tasmota.bin.

4. Na guia "Avançado", verifique se as configurações correspondem às seguintes opções:

  • Taxa de transmissão (Baudrate): 115200
  • Tamanho da memória flash: 1 MB
  • Velocidade do flash: 40 MHz
  • Modo SPI: DOUT

Conforme mostrado na imagem abaixo:

5. Para finalizar, clique em “Flash” e prepare seu SONOFF Bridge com Tasmota.

Linux/MacOS: esptool

  1. Consulte o arquivo README para executar o comando necessário para atualizar o firmware. Lembre-se das seguintes configurações:
  • Taxa de transmissão (Baudrate): 115200
  • Tamanho da memória flash: 1 MB
  • Velocidade do flash: 40 MHz
  • Modo SPI: DOUT

8. Com o firmware carregado com sucesso, mova o interruptor para a posição LIGADO e monte a ponte.

3. Configurando a ponte de RF

1. Conecte o bridge a qualquer fonte de alimentação. Nesse momento, o bridge criará um ponto de acesso (AP). Procure as redes disponíveis no seu computador e estabeleça a conexão Wi-Fi com a rede chamada "sonoff-xxx".

Com a conexão estabelecida, abra seu navegador preferido e digite o seguinte endereço: http://192.168.4.1. Você será redirecionado para uma página de configuração de Wi-Fi.

2. Digite o SSID e a senha da rede desejada à qual você quer se conectar e clique em salvar.

3. Após estabelecer a conexão, use um aplicativo de varredura de rede para descobrir o novo endereço IP atribuído à ponte RF. Recomendamos o uso do Fing, que pode ser facilmente encontrado na Google Play Store ou na App Store da Apple. O Fing é uma ótima ferramenta para localizar facilmente o endereço IP de um dispositivo.

Após encontrar o endereço IP atribuído à ponte, insira-o novamente usando o navegador da web.

4. Como uma das configurações finais, você precisa definir o módulo a ser usado, neste caso, a Ponte RF. Para fazer isso, vá para "Configuração > Configurar Módulo". Em seguida, escolha "25 Bridge" como tipo de módulo e clique em "Salvar".

4. Configuração do Node-RED (MQTT)

Para fins de teste, você pode executar o Node-RED localmente em seu computador. Se você pretende implantar uma solução, recomendamos executar o Node-RED em um Raspberry Pi conectado à mesma rede da ponte RF.

1. Para configurar o servidor MQTT, acesse “Configuração > Configurar MQTT” na ponte RF. Em seguida, atribua as seguintes configurações:

  • Host: Endereço IP do computador / Endereço IP do Raspberry Pi. No meu caso, o endereço IP atribuído é 10.0.0.23.
  • Porta: 1883
  • Cliente: Deixe o valor padrão
  • Usuário: Deixe o valor padrão
  • Senha: Deixe o valor padrão
  • Tópico: ponte rf
  • Tópico completo: %topic%/%prefix%/

Tendo como resultado:

Para finalizar, pressione oSalvar”botão

2. Inicie o Node-RED localmente executando o seguinte comando no seu terminal:

Node-RED

Se você ainda não o instalou, clique aqui.

3. Após iniciar o Node-RED, abra um navegador da web e digite o seguinte endereço IP : 127.0.0.1 e a porta: 1880 (ou seja, http://127.0.0.1:1880) para abrir a interface web do Node-RED.

4. Em seguida, clique no menu Node-RED no canto superior direito, depois em “Importar > Área de transferência” e cole o código abaixo:

[{"id":"ff00dda7.75ff7","type":"mqtt in","z":"c32623f3.82eec","name":"","topic":"rfbridge/tele/RESULT","qos":"1","datatype":"auto","broker":"9584b3e4.576fd","x":220,"y":240,"wires":[["e629731e.a86648"]]},{"id":"e629731e.a86648","type":"debug", "z":"c32623f3.82eec","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":500,"y":240,"wires":[]},{"id":"9584b3e4.576fd","type":"mqtt-broker","z":"","name":"Local Broker","broker":"10.0.0.23","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

5. Na aba “Conexão” do nó MQTT, atribua como “Servidor” o mesmo endereço IP atribuído como host na ponte RF. No meu caso, o host atribuído foi 10.0.0.23.

Para salvar as alterações, clique em “Atualizar”.

6. Para iniciar a execução do fluxo do Node-RED, clique em "Implantar".

Nesse momento, o nó MQTT mudará seu status para “Conectado”.

Em seguida, selecione a guia de depuração para visualizar as mensagens recebidas.

5. Resumo

Em apenas alguns minutos, conseguimos invadir o SONOFF RF Bridge sem precisar ser especialistas em hardware.

Agora que você consegue manipular os dados para utilizá-los com qualquer serviço de sua preferência, é a sua vez de começar a expandir as capacidades das soluções que os produtos SONOFF oferecem para criar IoT soluções a baixo custo.

Mais projetos úteis IoT :