Orodha ya maudhui:

SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SIMU YA SIMU: Hatua 8
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SIMU YA SIMU: Hatua 8

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SIMU YA SIMU: Hatua 8

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SIMU YA SIMU: Hatua 8
Video: Урожай яблок!! Семейное фермерство 2022 2024, Novemba
Anonim
Image
Image
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SIMU YA SIMU
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SIMU YA SIMU
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SIMU YA SIMU
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SIMU YA SIMU

PONTIFÍCIA UNIVERSIDADE KATI

Takwimu: 2017-10-26

Unidade: Praça da Liberdade

Disciplina: Internet das Coisas

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

UTANGULIZI

Ingekuwaje ikiwa tunaweza kumwagilia mimea yetu wakati wowote, mahali popote? Pamoja na Mradi wa WaterPlant itawezekana. Mradi huu ulibuniwa ukilenga kuboresha urahisi na vitendo kutibu hii ni muhimu sana kwa sayari.

INTRODUÇÃO

Je! Como seria se pudéssemos aguar nossas plantas a qualquer hora e de qualquer lugar? Com o Projeto WaterPlant huduma zinaweza kupatikana. Hili ni jukumu la watu walio na nia ya kufanya kazi kwa njia ya kupendeza na kuchomwa kwa njia moja kwa moja kwa njia moja kwa moja kwa sababu ya mpango.

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 necessidade de sua irrigação.

Eneo la habari linalotumiwa kwa API, silaha na huduma, ambayo inaweza kutumika kwa njia ya simu ya rununu, ikiwa ni pamoja na kupokea taarifa. Fanya mkutano wa maandishi kwa habari ya habari yako kwa kufanya solo. O usuário em contato com a aplicação poderá solicitar o irrigamento imediado do solo, esta informação é enviada for a API que por sua vez se comunica com a placa for acionamento do dispositivo de irrigação.

Hatua ya 1: VIFAA - BODI YA JOKA

VIFAA - BODI YA JOKA
VIFAA - BODI YA JOKA

DragonBoard 410C

A DragonBoard 410C ni kituo cha kwanza cha deenvolvimento baseada bila mchakato wa Qualcomm Snapdragon 400, ambayo inajumuisha Wifi, Bluetooth na GPS katika eneo linaloweza kutekelezwa kwa njia inayofaa, na kwa sababu hiyo inahusika katika hali ya kutafakari. Qualcomm rodando à 1.2GHz, com 1GB de memória DDR3 533 MHz na 8GB de memória de armazenamento (eMMC).

Utangulizi: R $ 500 ~ R $ 750

Hatua ya 2: VITENGEZO - BASE YA KIUNGO

VYOMBO - BASE YA KIUNGO
VYOMBO - BASE YA KIUNGO

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

Hatua ya 3: VYUMBANI - SENSOR

VIFAA - SENSOR
VIFAA - SENSOR

Sensor de Umidade kufanya Solo

Kitufe cha utambuzi kinafanya kazi kwa njia ya kupitisha sauti ya mtu binafsi na kufanya hivyo kwa kufanya kazi kwa kutumia kifaa chako. Quando o solo estiver seco, aua 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 circo. 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). Digital sinal ni ajustado para que tenha valor 1 quando a umidade for maior do que um valor predefinido, ajustado através do potenciômetro presente no módulo.

Utangulizi: R $ 6 ~ R $ 20.

Hatua ya 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

Matumizi ya programu ya Jukwaa 410c hufanya matumizi ya Windows 10 IoT Core.

O Windows 10 IoT Core au uma plataforma de desenvolvimento criada para facilitar a vida dos desenvolveores na hora de programar seus dispositivos. Kuja na nafasi ya kutafutwa kwa nafasi za mahali hazipo na mercado, bastando ter instalado no computador os seguintes itens (já em sequência de instalação, no caso de uso of Dragonboard):

  • Jumuiya ya Visual Studio 2017 Jumuiya ya kufuzu zaidi (https://www.visualstudio.com/thank-you-downloading…);
  • Zana ya Kusasisha DragonBoard;
  • Dashibodi ya Windows 10 IoT Core;
  • DragonBoard Windows 10 Picha ya IoT Core;
  • Violezo vya mradi wa Windows IoT;

Onyesha kukamilika kwa usanidi na usanidi wa kifaa bila kuingiliana na kiungo:

Ujumbe wa muundo na muundo wa mafunzo ya Microsoft kwa njia ya msingi na hakuna programu ya Studio ya Visual inaweza kutumia Maombi ya Asili.

Mafunzo haya yanaweza kutumiwa na GitHub kwa

Kazi ya kusanidi programu inaweza kuanza kwa njia ya StartupTask.cs na kufanya kazi kwa njia hiyo, na hivyo kuwaeleza watafsiriwa sehemu moja ya kazi hiyo.

Mafundisho kuu ya programu inayotumika kukimbia () na kufanya hivyo unaweza kusema:

Kukimbia kwa umma (IBackgroundTaskInstance taskInstance)

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

Mitambo ya ndani InitGPIO () na InitSPI () inicializam variáveis for serem utilizadas na nossa aplicação enquanto as timáveis timer and timer2 criam 2 timers for serem executados a cada quantidade de tempo, e neste caso foram parametrizados 10 milundos times (10 milundos). Para alterar esse tempo basta mudar estes valores nessa parte do código.

O Meteo InitGPIO () ni mfano wa kufanya mazungumzo kama ufafanuzi kama usanidi kufanya pino que ativa a válvula solenoide de água. Nesse mfano wa código kwa Dragonboard o código do pino foi o 36.

utupu wa kibinafsi InitGPIO ()

{var gpio = GpioController. GetDefault (); ikiwa (gpio == null) {pin = null; kurudi; } pini = gpio. OpenPin (36); ikiwa (pin == null) {kurudi; } pini. Andika (GpioPinValue. High); siri. SetDriveMode (GpioPinDriveMode. Output); }

Njia zingine InitSPI () sanidi porta SPI0 ya Joka.

async Task InitSPI ()

{jaribu {var settings = new SpiConnectionSettings (0); // Chagua mipangilio ya porta SPI0 da DragonBoard. ClockFrequency = 500000; // Usanidi wa saa unafanya barramento SPI katika mipangilio ya 0.5MHz. Mode = SpiMode. Mode0; // COnfigura polaridade na saa fanya saa kufanya SPI var controller = subiri SpiController. GetDefaultAsync (); SpiADC = mdhibiti. GetDevice (mipangilio); } kamata (Exception ex) {cast new Exception ("Falha na inicialização do SPI", ex); }}

Timer timer invoca o método Timer_Tick () ni pamoja na kufanya kazi kwa kutumia API ya Hisa za Umma kwa wakati unaofaa. Oseguinte trecho de código ni Respável pela chamada kwa API:

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

httpWebRequest. ContentType = "programu / json"; httpWebRequest. Method = "PATA";

Neste trecho de código deve ser alterado para o endereço onde será hospedado o código da API for buscar o comando de irrigação. É neste trecho de código que a irrigação é encerrada também.

Kipindi cha wakati cha kusoma ni wakati wa kuingilia wakati wa Njia ya Kudhibiti_Tick2 () ni kwa nini tunajibu majibu ya baba yako ya umidade kufanya solo naquele momento. Hakuna huduma yoyote inayoweza kutekelezwa kwa njia inayofaa ya kusanidi usanidi wa mpango wa API kwa sababu ya maoni:

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

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

Mtaalam wa LerADC (mfereji wa byte) unatawala majibu kwa njia ya kufanya mazungumzo / digrii za dijiti za habari zinazotumiwa na sensorer ya umidade. Hizi ni pamoja na habari zinazopangwa kwa orodha ambazo zinabadilishwa kwa njia mpya ya kubadilisha ConvertToInt (data ya [ReadOnlyArray] byte ). Segue os trechos de código:

umma ndani ya LerADC (mfereji wa byte)

{byte readBuffer = new byte [3]; baiti writeBuffer = new byte [3] {0x00, 0x00, 0x00}; andikaBuffer [0] = 0x01; writeBuffer [1] = mfereji; SpiADC. TransferFullDuplex (andikaBuffer, somaBuffer); adcValue = ConvertToInt (somaBuffer); kurudi adcValue; } umma int ConvertToInt ([ReadOnlyArray] byte data) {int result = 0; matokeo = data [1] & 0x03; matokeo << = 8; matokeo + = data [2]; matokeo ya kurudi; }

Hatua ya 5: TAANDAA API

API ya desenvolvida na plataforma NodeJS (https://nodejs.org), foi utilizado o Swagger (https://swagger.io/specification/) a fim de modelar and documentar os recursos utilizados na integração do trabalho.

Para armazenamento dos dados foi utilizado o banco de dados MySQL, banco de dados relacional na chanzo wazi.

Chagua sehemu zote za kamera zinazojumuisha API.

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

Ap / api / mtawala: Camada que gerencia as rotas definidas no documento gerado pelo swagger.

○ / api / huduma: Je! Unapenda kituo hiki? Unapenda kituo hiki? Nesta camada hii inaweza kusanidiwa na upewe upya vipindi vya ombi la ombi.

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

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

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

● / miundombinu.

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

Chagua sehemu mbili za utaftaji wa huduma za mara kwa mara za API:

Njia: POST

URI: / api / v1 / umidades

Descrição: Matumizi ya mara kwa mara kwa usajili wa barua pepe ya sensorer ya umidade.

Mfano wa mahitaji:

{

"Ushujaa": 355}

Njia: PATA

URI: / api / v1 / umidades

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

Mfano wa majibu:

[{"Id": 1, "ushujaa": 355, "dataCadastro": yyyy-MM-dd HH: MM}]

Njia: POST

URI: / api / v1 / umwagiliaji

Descrição: Utumiaji wa mara kwa mara kwa ativar o dispositivo de irrigação.

Njia: PATA

URI: / api / v1 / umwagiliaji

Descrição: Matumizi ya mara kwa mara kwa ajili ya uhakiki wa msingi wa umidade atual do solo.

Mfano wa majibu:

{

"Ushujaa": 355}

Hatua ya 6: APP MOBILE

APP YA SIMU
APP YA SIMU
APP YA SIMU
APP YA SIMU

Escolhemos uma tecnologia híbrida for gerar um código reutilizável for todas as plataformas (Android e IOS) kwa ajili ya kumbukumbu ya kutambuliwa kwa huduma na kupunguzwa kwa dhamana. O Ionic ni mfumo wa uwezekano wa uma gigantesca biblioteca de componentes gráficos que kuwezesha utekelezaji wa kuona kufanya aplicativo. Tumia mtandao wa lugha nyingi (HTML, CSS na Javascript) kwa nakala ya habari na taswira ya Angular como o seu núcleo (msingi). Através do cordova (biblioteca javascript) os recursos do dispositivos são acessados pelo webview do mesmo.

Maombi yako yanatokana na hali zote zinazohitajika kwa API ya kufanya orodha ya habari zinazoweza kutekelezwa kwa ufafanuzi wa habari zinazotekelezwa na kufanya masomo ya kibinafsi na kurudi nyuma kwa mesmo remotamente. Vitendo vya utaftaji wa tukio kama la utaftaji wa é enviada para o servidor na ação correspondente ni realizada.

Viungo:

  • 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 no arquivo server.ts que encontra-se no diretório /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) na mabadiliko ya URI_PREFIX, kufuata mfano kubainisha kwa sababu ya mpango mwingine wa hospitali ya API:

seva ya darasa la kuuza nje {

umma tuli kusoma tu URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; / * hadharani tuli ya kusoma tu URI_PREFIX: string = "https://dominio.com/aplicacao/"; * /}

Hatua ya 7: FLUXOGRAMA

FLUXOGRAMA
FLUXOGRAMA

Hatua ya 8: REJELEANCIAS

Maagizo:

Joka la Qualcomm 410C: https://www.embarcados.com.br/qualcomm-dragonboar …….

Windows 10 na DragonBoard ™ 410c - Mwanzo kamili wa Maendeleo ya IoT: https://developer.qualcomm.com/blog/windows-10-an …….

Monitore sua mmea usando Arduino: https://developer.qualcomm.com/blog/windows-10-an …….

Ilipendekeza: