Satura rādītājs:

SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTTPHONE: 8 soļi
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTTPHONE: 8 soļi

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTTPHONE: 8 soļi

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTTPHONE: 8 soļi
Video: Sistema de irrigação controlado por um Smartphone 2024, Novembris
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 Kurss: Especialização em Arquitetura de Software Distribuído

Dati: 26.10.2017

Unidāde: Praça da Liberdade

Disciplīna: Internets das Coisas

Profesors: Ilo Rivero

Alunos: Bruno Valgas ([email protected])

Dellans Hofmans P. Silva ([email protected])

Heberts Alvess Fereira ([email protected])

Žans Karloss Batista ([email protected])

Jeordane Batista ([email protected])

IEVADS

Kā būtu, ja mēs varētu laistīt savus augus jebkurā laikā un vietā? Ar WaterPlant projektu tas būs iespējams. Šis projekts tika izstrādāts, lai uzlabotu ērtības un praktiskumu, lai uzskatītu, ka tas ir tik svarīgi planētai.

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 needidade de sua irrigação.

Placa envia informações para a API, armazenada na nuvem, que por sua vez é acessada pelo aplicativo mobile, que recebe e trata tais information. Desta forma a aplicação mantem o 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 informationção é enviada para a API que por sua vez se comunica com a placa para acionamento do dispositivo de irrigação.

1. darbība: KOMPONENTES - DRAGONBOARD

SASTĀVDAĻAS - DRAGONBOARD
SASTĀVDAĻAS - DRAGONBOARD

DragonBoard 410C

A DragonBoard 410C ir galvenais Qualcomm Snapdragon 400 procesors, bezvadu procesors, bezvadu internets, Bluetooth un GPS, lai veiktu tamanho aproximado de cart cartoo de crédito, e characterizada pelo alto desempenho do processador. Qualcomm frekvence 1,2 GHz, ar 1 GB atmiņu DDR3 533 MHz un 8 GB atmiņas armazenamento (eMMC).

Cena: 500–750 USD

2. darbība: KOMPONENTES - LINKER BASE

KOMPONENTES - LINKER BASE
KOMPONENTES - LINKER BASE

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

3. solis: KOMPONENTES - SENSORS

KOMPONENTES - SENSORS
KOMPONENTES - SENSORS

Umidade do Solo sensors

Este sensor utiliza dois eletrodos para passar corrente pelo solo e lê o nível de umidade por comparação com a pretestība do potenciômetro do modeulo 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 allowindo a passagem de corrente entre os eletrodos e fechando, desta forma, o circuit. Dessa forma podemos definir quando o solo está molhado, ou quando está seco.

O modulo fornece tanto uma saída digital (D0), como uma saída analógica (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.

Cena: 6–20 USD.

4. solis: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

Programmas Dragonboard 410c lietojumprogramma, kas paredzēta izmantošanai Windows 10 IoT Core.

O Windows 10 IoT Core ir paredzēta, lai iegūtu detalizētu informāciju un atvieglotu tās atrašanu, kā arī programmēšanas funkcijas. Com ele é possível desenvolver para várias placas létezik bez tirdzniecības, bastando ter instalado no computador os seguintes itens (ja em sequência de instalação, no caso de uso da Dragonboard):

  • Visual Studio 2017 Community ou ququer outra versão (https://www.visualstudio.com/thank-you-downloading…);
  • DragonBoard atjaunināšanas rīks;
  • Windows 10 IoT Core informācijas panelis;
  • DragonBoard Windows 10 IoT Core attēls;
  • Windows IoT projektu veidnes;

O process ir pabeigts, lai instalētu un konfigurētu kodu, kas nav iekļauts saitē:

Instalējiet un konfigurējiet konfigurāciju vai apmācību Microsoft basta criar um novo projeto no Visual Studio do tipo Background Application.

Lai iegūtu pamācību, kas palīdz izspiest vai pabeigt GitHub aplikāciju, apmeklējiet vietni

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 metoda galvenais da aplicação é o Run () e seu código é o seguinte:

public void Run (IBackgroundTaskInstance taskInstance)

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

Os metodes 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 segmenti (10 milimetri). 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. Nesenas piemērs kodolam, kas pieejams Dragonboard vai código do pino foi o 36.

private void InitGPIO ()

{var gpio = GpioController. GetDefault (); ja (gpio == null) {pin = null; atgriešanās; } pin = gpio. OpenPin (36); if (pin == null) {return; } pin. Write (GpioPinValue. High); pin. SetDriveMode (GpioPinDriveMode. Output); }

Instalējiet InitSPI () konfigurāciju un SPI0 porta Dragonboard.

privāts asinhronais uzdevums InitSPI ()

{mēģiniet {var settings = new SpiConnectionSettings (0); // Izvēlieties un SPI0 portālu DragonBoard settings. ClockFrequency = 500000; // Pulksteņa konfigurēšana vai barramento SPI em 0.5MHz settings. Mode = SpiMode. Mode0; // COnfigura polaridade e fase do clock do SPI var controller = gaidīt SpiController. GetDefaultAsync (); SpiADC = kontrolieris. GetDevice (iestatījumi); } nozveja (izņēmums ex) {iemest jaunu izņēmumu ("Falha na inicialização do SPI", ex); }}

O primeiro taimeris 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 sekojošs trecho de código un atbildes reakcija chamada API:

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

httpWebRequest. ContentType = "application/json"; httpWebRequest. Method = "IEGŪT";

Neste trecho de código deve ser alterado para o 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.

Para o segundo taimeris é invocado o método Timer_Tick2 () que é responseável pelo envio dos dados da umidade do solo naquele momento. Ja nav sekošanas trecho de código deste método que deve ser konfigurācijas vai endereço da API para vai envio dos dados:

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

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

Operētājsistēmas LerADC (baitu kanāls) atbildes reakcija uz ler do pārveidotāju analogu/digitālo ierīču informācijas informāciju par pelo sensoru. Este adaptator information um array de bytes que é convertido em inteiro através do método ConvertToInt ([ReadOnlyArray] baitu dati). Segue os trechos de código:

public int LerADC (baitu kanāls)

{baits lasītBuffer = jauns baits [3]; baits writeBuffer = jauns baits [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = kanāls; SpiADC. TransferFullDuplex (writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); atgriezt adcValue; } public int ConvertToInt ([ReadOnlyArray] baitu dati) {int rezultāts = 0; rezultāts = dati [1] & 0x03; rezultāts << = 8; rezultāts += dati [2]; atgriešanās rezultāts; }

5. darbība: sagatavojiet API

API, kas paredzēta NodeJS (https://nodejs.org), platformai un Swagger (https://swagger.io/specification/) izmantošanai un modernajai dokumentācijai, kā arī dokumentārai atkārtotai izmantošanai un integrācijai.

Lai varētu izmantot MySQL, banku un dadu banku izmantošanas iespējas, atvērto avotu un atvērto avotu.

Sekojiet abaixo un arquitetura de camadas que compõem API.

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

○ /api /kontrolieris: 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 vai retorno ocorrido durante o 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.

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

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

● /infrastruktūra: 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.

Lai uzzinātu vairāk par informāciju un konsultāciju, jūs varat piekļūt github saitei:

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

Metode: POST

URI:/api/v1/umidades

Apraksts: Recurso utilizado para registrear umidade coletada pelo sensor de umidade.

Nepieciešamības piemērs:

{

“Drosme”: 355}

Metode: GET

URI:/api/v1/umidades

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

Atbildes piemērs:

[{“Id”: 1, “valor”: 355, “dataCadastro”: gggg-MM-dd HH: MM}]

Metode: POST

URI:/api/v1/irrigacoes

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

Metode: GET

URI:/api/v1/irrigacoes

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

Atbildes piemērs:

{

“Drosme”: 355}

6. darbība: 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 e IOS) para aumentar a abrangência de usuários e diminuir o custo do projeto. O jonu ē um frame que possui uma gigantesca biblioteca de komponentes gráficos que facitait a implementação visual do aplicativo. Valodu tīmekļa lietojums (HTML, CSS un Javascript), kas paredzēts krustojumam un leņķiskajam savienojumam (kodols). 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 and 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 o servidor e a açãorespondente é realizada.

Saites:

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

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

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

eksporta klases serveris {

publiska statiska tikai lasāma URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* publiska statiska tikai lasāma URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}

7. solis: FLUXOGRAMA

FLUXOGRAMA
FLUXOGRAMA

8. solis: ATSAUCES

Instrukcijas:

Qualcomm DragonBoard 410C:

Windows 10 un DragonBoard ™ 410c-ideāls sākums IoT attīstībai:

Monitore sua planta usando Arduino:

Ieteicams: