INHOUDSOPGAWE:

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

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

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 stappe
Video: Faça um Controle de Irrigação Inteligente com Arduino 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 GERAIS Kursus: Especialização em Arquitetura de Software Distribuído

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

INLEIDING

Hoe sou dit wees as ons ons plante altyd en oral kan natmaak? Met die WaterPlant -projek sal dit moontlik wees. Hierdie projek is ontwikkel wat daarop gemik is om die gemak en prakties te verbeter om dit so belangrik vir die planeet te behandel.

INTRODUÇÃO

Is dit 'n goeie idee om 'n goeie plant te kry? 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. Dit is moontlik om 'n enkele of 'n noodsaaklike oplossing vir u te ontvang.

'N Plaaslike inligting vir 'n API, 'n nuutste weergawe, wat vir ons 'n mobiele app kan verskaf, en dat ons inligting oor hierdie inligting kan ontvang. Ons kan hierdie inligting as 'n spesifieke manier gebruik. Ons kan ook 'n aansoek doen om 'n soliede taak, maar ook 'n gegewens vir ons as 'n API wat vir ons 'n kombinasie kan gee met 'n plek vir 'n aktiewe beskikking van die irrigação.

Stap 1: KOMPONENTE - DRAGONBOARD

KOMPONENTE - DRAGONBOARD
KOMPONENTE - DRAGONBOARD

DragonBoard 410C

A DragonBoard 410C is 'n uitstekende plek om 'n volledige verwerking van Qualcomm Snapdragon 400, WiFi, Bluetooth en GPS te verwerk Qualcomm kan op 1,2 GHz kom, met 1 GB geheue DDR3 533 MHz en 8 GB geheue geheue (eMMC).

Prys: R $ 500 ~ R $ 750

Stap 2: KOMPONENTE - LINKER BASE

KOMPONENTE - LINKER BASE
KOMPONENTE - LINKER BASE

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

Stap 3: KOMPONENTE - SENSOR

KOMPONENTE - SENSOR
KOMPONENTE - SENSOR

Sensor de Umidade do Solo

Este sensor utilize dois eletrodos para passar corrente pelo solo and 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. As a absorção da água, a resistência do solo diminui permitindo a passagem de corrente entre os eletrodos e fechando, desta forma, o circuito. Hierdie forma podemos definir quando o solo está molhado, ou quando está seco.

Ons kan ook digitaal (D0), analoog analoog (A0) gebruik. Dit is 'n digitale aanpassing om 'n goeie tyd vir ons te gee.

Prys: R $ 6 ~ R $ 20.

Stap 4: DESENVOLVIMENTO COM WINDOWS 10 IOT KERN

Aplicação desenvolvida for Dragonar 410c vir Windows 10 IoT Core.

O Windows 10 IoT Core bied 'n groot aantal funksionele en funksionele funksies. Com ele é possível desenvolver para várias placas existentes no mercado, bastando ter installation no computador os seguintes itens (já em sequência de instalação, no caso de uso da Dragonboard):

  • Visual Studio 2017-gemeenskap kan outra versão (https://www.visualstudio.com/thank-you-downloading…);
  • DragonBoard -opdateringshulpmiddel;
  • Windows 10 IoT Core -dashboard;
  • DragonBoard Windows 10 IoT Core Image;
  • Windows IoT -projeksjablone;

Vir die voltooiing van die installasie en konfigurasie kan u 'n enkele skakel nie:

Ons kan 'n installeer en installeer volgens die tutoriaal van Microsoft om 'n nuwe program vir Visual Studio vir die agtergrondtoepassing te gebruik.

Vir meer inligting oor hoe u die GitHub-funksie kan voltooi, U kan ook 'n konfigurasie gebruik om die opstarttaak.cs te ontleed, en ons kan dit ook as deel van 'n artikel beskryf.

O método principal da aplicação é o Run () en seu código é o seguinte:

openbaar leegloop (IBackgroundTaskInstance taskInstance)

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

Ons kan InitGPIO () en InitSPI () in amptelike variëteite vir seremse gebruike gebruik om meer as 'n tydsverloop te gebruik as timer 2 timer 2 kry 2 tydopnames vir seremiese uitvoerings en tempo's, en volgende gevalle vir parametrizados 10 segmente. Para alterar esse tempo basta mudar estes valores nessa parte do código.

O Método InitGPIO () kan 'n spesifieke funksie definieer as die konfigurasie wat ons kan doen om 'n volledige solenoïde op te stel. Dit is byvoorbeeld 'n voorbeeld van 'n draakbord of 36.

privaat leemte InitGPIO ()

{var gpio = GpioController. GetDefault (); as (gpio == null) {pin = null; terugkeer; } pin = gpio. OpenPin (36); as (pin == null) {return; } pen. Skryf (GpioPinValue. High); pin. SetDriveMode (GpioPinDriveMode. Output); }

Die oorspronklike SPI () -konfigurasie vir SPI0 van Dragonboard.

privaat asynchronisasie taak InitSPI ()

{probeer {var settings = nuwe SpiConnectionSettings (0); // Kies 'n SPI0 -opsie vir DragonBoard -instellings. ClockFrequency = 500000; // Konfigureer die klok met SPR met 0.5MHz -instellings. Mode = SpiMode. Mode0; // COnfigura polaridade e fase do clock to SPI var controller = wag SpiController. GetDefaultAsync (); SpiADC = kontroleerder. GetDevice (instellings); } catch (Exception ex) {gooi nuwe Exception ("Falha na inicialização do SPI", ex); }}

O Timer_Tick () kan die oorspronklike timer van die funksie en die API -funksie verifieer. Ons kan die antwoord op die antwoorde op API:

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

httpWebRequest. ContentType = "toepassing/json"; httpWebRequest. Method = "KRY";

Ons kan die alternatiewe funksie van ons diens in ons hospitaal of die API vir 'n bus of die bestuur van die bus bestuur. Een van die belangrikste dinge wat ons kan doen, is 'n encerrada também.

Vir 'n tydopname of 'n invokado of 'n tydopname van Timer_Tick2 () kan ons 'n enkele antwoord op die oomblik gee. Dit is nie 'n spesifieke manier waarop ons die konfigurasie of die API kan gebruik nie:

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

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

O método LerADC (byte canal) é o método responsável por ler do conversor analógico/digital us valores informados pelo sensor de umidade. Die belangrikste inligting vir die omskakeling van bytes wat omskakel kan word na 'n volledige omskakeling van ConvertToInt ([ReadOnlyArray] byte -data). Ons kan die volgende wysig:

publieke int LerADC (byte kanaal)

{byte readBuffer = nuwe byte [3]; byte writeBuffer = nuwe byte [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = kanaal; SpiADC. TransferFullDuplex (writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); gee adcValue terug; } public int ConvertToInt ([ReadOnlyArray] byte data) {int resultaat = 0; resultaat = data [1] & 0x03; resultaat << = 8; resultaat += data [2]; terugkeer resultaat; }

Stap 5: VOORBEREID 'n API

API vir die vorming van NodeJS (https://nodejs.org), vir die gebruik van Swagger (https://swagger.io/specification/) en die model en dokumentasie wat ons kan gebruik om integraal te gebruik.

Para armazenamento dos dados foi utilize of banco de dados MySQL, banco de dados relacional en open source.

Ons kan 'n API gebruik.

● /api: Dit is moontlik om dit vir ons moontlik te maak.

○ /api /kontroleerder: Dit is 'n funksie wat ons nie kan dokumenteer nie.

○ /api /service: Camada que entrega os dados de entrada para serem tratados, depois escritos ou lidos pela camada de BO (descrita mais à diante). Ons kan dit nie eers vir 'n keer registreer nie.

○ /api /swagger: Die konfigurasie kan verander word, maar dit kan ook as konfigurasies vir herhaling gebruik word.

● /domein: Dit kan 'n volledige herkenning van 'n nuwe registrasie gee.

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

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

Vir meer inligting en raadpleging van 'n skakel na github:

Ons bied 'n volledige beskrywing van die beskikbare weergawe van API's:

Método: POST

URI:/api/v1/umidades

Beskrywing: Recurso utilizado for registar umidade coletada pelo sensor de umidade.

Voorbeeld van die vereiste:

{

“Dapperheid”: 355}

Método: KRY

URI:/api/v1/umidades

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

Voorbeeld van reaksie:

[{"Id": 1, "dapperheid": 355, "dataCadastro": jjjj-MM-dd HH: MM}]

Método: POST

URI:/api/v1/irrigacoes

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

Método: KRY

URI:/api/v1/irrigacoes

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

Voorbeeld van reaksie:

{

“Dapperheid”: 355}

Stap 6: APP MOBILE

APP MOBILE
APP MOBILE
APP MOBILE
APP MOBILE

Escolhemos uma tecnologia híbrida para gerar um código reutilizável fora as plataformas (Android e IOS) para aumentar and abrangência de usuários and diminuir or custo do projeto. O Ionic é um framework que possui uma gigantesca biblioteca de componentes gráficos que facilita 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 (core). Aansoeke vir kordaat (biblioteca javascript) is 'n manier om 'n volledige weergawe van die webweergawe te doen.

Aplicativo consiste em realizar algumas requisições para a API do sistema and fim de se obter information about a umidade do solo and regar of mesmo remotamente. Através de um evento de botão uma requisição é enviada para o servidor e a ação correspondente é realizada.

Skakels:

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

U kan ook 'n model gebruik vir GitHub, nie na

As 'n funksionele funksie vir die konfigurasie van 'n API sonder 'n arquivo-bediener, kan ons geen direkte /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) e-pos verander nie konformeer 'n voorbeeld van 'n endereço onde está hospedada van 'n API:

uitvoer klas bediener {

openbare staties slegs URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* openbare staties slegs URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}

Stap 7: FLUXOGRAMA

FLUXOGRAMA
FLUXOGRAMA

Stap 8: VERWYSINGS

Instruksies:

Qualcomm DragonBoard 410C:

Windows 10 en DragonBoard ™ 410c-die perfekte begin vir IoT-ontwikkeling:

Monitore sua planta usando Arduino:

Aanbeveel: