Solução para TH-16 RF (PSF-B85)

Olá pessoal, Sou bem novo nesse rolê louco de automação e programação e vim dividir com vocês uma experiência que tive, Caso eu tenha postado no lugar errado me perdoem sou bem novato mesmo hehehehe.
Eu e um amigo estamos desenvolvendo uns sensores de temperatura para geladeiras e conectados via mqtt pegando as temperaturas de tempo em tempo e montando um gráfico, fizemos uns protótipos bem rudimentares com o NodeMCU e tal mas ficaram bem grandes e meio desajeitados e não iriam ficar bonitos pra finalidade deles que é ficar numa clínica, então decidimos comprar um sensor chinês no aliexpress pra tentar a sorte reescrevendo ele, já que ele vem bonitinho na caixinha dele mesmo.

O Sensor é o TH-16 RF (Sonoff?)

o danado veio com uma controladora PSF-B85 e então começamos a saga de Brickar
Caso alguem algum dia precise fazer uma coisa dessa deixo aqui as informações que nós encontramos e descobrimos…

Esse é o Danado do sensor:

Ele utiliza um chip PSF - B85 numa placa integrada com um relay, um botão, e uma entrada P2 utilizada para o sensor de temperatura que acompanha o produto, que mais na frente iremos utilizar para alimentação durante o processo de regravação.

Primeiramente indentificaremos os pinos Necessários para regravar nossa própria programação no chip PSF-B85 :

TX ; RX ; GND ; GPIO0, RST ; 3,3v

Utilizaremos o modelo de .Yaml do “esp8266” pois o chip PSF-B85 é baseado em ESP 8266 segue exemplo do nosso .Yaml para a controladora:

esphome:
  name: sensorinox

esp8266:
  board:  esp8285

# Enable logging
logger:
# Enable Home Assistant API
api:
  password: 

ota:

# Example configuration entry

switch:
  - platform: gpio
    pin: GPIO12
    name: Relay
    id: relay
   
  - platform: gpio
    pin: GPIO13
    name: led
    id: led
    inverted: true
Binary_sensor:
  platform: gpio
  pin:
   number: GPIO0
    #mode: INPUT_PULLUP
   inverted: True
  name: “botão”
  on_press:
    switch.toggle: relay
   
dallas:
  - pin: 14
    update_interval: 15s
# Individual sensors
ensor:
  - platform: dallas
    address:  0xbe6d03871e64ff28
    name: "Temperatura"
wifi:
  ssid: dudu
  password: cachorro

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Sensor Fallback Hotspt"
    password: 
      
mqtt:
  broker: 
  #broker: 
  username: 
  password: mqtt_password      
  
 captive_portal:

Para realizar a gravação do controlador, precisaremos do ESPHOME instalado e configurado com a interface web funcionando. Clicamos em adicionar dispositivo, selecionamos o dispositivo que queremos, no caso da PSF_B85 utilizamos o esp8266(board 8285). Escrevemos nosso .Yaml e gravamos via USB( importante ter os drivers instalados no computador para executar a gravação corretamente além de verificar permissões da porta usb)

Para achar o “address” do sensor de temperatura demoramos um pouco, a solução que encontramos foi configurar um MQTT server e configurar o Yaml pra que o dispositivo se conecte neste MQTT server, após isto é possível, na dashboard do ESPHOME, ver o log do dispositivo que irá conter o “address” correto. Daí podemos regravar o Yaml com o valor de “address” correto

Sensores e respectivos pinos utilizados por eles:
Switch: GPIO 12
Led: GPIO 13
Botão: GPIO 0
Dallas( temperatura): GPIO

RF: Infelizmente não encontramos maneira de fazer funcionar, se alguém souber ajuda nós!?

Gravação Via Ota (Over the Air):

A placa do sensor contém uma fonte integrada para fornecer os 3.3v necessários para seu funcionamento, entretanto quando fomos realizar a gravação via OTA (Over the Air) estranhamente não funcionou, analizando o problema chegamos à conclusão de que o 3.3v fornecido pela fonte integrada possui uma corrente muito baixa que acaba sendo insuficiente para utilização do recurso OTA(ou pode ta com defeito mesmo hehehe). Para solucionar o problema utilizamos uma fonte externa 12V com regulador de tensão para 3.3v, identificamos na interface de conexão do sensor de temperatura qual era o 3.3v, GND e Data. Criamos então um cabo de alimentação P2 e o utilizamos para alimentar o circuito sempre que houver a necessidade de regravar utilizando OTA.

Pronto! Sensor chinês brickado
Depois disso conseguimos definir qualquer servidor MQTT conectar o sensor e automatizar a vida \o/
E é isso, espero ser informação útil.

1 curtida

Olá, estou tentando efetuar o procedimento mas gravar o tasmota nele. Você já tentou com o tasmota, sabe me dizer ou auxiliar na parte do template?

Sobre a pinagem, como fez para ‘conectar’ nos pinos dele e fazer a flash?

Olá, acabei fazendo aqui usando a pinagem que enviou acima…

TX,RX,GDN,3.3V, dei um jeito de plugar na mão enquanto com a outra fiz o procedimento de instalação do tasmota utilizando o https://tasmota.github.io/install/.

Olhei a placa contra a luz, identifiquei os pinos e fiz um template.

0 - plugado no RFE274DM - ou button
12 - RELAY 1
13 - LED_i 1
14 - DS18x20 1
Não entendi a questão do pino ENC, qual a funcionalidade dele.

{“NAME”:“Sonoff TH16RF”,“GPIO”:[32,0,0,0,0,0,0,0,224,320,1312,0,0,0],“FLAG”:0,“BASE”:4}

No caso do RF e o controle, não tem como utilizar com o tasmota… assim como o botão, o RF é conectado diretamente no RFE274DM.
Não achei diagrama dele ou spec, como já havia visto um similar RFE273 em portão, presumi que era igual.
Se segurar o botão 5 segundos, o led muda, aperte o controle e deve ‘gravar’ o código e pode utilizar o controle como se fosse um botão.