Taula de continguts:

SISTEMA D'IRRIGAÇÓ AUTOMÀTICA CONTROLADA PER SMARTPHONE: 8 Steps
SISTEMA D'IRRIGAÇÓ AUTOMÀTICA CONTROLADA PER SMARTPHONE: 8 Steps

Vídeo: SISTEMA D'IRRIGAÇÓ AUTOMÀTICA CONTROLADA PER SMARTPHONE: 8 Steps

Vídeo: SISTEMA D'IRRIGAÇÓ AUTOMÀTICA CONTROLADA PER SMARTPHONE: 8 Steps
Vídeo: 💦Blackview BV9200 ЧЕСТНЫЙ ОБЗОР ПРОТИВОУДАРНОГО 2024, Desembre
Anonim
Image
Image
SISTEMA D'IRRIGAÇÃO AUTOMÀTICA CONTROLADA PER SMARTPHONE
SISTEMA D'IRRIGAÇÃO AUTOMÀTICA CONTROLADA PER SMARTPHONE
SISTEMA D'IRRIGAÇÃO AUTOMÀTICA CONTROLADA PER SMARTPHONE
SISTEMA D'IRRIGAÇÃO AUTOMÀTICA CONTROLADA PER SMARTPHONE

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Curs: Especialització en Arquitetura de Software Distribuído

Dades: 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])

INTRODUCCIÓ

Com seria si poguéssim regar les nostres plantes en qualsevol moment i en qualsevol lloc? Amb el Projecte WaterPlant serà possible. Aquest projecte es va desenvolupar amb l'objectiu de millorar la comoditat i la pràctica per tractar aquest fet tan important per al planeta.

INTRODUCCIÓ

Como seria se pudéssemos aguar nossas plantes a qualquer hora e de qualquer lugar? Com o Projecte WaterPlant serà possible. Aquest projecte es va desenvolupar visitant melhorar a comoditat i a pràctica per tractar d’aquest ser important per al planeta.

FUNCIONAMENTO

O projecto va ser desenvolupat per a monitoratge de jardins, on és possible efetuar a verificació de l'estat del sol, amb relació amb la seva humitat. Sendo assim, per meio de parámetros da umidade do solo é possível avaliar a necessidade de la seva irrigação.

A placa envia informações para a API, armazenada na nuvem, que por sua vez é acessada pelo aplicativo mobile, que recebe e tracta tais informações. Desta forma a aplicació mantem o usuari informado da situação do solo. O usuari em contato com a aplicação poderá solicitar o irrigamento imediado do solo, esta information és enviada per a API que per la seva vegada es comunica com a placa per accionament do dispositiu d'irrigació.

Pas 1: COMPONENTS: DRAGONBOARD

COMPONENTS - DRAGONBOARD
COMPONENTS - DRAGONBOARD

DragonBoard 410C

A DragonBoard 410C és la primera placa de desenvolupament basada no processador da sèrie Qualcomm Snapdragon 400, contant com connexions Wifi, Bluetooth i GPS em uma placa do tamanho aproximado de um cartão de crédito, e es caracterizado pelo alto desempenho do processador de 64 bits da Qualcomm rodant a 1.2GHz, com 1GB de memòria DDR3 533 MHz i 8GB de memòria d’armament (eMMC).

Preu: R $ 500 ~ R $ 750

Pas 2: COMPONENTS: BASE DE LINKER

COMPONENTS: BASE DE LINKER
COMPONENTS: BASE DE LINKER

Plaça d’expansió per a mapeament i utilització de portes, facilitant una utilització de sensors.

Pas 3: COMPONENTS: SENSOR

COMPONENTS - SENSOR
COMPONENTS - SENSOR

Sensor de Umidade do Solo

Aquest sensor utilitza eletros per passar corrent pel sol i el seu nivell d’humitat per comparació com a resistència del potenciòmetre del mòdul del sensor. Quan o solo estiver seco, a la seva resistència augmenta, dificultant un passatge de corrent. Com a absorció da àgua, a resistència del solo diminui permetent un passatge de corrent entre els eletrodos e fechando, desta forma, o circuito. Dessa forma podem definir quan només hi ha molhado, o quan està sec.

O módulo fornece tanto uma saída digital (D0), com uma saída analògica (A0). O sinal digital é ajustado para que tenha valor lógico 1 quan a umidade for maior do que um valor predefinido, ajustado através do potenciômetro presente no módulo.

Preu: R $ 6 ~ R $ 20.

Pas 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

Una aplicació desenvolupada per rodar a Dragonboard 410c es va utilitzar utilitzant Windows 10 IoT Core.

O Windows 10 IoT Core és la vostra plataforma de desenvolupament criada per facilitar la vida dos desenvolupadors a l’hora de programar els seus dispositius. Com ele é possível desenvolver for várias placas existents no market, bastant ter installado no computador os following itens (já em sequência of installationção, no case of use da Dragonboard):

  • Visual Studio 2017 Community o qualquer altra versão (https://www.visualstudio.com/thank-you-downloading…);
  • Eina d'actualització de DragonBoard;
  • Tauler de control de l'IoT Core de Windows 10;
  • DragonBoard Windows 10 IoT Core Image;
  • Plantilles de projecte IoT de Windows;

O procés complet per a instal·lació i configuració es pot trobar sense l'enllaç següent:

Podeu instal·lar-la i configurar-la segons el tutorial de Microsoft Basta Criar amb un nou projecte de Visual Studio per a un tipus d'aplicació de fons.

Per a aquest tutorial, es pot obtenir un codi finalitzat per aplicar el fitxer GitHub a

Toda a configuração do aplicativo está no arquivo StartupTask.cs na raiz do projectet, e vamos explicar abaixo part a part do code.

El mètode principal és aplicable a Run () i el seu codi és el següent:

public void Run (IBackgroundTaskInstance taskInstance)

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

Os métodos InitGPIO () e InitSPI () inicializam variáveis for serem utilizades na nossa applyção enquanto as variáveis timer e timer2 criam 2 timers for serem executados a cada quantitat de tempo, i en aquest cas foram parametrizados 10 segundos (10 mil milissegundos) para cada timer. Per alterar esse tempo basta mudar aquests valors nessa part del codi.

O Método InitGPIO () a seguir tem com função definir as configuraçõese do pino que ativa a válvula solenoide de água. No hi ha cap exemple de codi per a Dragonboard o codi de pinyó o 36.

private void InitGPIO ()

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

O método InitSPI () configura a porta SPI0 de Dragonboard.

Private async Task InitSPI ()

{try {var settings = new SpiConnectionSettings (0); // Selecciona una porta SPI0 de la configuració de DragonBoard. ClockFrequency = 500000; // Configuració del rellotge de barres SPI a 0,5 MHz settings. Mode = SpiMode. Mode0; // COnfigura polaridade e phase do clock do SPI var controller = await SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (configuració); } catch (Exception ex) {throw new Exception ("Falha na inicialização do SPI", ex); }}

El primer timer invoca o mètode Timer_Tick () que tem com a funció a verificació através de l'API es troba com a comandament per iniciar una irrigação. El següent codi de codi és responsable de la chamada à API:

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

httpWebRequest. ContentType = "aplicació / json"; httpWebRequest. Method = "OBTENIR";

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

Per al segon timer és invocat o mètode Timer_Tick2 () que és responsable de vells dos dies de la umitat del sol moment del seu naixement. No hi ha cap següent codi de mètode que ha de ser configurat o endereçat per l'API per al seu entorn dos dies:

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

httpWebRequest. ContentType = "aplicació / json"; httpWebRequest. Method = "POST";

O método LerADC (byte canal) és un mètode responsable per convertir-lo en conversor analògic / digital amb valors informats de sensor de pèl. Aquest adaptador proporciona informació sobre una matriu de bytes que es converteix en un mètode convertit al mètode ConvertToInt ([ReadOnlyArray] byte data). Segueix els trets de codi:

públic a LerADC (canal de bytes)

{byte readBuffer = byte nou [3]; byte writeBuffer = byte nou [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = canal; SpiADC. TransferFullDuplex (writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); tornar adcValue; } public int ConvertToInt ([ReadOnlyArray] byte data) {int result = 0; result = data [1] & 0x03; resultat << = 8; resultat + = dades [2]; resultat de retorn; }

Pas 5: PREPARAR una API

API ha estat desenvolupat a la plataforma NodeJS (https://nodejs.org), ha estat utilitzat o Swagger (https://swagger.io/specification/) a fim de modelar i documentar els recursos utilitzats a la integració del treball.

Per armazenamento dos dados foi utilitzat o banc de dados MySQL, banc de dados relacional i open source.

Segue abaixo a arquitetura de camadas que compõem a API.

● / api: Camada que gerencia os recursos disponibles disponibles para que terceros possam acessar.

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

○ / api / service: Camada que entrega os dados de entrada para serem tractados, depois escritos o lidos pela camada de BO (descrita més a davant). Nesta camada està configurat o retornejat durant el procés de sol·licitud.

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

● / domain: Camada que conté tota codificació relacionada amb un regra de negatiu aplicable.

○ / dipòsit: Camada de persistència de dies.

● / infrastructure: Cama de configuração das strings de conexão do banco de dados e também do server que serà provisioned pela própria applicableção.

Per a més informació i consulta al codi de font acesso o link do github:

Seguiu un breu descripció de cada recurs disponible en API:

Método: POST

URI: / api / v1 / umidades

Descripció: Recurs utilitzat per registrar humitat coletada pelo sensor de umidade.

Exemple de requeriment:

{

"Valor": 355}

Mètode: ACONSEGUEIX-TE

URI: / api / v1 / umidades

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

Exemple de resposta:

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

Método: POST

URI: / api / v1 / irrigacoes

Descripció: Recurs utilitzat per ativar o dispositiu d'irrigació.

Mètode: ACONSEGUEIX-TE

URI: / api / v1 / irrigacoes

Descripció: Recurs utilitzat per verificar o estat d’humitat atual do solo.

Exemple de resposta:

{

"Valor": 355}

Pas 6: APP MILEBIL

APP MILEBIL
APP MILEBIL
APP MILEBIL
APP MILEBIL

Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todas as plataformas (Android e IOS) para aumentar a abrangência d'usuaris i disminuir o custodiar el projecte. O Ionic é um framework que possui uma gigantesca biblioteca de components gràfics que facilita a implementació visual do aplicative. Ele use de linguagens web (HTML, CSS e Javascript) per a una criació de les teles i el tema o Angular com al seu nucli (core). Através do cordova (biblioteca javascript) os recursos do devices são accessed hair webview do mesmo.

O aplicativo consisteix en realitzar algunes requeriments per a una API del sistema a una pel·lícula per obtenir informació sobre una humitat del sol i regar o fins i tot remotament. Através de un esdeveniment de botó uma requisição és enviada per a un servidor i a un corresponsal realitzat.

Enllaços:

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

O codi font do aplicative model encontra-se no GitHub, no endereço

Per a què aplicable funcions basta configurar o endereço da API no arquivo server.ts que encontra-se no diretório /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) e alterar a variável URI_PREFIX, conforme exemple abaixo per endereç on està hospedada a API:

servidor d'exportació de classe {

només estàtic públic de lectura URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; / * només estàtic públic URI_PREFIX: string = "https://dominio.com/aplicacao/"; * /}

Pas 7: FLUXOGRAMA

FLUXOGRAMA
FLUXOGRAMA

Pas 8: REFERÊNCIAS

Instructables:

Qualcomm DragonBoard 410C:

Windows 10 i DragonBoard ™ 410c: l’inici perfecte per al desenvolupament d’IoT:

Monitore sua planta usando Arduino:

Recomanat: