Projetos IoT

Tutorial SONOFF: um switch inteligente Wi-Fi por $ 5

Mateo Vélez
· 4 min de leitura
Enviar por e-mail

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

O SONOFF vem com seu próprio firmware e aplicativo móvel, mas achamos que seu principal valor está realmente em seu formato e preço baixo. É por isso que decidimos hackear e liberar todo o seu poder!

Visão geral

sonoff_wifi_wireless_smart_switch.jpg

Tome cuidado! Não manipule o SONOFF enquanto ele estiver conectado às linhas 110/240V AC

O SONOFF contém um relé, um chip WiFi ESP8266 e o ​​circuito necessário para alimentá-lo com a linha CA de uma tomada elétrica. Ele também vem em um belo pacote que o faz parecer mais profissional do que um projeto DIY comum em casa.

Requisitos

Configurar

  1. Desmonte o dispositivo SONOFF, para acessar a pinagem SONOFF TTL, que precisaremos para programar o ESP8266 integrado. Você precisará soldar quatro pinos, mostrados na imagem abaixo.
  2. Conecte os pinos UARTbee aos pinos SONOFF, seguindo esta pinagem:
SONOFF-PINOUT.jpg
UARTbee FILHO
VC CVCC
Texas RX
RX Texas
GND GND

Vá para o IDE do Arduino, clique em Arquivos -> Preferências e digite esta 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 placas . Este campo suporta múltiplas URLs, separando-as por vírgulas, caso você já tenha outras URLs digitadas.

  1. Abra o Boards Manager em Ferramentas -> menu Board e instale a plataforma ESP8266. Selecione sua placa ESP8266 no Ferramentas> Placa após a instalação.
  2. Baixe aqui Ubidots ESPMQTT .
  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 o IDE do Arduino e abra-o novamente.

Crie uma variável Ubidots

  1. Ubidots .
  2. Vá para 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

Crie 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 como “1” ou “0”:

  1. Vá para Dashboard e clique no ícone de adição laranja .
  2. Clique em Controle -> Alternar e selecione a fonte de dados e a variável para controlar criada anteriormente.
ezgif.com-video-to-gif (4).gif

Codificando seu SONOFF

Aqui está o código que liga/desliga o dispositivo SONOFF. Para usar esse código não esqueça de trocar o TOKEN pelo token da sua conta Ubidots . Altere WIFISSID e SENHA com suas credenciais de rede.

Para enviar o código para o SONOFF você precisará:

  1. Conecte o UARTbee ao USB do seu PC.
  2. Pressione o botão SONOFF e desconecte o USB ao mesmo tempo.
  3. Enquanto ainda pressiona o botão, conecte novamente o USB.

Estas etapas têm como objetivo colocar o SONOFF no modo de programação.

sonoff-connect.gif

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

/**************************************** * Incluir bibliotecas ****** **********************************/ #include " Ubidots ESPMQTT.h" /****** ********************************** * Definir Constantes ************* ***************************/ #define TOKEN "..." // Seu TOKEN Ubidots #define WIFINAME "..." / /Seu SSID #define WIFIPASS "..." // Seu Wifi Pass #define MQTTCLIENTNAME "..." // Seu nome de cliente MQTT, deve ser exclusivo, portanto recomendamos escolher um nome ASCCI aleatório #define RELAY 12 #define Cliente LED 13 Ubidots (TOKEN, MQTTCLIENTNAME); /************************************** *Funções Auxiliares****** **********************************/ void callback(char* topic, byte* payload, unsigned int length) { Serial.print("A mensagem chegou ["); Serial.print(tópico); Serial.print("] "); para (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.ubidots Subscribe("relay","sonoff"); //Inserir o dataSource e os rótulos da variável } client.loop(); }

Conecte seu Smart Switch e comece a controlar as coisas

Agora é hora de tornar as coisas “inteligentes” adicionando seu SONOFF a elas; controlar suas luzes, abrir ou fechar sua garagem, etc.

Dando um passo adiante…

Ubidots é um serviço em nuvem que capacita milhares de engenheiros em todo o mundo a construir IoT , tanto na educação quanto na empresa. Para saber como Ubidots pode ajudar o seu negócio confira nossas funcionalidades ou deixe-nos uma mensagem.