ዝርዝር ሁኔታ:

SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 ደረጃዎች
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 ደረጃዎች

ቪዲዮ: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 ደረጃዎች

ቪዲዮ: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 ደረጃዎች
ቪዲዮ: Faça um Controle de Irrigação Inteligente com Arduino 2024, ህዳር
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 GERAISCurso: Especialização em Arquitetura de Software Distribuído

መረጃ - 2017-10-26

Unidade: Praça da Liberdade

Disciplina: በይነመረብ das Coisas

ፕሮፌሰር - ኢሎ ሪቭሮ

አሉኖስ - ብሩኖ ቫልጋስ ([email protected])

ዴላን ሆፍማን ፒ ሲልቫ ([email protected])

ሄበርት አልቬስ ፌሬራ ([email protected])

ዣን ካርሎስ ባቲስታ ([email protected])

ጆርዳን ባቲስታ ([email protected])

መግቢያ

ተክሎቻችንን በማንኛውም ጊዜ ፣ በየትኛውም ቦታ ማጠጣት ብንችል ምን ይመስል ነበር? በ WaterPlant ፕሮጀክት የሚቻል ይሆናል። ይህ ፕሮጀክት ለፕላኔቷ በጣም አስፈላጊ የሆነውን ለማከም ምቾት እና ተግባራዊነትን ለማሻሻል ያለመ ነው።

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.

አንድ ኤፒአይ መረጃን ፣ መረጃን እና መረጃን ለማግኘት ፣ ስለእሱ መረጃ ለማግኘት በሞባይል ላይ መረጃን ማግኘት ይችላሉ። 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 - አካላት - ድራጎንቦርድ

አካላት - ድራጎንቦርድ
አካላት - ድራጎንቦርድ

DragonBoard 410C

አንድ DragonBoard 410C እና አንድ ፕሪራራ ዲካ ዴንቮልቪሜንቶ ቤዛዳ ምንም ፕሮሰሲዶር ዳ ሴሬ Qualcomm Snapdragon 400 ፣ Wi -Fi ፣ ብሉቱዝ እና ጂፒኤስ ኢማ ፕላካ ታማንሆ አፕሮክሲማዶ ዴ ኤም ካርታኦ ዴ ክሪዲቶ ፣ ኢ ካራቴሪዛዳ pelo alto desempenho do processador de 64 ቢት ዳ Qualcomm rodando à 1.2GHz ፣ com 1GB de memória DDR3 533 MHz e 8GB de memória de armazenamento (eMMC)።

ቅድመ: R $ 500 ~ R $ 750

ደረጃ 2: ተጓዳኞች - የአገናኝ አገናኝ መሠረት

አካላት - የአገናኝ አገናኝ መሠረት
አካላት - የአገናኝ አገናኝ መሠረት

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

ደረጃ 3 - አካላት - ዳሳሽ

አካላት - አነፍናፊ
አካላት - አነፍናፊ

ዳሳሽ ዲ ኡሚዳዴ ሶሎ

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. አንድ absorção da água, አንድ 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.

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.

ቅድመ: R $ 6 ~ R $ 20።

ደረጃ 4 DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

በዊንዶውስ 10 IoT ኮር ውስጥ የድራጎንቦርድ 410c ን በመጠቀም አፕሊኬሽኖ desenvolvida para rodar።

ኦ ዊንዶውስ 10 IoT Core uma plataforma de desenvolvimento criada para facilitar a vida dos desenvolvedores and 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 (ጃም ኢም ሴንቺኒያ ዴ ኢንስታላçኦ ፣ ምንም caso de uso da Dragonboardboard):

  • ቪዥዋል ስቱዲዮ 2017 ማህበረሰብ ou qualquer outra versao (https://www.visualstudio.com/thank-you-downloading…);
  • DragonBoard ዝማኔ መሣሪያ;
  • ዊንዶውስ 10 IoT ኮር ዳሽቦርድ;
  • DragonBoard Windows 10 IoT Core Image;
  • የዊንዶውስ IoT ፕሮጀክት አብነቶች;

ለፕሮግራሙ ማጠናከሪያ (ኢንሴክራዶ) ምንም አገናኝ የለም

የማይክሮሶፍት ባስታን የማስተማሪያ መመሪያን ለማስተናገድ ከዚህ በታች የእይታ ስቱዲዮን ወደ ዳራ ትግበራ አያስተላልፉም።

ለፓራዝ ማጠናከሪያ ትምህርት 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étodo principal da aplicação é o Run () e seu código é o seguinte:

የህዝብ ባዶነት ሩጫ (IBackgroundTaskInstance taskInstance)

{InitGPIO (); InitSPI (); _deferral = taskInstance. GetDeferral (); ሰዓት ቆጣሪ = 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, e neste caso foram parametrizados 10. ፓራ አልቴራር እስሴ ቴምፓ ባስታ ሙዳር እስቴስ ቫሎረስ ኔሳ በከፊል ዶ ኮዲጎ።

O Método InitGPIO () a seguir tem como função definir as configuraçõese do pino que ativa a válvula solenoide de água. ለምሳሌ የዴራጎንቦርድ ወይም የዴንቦርድ ዶ ፒኖ ፎይ o 36.

የግል ባዶነት InitGPIO ()

{var gpio = GpioController. GetDefault (); ከሆነ (gpio == ባዶ) {pin = null; መመለስ; } ፒን = gpio. OpenPin (36); ከሆነ (ፒን == ባዶ) {ተመለስ; } ፒን። ይፃፉ (GpioPinValue. High); pin. SetDriveMode (GpioPinDriveMode. Output); }

O método InitSPI () ፖርቶ SPI0 da Dragonboard ን ያዋቅሩ።

የግል async ተግባር InitSPI ()

{ይሞክሩ {var settings = new SpiConnectionSettings (0); // Seleciona a porta SPI0 da DragonBoard settings. ClockFrequency = 500000; // Configura o clock do barramento SPI em 0.5MHz settings. Mode = SpiMode. Mode0; // COnfigura polaridade e fase ማድረግ SPI var መቆጣጠሪያ = SpiController. GetDefaultAsync () ን ይጠብቁ; SpiADC = መቆጣጠሪያ.ጌትዴቨር (ቅንጅቶች); } መያዝ (ለየት ያለ) {አዲስ ልዩነትን («Falha na inicialização do SPI» ፣ ex) መጣል ፤ }}

O primeiro timer invoca 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. O seguinte trecho de código é responsável pela chamada à ኤፒአይ

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

httpWebRequest. ContentType = "ትግበራ/json"; httpWebRequest. Method = "ያግኙ";

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. Es neste trecho de código que a irrigação é encerrada também.

Para o segundo timer é invocado o método Timer_Tick2 () que é responsá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 = "ትግበራ/json"; httpWebRequest. Method = "POST";

O método LerADC (ባይት ቦይ) é o método responsável por ler do conversor analógico/digital os valores informados pelo sensor de umidade. Este adaptador informa um array de bytes que é convertido em inteiro através do método ConvertToInt ([ReadOnlyArray] byte ውሂብ)። Segue os trechos de código:

የህዝብ int LerADC (ባይት ቦይ)

{ባይት readBuffer = አዲስ ባይት [3]; ባይት writeBuffer = አዲስ ባይት [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = ቦይ; SpiADC. TransferFullDuplex (writeBuffer ፣ readBuffer); adcValue = ConvertToInt (readBuffer); adcValue ን መመለስ; } public int ConvertToInt ([ReadOnlyArray] byte ውሂብ) {int result = 0; ውጤት = ውሂብ [1] & 0x03; ውጤት << = 8; ውጤት += ውሂብ [2]; የመመለሻ ውጤት; }

ደረጃ 5 ኤፒአይ ያዘጋጁ

ኤፒአይ foi desenvolvida እና plataforma NodeJS (https://nodejs.org) ፣ foi utilizado o Swagger (https://swagger.io/specification/) a fim de modelar e documentar os recursos utilizados እና integração do trabalho።

ፓራ አርማዜናንትሶ ዶስ ዳዶስ ለ ‹MySQL ›፣ ለባንኮ ዳዳስ ተዛማጅነት እና ክፍት ምንጭ።

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

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

○ /api /ተቆጣጣሪ: Camada que gerencia እንደ 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 o retorno ocorrido durante o processo de ጥያቄ።

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

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

○ /ማከማቻ: ካማዳ ዴ persistência de dados።

Infrastructure /መሠረተ ልማት ፦ 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።

ፓራ mais መረጃ እና ቆንስላ አዶ ኮዲጎ ፎንቴስ አሴሶ ወይም አገናኝ ግትቡብ-https://github.com/jeanbatista/simple-api-swagger

Segue abaixo uma breve descriptionção de cada recurso disponibilizados እና API:

ሜቶዶ - ፖስት

ዩአርአይ/api/v1/umidades

መግለጫ: ሬሲሶሶ utilizado para registar umidade coletada pelo sensor de umidade.

ምሳሌ ደ ሪሲሲሲኦ:

{

“ደፋር”: 355}

ሜቶዶ: ያግኙ

ዩአርአይ/api/v1/umidades

መግለጫ: ሬኩሶሶ ሬስፔሬ ቴዶስ ኦስ ሬጅስትሮስት ዴ ቫሎሬስ ዴ ኡሚዴድ ፎ ፎር ሳልቫስ አንጀንትሜንት።

ለምሳሌ ምላሽ;

[{“መታወቂያ”: 1 ፣ “ደፋር”: 355 ፣ “dataCadastro”: yyyy-MM-dd HH: MM}]

ሜቶዶ - ፖስት

ዩአርአይ/api/v1/irrigacoes

መግለጫ - ሬሲሶሶ ለፓርቲ አቲቫር ኦ ዲስፖስቲቮ ዴ irrigação።

ሜቶዶ: ያግኙ

ዩአርአይ/api/v1/irrigacoes

ገለፃ - ለብቻው የሚጠቅመውን መጠቀም ብቻ ነው።

ለምሳሌ ምላሽ;

{

“ደፋር”: 355}

ደረጃ 6 - APP MOBILE

የመተግበሪያ ሞባይል
የመተግበሪያ ሞባይል
የመተግበሪያ ሞባይል
የመተግበሪያ ሞባይል

Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todasas as plataformas (Android e IOS) para aumentar a abrangência de usuários e diminuir o custo do projeto. O Ionic é um frame que possui uma gigantesca biblioteca de componentses gráficos que facilita a implementação visual do aplicativo. ለኤንጂንግ ድር (ኤችቲኤምኤል ፣ ሲኤስኤስ እና ጃቫስክሪፕት) 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 sistema a fim de se obter informaçõ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ção ዘጋቢ ኤ realizada.

አገናኞች ፦

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

ኦ ኮዲጎ ፎንቴ አፕሊኬቲቭ ሞድሎ ኢንኮንትራ-ሲ GitHub ን አያገኝም ፣

ለኤፒአይ ምንም arquivo server.ts que encontra-se no diretório /src/entity/server.ts (https://github.com/jeordanecarlosbatista/temperat…) conforme exemplo abaixo para o endereço onde está hospedada a API:

የመደብ ክፍል አገልጋይ {

የህዝብ የማይንቀሳቀስ ተነባቢ ብቻ URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* የህዝብ የማይንቀሳቀስ ተነባቢ ብቻ URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}

ደረጃ 7 FLUXOGRAMA

ፍሉኮግራማ
ፍሉኮግራማ

ደረጃ 8: REFERÊNCIAS

አስተማሪዎች -

Qualcomm DragonBoard 410C:

ዊንዶውስ 10 እና DragonBoard ™ 410c-ለ IoT ልማት ፍጹም ጅምር

Monitore sua planta usando Arduino:

የሚመከር: