Automação residencial controlada por IoT usando Raspberry Pi e Particle Cloud
Automacao-residencial-controlada-por-IoT-usando-Raspberry-Pi-e-Particle-Cloudblog_image_banner

Automação residencial controlada por IoT usando Raspberry Pi e Particle Cloud


Raspberry Pi é um dos mais famosos computadores de baixo custo e uma ferramenta poderosa para criar protótipos de diferentes tipos de IoT e projetos embarcados. Com a popularidade do Raspberry pi no domínio IoT, a Particle Cloud começou a oferecer suporte a esta placa em sua plataforma.


O Particle Cloud é uma plataforma IoT muito popular que pode ajudá-lo a começar com tudo o que você deseja fazer no seu dispositivo IoT. O Particle é uma plataforma de dispositivo IoT confiável, escalonável e segura. Existem muitos dispositivos de Partículas habilitados para IoT, como Xenon, Photon, Electron, etc., que possuem diferentes funcionalidades de acordo com a nossa necessidade.


Existem muitas plataformas IoT como Blynk, ThingSpeak etc. que você pode usar para conectar Raspberry Pi a nuvens IoT, mas a plataforma de Particle Cloud tem alguns recursos incríveis que a tornam diferente das outras. Como se você pudesse executar seu código Arduino em seu Raspberry Pi usando o IDE de Particle Cloud e programar seu Pi de qualquer lugar do mundo, agora isso é algo legal! Além disso, você pode integrar facilmente IFTTT, Google Cloud ou Microsoft Azure.


Vamos começar a explorar a plataforma do Particle Cloud, tornando o aplicativo Raspberry Pi tão simples para controlar aparelhos domésticos AC usando o aplicativo Particle Mobile e Particle IDE online de qualquer lugar do mundo.


Componentes necessários

Raspberry PI com Raspbian instalado nele

Módulo de Relé

Lâmpada 220v

Fios de ligação


Presume-se que o seu Raspberry Pi já tenha um sistema operacional atualizado. Caso contrário, siga o tutorial Introdução ao Raspberry Pi antes de continuar. Aqui, estamos usando Rasbian Jessie instalado Raspberry Pi 3.


Diagrama de circuito


O diagrama de circuito para este projeto de automação residencial Raspberry Pi é simples:


Para conectar o Raspberry Pi ao seu laptop, você pode usar o Putty ou o visualizador VNC. Saiba mais sobre como executar um Raspberry Pi sem cuidado sem monitor aqui.


Temos que instalar o agente de partículas em nosso Raspberry Pi para conectá-lo com a Particle Cloud. O Particle Agent é um serviço de software executado em segundo plano para interagir com os pinos GPIO do Raspberry pi. Antes de instalar o agente, você tem que fazer uma conta no Particle.io.


Começaremos criando uma conta na Particle Cloud e conhecendo a interface da plataforma de partículas.


Configurar conta do Particle Cloud e Raspberry Pi


1. Vá para Particle.io e clique em Console no canto superior direito. Agora, clique em Criar conta. Preencha todas as informações e clique em Cadastre-se.


2. Agora, execute o comando abaixo no terminal do raspberry pi para instalar o agente de partículas.


bash <( curl -sL https://particle.io/install-pi )



Digite seu e-mail e senha da Particle Cloud que você criou na primeira etapa.


3. O agente de partículas foi instalado com êxito no Pi e executado em segundo plano. Ele também está ouvindo a Particle Cloud. Você pode obter mais informações sobre o agente usando os comandos abaixo.


Agora, vamos pular para a parte de codificação e explorar a plataforma de partículas.


Controle de aparelhos AC usando Raspberry Pi e Particle Cloud


Se você instalou com sucesso o agente Particle no seu Pi, então você pode encontrar o seu dispositivo no console do Particle. Como mostrado abaixo


Como você pode ver, existem muitas opções na parte esquerda da tela que incluem adicionar novos dispositivos, criar redes mesh, integração com IFTTT, Microsoft Azure e Web IDE.


1. Primeiro, clique na opção Web IDE. Uma nova guia será aberta com IDE online, conforme mostrado abaixo.


2. Agora, você pode usar seu código Arduino no Raspberry Pi. Também são fornecidos alguns códigos de exemplo. Controlaremos uma lâmpada CA online, portanto, clique no exemplo de LED conectado à Web e conecte seu módulo de relé conforme mostrado no diagrama de circuito. O pino usado no código é D7. O mapeamento de pinos é mostrado abaixo.


3. Agora, compile o código e clique em Flash. Verifique se o Raspberry Pi está conectado à Internet. Além disso, você pode alterar o código de acordo com sua necessidade, mas você deve bifurcar o código de exemplo que deseja usar.


4. Como você pode ver no código, sempre que você enviar “on” a lâmpada acenderá e se sempre que você enviar “off” a lâmpada desligar. Para dar os comandos, volte para a guia do console e clique no dispositivo. Clique no botão atualizar, você verá uma função led que precisa de um argumento para realizar a chamada de função. Aqui você deve escrever “on” e “off” para ligar e desligar a lâmpada. Depois de escrever o argumento, clique na chamada.


5. Agora, controle a lâmpada usando o aplicativo móvel. Baixe o aplicativo Particle Cloud para Android na Playstore e faça login com as mesmas credenciais que você assinou em seu navegador.



No aplicativo, você verá que seu pi de framboesa está listado, clique nele.


6. Clique em Dados. Você encontrará a mesma função de led aqui. Basta digitar o argumento e clicar em enviar. Desta forma, você também pode controlar seus aparelhos usando um smartphone.


7. Há um exemplo de código especial no IDE da web chamado Tinker. Depois de fazer o upload deste código no Raspberry Pi, você pode controlar muitos pinos de uma vez sem codificá-lo. Além disso, você pode obter leituras do sensor sem especificar os pinos no código.


8. Assim que você atualizar o código de exemplo do Tinker, você verá a opção Tinker na frente do seu dispositivo no aplicativo. Clique nele.


9. Agora, escolha o pino no qual deseja obter a saída ou entrada. Ao clicar, você será solicitado a clicar em digitalWrite, digitalRead, analogRead e analogWrite. Em nosso caso, clique em digitalWrite no pino D7.


Após atribuir a função, basta clicar no pino D7. Você verá a lâmpada brilhando. Ao premir novamente D7, a lâmpada apaga-se. Da mesma forma, você pode obter os dados do sensor em diferentes pinos e pode controlar os aparelhos ao mesmo tempo. 


Além de usar o IDE online, você pode baixar o IDE do Particle Desktop e o Workbench, onde pode escrever código e fazer flash da mesma forma que o IDE online. Mas esses IDEs também são softwares de desenvolvimento online. Para obter mais informações sobre a Particle Cloud, você pode verificar a documentação oficial aqui.


O código completo com um vídeo de demonstração é fornecido abaixo. Confira mais projetos de automação residencial aqui.


// -----------------------------------

// Controlling LEDs over the Internet

// -----------------------------------

// First, let's create our "shorthand" for the pins

// Same as in the Blink an LED example:

// led1 is D0, led2 is D7

int led2 = D7;

// Last time, we only needed to declare pins in the setup function.

// This time, we are also going to register our Particle function

void setup()

{

   // Here's the pin configuration, same as last time

   pinMode(led1, OUTPUT);

   pinMode(led2, OUTPUT);

   // We are also going to declare a Particle.function so that we can turn the LED on and off from the cloud.

   Particle.function("led",ledToggle);

   // This is saying that when we ask the cloud for the function "led", it will employ the function ledToggle() from this app.

   // For good measure, let's also make sure both LEDs are off when we start:

   digitalWrite(led1, LOW);

   digitalWrite(led2, LOW);

}

// Last time, we wanted to continously blink the LED on and off

// Since we're waiting for input through the cloud this time,

// we don't actually need to put anything in the loop

void loop()

{

   // Nothing to do here

}

// We're going to have a super cool function now that gets called when a matching API request is sent

// This is the ledToggle function we registered to the "led" Particle.function earlier.

int ledToggle(String command) {

    /* Particle.functions always take a string as an argument and return an integer.

    Since we can pass a string, it means that we can give the program commands on how the function should be used.

    In this case, telling the function "on" will turn the LED on and telling it "off" will turn the LED off.

    Then, the function returns a value to us to let us know what happened.

    In this case, it will return 1 for the LEDs turning on, 0 for the LEDs turning off,

    and -1 if we received a totally bogus command that didn't do anything to the LEDs.

    */

    if (command=="on") {

        digitalWrite(led1,HIGH);

        digitalWrite(led2,HIGH);

        return 1;

    }

    else if (command=="off") {

        digitalWrite(led1,LOW);

        digitalWrite(led2,LOW);

        return 0;

    }

    else {

        return -1;

    }

}


ENTRE EM CONTATO COM A LOJAMUNDI.

Assine nossa Newsletter! É gratuito!

Cadastre seu nome e email para receber novidades e materiais gratuitos da Lojamundi.