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 plataformas IoT 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. Na aba "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 o botão Salvar”

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 soluções IoT a baixo custo.

Mais projetos úteis IoT :