Sisällysluettelo:

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

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

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 vaihetta
Video: SISTEMA AUTOMÁTICO DE IRRIGAÇÃO VIA WIFI (parte 1) 2024, Marraskuu
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 Kurssi: Especialização em Arquitetura de Software Distribuído

Tiedot: 26.10.2017

Unidade: Praça da Liberdade

Kurinalaisuus: Internet das Coisas

Professori: Ilo Rivero

Alunot: Bruno Valgas ([email protected])

Dellan Hoffman P. Silva ([email protected])

Hebert Alves Ferreira ([email protected])

Jean Carlos Batista ([email protected])

Jeordane Batista ([email protected])

JOHDANTO

Millaista olisi, jos voisimme kastaa kasvejamme milloin tahansa ja missä tahansa? WaterPlant -projektin avulla se on mahdollista. Tämä projekti on kehitetty parantamaan mukavuutta ja käytännöllisyyttä käsitellä tätä niin tärkeänä planeetalle.

INTRODUÇÃO

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

FUNCIONAMENTO

O projeto foi desenvolvido para monitoramento de jardins, onde ja 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 ja possível avaliar a needidade de sua irrigação.

A placa envia informações para a API, armazenada na nuvem, que por sua vez é acessada pelo aplicativo mobile, que recebe e trata tais informações. Desta forma a aplicação mantem or usuário informado da situção do solo. O usuário em contato com a aplicação poderá solicitar or 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.

Vaihe 1: KOMPONENTIT - DRAGONBOARD

KOMPONENTIT - DRAGONBOARD
KOMPONENTIT - DRAGONBOARD

DragonBoard 410C

A DragonBoard 410C on Qualcomm Snapdragon 400 -prosessoripohjainen prosessori, jossa on prosessori, jossa on Wifi, Bluetooth ja GPS, kuten paikkaan, jossa on tamanho, ja se on lueteltu kartalla, ja se on luonteenomaista. Qualcomm -standardi 1,2 GHz, 1 Gt muistia DDR3 533 MHz ja 8 Gt muistia muistista (eMMC).

Hinta: R $ 500 ~ R $ 750

Vaihe 2: KOMPONENTIT - LINKER BASE

KOMPONENTIT - LINKER BASE
KOMPONENTIT - LINKER BASE

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

Vaihe 3: KOMPONENTIT - ANTURI

KOMPONENTIT - ANTURI
KOMPONENTIT - ANTURI

Umidade do Solo -anturi

Este -anturin käyttö on sallittua, ja se voidaan lähettää passi- ja e -anturin avulla. Quando tai solo estiver seco, sua resistência aumenta, dificultando a passagem de corrente. Com absorção da água, a vastustuskyky yksinoikeudella pienikokoinen lupa ja pääsy korrelaatioon entre os eletrodos e fechando, desta forma, o circuit. Dessa forma podemos definir quando o solo está molhado, ou quando está seco.

Vaihtoehtoisesti voit käyttää digitaalista digitaalista (D0), anaalia (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 modeulo.

Hinta: 6–20 dollaria.

Vaihe 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

Sovelluksen kehittämisohjelma Dragonboard 410c -käyttöjärjestelmälle Windows 10 IoT Core -käyttöjärjestelmässä.

O Windows 10 IoT Core -ratkaisu, joka tarjoaa mahdollisuuden kehittää desenvolvimento criada -laitteita helpottamiseksi ja vida dos desvolvolvedores hora de programar seus dispositivos. Com ele é possível desenvolver para várias placas egzistentes 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 tai ququer outra versão (https://www.visualstudio.com/thank-you-downloading…);
  • DragonBoard -päivitystyökalu;
  • Windows 10 IoT Core Dashboard;
  • DragonBoard Windows 10 IoT Core -kuva;
  • Windowsin IoT -projektimallit;

Täydellinen prosessi asennukseen ja kokoonpanon määrittämiseen ilman salausta linkistä:

Asenna ja asenna kokoonpano tai opetusohjelma Microsoftin basta criar um novo -projeto ei Visual Studio do tipo Background Application.

Tässä on opetusohjelma vamos disponibilizar o código finalizado da aplicação através do GitHub em

Toda a configuração do aplicativo está no arquivo StartupTask.cs na raiz do projeto, e vamos explicar abaixo parte a parte do código.

O métodon päällikkö da aplicação é o Run () e seu código é o seguinte:

public void Run (IBackgroundTaskInstance taskInstance)

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

Osamallit 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, e neste caso foram parametrizados 10 segmentti (10 miljoonaa dollaria). Para alterar esse tempo basta mudar estes valores nessa parte do código.

O Método InitGPIO () on sekoitus tem como função definir as configuraçõese do pino que ativa a válvula solenoide de água. Nessen esimerkki codigosta a Dragonboard tai código do pino foi o 36.

yksityinen mitätön InitGPIO ()

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

Aloita InitSPI () -konfiguroi SPI0 -portti Dragonboardille.

yksityinen asynkronointitehtävä InitSPI ()

{kokeile {var settings = new SpiConnectionSettings (0); // Valitse SPI0 -portti DragonBoardin asetuksista. ClockFrequency = 500000; // Määritä kello barramento SPI em 0.5MHz settings. Mode = SpiMode. Mode0; // COnfigura polaridade e fase do clock do SPI var controller = odota SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (asetukset); } saalis (poikkeus ex) {heittää uusi poikkeus ("Falha na inicialização do SPI", ex); }}

O primeiro timer billca o método Timer_Tick () que tem como função a verificação através da API se houve um comando para iniciar uma irrigação. Vai sekoitus trecho de código ja vastaus pelata chamada API:

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

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

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

Parametrien ajastin ja laskuri Timer_Tick2 () que é responseável pelo envio dos dados da umidade do solo naquele moment. Ei mitään yhdistelmää trecho de código deste método que deve ser Configurado tai endereço da API para or envio dos dados:

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

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

Voit käyttää LerADC (tavukanava) -metodivastausta tai vastausta, joka on saatavana ler do -muuntimella. Este adaptator information informa array de bytes que é convertido em inteiro através do metét ConvertToInt ([ReadOnlyArray] tavu data). Segue os trechos de código:

julkinen int LerADC (tavukanava)

{tavu lukuBuffer = uusi tavu [3]; tavu writeBuffer = uusi tavu [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = kanava; SpiADC. TransferFullDuplex (writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); palauta adcValue; } public int ConvertToInt ([ReadOnlyArray] tavu data) {int tulos = 0; tulos = data [1] & 0x03; tulos << = 8; tulos += data [2]; palautustulos; }

Vaihe 5: VALMISTA API

Sovellusliittymä, joka tarjoaa NodeJS: n (https://nodejs.org), käyttöympäristön tai Swaggerin (https://swagger.io/specification/) ja moderaattorin sekä dokumentaarisen palautteen hyödyntämisen integraation avulla.

Paranna tietokonettasi, kun käytät MySQL: n, isäpankin ja avoimen lähdekoodin pankkien käyttöä.

Yhdistä sovellusliittymän avulla se, joka on arquitetura de camadas que compõem.

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

○ /api /ohjain: 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). Pysy ajan tasalla konfiguraation määrittämisestä tai retornosta tai ocorrido durante -prosessista.

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

● /domain: Camada que contém toda codificação relacionada a regra de negócio da aplicação.

○ /arkisto: Camada de persência de dados.

● /infrastruktuuri: 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.

Katso lisätietoja ja konsultointi ao código fonte acesso tai linkki githubiin:

Segue abaixo uma breve descrição de cada recurso disponibilizados API:

Metodi: POST

URI:/api/v1/umidades

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

Esimerkki vaatimuksista:

{

"Rohkeus": 355}

Metodi: HANKI

URI:/api/v1/umidades

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

Esimerkki vastauksesta:

[{"Id": 1, "valor": 355, "dataCadastro": yyyy-MM-dd HH: MM}]

Metodi: POST

URI:/api/v1/irrigacoes

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

Metodi: HANKI

URI:/api/v1/irrigacoes

Kuvaus: Recurso utilizado para verificar or estado de umidade atual do solo.

Esimerkki vastauksesta:

{

"Rohkeus": 355}

Vaihe 6: APP MOBILE

APP MOBILE
APP MOBILE
APP MOBILE
APP MOBILE

Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todas as plataformas (Android ja IOS) para aumentar and abrangência de usuários and diminuir o custo do projeto. O Ionic é um Framework que possui uma gigantesca biblioteca de komponentes gráficos que helpita and implementação visual do aplicativo. Käytetään kielten web -sivustoa (HTML, CSS ja Javascript), joka on saatavana englanninkielisenä (ydin). Através do cordova (biblioteca javascript) os recursos do dispositivos são acessados pelo webview do mesmo.

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

Linkit:

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

O código fonte do aplicativo modelo encontra-se no GitHub, no endereço

Para que tai aplicativo funcione basta configurar or endereço da da API no arquivo server.ts que encontra-se no directtório /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) e alterar a vaihtelevel URI_PREFIX, vahvista esimerkki abaixo para tai endereço on está hospedada a API:

vientiluokka Palvelin {

public static readonly URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* julkinen staattinen vain luku vain URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}

Vaihe 7: FLUXOGRAMA

FLUXOGRAMA
FLUXOGRAMA

Vaihe 8: VIITTEET

Ohjeet:

Qualcomm DragonBoard 410C:

Windows 10 ja DragonBoard ™ 410c-täydellinen alku IoT-kehitykselle:

Monitore sua planta usando Arduino:

Suositeltava: