Hack SONOFF RF Bridge (433 MHz) usando Tasmota

SONOFF permitem que qualquer pessoa transforme diferentes espaços, como casas e escritórios tradicionais, em espaços inteligentes a um preço baixo. Eles fornecem uma variedade de produtos sem fio para soluções de controle e monitoramento, que são adequados para construir um POC de Internet das Coisas ( IoT ) sem ter que gastar centenas de dólares.

No entanto, se você estiver interessado em construir um POC, provavelmente gostaria de ter controle da arquitetura e dos serviços onde seus dados serão hospedados e exibidos. Com base nisso, decidi ir mais longe e hackear o cérebro dos produtos SONOFF, criando as minhas próprias soluções a um preço baixo.

Se você quiser aprender como hackear a ponte SONOFF 433 MHz para criar coisas legais, você deve 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 a ponte RF
  4. Configuração do Node-RED (MQTT)

1. Compreensão da Arquitetura

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

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

Basicamente, os dispositivos RF enviam um sinalizador sempre que um dispositivo altera seu status. Esses sinalizadores são recebidos na ponte SONOFF RF para então encaminhar os dados recebidos para o Node-RED via MQTT; isso só pode ser feito se o firmware da ponte for substituído, neste caso decidimos ir com o Tasmota . Assim que os dados forem recebidos no Node-RED, você poderá manipulá-los conforme necessário, bem como conectá-los a serviços de terceiros, como plataformas IoT Ubidots , serviços de mídia social, assistentes de voz ou qualquer serviço que venha em sua mente, isso poderia permitir que você se comunicasse por meio de uma API.

2. Hack de ponte RF

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

2. Remova a parte superior com cuidado para retirar a PCB principal. Depois de desmontá-lo, você deverá obter o seguinte resultado:

3. Pegue suavemente a placa e levante o display do led. Em seguida, remova a espuma localizada abaixo do display e mude o estado do interruptor para OFF, conforme mostrado abaixo:

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

Uma segunda opção é não soldar os pinos, mas usar jumpers macho e segurá-los 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 reset na ponte e, enquanto pressiona o botão, conecte o adaptador serial USB ao seu computador.  

NOTA IMPORTANTE: Para poder fazer upload do firmware, você deve ter o driver CP210x USB para UART Bridge VCP instalado. Caso você não tenha, clique aqui para baixá-lo .

7. Com base no sistema operacional usado, consulte as seguintes ferramentas para fazer upload do Tasmota . Clique aqui para baixar o arquivo bin.

Windows: pisca-pisca nodeMCU .

1. Inicie o pisca-pisca nodeMCU.

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

3. Na aba "Config" , selecione Tasmota .bin .

4. Na aba “ Avançar ”, certifique-se de que as configurações correspondam às seguintes configurações:

  • Taxa de transmissão: 115200
  • Tamanho do flash : 1Mbyte
  • Velocidade do flash : 40 MHz
  • Modo SPI : DOUT

Como mostra a imagem abaixo:

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

Linux/MacOS: esptool

  1. Consulte o README para executar o comando necessário para atualizar o firmware. Tenha em mente as seguintes configurações:
  • Taxa de transmissão: 115200
  • Tamanho do flash : 1Mbyte
  • Velocidade do flash : 40 MHz
  • Modo SPI : DOUT

8. Com o firmware carregado com sucesso, mova a chave para ON e monte a ponte.

3. Configurando a ponte RF

1. Conecte a ponte a qualquer fonte de alimentação. Neste ponto, a ponte criará um AP (ponto de acesso). Faça uma varredura nas redes disponíveis no seu computador e estabeleça a conexão WiFi com aquela chamada " sonoff-xxx ".

Com a conexão estabelecida, abra o navegador de sua preferência e digite a seguinte direção: http://192.168.4.1 . Neste ponto, você será redirecionado para uma página de configuração de WiFi.

2. Digite o SSID e a senha da rede desejada com a qual deseja estabelecer a conexão e clique em salvar.

3. Após estabelecer a conexão, use um aplicativo de scanner de rede para saber o novo endereço IP que foi atribuído à ponte RF. É altamente recomendável usar o Fing , que pode ser facilmente encontrado na Google Play Store ou na App Store da Apple. Fing é uma ótima ferramenta para localizar facilmente o endereço IP de um dispositivo.

Depois de encontrar o endereço IP atribuído à ponte, insira-o novamente usando o navegador da web.

4. Como uma das configurações finais, deve-se definir o módulo a ser utilizado, neste caso o RF Bridge. Para fazer isso, vá em “ 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ê for 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 vá em “ 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: rfbridge
  • Tópico completo: %topic%/%prefix%/

Tendo como resultado:

Para finalizar pressione o botão Salvar”

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

nó vermelho

Caso ainda não o tenha instalado, clique aqui .

3. Assim que o Node-RED iniciar, abra um navegador da web e escreva 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 da 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":"Broker Local","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 Node-RED, clique em “ Deploy ”.

Neste ponto, 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 hackear o SONOFF RF Bridge sem precisar ser um especialista em hardware.

Agora que você é capaz de manipular os dados para tratá-los com qualquer serviço de sua preferência, é sua vez de começar a ampliar os recursos das soluções que os produtos SONOFF oferecem para construir soluções IoT a um nível de baixo custo.

Projetos IoT mais úteis: