Turinys:

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

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

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 žingsniai
Video: Irrigação via WiFi? Como funciona automatização de irrigação? Irrigação de Jardim? 2024, Lapkritis
Anonim
Image
Image
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTTPHONE
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTTPHONE
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTTPHONE
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTTPHONE

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Kursas: Especialização em Arquitetura de Software Distribuído

Duomenys: 2017-10-26

Unidade: Praça da Liberdade

Disciplina: internetas das Coisas

Profesorius: Ilo Rivero

Alunos: Bruno Valgas ([email protected])

Dellanas Hoffmanas P. Silva ([email protected])

Hebertas Alvesas Ferreira ([email protected])

Jean Carlos Batista ([email protected])

Jeordane Batista ([email protected])

ĮVADAS

Kas būtų, jei bet kada ir bet kur galėtume laistyti augalus? Su „WaterPlant“projektu tai bus įmanoma. Šis projektas buvo sukurtas siekiant pagerinti patogumą ir praktiškumą, kad tai būtų taip svarbu planetai.

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.

A placa envia informationçõ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 žingsnis: KOMPONENTAI - DRAGONBOARD

KOMPONENTAI - DRAGONBOARD
KOMPONENTAI - DRAGONBOARD

„DragonBoard 410C“

„DragonBoard 410C“yra pagrindinis „Qualcomm Snapdragon 400“procesoriaus procesorius, belaidis „Wi -Fi“, „Bluetooth“ir GPS, kad būtų galima atlikti tamanho aproximado de cart kartą, o taip pat ir charakteristikos. „Qualcomm“1,2 GHz dažnis, 1 GB atminties DDR3 533 MHz ir 8 GB atminties atminties (eMMC).

Kaina: 500–750 USD

2 žingsnis: KOMPONENTAI - LINKER BASE

KOMPONENTAI - LINKER BASE
KOMPONENTAI - LINKER BASE

Mapeamento plotas ir naudojimosi portais, palengvinti ir panaudoti sensores.

3 žingsnis: KOMPONENTAI - JUTIKLIS

KOMPONENTAI - JUTIKLIS
KOMPONENTAI - JUTIKLIS

„Umidade do Solo“jutiklis

Este jutiklio panaudojimas gali būti naudojamas tik pasienyje, o ne oro drėgnumas, lyginant su palyginamuoju komentu ir atsparumo potencialo metodu. Quando o solo estiver seco, aaa resistência aumenta, dificultando a passagem de corrente. Com 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 metodo 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.

Kaina: 6–20 USD.

4 žingsnis: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

„Dragonboard 410c“programos, skirtos naudoti „Windows 10 IoT Core“, programa.

O „Windows 10 IoT Core“yra platforma, padedanti plėtoti krizę, padedanti palengvinti vida dos desvolvolvedores ir hora de programar seus dispositivos. Com ele é possível desenvolver para várias placas egzistuoja be prekybos, 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“arba „outra versão“(https://www.visualstudio.com/thank-you-downloading…);
  • „DragonBoard“atnaujinimo įrankis;
  • „Windows 10 IoT Core“prietaisų skydelis;
  • „DragonBoard“„Windows 10 IoT Core Image“;
  • „Windows IoT“projekto šablonai;

O užbaigtas procesas, skirtas įdiegti ir konfigūruoti kodą, esantį prieigos be nuorodos:

Įdiegti ir konfigūruoti konfigūraciją arba vadovėlį, skirtą „Microsoft Basta Criar“naujovėms, skirtoms „Visual Studio do tipo Background Application“.

Paruoškite mokomąją programą „Vamos Disponibilizar“arba „Código finalizado da aplicação através do do GitHub“https://developer.microsoft.com/en-us/windows/iot…

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 principas 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 () inicializam varáveis para serem utilizadas na nossa aplicação enquanto as varáveis timer e timer2 criam 2 timers para serem executados a cada quantidade de tempo, e neste caso foram parametrizados 10 segmentai (10 milijardų). Para alterar esse tempo basta mudar estes valores nessa parte do código.

O Método InitGPIO () a mixir tem como função definir as configuraçõese do pino que ativa a válvula solenoide de água. Nesenas pavyzdys „Dragonboard“arba „codigo do pino foi“36.

privatus negaliojimas InitGPIO ()

{var gpio = GpioController. GetDefault (); if (gpio == null) {pin = null; grįžti; } smeigtukas = gpio. OpenPin (36); if (pin == null) {return; } PIN. Write (GpioPinValue. High); pin. SetDriveMode („GpioPinDriveMode. Output“); }

„InitSPI“() konfigūruokite „SPI0“prievadą „Dragonboard“.

privati asinchronizavimo užduotis InitSPI ()

{pabandykite {var settings = new SpiConnectionSettings (0); // Pasirinkimas ir SPI0 portalas „DragonBoard“nustatymuose. ClockFrequency = 500000; // Konfigūruokite laikrodį, kad nustatytumėte barramento SPI em 0.5MHz settings. Mode = SpiMode. Mode0; // COnfigura polaridade e fase do clock do SPI var controller = laukti SpiController. GetDefaultAsync (); SpiADC = valdiklis. GetDevice (nustatymai); } laimikis (išimtis ex) {išmesti naują išimtį ("Falha na inicialização do SPI", ex); }}

„O primeiro“laikmatis yra vadinamas „Timer_Tick“() tai yra sudėtinga funkcija ir tikrinamas API atvėrimas. Jei norite sekti trečiojo kodo atsakymus ir atsakyti į žaidimo API, API:

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

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

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 arba segmentinis laikmatis, taip pat „Timer_Tick2“() atsakymas į pelės envio dos dados da umidade do solo naquele moment. Jokio mišinio trecho de código deste método que deve ser Configurado arba endereço da API para or envio dos dados:

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

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

Naudokite „LerADC“metodą (baitų kanalas) ir atsakykite į pokalbį, kad gautumėte analitinį/skaitmeninį informacijos apie šviesą informatorių pelės jutiklį. Iš pradžių prisitaikykite prie informacijos apie masyvus, baitų, konvertuojančių ir konvertuojančių, konvertuojančių „ConvertToInt“([ReadOnlyArray] baitų duomenys). Segue os trechos de código:

public int LerADC (baitų kanalas)

{baitas skaitytiBufferis = naujas baitas [3]; baitas writeBuffer = naujas baitas [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = kanalas; SpiADC. TransferFullDuplex (writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); return adcValue; } public int ConvertToInt ([ReadOnlyArray] baitų duomenys) {int rezultatas = 0; rezultatas = duomenys [1] & 0x03; rezultatas << = 8; rezultatas += duomenys [2]; grąžinimo rezultatas; }

5 veiksmas: Paruoškite API

API, skirta „NodeJS“(https://nodejs.org) platformai, „Swagger“naudojimui (https://swagger.io/specification/) ir modernaus dokumentacijos bei dokumentinio atkūrimo panaudojimo integracijai.

Jei norite naudoti „MySQL“, „dad's dados“naudojimui ar naudojimui „MySQL“, „banco de dados“ir atviro kodo bankui.

Sukurkite API ir sukurkite tam tikrą kamados arkados struktūrą.

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

○ /api /valdiklis: „Camada que gerencia“, kaip apibrėžta, nėra dokumento 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). Išsami konfigūracijos konfigūracija arba retrospektyva, ocorrido durante arba procesas.

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

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

○ /saugykla: „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.

Norėdami gauti daugiau informacijos ir pasikonsultuoti, turite gauti nuorodą į „Github“:

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

Metodas: POST

URI:/api/v1/umidades

Aprašymas: Pakartotinis naudojimas registruojamiems drėgniems koleto pelės jutikliams.

Reikalavimų pavyzdys:

{

„Narsumas“: 355}

Metodas: GET

URI:/api/v1/umidades

Aprašymas: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.

Atsakymo pavyzdys:

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

Metodas: POST

URI:/api/v1/irrigacoes

Aprašymas: Recurso utilizado para ativar o dispositivo de irrigação.

Metodas: GET

URI:/api/v1/irrigacoes

Aprašymas: Recurso utilizado para verificar o estado de umidade atual do solo.

Atsakymo pavyzdys:

{

„Narsumas“: 355}

6 veiksmas: 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“ir „IOS“), skirtos naudoti ir naudoti, ir mažinti, ar keisti. O joninis karkasas, leidžiantis naudotis biblioteka, sudedamųjų dalių gráficos que lengvata ir įgyvendinimas vizualiai taikant. Naudokite kalbų žiniatinklį (HTML, CSS ir „Javascript“), skirtą kryžminiam tekstui ir temai „Angular como o seu núcleo“(branduolys). 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 a 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.

Nuorodos:

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

O kodo fonte do aplicativo modelio encontra-se no GitHub, no endereço

Para que o applicativo 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…) ir kitoks URI_PREFIX, conforme examplelo abaixo para or endereço onde está hospedada a API:

eksporto klasės serveris {

viešas statinis tik skaitomas URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* viešas statinis tik skaitomas URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}

7 žingsnis: FLUXOGRAMA

FLUXOGRAMA
FLUXOGRAMA

8 žingsnis: Nuorodos

Instrukcijos:

„Qualcomm DragonBoard 410C“:

„Windows 10“ir „DragonBoard ™ 410c“-puiki pradžia daiktų interneto plėtrai:

Montaras su planta usando Arduino:

Rekomenduojamas: