Primeiros passos com o Blynk: Dispositivos DIY IoT simples

O Blynk é um serviço de Internet das Coisas (IoT) projetado para tornar o controle remoto e a leitura dos dados do sensor de seus dispositivos o mais rápido e fácil possível.

O Blynk é um serviço de Internet das Coisas (IoT) projetado para tornar o controle remoto e a leitura dos dados do sensor de seus dispositivos o mais rápido e fácil possível.
Propaganda

O Blynk é um serviço de Internet das Coisas (IoT) projetado para tornar o controle remoto e a leitura dos dados do sensor de seus dispositivos o mais rápido e fácil possível. Neste artigo, abordaremos exatamente o que é o Blynk, como funciona, e forneceremos dois pequenos exemplos de projetos sobre diferentes usos do serviço com as placas de desenvolvimento NodeMCU e Raspberry Pi.

Nunca foi tão fácil começar a desenvolver objetos inteligentes usando microcontroladores, e os dispositivos de IoT rapidamente cresceram em popularidade nos últimos anos. Placas de desenvolvimento como Arduino ou Raspberry Pi podem ser usadas para controlar tudo, desde tomadas elétricas. Como controlar tomadas de energia RF baratas da OpenHAB. Como controlar tomadas de energia RF baratas da OpenHAB. com aqueles? Você pode vinculá-los em seu sistema de casa inteligente DIY com apenas cerca de US $ 10 em partes. Leia mais em sua casa para decorações de Natal ativadas por movimento Atualize sua guirlanda de Natal com uma matriz de LED ativada por movimento Atualize sua guirlanda de Natal com uma matriz de LED ativada por movimento Esta guirlanda de Natal DIY usa uma matriz Arduino e LED para produzir uma incrível tela iluminada vai impressionar seus amigos e familiares. Consulte Mais informação .

Uma área que pode representar um problema para os não iniciados é a codificação e o trabalho em rede. O Blynk visa eliminar a necessidade de codificação extensiva e facilitar o acesso aos seus dispositivos de qualquer lugar no smartphone. É grátis para uso por amadores e desenvolvedores, mas também está disponível para uso comercial por uma taxa - as empresas podem usar o Blynk para criar seus próprios aplicativos e sistemas e depois vendê-los com sua própria marca.

Blynk usa seu próprio servidor e biblioteca para fazer o serviço funcionar, mas é o aplicativo Blynk que parece ser sua força principal.

Entre no Aplicativo Blynk

O aplicativo Blynk está disponível gratuitamente no Android e no iOS. É o ponto de partida para seus projetos, apresentando um sistema simples de arrastar e soltar para criar controles personalizados para sua configuração de IoT. O fluxo de trabalho é rápido: ao iniciar um novo projeto, você é solicitado a escolher sua placa de desenvolvimento a partir de uma lista extensa e também seu método de conexão. O aplicativo envia um token de autorização via e-mail para conectar-se ao seu dispositivo pelo servidor Blynk.

Os elementos de controle são chamados de Widgets : vários tipos de métodos de entrada e exibições de saída, incluindo botões, controles deslizantes, um joystick, gráficos e feedback de texto. Há também widgets específicos de componentes, com controles estilizados para LEDs, telas de LCD e até vídeo ao vivo. Também são notáveis ​​os widgets que adicionam recursos, como postagem automática no Twitter e notificações personalizadas.

Embora o aplicativo seja gratuito, ele limita a quantidade de widgets que você pode usar de uma só vez, oferecendo a eles um custo de "Energia". O aplicativo oferece um saldo de 2.000 para jogar, com a opção de comprar mais, se necessário.

Descobri que o saldo inicial fornecido era mais do que suficiente para os exemplos de projetos listados aqui, embora, se sua configuração for mais complicada, você poderá ficar sem suco rapidamente.

widgets e botão blynk

Cada widget possui um menu de edição que permite alterar o nome e a cor. Em seguida, você escolhe qual pino deve ser afetado (seja um pino em sua placa ou um dos pinos virtuais de Blynk) juntamente com o intervalo de valores a ser enviado. Para exibições de saída, como gráficos e caixas de texto, você também pode escolher com que frequência deseja que ela seja atualizada, potencialmente economizando uma preciosa largura de banda.

Blynk também possui a capacidade de atribuir instruções a pinos “virtuais”, que são conexões configuradas pelo usuário entre o aplicativo e o hardware. Um único botão no aplicativo pode, portanto, ser usado para acionar muitos eventos diferentes no dispositivo. Nós vamos cobrir como usar isso mais tarde no artigo.

O aplicativo oferece a opção de compartilhar seu projeto com outras pessoas. Um código QR é gerado, que pode ser enviado por e-mail ou digitalizado diretamente e usado por qualquer pessoa que também tenha o aplicativo Blynk. Quem quer que você compartilhe não pode fazer alterações no projeto, tornando-o uma maneira rápida e conveniente de compartilhar o controle de seus dispositivos. Vale a pena notar, no entanto, que o seu projeto no aplicativo deve estar em execução para que outros tenham acesso ao hardware.

Você também pode compartilhar o projeto sem permitir o acesso ao seu hardware, o que é uma ótima maneira de ensinar as pessoas a usar o aplicativo sem deixá-las acender e apagar suas luzes!

Eu encontrei a criação de um aplicativo muito rápido e intuitivo. Uma vez criado, você pode começar a usá-lo imediatamente pressionando o símbolo de reprodução no canto superior direito. Se você precisar fazer alterações mais tarde, basta pressionar o mesmo botão para voltar ao modo de edição.

O servidor Blynk

Depois de criar um aplicativo para controlar seu dispositivo, você tem duas opções de como se comunicar com ele.

O servidor em nuvem Blynk é rápido, ágil e livre de usar. Conectar-se a um dispositivo Wi-Fi é tão fácil quanto copiar seu código de autorização gerado em seu esboço do Arduino e fornecer seus detalhes de Wi-Fi. Para Raspberry Pi, Blynk fornece um script de teste que você pode executar com o seu código de autorização para o mesmo efeito. Posteriormente neste artigo, criaremos nosso próprio script usando a biblioteca Blynk para se conectar ao serviço.

A segunda opção é hospedar seu próprio servidor Blynk. Blynk fornece um servidor Java baseado em Netty de código aberto que pode ser executado a partir do seu computador, ou até mesmo um Raspberry Pi. Isso tem vários benefícios para alguns usuários em termos de funcionalidade e segurança, embora para nossos exemplos aqui nos concentremos no uso do servidor em nuvem Blynk fornecido.

site blynk

A biblioteca de Blynk

O terceiro e último elemento do Blynk é a biblioteca Blynk. Esta biblioteca funciona com uma enorme lista de placas de desenvolvimento para permitir a comunicação entre o aplicativo e seu hardware.

Na sua forma mais simples, tudo o que é necessário é instalar a biblioteca e carregar um dos exemplos de anotações bem anotados fornecidos.

Blynk: Initial Setup

Instale o aplicativo Blynk no seu smartphone e crie uma conta. Certifique-se de usar um endereço de e-mail que você possa acessar, pois é onde seus tokens de autorização serão enviados. Agora crie um projeto, selecionando qual placa você usará e como se conectará a ela. Ambos os exemplos aqui se conectam via Wi-Fi, embora conexões via Bluetooth, Ethernet e até GSM também sejam possíveis.

Crie seu projeto. Isso enviará automaticamente um token de autorização. Se não o receber, pode reenviá-lo, seleccionando o ícone de definições do projecto (a porca pequena), seleccionando o seu dispositivo e seleccionando “E-mail”.

Em seguida, instale as bibliotecas Blynk no site da Blynk. Para o Arduino, instale a biblioteca copiando os arquivos para sua pasta Arduino> libraries . Se você é novo no Arduino, aqui está um guia para você começar Começando com o Arduino: um guia para iniciantes Começando com o Arduino: um guia para iniciantes Arduino é uma plataforma de prototipagem eletrônica de código aberto baseada em hardware flexível e fácil de usar Programas. É destinado a artistas, designers, amadores e qualquer pessoa interessada em criar objetos ou ambientes interativos. Consulte Mais informação .

Para o Raspberry Pi, você precisará certificar-se de ter o Node.js instalado primeiro. Há um guia para instalar o Node.js neste artigo Como fazer uma luz Wi-Fi DIY controlada por Siri Como fazer uma luz Wi-Fi controlada por Siri DIY Neste guia, você aprenderá a criar um Wi-Fi luz controlável e controlá-lo com Siri. Leia mais se você precisar.

Em primeiro lugar, verifique se o seu Pi está atualizado e se o pacote essencial da compilação está instalado.

sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential 

Em seguida, instale o Node Package Manager, a biblioteca OnOff e a biblioteca Blynk digitando isso na janela do Terminal.

 sudo npm install -g npm sudo npm install -g onoff sudo npm install -g blynk-library 

Você pode verificar se tudo funcionou executando o script de teste Blynk:

 blynk.js [YourAuthorizationTokenHere] 

Desde que tudo esteja funcionando, deve ficar assim:

script de teste blynk pi blynk

Se você receber algum erro, verifique se o Pi está atualizado e se você tem a versão mais recente do Node.js instalada, antes de reinstalar as bibliotecas NPM, OnOff e Blynk.

Configuração rápida com o NodeMCU

Este primeiro exemplo mostra como é rápido configurar sistemas simples usando o Blynk. Não requer codificação e, uma vez configurado, é completamente independente. Desde que a placa tenha acesso à sua conexão Wi-Fi, você poderá acessá-la de qualquer lugar usando seu smartphone.

Para começar, configure um circuito simples em uma placa de montagem. Conecte o pino D0 à perna positiva de um LED e de volta ao pino GND através de um resistor de 220 Ohm.

nodemcu fritzing

Abra seu projeto NodeMCU no aplicativo Blynk. À direita, selecione o widget Botão no menu. Selecione o seu botão no seu projeto para abrir o seu menu de propriedades. Aqui você pode nomeá-lo e escolher qual pino na sua placa NodeMCU deve afetar. Selecione o pino D0 na lista de saída e alterne o modo para torná-lo um interruptor de ativação e desativação, em vez de um interruptor de pressão momentâneo.

Pressione de volta (todas as alterações são salvas automaticamente) e, em seguida, pressione o ícone de reprodução no canto superior direito para iniciar seu aplicativo. Você pode pressionar este mesmo botão a qualquer momento para voltar a editar seu projeto.

Em seguida, abra o Arduino IDE e escolha sua placa e porta NodeMCU no menu de ferramentas. Se você não vê sua placa neste menu, pode ser necessário instalar as bibliotecas ESP8266 (este guia deve ajudar a encontrar o Arduino Killer: ESP8266 Conheça o Arduino Killer: ESP8266 E se eu dissesse a você que há uma placa de desenvolvimento compatível com Arduino? com built-in Wi-Fi por menos de US $ 10? Bem, existe. Leia mais).

Agora abra o script autônomo ESP8266 Blynk fornecido em sua biblioteca, navegando para Arquivo> Exemplos> Blynk> Boards_WiFi> ESP8266_Standalone . Substitua o marcador do token de autorização pelo que você recebeu por email e insira os detalhes do Wi-Fi.

 char auth[] = "YourAuthToken"; char ssid[] = "YourNetworkName"; char pass[] = "YourPassword"; 

Salve o esboço com um novo nome e faça o upload para o seu quadro. Agora, quando você pressiona o botão no aplicativo, o LED deve ligar e desligar. Se não estiver funcionando, verifique se você pressionou o ícone de reprodução no aplicativo.

Em casos simples como esses, Blynk é incrivelmente rápido de configurar.

É importante notar também que, uma vez que isso usa o servidor Blynk, você pode controlar sua placa de qualquer lugar, desde que a placa tenha acesso à sua conexão Wi-Fi doméstica, e seu smartphone tenha acesso a dados móveis.

Blynk no Raspberry Pi

Você pode usar o Blynk exatamente da mesma maneira que no exemplo acima no Raspberry Pi usando o script de teste do Blynk, mas existem algumas funcionalidades mais profundas que os pinos virtuais do Blynk fornecem, os quais iremos analisar agora.

Blynk trabalha usando o Node.js, então o código que iremos escrever hoje será em Javascript. Se você é um novo para o idioma, este deve ser um ótimo primer para começar a começar a codificar JavaScript agora com estes 5 grandes recursos livres começar a codificar JavaScript agora mesmo com estes 5 grandes recursos grátis Leia mais.

Usaremos a biblioteca Blynk para criar um aplicativo que informe se um sensor de porta está aberto ou fechado, e enviaremos um email e enviaremos uma notificação para o seu celular quando a porta for aberta.

Você vai precisar de:

  • Interruptor magnético da porta (também conhecido como interruptor reed)
  • 1x 1k? resistor
  • 1x 10k? resistor
  • 1 x 220? resistor
  • 1x LED
  • Cabos de tábua de pão e conexão

Configure sua breadboard assim:

pi fritzing

Note que a biblioteca de Blynk usa os números GPIO dos pinos do Pi, então vamos usá-los ao longo deste projeto. Conecte os pinos 5V e GND aos trilhos de energia na breadboard. Conecte o pino 22 GPIO no Raspberry Pi ao ânodo de LED e conecte o catodo ao trilho de aterramento através do 220? resistor. Conecte o pino GPIO 17 a um lado do 1k? resistor, e conecte o 10? resistor para o outro lado, eo lado 5V do trilho de energia. Finalmente, conecte sua chave reed ao lado GND do trilho de energia de um lado, e na linha onde o 1k? e 10k? resistores se encontram do outro. Essa configuração do resistor de pull-up fará com que a tensão no pino 17 seja lida quando o comutador abrir.

Crie um novo projeto no aplicativo Blynk e selecione sua placa Raspberry Pi. No menu do widget, selecione um widget Valor de Rótulo, E-mail e Notificação

Selecione o Valor Rotulado, nomeie-o e escolha o pino virtual V0 como seu pino de entrada. Você também pode alterar como as informações são exibidas. Neste caso, adicione “A porta está” antes de / pin / na etiqueta. Podemos deixar o valor de Freqüência de leitura em sua configuração padrão, mas você pode alterar isso para enviar dados para seu aplicativo em uma taxa diferente.

Vale a pena notar que você não precisa inserir um endereço de e-mail no widget de e-mail, pois iremos incluí-lo no código posteriormente, embora o widget deva estar presente para que ele funcione.

Quando estiver satisfeito com a aparência do seu aplicativo, pressione o botão Reproduzir no canto superior direito.

valor rotulado do projeto

Agora crie um novo script chamado blynkdoor.js . O código completo está disponível totalmente anotado aqui.

 sudo nano blynkdoor.js 

Precisamos começar importando a biblioteca Blynk, adicionando nossa chave de autorização e criando uma instância do Blynk para usar em nosso script.

 var blynklib = require('/usr/local/lib/node_modules/blynk-library'); var AUTH ='PasteAuthorizationCodeHere' var blynk = new blynklib.Blynk(AUTH); 

Nós também precisamos importar a biblioteca OnOff e declarar variáveis ​​que configuram nosso switch reed e LED. Também vamos criar uma variável para o pino virtual que configuramos no aplicativo Blynk.

 var Gpio = require('onoff').Gpio, reed = new Gpio(17, 'in', 'both'), //register changes 'both' when switch is opened and closed led = new Gpio(22, 'out'); var virtualPin = 0; 

Agora vamos usar a função watch da biblioteca OnOff para observar as mudanças no nosso switch reed. O interruptor da porta está em 0 ou 1, e sempre que esse valor muda, escrevemos essa mudança no pino do LED.

 reed.watch(function(err, value){ led.writeSync(value); 

Podemos usar o valor para também enviar dados para o aplicativo Blynk. Se a porta estiver fechada, queremos ver isso no seu widget Valor com rótulo. Se a porta abrir, queremos receber uma notificação e um e-mail nos informando. Fazemos isso com uma instrução if e usando as funções virtualWrite, notify e email da biblioteca Blynk. A documentação completa do Blynk pode ser encontrada aqui.

 if(value==0){ blynk.virtualWrite(virtualPin, "Closed"); console.log('Door Closed'); }; if(value==1){ blynk.notify("The door just opened!"); blynk.email("[email protected]", "Front Door", "The front door just opened."); blynk.virtualWrite(virtualPin, "Open"); console.log('Door Open'); }; }); 

Agora, sempre que o switch reed registra uma alteração de valor, os dados são enviados para o nosso pin virtual e, no caso da porta, abrem para o widget de notificação no aplicativo, bem como para o console. Observe que as chaves finais são de onde começamos a função de observação acima.

Finalmente, precisamos redefinir o pino quando o programa terminar. Isso é o mesmo que o GPIO.cleanup () com o qual você provavelmente já está familiarizado.

 process.on('SIGINT', function () { led.unexport(); reed.unexport(); }); 

Agora salve seu código e saia. Execute seu script usando o nó.

 sudo node blynkdoor.js 

Agora, quando você afasta o ímã do sensor de palheta, você deve receber uma notificação informando que a porta foi aberta e que seu monitor rotulado deve mudar. Feche a chave novamente e você verá que a exibição rotulada muda novamente.

Vale a pena notar que o aplicativo Blynk deve estar em execução no seu telefone para receber as notificações por push, embora os emails funcionem independentemente de o aplicativo estar ou não em execução.

No pouco tempo passado com Blynk, parece um serviço muito fácil de usar. Na sua forma mais simples, permite que pessoas sem conhecimentos de codificação construam facilmente sistemas de automação residencial DIY. Com um pouco mais de conhecimento de codificação, ele se torna ainda mais poderoso, permitindo sistemas muito mais complexos e vários acionadores de eventos a partir de pressionamentos de um único botão no aplicativo.

Este projeto foi uma introdução básica ao Blynk, embora o que nós cobrimos aqui possa ser facilmente modificado para quase qualquer projeto de automação residencial ou microcontrolador.

Você já usou o Blynk? Você tem um sistema complexo louco usando o serviço que gostaria de compartilhar conosco? Deixe-nos saber nos comentários abaixo!

Crédito de imagem: Giuseppe Caccavale via YouTube.com

In this article