Cov txheej txheem:

Projeto SmartHome - Repositor De Alimento Para Tsiaj + Controle De Iluminação: 7 Kauj Ruam
Projeto SmartHome - Repositor De Alimento Para Tsiaj + Controle De Iluminação: 7 Kauj Ruam

Video: Projeto SmartHome - Repositor De Alimento Para Tsiaj + Controle De Iluminação: 7 Kauj Ruam

Video: Projeto SmartHome - Repositor De Alimento Para Tsiaj + Controle De Iluminação: 7 Kauj Ruam
Video: Policial desumilde ! O final foi surpreendente 🥹 2024, Hlis ntuj nqeg
Anonim
Projeto SmartHome - Repositor De Alimento Para Tsiaj + Controle De Iluminação
Projeto SmartHome - Repositor De Alimento Para Tsiaj + Controle De Iluminação

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

Siv cov cuab yeej siv kho vajtse Dragonboard 410C com los ntawm linux linaro instalada e um kit Linker Mezzanine

(daim ntawv lo, lub teeb pom kev zoo ntawm lub teeb, LED, lub teeb thiab lub teeb ci). Lub kaw lus muaj peev xwm ua tau lub peev xwm ntawm tus neeg siv huab huab, ua haujlwm li cas ntawm Dweet.io, e assim, muaj peev xwm ua kom pom tau zoo los ntawm cov cuab yeej siv hauv zos e um aplicativo desenvolvido com Ionic, que realiza o controle e notificações da solução Smart Home, tso cai pom e tswj hwm lossis xwm txheej ntawm kev ua haujlwm remotamente.

Segue na figura anexa o diagrama em blocos 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) A 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é. Ib mudança de estado do relé libera um dispoitivo que permita a reposição de alimento para o pet.

Kauj Ruam 1: Lista Dos Materiais

Lista Dos Materiais
Lista Dos Materiais
Lista Dos Materiais
Lista Dos Materiais
Lista Dos Materiais
Lista Dos Materiais
  • · Dragonboard 410C
  • 1 x Linker Mezzanine
  • 1 x LED teeb
  • · 1 x Kev Sib Txuas
  • · 1 x sensor de luminosidade (LDR)
  • · 1 x botão de pressão
  • 1 x teclado USB
  • · 1 x nas USB
  • · 1 x saib HDMI
  • · Conexão com hauv internet

Kauj Ruam 2: Txuas ntxiv

CONEXÕES
CONEXÕES

Conectar o sensor de luminosidade na entrada analógica ADC2;

Leitura da luminosidade (em Lumi) sab nraud.

· Sib tham los ntawm LED nrog rau digital D1;

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

Sib tham los ntawm Relé na saída digital D2;

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

Conectar o Botão na saída digital D3;

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

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

Ib nqe lus piav qhia txog kev siv cov cuab yeej siv Python.

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

Inicialmente abra o davhlau ya nyob twg thiab ua;

  • sudo apt-tau hloov tshiab
  • sudo apt-tau hloov tshiab
  • sudo apt-tau nruab dist-upgrade

Editor ntawm texto

  • sudo apt-tau nruab gedit
  • sudo apt-tau nruab nruab sej-pip

Biblioteca adicionais

  • sudo apt-tau nruab tsim-qhov tseem ceeb autoconf automake libtool-bin pkg-teeb tsa sej-dev
  • sudo rov pib dua

LIBSOC

  • git clone
  • cd libsoc sudo autoreconf -i sudo./configure --enable-python = 2 --enableboard = dragonboard410c-nrog-board-configs
  • sudo ua
  • sudo ua kom nruab
  • sudo ldconfig/usr/zos/lib
  • sudo rov pib dua

96 Cov laug cam

git clone

· Antes de instalar essa biblioteca é necessário verificar se a sua versão é compatível com a versão da LIBSOC prelude instalada. Tsis muaj arquivo /home/linaro/96boardsGPIO/Archive/lib/gpio.conf muab pela hlua LS_SHARE e hloov pauv los ntawm LS_GPIO_SHARED;

  • Ua raws li cov lus qhia hauv qab no:
  • cd 96BoardsGPIO/
  • sudo./autogen.sh
  • sudo./configure
  • sudo ua
  • sudo ua kom nruab
  • sudo ldconfig

SPIDEV

  • Para acesso aos sensores analógico é utilizado o protocolo SPI. Cov ntaub ntawv thiab cov ntaub ntawv piav qhia txog cov seguir:
  • git clone
  • cd py-spidev
  • sudo python setup.py nruab
  • sudo ldconfig
  • sudo rov pib dua
  • Será necessário incluir no arquivo sudo gedit /usr/local/etc/libsoc.conf a seguinte definição GPIO-CS = 18 e GPIO-12 = 18.

Para que as funções POST e GET funcionem com o site dweet.io é necessário instalar a biblioteca “thov”. Cov txheej txheem ua raws li cov cai yooj yim:

sudo pip nruab thov

Kauj Ruam 4: PROGRAMA - Código Fonte Tus Thawj Xib Fwb E Dweet

PROGRAMA - Código Fonte Tus Thawj Xib Fwb E Dweet
PROGRAMA - Código Fonte Tus Thawj Xib Fwb E Dweet

O código fonte tus thawj xib fwb em nab nab está nomeado como smartHome_valerio_M6.py. O código fonte dweet.py txuas ntxiv raws li kev lom zem xav tau rau kev nkag mus rau ao portal dweet (nuvem). Os dois arquivos devem estar na mesma pasta executar o programa.

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

Para executar o programa fonte tus thawj coj siv o seguinte comando: sudo python/home/linaro/…/smartHome_valerio_M6.py

Ua raws li cov software yooj yim hauv paus

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

Identificacação dos sensores e atuadores nas portas onde são conectados, bem como, txhais qhov kev lom zem hauv/tawm dos respectivos pinos.

Configuração leitura de SPI ua sensor de luminosidade para entrada ADC2.

2) def readLDR (gpio)

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

3) if_name _ == '_ main_':

Qhov tseem ceeb tshaj ntawm qhov muaj nuj nqis ntawm luminosidade é comparado com um valor de referência (neste caso 500), quando o nível de luminosidade rau 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 rau maior que o definido a luz se apaga (módulo led) sendo apresentada a mensagem "Luz: apagada".

Numa segunda parte ao acionar o botão de pressão (simula tsiaj pressionando o botão subindo em uma puag colocada sobre esse botão), o relé mudará de estado de ligado para desligado ou de desligado para ligado, e essa mudança de estado do relit aciona um, que permite a 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

Kev sib txuas lus nrog cov tub ntxhais kawm uas muaj peev xwm ua tau raws li hauv qab no:

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

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

Seguem anexo o código fonte tus thawj tswj hwm ntseHome_valerio_M6.py e o codigo fonte dweet.py

O próximo passo é criar tsis muaj qhov chaw 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.

Kauj Ruam 5: Configuração Do Site Dweet

Configuração Ua Site Dweet
Configuração Ua Site Dweet
Configuração Ua Site Dweet
Configuração Ua Site Dweet

Lub tsev kawm ntawv qib siab lossis tsev kawm qib siab lossis tsev kawm qib siab.

Abrir no seu navegador o site Dweet.io clicar na aba "Ua si" e em seguida clicar em POST (/dweet/for/{thing})

Criar uma {yam} digitando tsis muaj campo tshaj plaws: projeto_val

Pom: Ib yam criada deve ser a mesma presente no programa do código fonte sej, tsis muaj caso, projeto_val.

Preencha o campo cov ntsiab lus conformeindicado abaixo e em seguida clique em "Sim nws tawm!":

{

"Rov": 0, "Luminosidade": 550, "Lus": 0, }

Veja detalhes nas figuras acima.

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

Clicar em GET/tau/tseeb/dweets/rau/{yam}

Digite tsis muaj campo tshaj: projeto_val (obs: mesma {yam} criada tsis POST).

Clique em "Sim nws!"

Em Teb Lub Cev em "cov ntsiab lus" teremos a informação recebida:

{

"Rov": 0, "Luminosidade": 550, "Lus": 0, }

Veja detalhes nas figuras acima.

O exposto acima trata-se dos métodos "tshaj tawm" e "tau txais", kev hwm, siv tau rau kev siv 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 "relev" remotamente alterando seus valores de "0" para "1" ou de "1" para "0" através página POST do dweet e clicando em "Sim nws tawm". Yog tias koj tau txais dweet são visualizadas raws li cov ntaub ntawv atualizadas ua "tso tawm", "Luminosidade" thiab "Luz" clicando em "Sim nws tawm".

Kauj Ruam 6: APLICATIVO - Instação Do Ionic

Aplicativo foi desenvolvido em uma plataforma híbrida utilizando o Ionic framework.

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

  • Tsis muaj qhov chaw: https://nodejs.org/en/ e faça o download da versão mais recente LTS do Node
  • Instale o Node no seu computador pessoal
  • Envie os comandos ua sai de comandos (cmd) para verificar se a instalação foi feita com sucesso:

node -v

npm -v

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

npm nruab –g cordova ionic

npm nruab –g cordova

Txheeb xyuas qhov Ionic foi instalado com sucesso usando lossis comando abaixo:

ionic -v

Kauj Ruam 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 tsis muaj qhov ua rau windows (cmd):

ionic pib smart_home_valerio_M6 khoob (siv o nome ua projeto)

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

  • home.html (src/nplooj ntawv/tsev) parte nrig txog kev pom ua aplicativo
  • home.ts (src/nplooj ntawv/tsev) realiza as funções do código e alterações das propriedades da tela
  • app.module.ts (src/app)

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

Tsis muaj app.modules.ts - kev hloov kho rau kev tso cai comunicação

Peb sguida foi necessário criar um arquivo para a comunicação com o dweet. Abrindo um tam sim tsis muaj próprio Visual Studio aberto e digitando:

ionic tsim tus muab kev pabcuam 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 as informações do dweet. (tau)
  • com a criação de um método para fazer o set das variações (ncej)
  • criação de uma variável = baseURL rau lub ntsiab lus tseem ceeb que está usando o dweet como provedor

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

Agora para abrir o aplicativo basta digitar tsis muaj mesmo tam sim rau Visual Studio Code o comando para abrir o aplicativo:

siv ionic

O aplicativo será aberto no seu navegador (nrig txog kev pom 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 dosage sensores e atuadores.

  • Tsiaj Alimentação - Muda estado do relé, que aciona o dispositivo de alimentação ua tsiaj.
  • Luminosidade - Cov khoom muaj nqis ntawm luminosidade.
  • Luz - cov ntaub ntawv se luz está apagada ou acesa.

Pom zoo: