Kazalo:

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

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

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 korakov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 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 GERAISKurso: Especialização em Arquitetura de Software Distribuído

Podatki: 26.10.2017

Unidade: Praça da Liberdade

Disciplina: Internet das Coisas

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

UVOD

Kako bi bilo, če bi svoje rastline lahko zalivali kadarkoli in kjer koli? S projektom WaterPlant bo to mogoče. Ta projekt je bil razvit z namenom izboljšati udobje in praktičnost obravnavanja tega tako pomembnega za planet.

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 monitorramento 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 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 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.

1. korak: KOMPONENTE - DRAGONBOARD

SESTAVINE - DRAGONBOARD
SESTAVINE - DRAGONBOARD

DragonBoard 410C

DragonBoard 410C je prvotna platforma za desenvolvimento, ki nima procesorja za serijo Qualcomm Snapdragon 400, omogoča povezavo s povezavami Wi -Fi, Bluetooth in GPS, ki jih uporablja za tamanho, približno na karto de crédito, e é je značilna pelo alto desempenho do procesor Qualcomm deluje na 1,2 GHz, z 1 GB pomnilnika DDR3 533 MHz in 8 GB pomnilnika za armazenamento (eMMC).

Cena: 500 $ ~ 750 $

2. korak: KOMPONENTE - OSNOVA POVEZAVE

KOMPONENTE - OSNOVA LINKERJA
KOMPONENTE - OSNOVA LINKERJA

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

3. korak: SESTAVINE - SENZOR

KOMPONENTE - SENZOR
KOMPONENTE - SENZOR

Sensor de Umidade do Solo

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

O módulo 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 módulo.

Cena: od 6 do 20 evrov.

4. korak: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

Aplikacija, ki se uporablja za uporabo v sistemu Dragonboard 410c za uporabo v sistemu Windows 10 IoT Core.

V operacijskem sistemu Windows 10 IoT Core je na voljo plačilna oblika za desenvolvimento criada para facilitar in 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):

  • Skupnost Visual Studio 2017 ali qualquer outra versão (https://www.visualstudio.com/thank-you-downloading…);
  • Orodje za posodobitev DragonBoard;
  • Armaturna plošča sistema Windows 10 IoT Core;
  • DragonBoard Windows 10 IoT Core Image;
  • Predloge projektov Windows IoT;

O postopku dokončanja namestitve in konfiguracije pode ser encontrado brez seguinte povezave:

Namestite in namestite konfiguracijo v skladu z vadnico za Microsoft basta criar um novo projeto no Visual Studio do tipo Background Application.

V tem tutorialu vas vabimo, da razkrijete ali dokončate uporabo aplikacij za GitHub

Danes morate konfigurirati aplikacijo, ne da bi zagotovili StartupTask.cs na raiz do projeto, ali pa razložite, ali ste parte a parte do código.

O método principal 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)); }

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

O Método InitGPIO () seguir tem como função definir kot konfiguracijo do pino que ativa a válvula solenoide de água. Nesse exemplo de código para a Dragonboard o código do pino foi o 36.

zasebna praznina InitGPIO ()

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

V načinu InitSPI () nastavite porta SPI0 do Dragonboard.

zasebna asinhirna naloga InitSPI ()

{try {var settings = new SpiConnectionSettings (0); // Izbira a porta SPI0 za nastavitve DragonBoard. ClockFrequency = 500000; // Konfiguracija ure za barvno nastavitev SPI v nastavitvah 0,5 MHz. Mode = SpiMode. Mode0; // COnfigura polaridade e fase to clock to SPI var krmilnik = čakajo SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (nastavitve); } catch (Exception ex) {throw new Exception ("Falha na inicialização do SPI", ex); }}

O primeiro timer se prikliče o metodi Timer_Tick () que tem como função in verificação através da API se nahaja v comando para iniciar uma irrigação. O seguinte trecho de código é responsável pela chamada à API:

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

httpWebRequest. ContentType = "aplikacija/json"; httpWebRequest. Method = "DOBI";

Neste trecho de código 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.

Parameter o segundo timer in invocado o metodi Timer_Tick2 () que é responseável pelo envio dos dados da umidade do solo naquele momento. É no seguinte trecho de código deste método que deve ser configurado o endereço da API para o envio dos dados:

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

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

O metodi LerADC (bajtni kanal) ali o odzivni metodi, ki jo lahko izvedete med pogovorom o analognem/digitalnem os valores informados pelo sensor de umidade. Prilagodite informacijsko matriko iz bajtov, ki jo želite pretvoriti v intero através do método ConvertToInt ([ReadOnlyArray] bajt podatki). Segue os trechos de código:

javni int LerADC (bajtni kanal)

{byte readBuffer = nov bajt [3]; byte writeBuffer = nov bajt [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = kanal; SpiADC. TransferFullDuplex (writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); vrni adcValue; } public int ConvertToInt ([ReadOnlyArray] bajt podatki) {int result = 0; rezultat = podatki [1] & 0x03; rezultat << = 8; rezultat += podatki [2]; povratni rezultat; }

5. korak: PRIPRAVITE API

API za desenvolvida na plataformi NodeJS (https://nodejs.org), za uporabo Swaggerja (https://swagger.io/specification/) in njegovega dokumentarnega programa za uporabo pri integraciji na trabalho.

Za armazenamento dos dados za uporabo ali banco de dados MySQL, banco de dados relational in open source.

Poiščite dodatek za uporabo, ki združuje API.

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

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

○ /api /storitev: 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 o retorno ocorrido durante o processo de request.

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

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

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

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

Če želite več informacij in e-poštnih obvestil o povezavi do github:

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

Metoda: POST

URI:/api/v1/umidades

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

Na primer: requizição:

{

"Hrabrost": 355}

Metoda: GET

URI:/api/v1/umidades

Opis: Recurso que recupera todos os registerros de valores de umidade que foram salvos anteriormente.

Primer odgovora:

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

Metoda: POST

URI:/api/v1/irrigacoes

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

Metoda: GET

URI:/api/v1/irrigacoes

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

Primer odgovora:

{

"Hrabrost": 355}

6. korak: APLIKACIJA MOBILNA

APLIKACIJA MOBILNA
APLIKACIJA MOBILNA
APLIKACIJA MOBILNA
APLIKACIJA MOBILNA

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 Ionic é um framework que possui uma gigantesca biblioteca de componentsntes gráficos que facilitation 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 (jedro). Através do cordova (biblioteca javascript) oscursos do dispositivos são acessados pelo webview do mesmo.

O aplikaciji sestavljajo realizirane algumas zahteve po API -ju za sistem in s tem, da se obterske informacije sobre in 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ção korespondente é realizada.

Povezave:

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

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

Če želite uporabiti funkcionalno basta konfiguracijo o endereço za API brez strežnika arquivo.ts que encontra-se no diretório /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) e spremenite različen URI_PREFIX, conforme exemplo abaixo para ali endereço onde está hospedada API:

strežnik izvoznega razreda {

javni statični samo za branje URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* javni statični samo za branje URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}

7. korak: FLUXOGRAMA

FLUKSOGRAMA
FLUKSOGRAMA

8. korak: REFERIKCIJE

Navodila:

Qualcomm DragonBoard 410C:

Windows 10 in DragonBoard ™ 410c-popoln začetek razvoja IoT:

Monitore sua planta usando Arduino:

Priporočena: