Talaan ng mga Nilalaman:

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

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

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 Hakbang
Video: Faça um Controle de Irrigação Inteligente com Arduino 2024, Nobyembre
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: Espesyalista na Arquitetura de Software Distribuído

Data: 2017-10-26

Unidade: Praça da Liberdade

Disciplina: Internet das Coisas

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

PANIMULA

Ano ang magiging hitsura kung maaari nating mai-tubig ang ating mga halaman anumang oras, saanman? Sa Project ng WaterPlant posible ito. Ang proyektong ito ay binuo na nakatuon sa pagpapabuti ng kaginhawaan at pagiging praktiko upang matrato ito na napakahalaga para sa planeta.

PANIMULA

Como seria se pudéssemos aguar nossas plantas a qualquer hora e de qualquer lugar? Com o Projeto WaterPlant será possível. Ang iyong proyekto ay dapat na magbigay ng isang comodidade at isang praticidade para sa tratar deste para sa iyo na mahalaga para sa planeta.

FUNCIONAMENTO

O projeto foi desenvolvido para sa monitoramento de jardins, maaari mong gawin ang isang verificação do estado na solo, at muling ilunsad ang isang ito. Sendo assim, por meio de parâmetros da umidade do solo é posível avaliar a mustidade de sua irrigação.

Ang isang placa envia informações para sa isang API, na maaari mong gamitin, upang mai-download ang iyong mobile phone, na muling ibigay ang mga impormasyon. 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.

Hakbang 1: Mga Kumpanya - DRAGONBOARD

Mga Kumpanya - DRAGONBOARD
Mga Kumpanya - DRAGONBOARD

DragonBoard 410C

Ang isang DragonBoard 410C ay isang primera plato ng desenvolvimento base na walang proseso para sa proseso ng Qualcomm Snapdragon 400, upang ma-access ang Wifi, Bluetooth at GPS sa lahat ng mga lugar na ito ay napapabago mula sa carto de crédito, at ang mga tampok na ito ay maaaring gawin sa proseso ng 64 bits Qualcomm rodando à 1.2GHz, kasama ang 1GB mula sa memorya ng DDR3 533 MHz e 8GB ng memoria de armazenamento (eMMC).

Preço: R $ 500 ~ R $ 750

Hakbang 2: Mga Kumpanya - BASE ng LINKER

Mga Kumpanya - BASE ng LINKER
Mga Kumpanya - BASE ng LINKER

Placa de expansão para sa mapeamento at utilização de portas, na gagamitin ang isang paggamit ng mga sensores.

Hakbang 3: Mga Kumpanya - SENSOR

Mga Kumpanya - SENSOR
Mga Kumpanya - SENSOR

Sensor de Umidade do Solo

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. Com 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. 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 was 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.

Preço: R $ 6 ~ R $ 20.

Hakbang 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

Ang isang aplicação desenvolvida para sa rodar na Dragonboard 410c ay ang iyong paggamit ng Windows 10 IoT Core.

O Windows 10 IoT Core ay umaarangkada ng desenvolvimento criada para sa facilitar a vida dos desenvolvedores na hora de programar seus dispositivos. Para sa iyo, maaari kang mag-iwan ng mga talento sa mga lugar na mayroon nang mercado, bastando at i-install na walang computador os seguintes itens (bilang isang sunud-sunod na pag-install, walang caso de uso at Dragonboard):

  • Ang Komunidad ng Visual Studio 2017 ay kwalipikado akong mag-aaral (https://www.visualstudio.com/thank-you-downloading…);
  • Tool sa Pag-update ng DragonBoard;
  • Windows 10 IoT Core Dashboard;
  • Ang DragonBoard Windows 10 IoT Core Image;
  • Mga template ng proyekto ng Windows IoT;

O proseso ng kumpleto para sa instalação at configuração pode ser encontrado walang seguinte link:

Sinusundan ang isang instalação at configuração na sumunod sa tutorial ng Microsoft upang masuri ang mga programa sa Visual Studio na gawin ang Background Application.

Para este tutorial 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, at mag-e-explicar ng abaixo parte a parte do código.

Ang punong punong-guro ng aplicação ay ang Run () at ang iyong sarili:

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)); }

Ang mga ito ay InitGPIO () at InitSPI () inisyal na pagkakaiba-iba para sa paggamit ng mga gumagamit ng isang timer timer at timer2 criam 2 timers para sa pagpapatupad ng isang dami ng de-tempo, at ang iyong caso foram parametrizados 10 segundo (10 milyong milyong timer). Para alterar esse tempo basta mudar estes valores nessa parte do código.

O Método InitGPIO () isang seguir tem como função definir bilang configuraçõese do pino que ativa a válvula solenoide de água. Hindi ito dapat ibigay para sa isang Dragonboard o código gawin ang iyong 36.

pribadong walang bisa InitGPIO ()

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

O método InitSPI () configura ang isang port SPI0 da Dragonboard.

pribadong async Gawain InitSPI ()

{subukan ang {var setting = bagong SpiConnectionSettings (0); // Seleciona a porta SPI0 da DragonBoard setting. ClockFrequency = 500000; // Configura o clock do barramento SPI em 0.5MHz setting. Mode = SpiMode. Mode0; // COnfigura polaridade e fase do clock do SPI var controller = naghihintay sa SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (setting); } catch (Exception ex) {magtapon ng bagong Exception ("Falha na inicialização do SPI", hal); }}

O primeiro timer invoca o método Timer_Tick () para sa iyong kasiyahan at isang verificação através mula sa API upang magawa ang mga ito para masuri ang lahat. O seguinte trecho de código é responsável pela chamada à API:

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

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

Maaari kang mag-iwan ng pagbabago para sa endereço onde na serbisyo ng ospital o código mula sa API para sa buscar o comando de irrigação. É Neste trecho de código que a irrigação é encerrada também.

Para sa segundo timer ay invocado o método Timer_Tick2 () na ito ay responsable na gawin ang mga ito bilang isang umidade do solo naquele momento. Walang seguinte trecho de código deste método que deve ser configurado o endereço da API para sa envio dos maging:

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

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

O método LerADC (byte canal) ay naisagawa sa pamamagitan ng pag-uusap sa pamamagitan ng digital / 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 data). Segue os trechos de código:

public int LerADC (byte canal)

{byte readBuffer = bagong byte [3]; byte writeBuffer = bagong byte [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = kanal; SpiADC. TransferFullDuplex (writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); ibalik ang adcValue; } publiko int ConvertToInt ([ReadOnlyArray] byte data) {int resulta = 0; resulta = data [1] & 0x03; resulta << = 8; resulta + = data [2]; resulta ng pagbabalik; }

Hakbang 5: PREPARANDO isang API

Ang API na desenvolvida na plataforma NodeJS (https://nodejs.org), ay ginagamit ng Swagger (https://swagger.io/specification/) isang modelo ng e dokumentaryo at recursos utilizados na integração do trabalho.

Para sa mga serbisyo ay maaaring gamitin o banco ng aking MySQL, banco de magiging relacional at bukas na mapagkukunan.

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

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

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

○ / api / service: Camada que entrega os dados de entrada para sa mga tratados, depois escritos ou lidos pela camada de BO (describes mais in diante). Nesta camada está configurado o retorno ocorrido durante o processo de request.

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

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

○ / repository: Camada de persistência de maging.

● / imprastraktura: Cama de configuração das strings de conexão do banco de maging e também do servidor que será probado pela própria aplicação.

Para mais informações e consulta ao código fonte acesso o link do github:

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

Método: POST

URI: / api / v1 / umidades

Descrição: Recurso utilizado para sa registar umidade coletada pelo sensor de umidade.

Exemplo de requisição:

{

"Lakas ng loob": 355}

Método: GET

URI: / api / v1 / umidades

Descrição: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.

Exemplo de tugon:

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

Método: POST

URI: / api / v1 / irrigacoes

Descrição: Recurso utilizado para sa iyong isip o dispositivo de irrigação.

Método: GET

URI: / api / v1 / irrigacoes

Descrição: Recurso utilizado para sa verificar o estado de umidade atual do solo.

Exemplo de tugon:

{

"Lakas ng loob": 355}

Hakbang 6: MOBILE NG APP

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 at IOS) para aumentar a abrangência de usuários e diminuir o custo do projeto. O Ionic ay may balangkas na maaaring makamit ang lahat ng biblioteca ng mga sangkap na ito ay gagamitin ng isang pagpapatupad ng visual na gawin aplicativo. Magagamit ang web ng linguagens (HTML, CSS at Javascript) para sa isang 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.

Ang aplicativo ay binubuo ng realizar algumas Requisições para sa isang API na gawin ang isang sistema para sa isang impormasyon na dapat gawin nang isang solo at regar o mesmo remotamente. Através de um evento de botão uma requisição é enviada para sa servidor at a ação correspondente é realizada.

Mga Link:

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

O código fonte do aplicativo modelo encontra-se no GitHub, no endereço

Para sa mga aplicativo funcione basta configurar o endereço da API no arquivo server.ts que encontra-se no diretório /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) at baguhin ang isang iba't ibang URI_PREFIX, sumunod sa exemplo abaixo para sa endereço onde está hospedada isang API:

i-export ang klase ng Server {

publikong static na babasahin lamang URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; / * publikong static na babasahin lamang URI_PREFIX: string = "https://dominio.com/aplicacao/"; * /}

Hakbang 7: FLUXOGRAMA

FLUXOGRAMA
FLUXOGRAMA

Hakbang 8: REFERÊNCIAS

Mga Tagubilin:

Qualcomm DragonBoard 410C:

Windows 10 at DragonBoard ™ 410c - ang Perpektong Pagsisimula para sa Pag-unlad ng IoT:

Monitore sua planta usando Arduino:

Inirerekumendang: