Hack do SONOFF RF Bridge (433MHz) 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 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
- Ponte SONOFF 433 MHz
- Sensor PIR SONOFF
- Alarme para portas e janelas SONOFF
- Módulo Adaptador Conversor Serial FTDI USB para TTL
- Cabo MiniUSB
Serviços e ferramentas:
- NodeMCU-flasher
- O driver VCP da ponte USB para UART CP210x está instalado. Caso não o tenha, clique aqui para baixá-lo .
Passo a passo
- Compreensão da Arquitetura
- Hack de ponte RF
- Configurando uma ponte de RF
- 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
- 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 :