Tabla de contenido:
- Paso 1: Lista dos Materiais
- Paso 2: CONEXÕES
- Paso 3: PROGRAMA - Instalação Do Python, Bibliotecas Adicionais E Definição Dos Pinos Na Dragonboard
- Paso 4: PROGRAMA - Código Fonte Principal E Dweet
- Paso 5: Configuração Do Site Dweet
- Paso 6: APLICATIVO - Instação Do Ionic
- Paso 7: APLICATIVO - Desenvolvimento E Operação
Video: Projeto SmartHome - Repositor De Alimento Para Pet + Control De Iluminação: 7 Pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Este tutorial apresenta uma solução SmartHome simples que permite a reposição automática de alimento para animais de estimação (pet) e controle automático de iluminação evitando, por motivos de viagem, os incovenientes de incomodar vizinhos para acender luzes e alimentar o pet, gastos com hotelzinho de pet ou não ter com quem deixá-lo, e muitas vezes até o cancelamento da viagem.
O proyecto utiliza o hardware Dragonboard 410C con versión linux linaro instalado 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ção Smart Home, permitindo visualizar e controlar el estado del sistema de forma remota.
Segue na figura anexa o diagrama em blocos da solução.
Os sensores e atuadores deste projeto serão capaces de:
a) Ler as informações de luminosidade de um ambiente através do sensor de luminosidade (LDR) y controlar automáticamente o acionamento de uma lâmpada (led) dependiendo del nível de luminosidade programado.
b) Una 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é. A mudança de estado do relé libera um dispoitivo que permite a reposição de alimento para o pet.
Paso 1: Lista dos Materiais
- · Dragonboard 410C
- 1 x entrepiso Linker
- 1 x módulo LED
- · 1 x módulo Relé
- · 1 x sensor de luminosidade (LDR)
- · 1 x botão de pressão
- 1 x teclado USB
- · 1 x USB Mose
- · 1 x monitor HDMI
- · Conexão com a internet
Paso 2: CONEXÕES
Conectar o sensor de luminosidad en la entrada analógica ADC2;
Leitura da luminosidade (em Lumi) externa.
· Conectar o LED na saída digital D1;
Esta saída será utilizada para simular a luz para iluminação
Conectar o Relé na saída digital D2;
Este Relé será una respuesta 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é.
Paso 3: PROGRAMA - Instalação Do Python, Bibliotecas Adicionais E Definição Dos Pinos Na Dragonboard
Un lenguaje de programación utilizado para Python.
O próximo paso é a instalação do python, das bibliotecas adicionais, protocolo SPI e definição de pinos na Dragonboard, conforme a las siguientes instrucciones:
Inicialmente abra o terminal e ejecute;
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get dist-upgrade
Editor de texto
- sudo apt-get install gedit
- sudo apt-get install python-pip
Biblioteca adicionais
- sudo apt-get install build-essential autoconf automake libtool-bin pkg-config python-dev
- sudo reiniciar
LIBSOC
- clon de git
- cd libsoc sudo autoreconf -i sudo./configure --enable-python = 2 --enableboard = dragonboard410c --with-board-configs
- sudo hacer
- sudo hacer instalar
- sudo ldconfig / usr / local / lib
- sudo reiniciar
96Tableros
clon de git
· Antes de instalar essa biblioteca es necesario verificar si su versión es compatible con la versión de LIBSOC instalada previamente. No arquivo /home/linaro/96boardsGPIO/Archive/lib/gpio.conf procurar pela string LS_SHARE e sustitución por LS_GPIO_SHARED;
- Após prossiga com a instalação:
- cd 96BoardsGPIO /
- sudo./autogen.sh
- sudo./configure
- sudo hacer
- sudo hacer instalar
- sudo ldconfig
SPIDEV
- Para acesso aos sensores analógico é utilizado o protocolo SPI. A instalação da biblioteca é explicada a seguir:
- clon de git
- cd py-spidev
- instalación de sudo python setup.py
- sudo ldconfig
- sudo reiniciar
- Será necesario incluir no arquivo sudo gedit /usr/local/etc/libsoc.conf a la siguiente definición GPIO-CS = 18 e GPIO-12 = 18.
Para que funções POST e GET funcionem com o site dweet.io é needário instalar una biblioteca "solicitudes". O procedimento é mostrado abaixo:
solicitudes de instalación de sudo pip
Paso 4: PROGRAMA - Código Fonte Principal E Dweet
O código fuente principal em python está nominado 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 ejecutar o programa.
Para ejecutar o dweet utilice el siguiente comando: sudo / home / linaro /… / dweet.py
Para ejecutar el programa fuente principal utilice el siguiente comando: sudo python / home / linaro /… / smartHome_valerio_M6.py
O funcionamento do software basicamente consiste
1) Importação de bibliotecas adicionais, importar gpio, GPIO e Dweet de bibliotecas adicionais.
Identificacação dos sensores y atuadores nas portas onde são conectados, bem como, define a função in / out dos seleccionados pinos.
Configuração da leitura de SPI do sensor de luminosidade para una entrada ADC2.
2) def 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 for 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 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 essa mudança de estado do relé aciona um dispositivo, que permite una reposição de alimento.
O valor do estado do botão é colocado en 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 botón de nube
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.
Paso 5: Configuração Do Site Dweet
O próximo passo é acessar o serviço da nuvem.
Abrir no seu navegador o sitio Dweet.io clicar na aba "Play" e em seguida clicar em POST (/ dweet / for / {thing})
Criar uma {cosa} digitando no campo cosa: projeto_val
Obs: A thing criada deve ser a mesma present no program do código fonte python, no caso, projeto_val.
Preencha o campo content conformeindicado abaixo e em seguida clique em "Try it out!":
{
"Rele": 0, "Luminosidade": 550, "Luz": 0, }
Veja detalhes nas figuras acima.
A verificação dos dados recebidos pelo dweet é feita pelo GET.
Clicar em GET / get / latest / dweets / for / {thing}
Digite no campo thing: projeto_val (obs: mesma {cosa} criada no POST).
Haga clic en "¡Pruébelo!"
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", respectivamente, 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, es posible 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 "Pruébalo". En la página GET do dweet são visualizadas como informações atualizadas do "rele", "Luminosidade" e "Luz" clicando em "Try it out".
Paso 6: APLICATIVO - Instação Do Ionic
O aplicativo foi desenvolvido em una plataforma híbrida utilizando un marco iónico.
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 no site: 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 do prompt de comandos (cmd) para verificar se a instalação foi feita com sucesso:
nodo -v
npm -v
Instale o Ionic com os comandos abaixo através do prompt de comandos (cmd):
npm install –g cordova ionic
npm install –g cordova
Verifique se o Ionic foi instalado con sucesivamente usando el comando abaixo:
iónico -v
Paso 7: 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):
inicio iónico smart_home_valerio_M6 en blanco (use o nome do 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 / 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 / aplicación)
No home.html e home.ts - foram alterações conforme needidade do projeto para comunicar-se de forma adequada com o dweet.io
No app.modules.ts - modificaciones para permitir la comunicación
Em sguida foi necessário criar um arquivo para una comunicação com o dweet. Abrindo um prompt no próprio Visual Studio aberto e digitando:
proveedor de generación iónica dweet
Uma vez criado esse arquivo, que facilita una comunicación vía correo postal e vía 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. (obtener)
- 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 provedor
Alterações finalizadas o aplicativo smart_home_valerio_M6 está pronto e segue em anexo completo con todos los arquivos.
Agora para abrir o aplicativo basta digitar no mesmo prompt do Visual Studio Code o comando para abrir o aplicativo:
servicio iónico
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.
Recomendado:
Montaje en pared para iPad como panel de control de automatización del hogar, usando un imán controlado por servo para activar la pantalla: 4 pasos (con imágenes)
Soporte de pared para iPad como panel de control de automatización del hogar, usando un imán controlado por servo para activar la pantalla: Últimamente he pasado bastante tiempo automatizando cosas dentro y alrededor de mi casa. Estoy usando Domoticz como mi aplicación de automatización del hogar, consulte www.domoticz.com para obtener más detalles. En mi búsqueda de una aplicación de panel que muestre toda la información de Domoticz junta
Control WIFI ESP8266 RGB LED STRIP - NODEMCU como mando a distancia por infrarrojos para tira de led controlado por wifi - Control de teléfono inteligente RGB LED STRIP: 4 pasos
Control WIFI ESP8266 RGB LED STRIP | NODEMCU como mando a distancia por infrarrojos para tira de led controlado por wifi | Control de teléfono inteligente con tiras de LED RGB: Hola chicos, en este tutorial aprenderemos a usar nodemcu o esp8266 como control remoto IR para controlar una tira de LED RGB y Nodemcu será controlado por teléfono inteligente a través de wifi. Entonces, básicamente, puedes controlar la TIRA LED RGB con tu teléfono inteligente
Montaje y control del kit robótico para automóvil mediante el control remoto inalámbrico PS2: 6 pasos
Montaje y control del kit de automóvil robótico mediante el control remoto inalámbrico PS2: este proyecto está relacionado con los pasos básicos en el mundo de la robótica, aprenderá a ensamblar un kit de automóvil robótico 4WD, colocando hardware y controlándolo con el control remoto inalámbrico de PS2
ALTERNATIVA DEL GENERADOR DE SEÑALES DE CONTROL PARA CONTROL ELECTRÓNICO DE VELOCIDAD (ESC): 7 pasos
ALTERNATIVA DEL GENERADOR DE SEÑALES DE CONTROL PARA CONTROL ELECTRÓNICO DE VELOCIDAD (ESC): Hace un tiempo publiqué un video (https://www.youtube.com/watch?v=-4sblF1GY1E) en mi canal de YouTube donde mostraba cómo hacer una turbina eólica de un motor de CC sin escobillas. Hice el video en español y explicaba que este motor se le había dado a
Control deslizante de control de movimiento para riel de lapso de tiempo: 10 pasos (con imágenes)
Control deslizante de control de movimiento para riel de lapso de tiempo: este instructivo explica cómo motorizar un riel de lapso de tiempo utilizando un motor paso a paso impulsado por un Arduino. Nos centraremos principalmente en el controlador de movimiento que acciona el motor paso a paso, asumiendo que ya tiene un riel que desea motorizar. Por ejemplo, cuando