Sadržaj:
- Korak 1: KOMPONENTE - DRAGONBOARD
- Korak 2: KOMPONENTE - BAZA LINKERA
- Korak 3: KOMPONENTE - SENZOR
- Korak 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- Korak 5: PRIPREMITE API
- Korak 6: APLIKACIJA MOBILNA
- Korak 7: FLUXOGRAMA
- Korak 8: REFERIKCIJE
Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAISKurso: 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 kad bismo mogli zalijevati naše biljke bilo kada i bilo gdje? S projektom WaterPlant to će biti moguće. Ovaj je projekt razvijen s ciljem poboljšanja pogodnosti i praktičnosti u tretiranju ovog toliko važnog 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.
Korak 1: KOMPONENTE - DRAGONBOARD
DragonBoard 410C
DragonBoard 410C je primarna ploča za desenvolvimento na bazi procesora za seriju Qualcomm Snapdragon 400, koji uključuje zajedničke konekcije Wi -Fi, Bluetooth i GPS na umu da se nalazi na tamanhu, približno na karti de crédito, ili je karakteriziran pelo alto desempenho do procesor Qualcomm radi na 1,2 GHz, ima 1 GB memorije DDR3 533 MHz i 8 GB memorije za armazenamento (eMMC).
Cijena: 500 USD ~ 750 USD
Korak 2: KOMPONENTE - BAZA LINKERA
Placa de expansão para mapeamento e utilização de portas, facilitando a utilização de sensores.
Korak 3: 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 resistê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, resistência do solo diminui allowindo a passm 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.
Cijena: 6 USD - 20 USD.
Korak 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
Aplikacija koja se koristi za rad na Dragonboard 410c za korištenje u sustavu Windows 10 IoT Core.
O Windows 10 IoT Core je umanjena platforma za desenvolvimento criada para facilitar a 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):
- Zajednica Visual Studio 2017 ili qualquer outra versão (https://www.visualstudio.com/thank-you-downloading…);
- DragonBoard Alat za ažuriranje;
- Windows 10 IoT Core nadzorna ploča;
- DragonBoard Windows 10 IoT Core Image;
- Predlošci projekata za Windows IoT;
O procesu kompletiranja za instalaciju i konfiguraciju pode ser encontrado bez seguinte veze:
Aplikacija je instalirala i konfigurirala konfiguraciju o vodiču za Microsoft basta criar um novo projektovanje bez Visual Studija za pozadinsku aplikaciju.
Para este tutorial vamos disponibilizar o codigo finalizado da aplicação através do GitHub em
Danas je konfiguracija do apliciranja está no arquivo StartupTask.cs na raiz do projeto, a vamos eksplicar abaixo 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 () inicializam 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 milisos. Para alterar esse tempo basta mudar estes valores nessa parte do código.
O Método InitGPIO () seguir tem como função definir kao konfiguracije 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.
privatna praznina InitGPIO ()
{var gpio = GpioController. GetDefault (); if (gpio == null) {pin = null; povratak; } pin = gpio. OpenPin (36); if (pin == null) {return; } pin. Write (GpioPinValue. High); pin. SetDriveMode (GpioPinDriveMode. Output); }
O método InitSPI () konfigurirate port SPI0 do Dragonboard.
privatna asinkronizacija Zadatak InitSPI ()
{try {var settings = new SpiConnectionSettings (0); // Odabir a porta SPI0 do postavki DragonBoarda. ClockFrequency = 500000; // Konfiguracija takta do barijera SPI -ja na postavkama 0,5 MHz. Mode = SpiMode. Mode0; // COnfigura polaridade e fase do clock to SPI var controller = await SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (postavke); } catch (Exception ex) {throw new Exception ("Falha na inicialização do SPI", ex); }}
O primeiro timer invoka 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 tregu de código i responvel pela chamada u API -ju:
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.
Para o segundo timer é poziva na 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 = "aplikacija/json"; httpWebRequest. Method = "POST";
O metodi LerADC (kanal bajtova) o odazivu na povratne informacije o konverzijskom analitičkom/digitalnom os valores informados pelo sensor de umidade. Prilagodite podatke u niz polja po bajtovima koji su konvertirani u intero através do método ConvertToInt ([ReadOnlyArray] byte 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); vrati adcValue; } public int ConvertToInt ([ReadOnlyArray] byte podaci) {int result = 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 za modelarne i dokumentarne dokumente o ponovnoj uporabi na integraciji do trabalja.
Za armazenamento dos dados za korištenje o banco de dados MySQL, banco de dados relacional i open source.
Zahtjevajte arquitetura de camadas que compõem 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á 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.
○ /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 dodatne informacije i konzultacije o código fonte acesso o vezi do github-a:
Pogledajte i opis uma breve 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 foram 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
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 facilitations 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 (jezgra). Através do cordova (biblioteca javascript) oscursos do dispositivos são acessados pelo webview do mesmo.
O aplikaciji konziste 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 korespondente é realizada.
Veze:
- https://ionicframework.com/
- https://angular.io/
- https://ionicframework.com/
O código fonte do aplicativo modelo encontra-se no GitHub, no endereço
Para que o aplicativo funcione basta configurar o endereço da API nema arquivo server.ts que encontra-se no diretório /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) e alterar a variável URI_PREFIX, conforme exemplo abaixo para o endereço onde está hospedada API:
poslužitelj klase izvoza {
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
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čeni:
Jukebox Casera Por: Tono Kiehnle: 5 koraka (sa slikama)
Jukebox Casera Por: Tono Kiehnle: Jukebox hecha en casa programada con Arduino UNO. Contiene 3 canciones reproducidas por medio de un buzzer pasivo y cuenta con botones de pulso y una pantalla LCD para la interaracion con el usuario.La jukebox cuenta con 3 botones. 2 de ellos se koriste
Sustav De Irrigação Automático Para Plantas: 8 koraka
Sistema De Irrigação Automático Para Plantas: A irrigação é uma das tecnologias mais utilizadas por farmtores pois esta atividade Independe da ocorrência de chuvas, garante uma safra uniforme, reduz a falha humana, minimiza o consumo de águasa (minimiza o consumo de águas)
Asistencija Solar: Un Smartphone Promjena: 3 koraka
Asistente Solar: Un Smartphone Modificación: Lo siento por mi wonderful espa ñ ol. Gracias por leer mi Instructables usted! Tel é fonos tienden a estar fuera de derecho de la bater í a cuando m á s los necesitan. Con este proyecto, se puede extender la vida de la bater & iacute
Comando Por Voz - DragonBoard410c: 5 koraka
Comando Por Voz - DragonBoard410c: Este guia ir á ensinar a instalar e configurar o programu Julius junto com o Coruja, que s ã o respectivamente um programa de reconhecimento de voz e o modelo ac ú stico em Portugu ê s.A vantagem da utiliza ç ã o do
SmartPhone Simulator igre- Igrajte Windows igre koristeći IMU za kontrolu pokreta, akcelerometar, žiroskop, magnetometar: 5 koraka
SmartPhone Game Simulator- Igrajte Windows igre koristeći IMU za upravljanje pokretima, akcelerometar, žiroskop, magnetometar: Podržite ovaj projekt: https://www.paypal.me/vslcreations doniranjem kodovima otvorenog koda & podrška daljnjem razvoju