Projetos IoT

Tutorial duplo SONOFF: controle seus aparelhos elétricos remotamente usando MQTT e Ubidots

Maria Hernández
· 4 min de leitura
Enviar por e-mail

Neste guia você aprenderá como controlar alguns aparelhos 110V via Wi-Fi por $ 9, usando o SONOFF Dual da Itead .
Comparado com os plugues inteligentes WiFi de consumo no mercado, o SONOFF é uma ótima alternativa para fazer projetos domésticos inteligentes e até mesmo industriais 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 .

Requisitos

Configuração de hardware

Desmonte o dispositivo SONOFF Dual, para acessar a pinagem SONOFF TTL, que precisaremos para programar o ESP8266 integrado. O SONOFF vem sem dois conectores de pinos, então você precisará soldá-los antes de programar a unidade.

Após a soldagem, conecte a placa ao UartSBee seguindo esta tabela:

UartSBee SONOFF Duplo
CCV CCV
Texas RX
RX Texas
GND GND

Pinagem UartSBEE

Além disso, você precisará fazer uma conexão entre o pino GND do cabeçalho do pino à esquerda (aquele que contém os pinos dos botões 1 e 0) e o pino EN_FW do ESP8266 mostrado abaixo:

Pinagem SONOFF (frente)

Pinagem SONOFF (face invertida)

Configuração do IDE do Arduino

  1. No IDE do Arduino, clique em Arquivos -> Preferências e insira esta URL no URLs adicionais do gerenciador de placas , para poder acessar as bibliotecas do ESP8266 para Arduino:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Este campo oferece suporte a vários URLs. Separe-os com vírgulas caso você já tenha digitado outras URLs.

  1. Abra o Boards Manager no menu **Ferramentas -> Placa ** e instale a plataforma ESP8266.
  2. Após a instalação, acesse o Ferramentas > Placa e selecione a placa: Módulo ESP8266 Genérico.
  3. Baixe a Ubidots ESPMQTT como um arquivo ZIP em nossa conta GitHub .
  4. De volta ao seu Arduino IDE, clique em Sketch -> Incluir Biblioteca -> Adicionar Biblioteca .ZIP.
  5. Selecione o arquivo .ZIP do Ubidots ESPMQTT e clique em “Aceitar” ou “Escolher”.
  6. Feche o IDE do Arduino e abra-o novamente.

Codificando seu SONOFF Dual

Este código de exemplo assinará uma variável Ubidots que liga ou desliga ambos os relés ao mesmo tempo.

Antes de executar o código, acesse sua conta Ubidots , localize a aba “Dispositivos” e crie um Dispositivo chamado “SONOFF Dual” e uma variável nele chamada “Relés”. Deveria ficar assim:

Certifique-se de que o rótulo da API do dispositivo seja “sonoff-dual” e o rótulo da API variável seja “relays”. Estes são os identificadores exclusivos usados ​​pelo SONOFF para saber qual variável assinar no corretor MQTT. Você pode editar os rótulos, se necessário.

Agora você está pronto para atualizar seu dispositivo com o seguinte código:

/**************************************** * Incluir bibliotecas ****** **********************************/ #include " Ubidots ESPMQTT.h" /****** ********************************** * Definir Constantes ************* *************************/ #define TOKEN "p4uuuxxxxxxxncTVfoVqxxxxxRQW" // Seu TOKEN Ubidots #define WIFINAME "UBIWIFI" //Seu SSID # defina WIFIPASS "clave123456789ubi" // Seu Wifi Pass #define MQTTCLIENTNAME "sonoff15345" // Seu nome de cliente MQTT, deve ser único, portanto recomendamos escolher um nome ASCCI aleatório Ubidots client(TOKEN, MQTTCLIENTNAME); /************************************** *Funções Auxiliares****** **********************************/ void relés_on() { Serial.write(0xA0); Serial.write(0x04); Serial.write(0x03); Serial.write(0xA1); Serial.flush(); } void relés_off(){ Serial.write(0xA0); Serial.write(0x04); Serial.write(0x00); Serial.write(0xA1); Serial.flush(); } void callback(char* tópico, 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]); } if ((char)payload[0]=='1'){ relays_on(); } else{ relays_off(); } Serial.println(); } /**************************************** * Main Functions ****************************************/ void setup() { // put your setup code here, to run once: Serial.begin(19200); Serial.println("Connecting to WiFi..."); client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback); Serial.println("Connected!"); pinMode(16, OUTPUT); client.ubidots e rótulos de API de variáveis ​​Serial.println("Subscribed!"); } void loop() { // coloque seu código principal aqui, para executar repetidamente: if(!client.connected()){ client.reconnect(); cliente. ubidots Subscribe("sonoff-dual","relés"); //Inserir o dataSource e os rótulos da variável } client.loop(); }

Você pode realizar ações mais elaboradas mexendo nos comandos internos do SONOFF Dual. Aqui está uma referência rápida que encontramos em seus fóruns :

Serial: 19230,8,N,1 Bytes a serem enviados para a unidade: 0xA0 0x04 0xxx 0xA1 onde 0xxx parece ser: 0x00 ambos desligados 0x01 relé um ligado 0x02 relé dois ligado 0x03 ambos relés ligados

Depois de atualizar seus dispositivos, abra o monitor serial do Arduino IDE, você deverá ver algo assim, significando que a conexão WiFi e a assinatura MQTT foram bem-sucedidas:

Resultados

Agora vá até a aba “ Dashboards ” e adicione um novo Widget do tipo “Control”–> “Switch”:

Esta chave enviará um “1” ou “0” para a variável “Relays”, que é então lida na função de retorno de chamada do SONOFF para ligar ou desligar os relés. Agora você pode controlar seu SONOFF Dual remotamente a partir do seu dashboard !

Agora é hora de criar seus próprios aplicativos e dashboards para controlar e gerenciar seus ambientes. Para saber mais sobre Ubidots , confira estes tutoriais em vídeo e inscreva-se gratuitamente hoje mesmo!