IoT com Sonoff em rede local

Finalmente encontrei uma razão para brincar com a Internet das coisas!

Pretendia ligar e desligar alguns rádios que não fazem sentido manterem-se ligados 24h por dia, por questões de consumo, e que fazem parte da minha estação digital de packet e ardop.

Assim, o rádio de HF em 20m está ligado apenas de dia e o de HF em 40m e 80m apenas à noite! Possibilitou-me ainda que o rádio da SatGate apenas se ligue na proximidade de satélites de packet e APRS…

O resultado desta brincadeira pode ser visto em tempo real na página Beacons e APRS de CT1EBQ.

Mas, um dos motivos por ainda não ter feito nada com a IoT era o facto de todos os dispositivos serem ligados e controlados a partir de um fornecedor externo que, querendo podem podem vir a ligar-me ou desligar-me equipamentos, registarem leituras de consumos e ambiente… isto não quero!

Às voltas com soluções para criar uma rede local da IoT dei com uns equipamentos a bom preço e que permitem o upgrade de diferentes firmwares sem ligação a outros fornecedores!

Os equipamentos que aqui descrevo são os Sonoff Dual R2 que permitem 2 interruptores à tensão da rede elétrica e, o Sonoff 4CH Pro R3 com 4 interruptores com relé de 2 estados e ligações normalmente abertas e fechadas, que podem ser utilizadas para qualquer tensão com uma corrente até 10A, por exemplo a 13,8V, aquela que me interessava para controlar os rádios.

O firmware foi escrito por Theo Arends que lhe deu o nome de Tasmota e, nesta data vai na versão 9.2

Há inúmeras maneiras de escrever este firmware nestes Sonoff. Através de um simples raspberry pi, um computador com Windows ou um Mac.
Descrevo a última e também a mais fácil…

Faça o download e instale o programa NodeMCU PyFlasher para OSX e da última versão de firmware Tasmota no seu idioma.

Vai precisar de um adaptador USB/RS-232 com tensões TLL de 3,3V e, de 4 fios com terminais fêmea/fêmea para ligar o adaptador ao header strip dos Sonoff.

Abra o seu Sonoff, no meu caso vou instalar este firmware em ambos, o Dual R2 e o CH4 Pro R3.
Solde um header strip de 4 ou 5 pinos conforme as figuras, a cada um deles,

NOTA: muito importante! Não alimente os Sonoff durante a programação! A corrente fornecida pelo adaptador USB/RS-232 é suficiente para o processo de carregamento do novo firmware!

Ligue os fios entre o adaptador USB/RS-232 e o Sonoff a programar... os fios RX e TX data trocam entre eles. Isto é, o RX no adaptador USB liga ao TX no Sonoff. O TX no adaptador liga ao RX no Sonoff.

Abra o programa NodeMCU PyFlasher, seleccione a porta série, o ficheiro binário do firmware, o baud rate do RS232 deve ser 115200, escolha o modo de Flash - no meu caso ambos os chip são o ESP8285 e a opção escolhida deve ser "Dual Output (DOUT)", e apague todos os dados anteriores.

No Sonoff Dual R2 versão de 2020 coloque um jumper entre os pinos GND/BUTTON0

No Sonoff CH4 Pro R3 pressione e mantenha pressionado por 2 ou 3 segundos o primeiro botão S1 (IO0) ao ligar o adaptador USB ao computador (isto é, ao alimentar o circuito) que está ligado ao GPIO para actualização de firmware.

Faça Flash NodeMCU.

Se tudo estiver bem configurado irá ver na consola o processo de actualização a decorrer, identico para ambos,

Command: esptool.py --port /dev/cu.usbserial --baud 115200 --after no_reset write_flash --flash_mode dout 0x00000 /Users/ricardo/Downloads/tasmota-PT.bin --erase-all
esptool.py v2.6
Serial port /dev/cu.usbserial
Connecting….
Detecting chip type… ESP8266
Chip is ESP8285
Features: WiFi, Embedded Flash
MAC: d8:f5:5b:32:3d:62
Uploading stub…
Running stub…
Stub running…
Configuring flash size…
Auto-detected Flash size: 1MB
Erasing flash (this may take a while)…
Chip erase completed successfully in 5.1s
Compressed 602368 bytes to 429961…
Wrote 602368 bytes (429961 compressed) at 0x00000000 in 39.4 seconds (effective 122.5 kbit/s)…
Hash of data verified.
Leaving…
Staying in bootloader.
Firmware successfully flashed. Unplug/replug or reset device 
to switch back to normal boot mode.

Deslique o adaptador USB e todos os fios. Retire o jumper do Dual R2 se for o caso.
Ligue agora a alimentação ao seu Sonoff... apesar de aqui descrever a actualização para ambos os modelos, faça-o a um de cada vez.

Ligue agora o Sonoff que entrará em modo AP (access point). Pesquise redes wireless na proximidade, e encontrará uma rede com um nome idêntico a "tasmota_923D62-7522". Ligue-se a essa rede e após uns segundos abre-se uma janela no seu computador para configurar a rede wireless onde pretende que este Sonoff se ligue.

Assim que aplicadas as definições de rede neste Sonoff, com o serviço de DHCP activo no seu router, pesquise na sua rede novos endereços IP…
Ligue-se agora ao seu Sonoff através do web browser, digitando este endereço no URL.

Configure o modelo Sonoff, neste post o Dual R2 ou o CH4 Pro R3, grave, ele fará reboot não levando mais de 5 segundos e aparecerão 2 ou 4 botões para ligar e desligar os relés…

Use-os nas suas aplicações favoritas…

Ligar e desligar através de Raspberry Pi

Supondo que o endereço IP do seu Sonoff é 192.168.1.10

Através do crontab, adicione as seguintes linhas no ficheiro /etc/crontab

Directamente por linha de comandos,

Power1 indica neste caso o relé 1. Substitua este número por 1 ou 2 no modelo Dual R2 e por 1, 2, 3 ou 4 no CH4 Pro R3.
A opção "On" ou "Off" liga ou desliga o relé em causa, respectivamente.

Referências
https://esphome.io/devices/sonoff.html