Tutorial SONOFF: Um interruptor inteligente Wi-Fi por $5

Mateo Velez
· 4 min de leitura
Enviar por e-mail

Neste guia, você aprenderá como controlar qualquer aparelho de 110-240V por apenas $ 5, usando o dispositivo SONOFF da Itead . Comparado com os plugues inteligentes Wi-Fi de $ IoT em larga escala. Além disso, ele é baseado no popular chip Wi-Fi ESP8266, o que o torna compatível com o ambiente Arduino e outros recursos, como nossas bibliotecas ESP na Ubidots .

O SONOFF vem com seu próprio firmware e aplicativo para celular, mas acreditamos que seu principal valor reside em seu formato compacto e preço acessível. Por isso, decidimos fazer algumas modificações e liberar todo o seu potencial!

Visão geral

sonoff_wifi_wireless_smart_switch.jpg

Atenção! Não manipule o SONOFF enquanto ele estiver conectado à rede elétrica de 110/240V

O SONOFF contém um relé, um chip Wi-Fi ESP8266 e o ​​circuito necessário para alimentá-lo com a corrente alternada de uma tomada. Ele também vem em uma embalagem elegante que lhe confere um aspecto mais profissional do que um projeto caseiro comum.

Requisitos

Configurar

  1. Desmonte o dispositivo SONOFF para acessar a pinagem TTL, necessária para programar o ESP8266 integrado. Você precisará soldar quatro pinos, conforme mostrado na imagem abaixo.
  2. Conecte os pinos UARTbee aos pinos SONOFF, seguindo este esquema de pinagem:
SONOFF-PINOUT.jpg
UARTbee FILHO DA PUTA
VC CVCC
TX RX
RX TX
GND GND

Acesse a IDE do Arduino, clique em Arquivo -> Preferências e insira este URL para poder acessar as bibliotecas do ESP8266 para Arduino:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

No "URLs adicionais do Gerenciador de Quadros" . Este campo aceita vários URLs, separando-os por vírgulas, caso você já tenha outros URLs digitados.

  1. Abra o Gerenciador de Placas em Ferramentas -> Menu Placa e instale a plataforma ESP8266. Após a instalação, selecione sua placa ESP8266 em Ferramentas > Menu Placa.
  2. Faça o download da biblioteca Ubidots aqui .
  3. Agora, clique em Sketch -> Incluir Biblioteca -> Adicionar Biblioteca .ZIP.
  4. Selecione o arquivo .ZIP do Ubidots ESPMQTT e clique em “Aceitar” ou “Escolher” .
  5. Feche a IDE do Arduino e abra-a novamente.

Criar uma variável Ubidots

  1. Ubidots .
  2. Acesse "Fontes" e clique no símbolo de mais laranja .
  3. Defina o nome da fonte de dados e verifique o rótulo
ezgif.com-video-to-gif (2).gif

4. Crie uma nova variável para o relé e verifique o rótulo

ezgif.com-video-to-gif (3).gif

Criar um widget de botão

Agora, para controlar o dispositivo SONOFF, você precisará criar um widget de botão em sua conta Ubidots . Este widget definirá sua variável RELAY para “1” ou “0”:

  1. Acesse o Dashboard e clique no ícone de mais laranja .
  2. Clique em Controle -> Alternar e selecione a fonte de dados e a variável a serem controladas, criadas anteriormente.
ezgif.com-video-to-gif (4).gif

Programando seu SONOFF

Aqui está o código que liga/desliga o dispositivo SONOFF. Para usar este código, não se esqueça de substituir o TOKEN pelo token da sua conta Ubidots. Substitua WIFISSID e PASSWORD pelas credenciais da sua rede.

Para carregar o código no SONOFF, você precisará:

  1. Conecte o UARTbee à porta USB do seu computador.
  2. Pressione o botão do SONOFF e desconecte o USB ao mesmo tempo.
  3. Enquanto mantém o botão pressionado, conecte o USB novamente.

Esses passos têm como objetivo colocar o SONOFF em modo de programação.

sonoff-connect.gif

Quando estiver pronto, carregue o código a partir da IDE do Arduino:

/**************************************** * Incluir Bibliotecas ****************************************/ #include "UbidotsESPMQTT.h" /**************************************** * Definir Constantes ****************************************/ #define TOKEN "..." // Seu TOKEN Ubidots #define WIFINAME "..." // Seu SSID #define WIFIPASS "..." // Sua Senha do Wi-Fi #define MQTTCLIENTNAME "..." // Seu Nome de Cliente MQTT. Ele deve ser único, por isso recomendamos escolher um nome ASCII aleatório #define RELAY 12 #define LED 13 Ubidots client(TOKEN, MQTTCLIENTNAME); /**************************************** * Funções Auxiliares ****************************************/ void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Mensagem recebida ["); Serial.print(tópico); Serial.print("] "); for (int i=0;i <length;i++) { Serial.print((char)payload[i]); } Serial.println(); if ((char)payload[0] == '1') { digitalWrite(RELAY, HIGH); //On relay digitalWrite(LED, LOW); //On led } if ((char)payload[0] == '0') { digitalWrite(RELAY, LOW); //Off relay digitalWrite(LED, HIGH); //Off led } } /**************************************** * Main Functions ****************************************/ void setup() { // put your setup code here, to run once: Serial.begin(115200); client.wifiConnection(WIFINAME, WIFIPASS); pinMode(RELAY, OUTPUT); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); client.begin(callback); client.ubidotsSubscribe("relay","sonoff"); //Insira a fonte de dados e os rótulos das variáveis ​​} client.loop(); }

Conecte seu interruptor inteligente e comece a controlar tudo

Agora é hora de tornar as coisas "inteligentes" adicionando seu SONOFF a elas; controle suas luzes, abra ou feche sua garagem, etc.

Dando um passo além…

Ubidots é um serviço em nuvem que permite a milhares de engenheiros em todo o mundo criar IoT , tanto na área educacional quanto corporativa. Para saber como Ubidots pode ajudar sua empresa, confira nossos recursos ou envie-nos uma mensagem.