Sadržaj:

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

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

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 koraka
Video: 💦Blackview BV9200 ЧЕСТНЫЙ ОБЗОР ПРОТИВОУДАРНОГО 2024, Novembar
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

Podaci: 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 kada bismo mogli zalijevati naše biljke bilo kada i bilo gdje? Projektom WaterPlant to će biti moguće. Ovaj projekt je razvijen s ciljem poboljšanja pogodnosti i praktičnosti u tretiranju ovog toliko važnog za planetu.

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

FUNCIONAMENTO

O projekto 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.

Dodatne informacije o API -u, armazenadi na nuvemu, koje su dostupne u aplikaciji za mobilne uređaje, mogu se dobiti i tražene informacije. Desta forma je aplikacija za rukovanje informacijama o korištenju solo situacije. O usuário em contato com aplicação poderá solicitar o irrigamento imediado do solo, informisanje i enviada za API que por sua vez se comunica com a placa para acionamento do dispositivo de irrigação.

Korak 1: KOMPONENTE - DRAGONBOARD

KOMPONENTE - DRAGONBOARD
KOMPONENTE - DRAGONBOARD

DragonBoard 410C

DragonBoard 410C je primarna platforma za desenvolvimento bazu bez procesora za seriju Qualcomm Snapdragon 400, koja uključuje konekcije Wi -Fi, Bluetooth i GPS na ulazu u tamanho u blizini karte za crtanje, ili karakteristika pelo alto desempenho do procesora Qualcomm radi na 1,2 GHz, sa 1 GB memorijske memorije DDR3 533 MHz i 8 GB memorijske opreme (eMMC).

Cijena: 500 $ ~ 750 $

Korak 2: KOMPONENTE - OSNOVA LINKERA

KOMPONENTE - BAZA LINKERA
KOMPONENTE - BAZA LINKERA

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

Korak 3: KOMPONENTE - SENZOR

KOMPONENTE - SENZOR
KOMPONENTE - SENZOR

Sensor de Umidade do Solo

Este senzor koristi dois eletrodos za passar corrente pelo solo i nivelisanje umidade za upoređivanje sa otpornošću do potencijala do modula do senzora. Quando o solo estiver seco, a sua resistanceência aumenta, dificultando a passem de corrente. Com a absorção da água, otpor do solo diminui allowindo prolaz de corrente entre os eletrodos e fechando, desta forma, ili circuito. Dessa forma podemos definir quando o solo está molhado, ou quando está seco.

O modulu fortece tanto uma saida digital (D0), como uma saída analógica (A0). Digitalni i digitalni 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.

Cijena: R $ 6 ~ R $ 20.

Korak 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

Aplikacija koja se koristi za rad na Dragonboard 410c za korištenje u operativnom sistemu Windows 10 IoT Core.

O Windows 10 IoT Core je platforma za desenvolvimento kriju za omogućavanje vida i desenvolvedora za programiranje svih dostupnih programa. 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):

  • Zajednica Visual Studio 2017 ili vaša veća kvaliteta (https://www.visualstudio.com/thank-you-downloading…);
  • DragonBoard Update Tool;
  • Windows 10 IoT Core Dashboard;
  • DragonBoard Windows 10 IoT Core Image;
  • Predlošci projekata za Windows IoT;

O procesu kompletiranja za instalaciju i konfiguraciju podešavanja ser ser encontrado bez sigurne veze:

Aplikacija za instalaciju i konfiguraciju prilagođena je vodiču za Microsoft basta za novi projekt bez Visual Studija za pozadinsku aplikaciju.

Za ovaj tutorijal možete disponibilizirati ili završiti codigo da aplicirate na GitHub na

Danas konfiguracija za primjenu ne sadrži arkivo StartupTask.cs na raiz do projeto, a objašnjenje je objašnjeno ako ste parte a parte do codigo.

O método principu da primijenite Run () e seu código i 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 variáveis para serem utilizadas na nossa applicação enquanto as variáveis timer e timer2 criam 2 timers for serem executedos a cada quantidade de tempo, e neste caso foram parametar 10 sekundi. Para alterar esse tempo basta mudar estes valores nessa parte do código.

O Método InitGPIO () određena je funkcija koja definira konfiguraciju kao pino que ativa na válvula solenoide de água. Nesse exemplo de código para Dragonboard o código do pino foi o 36.

privatna praznina InitGPIO ()

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

Metodo InitSPI () konfigurira portu SPI0 do Dragonboard -a.

privatni async Zadatak InitSPI ()

{probajte {var settings = new SpiConnectionSettings (0); // Odabir porta SPI0 za postavke DragonBoarda. ClockFrequency = 500000; // Konfiguracija takta do barijera SPI -a na 0.5MHz settings. Mode = SpiMode. Mode0; // COnfiguracija polaridade i faksa do takta do SPI var kontrolera = čekanje SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (postavke); } catch (Exception ex) {throw new Exception ("Falha na inicialização do SPI", ex); }}

O primarnom timeru koji se poziva ili koristi Timer_Tick () koji funkcionira kao potvrda i potvrda API -ja za čuvanje komandi za početne irigacije. O tregu trećeg kodiga i odgovarajućih odgovora na 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 or endereço and 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.

Parametar segundo timer i poziva Timer_Tick2 () que je odgovor na pitanje da li je potrebno ukloniti do solo trenutka. É 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 (kanal bajtova) ili o odgovaranju na način da razgovarate o analognom/digitalnom osvjetljenju informacija o senzoru za umidadu. Prilagodite informacijski niz u bajtovima koji se konvertiraju u intero atravs do metoda ConvertToInt ([ReadOnlyArray] bajt podaci). Segue os trechos de código:

javni int LerADC (kanal bajtova)

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

Korak 5: PRIPREMITE API

API za desenvolvidu na platformi NodeJS (https://nodejs.org), za korištenje Swaggera (https://swagger.io/specification/) i dokumentarnog programa za povratnu upotrebu na integraciji do trabala.

Za armazenamento dosadašnje upotrebe banko de dados MySQL -a, banko de dados -a i otvorenog koda.

Zahtjevajte arkadnu kameru koja sadrži API.

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

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

○ /api /usluga: Camada que entrega os dados de entrada para serem tratados, depois escritos ou lidos pela camada de BO (descrita mais à diante). Nesta camada está konfiguracija o retorno ocorrido durante o procesu zahtjeva.

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

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

○ /spremište: 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.

Za sve dodatne informacije i konsultacije na Código fonte pristupu ili povezivanju na github:

Pogledajte i opis uma koji opisuje cada recurso disponibilizados na API -ju:

Metoda: POST

URI:/api/v1/umidades

Opis: Ponovno se koristi para registar umidade koletada pelo senzora de umidade.

Exemplo de requisição:

{

"Hrabrost": 355}

Metoda: GET

URI:/api/v1/umidades

Opis: Recurso que recupera todos os registros de valores de umidade que forram salvos anteriormente.

Primjer odgovora:

[{“Id”: 1, “valor”: 355, “dataCadastro”: gggg-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.

Primjer odgovora:

{

"Hrabrost": 355}

Korak 6: APLIKACIJA MOBILNA

APP MOBILNI
APP MOBILNI
APP MOBILNI
APP MOBILNI

Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todas as plataformas (Android i IOS) za aumentar a abrangência de usuários e diminuir o custo do projeto. O Ionic é um framework -u koji omogućava korištenje giganteske biblioteke sa komponentama grafika koje olakšavaju implementaciju vizualnog apliciranja. Upotreba jezičkih web stranica (HTML, CSS i Javascript) za promjenu kutnog koda o jezgru (jezgra). Através do cordova (biblioteca javascript) osposobljavaju za dispozitivo s acessados pelo webview do mesmo.

Aplikacija se sastoji od realiziranih zahtjeva potrebnih za API za sisteme i pronalaženje obter informacija, tako da umidade rade samostalno ili daljinski. Através de um evento de botão uma requisição é enviada para o servidor i ação korespondente é realizada.

Linkovi:

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

O codigo fonte do aplicativo modelo encontra-se no GitHub, no endereço

Da biste primijenili funkcionalnu basta konfiguraciju ili dodatak API-ju na arquivo server.ts, nemojte se upućivati na /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) niti mijenjati različite URI_PREFIX, conforme exemplo abaixo para o endereço ili está hospedada API:

klasa izvoza Server {

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

Korak 7: FLUXOGRAMA

FLUXOGRAMA
FLUXOGRAMA

Korak 8: REFERIKCIJE

Instrukcije:

Qualcomm DragonBoard 410C:

Windows 10 i DragonBoard ™ 410c-savršen početak za razvoj IoT-a:

Monitore sua planta usando Arduino:

Preporučuje se: