Innholdsfortegnelse:

SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 trinn
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 trinn

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 trinn

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 trinn
Video: Faça um Controle de Irrigação Inteligente com Arduino 2024, November
Anonim
Image
Image
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Kurs: Especialização em Arquitetura de Software Distribuído

Data: 2017-10-26

Unidade: Praça da Liberdade

Disciplina: Internet das Coisas

Professor: Ilo Rivero

Alunos: Bruno Valgas ([email protected])

Dellan Hoffman P. Silva ([email protected])

Hebert Alves Ferreira ([email protected])

Jean Carlos Batista ([email protected])

Jeordane Batista ([email protected])

INTRODUKSJON

Hvordan ville det vært hvis vi kunne vanne plantene våre når som helst og hvor som helst? Med WaterPlant Project vil det være mulig. Dette prosjektet ble utviklet med sikte på å forbedre bekvemmeligheten og praktiskheten for å behandle dette som er så viktig for planeten.

INTRODUÇÃO

Como seria se pudéssemos aguar nossas plantas a qualquer hora e de qualquer lugar? Com o Projeto WaterPlant será possível. Este projeto foi desenvolvido visando melhorar a comodidade e a praticidade para tratar deste ser tão importante para o planeta.

FUNCIONAMENTO

O projeto foi desenvolvido para monitoramento de jardins, onde é possível efetuar a verificação do estado do solo, com relação a sua umidade. Sendo assim, por meio de parâmetros da umidade do solo é possível avaliar a necessidade de sua irrigação.

A placa envia informationaa for a API, armazenada na nuvem, que por sua vez é acessada pelo aplicativo mobile, que recebe and trata tais informações. Desta forma a aplicação mantem o usuário informado da situação do solo. O usuário em contato com a aplicação poderá solicitar o irrigamento imediado do solo, esta informação é enviada para a API que por sua vez se comunica com a placa para acionamento do dispositivo de irrigação.

Trinn 1: KOMPONENTER - DRAGONBOARD

KOMPONENTER - DRAGONBOARD
KOMPONENTER - DRAGONBOARD

DragonBoard 410C

En DragonBoard 410C er en primær plassering av desenvolvimento baseada no processador da série Qualcomm Snapdragon 400, contando com conexões Wifi, Bluetooth e GPS em uma placa to tamanho aproximado de um cartão de crédito, and é caracterizada pelo alto desempenho do processador de 64 bits Qualcomm rodando à 1,2 GHz, med 1 GB minne DDR3 533 MHz og 8 GB memoria de armazenamento (eMMC).

Priser: R $ 500 ~ R $ 750

Trinn 2: KOMPONENTER - LINKER BASE

KOMPONENTER - LINKER BASE
KOMPONENTER - LINKER BASE

Placa de expansão para mapeamento e utilização de portas, facilitando and utilização de sensores.

Trinn 3: KOMPONENTER - SENSOR

KOMPONENTER - SENSOR
KOMPONENTER - SENSOR

Sensor de Umidade do Solo

Este sensor utiliza dois eletrodos para passar corrente pelo solo e lê o nível de umidade por comparação com a resistência do potenciômetro do módulo do sensor. Quando o solo estiver seco, a sua resistência aumenta, dificultando a passagem de corrente. Com a absorção da água, a resistência do solo diminui permitindo a passagem de corrente entre os eletrodos e fechando, desta forma, o circuito. Dessa forma podemos definir quando o solo está molhado, ou quando está seco.

Du kan også lese mer om digital (D0), og analoge analoge (A0). O sinal digital é ajustado para que tenha valor lógico 1 quando a umidade for maior do que um valor predefinido, ajustado através do potenciômetro presente no módulo.

Priser: R $ 6 ~ R $ 20.

Trinn 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

Aplicação desenvolvida for rodar on Dragonboard 410c foi feita utilizando o Windows 10 IoT Core.

O Windows 10 IoT Core er en plattform for desenvolvimento criada for facilitar and vida dos desenvolvedores na hora de programar seus dispositivos. Com ele é possível desenvolver para várias placas existentes no mercado, bastando ter instalado no computador os seguintes itens (já em sequência de instalação, no caso de uso da Dragonboard):

  • Visual Studio 2017 Community ou qualquer outra versão (https://www.visualstudio.com/thank-you-downloading…);
  • DragonBoard oppdateringsverktøy;
  • Windows 10 IoT Core Dashboard;
  • DragonBoard Windows 10 IoT Core Image;
  • Windows IoT -prosjektmaler;

For å fullføre installasjonen og konfigurasjonen kan du ikke koble til en egen lenke:

Du kan installere og konfigurere en opplæring i opplæringen av Microsoft for å lage et nytt prosjekt for Visual Studio for bakgrunnsprogrammet.

Para este tutorial for disponibilizar o código finalizado da aplicação através to GitHub em

Du kan konfigurere et program som ikke kan brukes til StartupTask.cs.

O método principal da aplicação é o Run () e seu código é o seguinte:

offentlig tomromskjøring (IBackgroundTaskInstance taskInstance)

{InitGPIO (); InitSPI (); _deferral = taskInstance. GetDeferral (); timer = ThreadPoolTimer. CreatePeriodicTimer (Timer_Tick, TimeSpan. FromMilliseconds (10000)); timer2 = ThreadPoolTimer. CreatePeriodicTimer (Timer_Tick2, TimeSpan. FromMilliseconds (10000)); }

Os métodos InitGPIO () e InitSPI () inicializam variáveis para serem utilizadas na nossa aplicação enquanto as variáveis timer e timer2 criam 2 timers para serem executados a cada quantidade de tempo, and next caso foram parametrizados 10 segundos (10 miliss). Para alterar esse tempo basta mudar estes valores nessa parte do código.

O Método InitGPIO () a seguir tem como função definir as configuraçõese do pino que ativa a válvula solenoide de água. Nesse eksemplo de código for a Dragonboard o código do pino foi o 36.

private void InitGPIO ()

{var gpio = GpioController. GetDefault (); hvis (gpio == null) {pin = null; komme tilbake; } pin = gpio. OpenPin (36); if (pin == null) {return; } pin. Write (GpioPinValue. High); pin. SetDriveMode (GpioPinDriveMode. Output); }

O método InitSPI () konfigurere en porta SPI0 fra Dragonboard.

privat asynk oppgave InitSPI ()

{prøv {var settings = new SpiConnectionSettings (0); // Velg en SPI0 for DragonBoard -innstillinger. ClockFrequency = 500000; // Konfigurering av klokken til barramento SPI med 0.5MHz settings. Mode = SpiMode. Mode0; // COnfigura polaridade e fase do clock do SPI var controller = venter SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (innstillinger); } fangst (unntak ex) {kaste nytt unntak ("Falha na inicialização do SPI", eks); }}

O primeiro timer invoca o método Timer_Tick () que tem como função and verificação através da API se houve um comando para iniciar uma irrigação. Du kan også svare på responsen på API -er:

var httpWebRequest = (HttpWebRequest) WebRequest. Create ("https://serverless-study.appspot.com/api/v1/irrigacoes");

httpWebRequest. ContentType = "application/json"; httpWebRequest. Method = "GET";

Neste trecho de código deve ser alterado para o endereço onde será hospedado o código da API for buscar o comando de irrigação. É neste trecho de código que a irrigação é encerrada também.

Para o segundo timer é invocado o método Timer_Tick2 () que és responsável pelo envio dos dados da umidade do solo naquele momento. Vi kan ikke si noe om hvordan vi kan konfigurere eller konfigurere API -en for å gjøre følgende:

var httpWebRequest = (HttpWebRequest) WebRequest. Create ("https://serverless-study.appspot.com/api/v1/umidades");

httpWebRequest. ContentType = "application/json"; httpWebRequest. Method = "POST";

O método LerADC (byte canal) é o método responsável por ler do conversor analógico/digital os valores informados pelo sensor de umidade. Este tilpasningsinformasjon om array de bytes som kan konverteres til integrerte data for ConvertToInt ([ReadOnlyArray] byte data). Segue os trechos de código:

offentlig int LerADC (byte kanal)

{byte readBuffer = ny byte [3]; byte writeBuffer = ny byte [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = kanal; SpiADC. TransferFullDuplex (writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); returner adcValue; } public int ConvertToInt ([ReadOnlyArray] byte data) {int result = 0; result = data [1] & 0x03; resultat << = 8; resultat += data [2]; returresultat; }

Trinn 5: FORBERED et API

API foi desenvolvida na plataforma NodeJS (https://nodejs.org), foi utilizado o Swagger (https://swagger.io/specification/) a fim de modelar and documentar os recursos utilizados and integração do trabalho.

For armazenamento dos dados foi utilizado or banco de dados MySQL, banco de dados relacional e open source.

Segue abaixo and arquitetura de camadas que compõemem a API.

● /api: Camada que gerencia os recursos disponibilizados para que terceiros possam acessar.

○ /api /controller: Camada que gerencia as rotas definidas no documento gerado pelo swagger.

○ /api /service: Camada que entrega os dados de entrada para serem tratados, depois escritos ou lidos pela camada de BO (descrita mais à diante). Nesta camada está configurado or retorno ocorrido durante or processo de request.

○ /api /swagger: Camada que contém o arquivo de configuração do swagger, onde estão toda as configurações dos recursos.

● /domene: Vi kan fortsette å registrere en ny regjering.

○ /depot: Camada de persistência de dados.

● /infrastruktur: Cama de configuração das strings de conexão do banco de dados e também do servidor que será provisionado pela própria aplicação.

For mer informasjon og rådgivning om hvordan du kobler til lenker til github:

Segue abaixo uma breve beskrivelse av cada recurso disponibilizados og API:

Método: POST

URI:/api/v1/umidades

Beskrivelse: Recurso utilizado para registar umidade coletada pelo sensor de umidade.

Exemplo de requisição:

{

"Tapperhet": 355}

Método: GET

URI:/api/v1/umidades

Beskrivelse: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.

Eksempel på svar:

[{"Id": 1, "tapperhet": 355, "dataCadastro": åååå-MM-dd HH: MM}]

Método: POST

URI:/api/v1/irrigacoes

Beskrivelse: Recurso utilizado para ativar o dispositivo de irrigação.

Método: GET

URI:/api/v1/irrigacoes

Beskrivelse: Recurso utilizado para verificar o estado de umidade atual do solo.

Eksempel på svar:

{

"Tapperhet": 355}

Trinn 6: APP MOBIL

APP MOBIL
APP MOBIL
APP MOBIL
APP MOBIL

Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todas as plataformas (Android e IOS) for aumentar and abrangência de usuários e diminuir or custo do projeto. O Ionic é um framework que possui uma gigantesca biblioteca de componentes gráficos que facilita a implementação visual do aplicativo. Ele utiliza de linguagens web (HTML, CSS e Javascript) para a criação das telas e tem o Angular como o seu núcleo (core). Através do cordova (biblioteca javascript) os recursos do dispositivos são acessados pelo webview do mesmo.

Aplicativo consiste em realizar algumas requisições para a API do system and a fim de se obter information sobre a umidade do solo and regar o mesmo remotamente. Através de um evento de botão uma requisição é enviada para o servidor e a ação correspondente é realizada.

Lenker:

  • https://ionicframework.com/
  • https://angular.io/
  • https://ionicframework.com/

Du kan også finne en modell som ikke inneholder GitHub, ingen endereço

Para que o aplicativo funcione basta configar of endereço da API no arquivo server.ts que encontra-se no diretório /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) og endre en variabel URI_PREFIX, conforme exemplo abaixo para o endereço onde está hospedada a API:

eksportklasse Server {

offentlig statisk bare URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* public static readonly URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}

Trinn 7: FLUXOGRAMA

FLUXOGRAMA
FLUXOGRAMA

Trinn 8: REFERÊNCIAS

Instrukser:

Qualcomm DragonBoard 410C:

Windows 10 og DragonBoard ™ 410c-den perfekte starten for IoT-utvikling:

Monitore sua planta usando Arduino:

Anbefalt: