Índice:

Como atualizar o firmware MicroPython em um switch inteligente Sonoff baseado em ESP8266: 3 etapas (com imagens)
Como atualizar o firmware MicroPython em um switch inteligente Sonoff baseado em ESP8266: 3 etapas (com imagens)

Vídeo: Como atualizar o firmware MicroPython em um switch inteligente Sonoff baseado em ESP8266: 3 etapas (com imagens)

Vídeo: Como atualizar o firmware MicroPython em um switch inteligente Sonoff baseado em ESP8266: 3 etapas (com imagens)
Vídeo: LinuxFest Northwest 2019: Web of Things API 2024, Julho
Anonim
Como atualizar o firmware MicroPython em um switch inteligente Sonoff baseado em ESP8266
Como atualizar o firmware MicroPython em um switch inteligente Sonoff baseado em ESP8266

O que é Sonoff?

Sonoff é uma linha de dispositivos para Smart Home desenvolvida pela ITEAD. Um dos dispositivos mais flexíveis e baratos dessa linha são Sonoff Basic e Sonoff Dual. Esses são switches habilitados para Wi-Fi baseados em um ótimo chip, ESP8266. Embora a infraestrutura Sonoff possa funcionar muito bem para usuários básicos, outros podem querer invadir esse hardware e executar seu próprio código nele. O hardware dos Sonoff Smart Switches é incrível, considerando seu baixo preço:

  • ESP8266 com flash de 1 MB
  • Adaptador de energia integrado 220V AC
  • Relé 10A (ou dois no Sonoff Dual)
  • LED integrado (ou dois no Sonoff Dual)
  • Botão Onboard

Se você deseja ter controle total sobre este hardware usando sua linguagem de programação favorita, este tutorial é para você.

Etapa 1: hackear o hardware

Hackeando o Hardware
Hackeando o Hardware
Hackeando o Hardware
Hackeando o Hardware
Hackeando o Hardware
Hackeando o Hardware

ESP8266 é programado por meio da porta serial. Tanto o Sonoff Basic quanto o Sonoff Dual o possuem no PCD.

Você pode precisar soldar um conector de pino no PCB para conectar facilmente um adaptador USB-UART.

Etapa 2: preparando-se para hackear o software

Preparando-se para hackear o software
Preparando-se para hackear o software

Eu amo Python, então vou usar o firmware MicroPython. Você também pode usar qualquer SDK compatível. Vamos prosseguir com o flash MicroPython em vez do firmware Sonoff proprietário:

Instale o pacote esptool python que facilita a atualização do ESP8266:

pip instalar esptool

Baixe o firmware MicroPython estável mais recente na página de downloads do MicroPython. Conecte um adaptador USB-UART à placa. Por segurança, é recomendado alimentar a placa a partir do adaptador em vez da tomada 220V AC. Observe que você só pode usar 3,3 V, se você conectar o chip ESP8266 a uma fonte de alimentação de 5 V, ele morrerá.

Inicialize o ESP8266 no Modo Flash. Você pode fazer isso puxando para baixo o pino GPIO0 enquanto liga o dispositivo:

  • No Sonoff Basic, o GPIO0 é simplesmente um botão. Conecte o adaptador USB-UART ao seu PC enquanto pressiona o botão e você está no Modo Flash.
  • No Sonoff Dual, as coisas estão um pouco mais difíceis. Você precisa causar um curto-circuito em dois blocos do PCB enquanto alimenta a placa. Os pads necessários são mostrados na imagem acima. Use uma pinça ou solde um pequeno fio entre eles.

Quando o ESP8266 está no Modo Flash, o LED da placa não deve piscar.

Certifique-se de que você pode acessar a porta serial aberta pelo adaptador USB-UART. No Linux é provavelmente / dev / ttyUSB0, no Mac você deve pesquisar algo como “usbserial” ou “usbmodem” na saída do comando ls / dev / cu. * Ou ls / dev / tty. *, No Windows deve ser COM3 ou mais alto. Instale os drivers do adaptador USB-UART, se necessário.

Apague o flash usando o esptool. Substitua o / dev / ttyUSB0 por sua porta, se necessário:

esptool.py --port / dev / ttyUSB0 erase_flash

Pode ser necessário executar esptool.py como superusuário para acessar a porta serial.

Etapa 3: piscando

Piscando
Piscando

Se o apagamento for bem-sucedido, desligue a placa, inicialize o ESP8266 no Modo Flash novamente e atualize o firmware:

esptool.py --port / dev / ttyUSB0 --baud 460800 write_flash --flash_size = detectar 0 esp8266-20170823-v1.9.2.bin

Se o flash foi bem sucedido, corte a alimentação da placa, conecte-a novamente sem pressionar o botão e abra a porta serial em um terminal. No Linux e Mac você pode usar screen / dev / ttyUSB0 115200 (substitua / dev / ttyUSB0 pela sua porta se necessário), no Windows você pode usar PuTTY (a taxa de transmissão padrão é 115200). Depois de conectar, pressione Enter, e se você vir três colchetes angulares do shell Python, então tudo funciona!

>> >>> help () Bem-vindo ao MicroPython! Para documentos online, visite https://docs.micropython.org/en/latest/esp8266/. Para obter informações de diagnóstico para incluir em relatórios de bug, execute 'import port_diag'. Configuração de WiFi básica: import network sta_if = network. WLAN (network. STA_IF); sta_if.active (True) sta_if.scan () # Procure pontos de acesso disponíveis sta_if.connect ("", "") # Conecte a um AP sta_if.isconnected () # Verifique se a conexão foi bem-sucedida # Altere o nome / senha do AP do ESP8266: ap_if = network. WLAN (network. AP_IF) ap_if.config (essid = "", authmode = network. AUTH_WPA_WPA2_PSK, password = "") Comandos de controle: CTRL-A - em uma linha em branco, entre no modo REPL bruto CTRL- B - em uma linha em branco, entrar no modo REPL normal CTRL-C - interromper um programa em execução CTRL-D - em uma linha em branco, fazer uma reinicialização suave da placa CTRL-E - em uma linha em branco, inserir colar modo Para obter mais ajuda sobre um objeto específico, digite help (obj) >>>

No próximo instrutível, descreveremos como interagir com a plataforma Cloud4RPi por meio de um protocolo MQTT.

Recomendado: