Table des matières:

Projeto SmartHome - Repositor De Alimento Para Pet + Controle De Iluminação: 7 Étapes
Projeto SmartHome - Repositor De Alimento Para Pet + Controle De Iluminação: 7 Étapes

Vidéo: Projeto SmartHome - Repositor De Alimento Para Pet + Controle De Iluminação: 7 Étapes

Vidéo: Projeto SmartHome - Repositor De Alimento Para Pet + Controle De Iluminação: 7 Étapes
Vidéo: Faça um alimentador automático para cachorros #ManualMaker Aula 12, Vídeo 2 2024, Juin
Anonim
Projeto SmartHome - Repositor De Alimento Para Pet + Controle De Iluminação
Projeto SmartHome - Repositor De Alimento Para Pet + Controle De Iluminação

Este tutorial apresenta uma solução SmartHome simples que permite a reposição de alimento para animais de estimação (pet) e controle automático de illuminação evitando, por motivos de viagem, os incovenientes de incomodar vizinhos para acender luzes pet, hotel gasto alimentar pet ou não ter com quem deixá-lo, e muitas vezes até o cancelamento da viagem.

O projeto utiliza o hardware Dragonboard 410C versão linux linaro instalada e um kit Linker Mezzanine

(placa, sensor de luminosidade, LED, relé e botão). O sistema possui a capacidade de se comunicar com um servidor cloud, neste caso o Dweet.io, e assim, possibilitar a comunicação entre o equipamento local e um aplicativo desenvolvido com Ionic, que realiza o controle e notificaçes da solu permitin Smart Home e controlar o status do sistema remotamente.

Segue na figura anexa o diagrama em blocs da solução.

Os sensores e atuadores deste projeto serão capazes de:

a) Ler as informações de luminosidade de um ambiente através do sensor de luminosidade (LDR) e controlar automaticamente o acionamento de uma lâmpada (led) dependendo do nível de luminosidade programado.

b) Un reposição de alimento é realizada quando o pet pressiona uma base colocada sobre um botão, que ao ser pressionado muda o estado de um relé. Une mudança de estado do relé libera um dispoitivo que permita a reposição de alimento para o pet.

Étape 1: Liste des matières premières

Liste des matériaux
Liste des matériaux
Liste des matériaux
Liste des matériaux
Liste des matériaux
Liste des matériaux
  • · Dragonboard 410C
  • 1 x mezzanine de liaison
  • 1 x module LED
  • · 1 x module Relé
  • · 1 x capteur de luminosidade (LDR)
  • · 1 x botão de pressão
  • 1 x clé USB
  • · 1 x mose USB
  • · 1 x moniteur HDMI
  • · Conexão com a internet

Étape 2: CONNEXES

CONEXÕES
CONEXÕES

Connecteur ou capteur de luminosité avec l'entrée analogique ADC2;

Leitura da luminosidade (em Lumi) externe.

· Conectar o LED avec numérique D1;

Esta saída será utilizada para simular a luz para illuminação

Conectar o Relé na saida digital D2;

Este Relé será responsável por acionar o dispositivo de reposição de alimento.

Conectar o Botão na saida digital D3;

Este Botão será responsável pela mudança de estado do relé.

Étape 3: PROGRAMA - Instalação Do Python, Bibliotecas Adicionais E Definição Dos Pinos Na Dragonboard

Un linguagem de programação utilizada foi o Python.

O próximo passo é a instalação do python, das bibliotecas adicionais, protocolo SPI e definição de pinos na Dragonboard, conforme as seguintes instruções:

Initialement, ouvrez le terminal et exécutez;

  • sudo apt-get mise à jour
  • sudo apt-get mise à niveau
  • sudo apt-get dist-upgrade

Editeur de texte

  • sudo apt-get install gedit
  • sudo apt-get installer python-pip

Biblioteca adicionais

  • sudo apt-get install build-essential autoconf automake libtool-bin pkg-config python-dev
  • redémarrage sudo

LIBSOC

  • git clone
  • cd libsoc sudo autoreconf -i sudo./configure --enable-python=2 --enableboard= dragonboard410c --with-board-configs
  • faire sudo
  • sudo faire installer
  • sudo ldconfig /usr/local/lib
  • redémarrage sudo

96Planches

git clone

· Antes de instalar essa biblioteca é necessário verificar se a sua versão é compatível com a versão da LIBSOC previamente instalada. Non arquivo /home/linaro/96boardsGPIO/Archive/lib/gpio.conf procure pela string LS_SHARE e substitua por LS_GPIO_SHARED;

  • Após prossiga com a instalação:
  • cd 96CartesGPIO/
  • sudo./autogen.sh
  • sudo./configurer
  • faire sudo
  • sudo faire installer
  • sudo ldconfig

SPIDEV

  • Para acesso aos sensores analógico é utilizado o protocolo SPI. A instalação da biblioteca é explicada a seguir:
  • git clone
  • cd py-spidev
  • sudo python setup.py installer
  • sudo ldconfig
  • redémarrage sudo
  • Será necessário incluir no arquivo sudo gedit /usr/local/etc/libsoc.conf a seguinte definição GPIO-CS = 18 et GPIO-12 = 18.

Para que as funções POST e GET funcionem com o site dweet.io é necessário instalar a biblioteca “requests”. O procedimento é mostrado abaixo:

demandes d'installation sudo pip

Étape 4: PROGRAMA - Código Fonte Principal E Dweet

PROGRAMA - Código Fonte Principal E Dweet
PROGRAMA - Código Fonte Principal E Dweet

O código fonte principal em python está nomeado como smartHome_valerio_M6.py. O código fonte dweet.py contém as funções necessárias para acesso ao portal dweet (nuvem). Os dois arquivos devem estar na mesma pasta executar o programa.

Para executar o dweet use o seguinte comando: sudo/home/linaro/…/dweet.py

Par executar o programa fonte principal use o seguinte comando: sudo python /home/linaro/…/ smartHome_valerio_M6.py

O funcionamento do software basicamente consiste

1) Importação de bibliotecas adicionais, importar gpio, GPIO et Dweet de bibliotecas adicionais.

Identificacação dos sensores e atuadores nas portas onde são conectados, bem como, definir a função in/out dos respectivos pinos.

Configuration de la lecture de SPI avec le capteur de luminosité pour une entrée ADC2.

2) par défaut readLDR(gpio)

Realiza a leitura do sensor de luminosidade e o valor de leitura é apresentado na tela como " Valor do LDR:xxx"

3) if_name_=='_main_':

Na primeira parte o valor de luminosidade é comparado com um valor de referência (neste caso 500), quando o nível de luminosidade for menor que a referência (500) a luz do ambiente se acende (módulo Led) e é apresentado na tela a mensagem "Luz: acesa". Quando o nível de luminosidade pour maior que o definido a luz se apaga (modulo led) sendo apresentada a mensagem "Luz: apagada".

Numa segunda parte ao acionar o botão de pressão (simula pet pressionando o botão subindo em uma base colocada sobre esse botão), o relé mudará de estado de ligado para desligado ou de desligado para ligado, e ssa mudança de estado do relé aciona um, que permite un reposição de alimento.

O valor do estado do botão é colocado na variável button_value e é apresentada na tela como "Botao:x", onde x é o valor do estado. Ainda são mostrados na tela o valor da variável status e Cloud button

A comunicação com a nuvem é feita através do comando:

dweet.dweet_by_name(name="projeto_val", data={"rele":0, "Luminosidade":value, "Luz":luz_status})

enviando as informações de estado do rele, a leitura do sensor de sensibilidade e se Luz está acesa ou apagada.

Seguem anexo o código fonte principal smartHome_valerio_M6.py e o codigo fonte dweet.py

O próximo passo é criar no site dweet.io: um post para permitir o acionamento ou desacionamento do relé remotamente e um get para verificar na nuvem as informações do sistema.

Étape 5: Configuração Do Site Dweet

Configuração Do Site Dweet
Configuração Do Site Dweet
Configuração Do Site Dweet
Configuração Do Site Dweet

O próximo passo é acessar o serviço da nuvem.

Abrir no seu navegador o site Dweet.io cliquez sur "Play" et em seguida cliquez sur POST(/dweet/for/{thing})

Criar uma {chose} digitando no campo chose: projeto_val

Obs: A thing criada deve ser a mesma presente no programa do código fonte python, no caso, projeto_val.

Preencha o campo content conformeindicado abaixo e em seguida clique em "Essayez-le !":

{

« rele »: 0, « Luminosidade »: 550, « Luz »: 0, }

Veja detalhes nas figuras acima.

A verificação dos dados recebidos pelo dweet é feita pelo GET.

Cliquez sur GET /get/latest/dweets/for/{thing}

Digite no campo thing: projeto_val (obs: mesma {thing} criada no POST).

Cliquez sur "Essayez-le !"

Em Response Body em "content" teremos a informação recebida:

{

« rele »: 0, « Luminosidade »: 550, « Luz »: 0, }

Veja detalhes nas figuras acima.

O exposto acima trata-se dos métodos "post" e "get", respectivement, utilizados para passar valores de uma página para outra em um site dinâmico.

Isto feito e com o programa em python rodando na placa dragon board, é possível alterar o estado do "rele" remotamente alterando seus valores de "0" para "1" ou de "1" para "0" através página POST do dweet e clicando em "Essayez-le". Na página GET do dweet são visualizadas as informações atualizadas do "rele", "Luminosidade" e "Luz" clicando em "Essayez-le".

Étape 6: APLICATIVO - Instação Do Ionic

O aplicativo foi desenvolvido em uma plataforma híbrida utilizando o cadre ionique.

Antes de desenvolver o aplicativo para o smartphone, é preciso instalar o Ionic no computador pessoal. Os passos para a instalação e verificação se a mesma foi bem-sucedida é mostrado abaixo:

  • Entre aucun site: https://nodejs.org/en/ e faça o download da versão plus recente LTS do Node
  • Instale o Node no seu computador pessoal
  • Envie de commandes à l'invite de commandes (cmd) pour vérifier si une installation a été effectuée avec succès:

nœud -v

npm -v

Instale o Ionic com os comandos abaixo através do prompt de comandos (cmd):

npm install –g cordova ionique

npm installer –g cordova

Verifique se o Ionic foi instalado com sucesso usando o comando abaixo:

ionique -v

Étape 7: APLICATIVO - Desenvolvimento E Operação

APLICATIVO - Desenvolvimento E Operação
APLICATIVO - Desenvolvimento E Operação

Apresentamos o desenvolvimento do aplicativo com o framework Ionic, que irá se comunicar com o dweet.io e assim, também, ler e alterar as informações que ocorrem na dragon board.

Primeiramente foi criado um aplicativo em branco digitando o seguinte comando no prompt do windows (cmd):

ionic start smart_home_valerio_M6 vierge (utiliser o nome do projeto)

Em seguida através da IDE Visual Studio Code pour aberta a pasta concurrento o aplicativo em branco (smart_home_valerio_M6) et foram alterados os seguintes arquivos:

  • home.html (src/pages/home) parte visual do aplicativo
  • home.ts (src/pages/home) realiza as funções do código e alterações das propriedades da tela
  • app.module.ts (src/app)

Pas de home.html e home.ts - foram alterações conforme necessidade do projeto para comunicar-se de forma adequada com o dweet.io

Aucune app.modules.ts - modificações para permitir comunicação

Em sguida foi necessário criar um arquivo para a comunicação com o dweet. Abrindo um prompt no próprio Visual Studio aberto e digitando:

fournisseur de génération ionique dweet

Uma vez criado esse arquivo, que facilita a comunicação via post e via get do aplicativo, o código dweet.ts foi alterado:

  • com a criação de um método para buscar comme le font les informateurs. (avoir)
  • com a criação de um método para fazer o set das variações (post)
  • criação de uma variável = baseURL para definir que está usando o dweet como prouveur

Finalizadas alterações o aplicativo smart_home_valerio_M6 est pronto e segue em anexo completeo com todos os arquivos.

Agora pour ouvrir ou aplicativo basta digitar aucune invite mesmo do Visual Studio Code o commando pour ouvrir ou aplicativo:

service ionique

O aplicativo será aberto no seu navegador (visual na figura acima) e estará pronto para comunicar-se (ler e atualizar os dados) com a nuvem dweet, que posteriormente acessa a dragonboard para atualização dos status dos sensores e atuadores.

  • Pet Alimentação - Muda estado do relé, que aciona o dispositivo de alimentação do pet.
  • Luminosidade - Mostra o valor de luminosidade.
  • Luz - informa se a luz está apagada ou acesa.

Conseillé: