ዝርዝር ሁኔታ:
- ደረጃ 1 - አካላት - ድራጎንቦርድ
- ደረጃ 2: ተጓዳኞች - የአገናኝ አገናኝ መሠረት
- ደረጃ 3 - አካላት - ዳሳሽ
- ደረጃ 4 DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- ደረጃ 5 ኤፒአይ ያዘጋጁ
- ደረጃ 6 - APP MOBILE
- ደረጃ 7 FLUXOGRAMA
- ደረጃ 8: REFERÊNCIAS
ቪዲዮ: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:29
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAISCurso: Especialização em Arquitetura de Software Distribuído
መረጃ - 2017-10-26
Unidade: Praça da Liberdade
Disciplina: በይነመረብ das Coisas
ፕሮፌሰር - ኢሎ ሪቭሮ
አሉኖስ - ብሩኖ ቫልጋስ ([email protected])
ዴላን ሆፍማን ፒ ሲልቫ ([email protected])
ሄበርት አልቬስ ፌሬራ ([email protected])
ዣን ካርሎስ ባቲስታ ([email protected])
ጆርዳን ባቲስታ ([email protected])
መግቢያ
ተክሎቻችንን በማንኛውም ጊዜ ፣ በየትኛውም ቦታ ማጠጣት ብንችል ምን ይመስል ነበር? በ WaterPlant ፕሮጀክት የሚቻል ይሆናል። ይህ ፕሮጀክት ለፕላኔቷ በጣም አስፈላጊ የሆነውን ለማከም ምቾት እና ተግባራዊነትን ለማሻሻል ያለመ ነው።
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 necessidade de sua irrigação.
አንድ ኤፒአይ መረጃን ፣ መረጃን እና መረጃን ለማግኘት ፣ ስለእሱ መረጃ ለማግኘት በሞባይል ላይ መረጃን ማግኘት ይችላሉ። 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.
ደረጃ 1 - አካላት - ድራጎንቦርድ
DragonBoard 410C
አንድ DragonBoard 410C እና አንድ ፕሪራራ ዲካ ዴንቮልቪሜንቶ ቤዛዳ ምንም ፕሮሰሲዶር ዳ ሴሬ Qualcomm Snapdragon 400 ፣ Wi -Fi ፣ ብሉቱዝ እና ጂፒኤስ ኢማ ፕላካ ታማንሆ አፕሮክሲማዶ ዴ ኤም ካርታኦ ዴ ክሪዲቶ ፣ ኢ ካራቴሪዛዳ pelo alto desempenho do processador de 64 ቢት ዳ Qualcomm rodando à 1.2GHz ፣ com 1GB de memória DDR3 533 MHz e 8GB de memória de armazenamento (eMMC)።
ቅድመ: R $ 500 ~ R $ 750
ደረጃ 2: ተጓዳኞች - የአገናኝ አገናኝ መሠረት
Placa de expansão para mapeamento e utilização de portas, facilitando a utilização de sensores.
ደረጃ 3 - አካላት - ዳሳሽ
ዳሳሽ ዲ ኡሚዳዴ ሶሎ
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. አንድ absorção da água, አንድ 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 é 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.
ቅድመ: R $ 6 ~ R $ 20።
ደረጃ 4 DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
በዊንዶውስ 10 IoT ኮር ውስጥ የድራጎንቦርድ 410c ን በመጠቀም አፕሊኬሽኖ desenvolvida para rodar።
ኦ ዊንዶውስ 10 IoT Core uma plataforma de desenvolvimento criada para facilitar a vida dos desenvolvedores and 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 (ጃም ኢም ሴንቺኒያ ዴ ኢንስታላçኦ ፣ ምንም caso de uso da Dragonboardboard):
- ቪዥዋል ስቱዲዮ 2017 ማህበረሰብ ou qualquer outra versao (https://www.visualstudio.com/thank-you-downloading…);
- DragonBoard ዝማኔ መሣሪያ;
- ዊንዶውስ 10 IoT ኮር ዳሽቦርድ;
- DragonBoard Windows 10 IoT Core Image;
- የዊንዶውስ IoT ፕሮጀክት አብነቶች;
ለፕሮግራሙ ማጠናከሪያ (ኢንሴክራዶ) ምንም አገናኝ የለም
የማይክሮሶፍት ባስታን የማስተማሪያ መመሪያን ለማስተናገድ ከዚህ በታች የእይታ ስቱዲዮን ወደ ዳራ ትግበራ አያስተላልፉም።
ለፓራዝ ማጠናከሪያ ትምህርት 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, e vamos explicar abaixo parte a parte do código.
O método principal da aplicação é o Run () e seu código é o seguinte:
የህዝብ ባዶነት ሩጫ (IBackgroundTaskInstance taskInstance)
{InitGPIO (); InitSPI (); _deferral = taskInstance. GetDeferral (); ሰዓት ቆጣሪ = 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 executados a cada quantidade de tempo, e neste caso foram parametrizados 10. ፓራ አልቴራር እስሴ ቴምፓ ባስታ ሙዳር እስቴስ ቫሎረስ ኔሳ በከፊል ዶ ኮዲጎ።
O Método InitGPIO () a seguir tem como função definir as configuraçõese do pino que ativa a válvula solenoide de água. ለምሳሌ የዴራጎንቦርድ ወይም የዴንቦርድ ዶ ፒኖ ፎይ o 36.
የግል ባዶነት InitGPIO ()
{var gpio = GpioController. GetDefault (); ከሆነ (gpio == ባዶ) {pin = null; መመለስ; } ፒን = gpio. OpenPin (36); ከሆነ (ፒን == ባዶ) {ተመለስ; } ፒን። ይፃፉ (GpioPinValue. High); pin. SetDriveMode (GpioPinDriveMode. Output); }
O método InitSPI () ፖርቶ SPI0 da Dragonboard ን ያዋቅሩ።
የግል async ተግባር InitSPI ()
{ይሞክሩ {var settings = new SpiConnectionSettings (0); // Seleciona a porta SPI0 da DragonBoard settings. ClockFrequency = 500000; // Configura o clock do barramento SPI em 0.5MHz settings. Mode = SpiMode. Mode0; // COnfigura polaridade e fase ማድረግ SPI var መቆጣጠሪያ = SpiController. GetDefaultAsync () ን ይጠብቁ; SpiADC = መቆጣጠሪያ.ጌትዴቨር (ቅንጅቶች); } መያዝ (ለየት ያለ) {አዲስ ልዩነትን («Falha na inicialização do SPI» ፣ ex) መጣል ፤ }}
O primeiro timer invoca 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 seguinte trecho de código é responsável pela chamada à ኤፒአይ
var httpWebRequest = (HttpWebRequest) WebRequest. Create ("https://serverless-study.appspot.com/api/v1/irrigacoes");
httpWebRequest. ContentType = "ትግበራ/json"; httpWebRequest. Method = "ያግኙ";
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. Es neste trecho de código que a irrigação é encerrada também.
Para o segundo timer é invocado o 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 = "ትግበራ/json"; httpWebRequest. Method = "POST";
O método LerADC (ባይት ቦይ) é o método responsável por ler do conversor analógico/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 ውሂብ)። Segue os trechos de código:
የህዝብ int LerADC (ባይት ቦይ)
{ባይት readBuffer = አዲስ ባይት [3]; ባይት writeBuffer = አዲስ ባይት [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = ቦይ; SpiADC. TransferFullDuplex (writeBuffer ፣ readBuffer); adcValue = ConvertToInt (readBuffer); adcValue ን መመለስ; } public int ConvertToInt ([ReadOnlyArray] byte ውሂብ) {int result = 0; ውጤት = ውሂብ [1] & 0x03; ውጤት << = 8; ውጤት += ውሂብ [2]; የመመለሻ ውጤት; }
ደረጃ 5 ኤፒአይ ያዘጋጁ
ኤፒአይ foi desenvolvida እና plataforma NodeJS (https://nodejs.org) ፣ foi utilizado o Swagger (https://swagger.io/specification/) a fim de modelar e documentar os recursos utilizados እና integração do trabalho።
ፓራ አርማዜናንትሶ ዶስ ዳዶስ ለ ‹MySQL ›፣ ለባንኮ ዳዳስ ተዛማጅነት እና ክፍት ምንጭ።
Segue abaixo a arquitetura de camadas que compõem አንድ API.
● /api: Camada que gerencia os recursos disponibilizados para que terceiros possam acessar.
○ /api /ተቆጣጣሪ: Camada que gerencia እንደ rotas definidas no documento 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)። Nesta camada está configurado o retorno ocorrido durante o processo de ጥያቄ።
○ /api /swagger: Camada que contém o arquivo de configuração do swagger, onde estão toda as configurações dos dos recosos.
● /domain: Camada que contém toda codificação relacionada a regra de negócio da aplicação.
○ /ማከማቻ: ካማዳ ዴ persistência de dados።
Infrastructure /መሠረተ ልማት ፦ 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።
ፓራ mais መረጃ እና ቆንስላ አዶ ኮዲጎ ፎንቴስ አሴሶ ወይም አገናኝ ግትቡብ-https://github.com/jeanbatista/simple-api-swagger
Segue abaixo uma breve descriptionção de cada recurso disponibilizados እና API:
ሜቶዶ - ፖስት
ዩአርአይ/api/v1/umidades
መግለጫ: ሬሲሶሶ utilizado para registar umidade coletada pelo sensor de umidade.
ምሳሌ ደ ሪሲሲሲኦ:
{
“ደፋር”: 355}
ሜቶዶ: ያግኙ
ዩአርአይ/api/v1/umidades
መግለጫ: ሬኩሶሶ ሬስፔሬ ቴዶስ ኦስ ሬጅስትሮስት ዴ ቫሎሬስ ዴ ኡሚዴድ ፎ ፎር ሳልቫስ አንጀንትሜንት።
ለምሳሌ ምላሽ;
[{“መታወቂያ”: 1 ፣ “ደፋር”: 355 ፣ “dataCadastro”: yyyy-MM-dd HH: MM}]
ሜቶዶ - ፖስት
ዩአርአይ/api/v1/irrigacoes
መግለጫ - ሬሲሶሶ ለፓርቲ አቲቫር ኦ ዲስፖስቲቮ ዴ irrigação።
ሜቶዶ: ያግኙ
ዩአርአይ/api/v1/irrigacoes
ገለፃ - ለብቻው የሚጠቅመውን መጠቀም ብቻ ነው።
ለምሳሌ ምላሽ;
{
“ደፋር”: 355}
ደረጃ 6 - APP MOBILE
Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todasas as plataformas (Android e IOS) para aumentar a abrangência de usuários e diminuir o custo do projeto. O Ionic é um frame que possui uma gigantesca biblioteca de componentses gráficos que facilita a implementação visual do aplicativo. ለኤንጂንግ ድር (ኤችቲኤምኤል ፣ ሲኤስኤስ እና ጃቫስክሪፕት) para a 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.
ኦ aplicativo consiste 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 ዘጋቢ ኤ realizada.
አገናኞች ፦
- https://ionicframework.com/
- https://angular.io/
- https://ionicframework.com/
ኦ ኮዲጎ ፎንቴ አፕሊኬቲቭ ሞድሎ ኢንኮንትራ-ሲ GitHub ን አያገኝም ፣
ለኤፒአይ ምንም arquivo server.ts que encontra-se no diretório /src/entity/server.ts (https://github.com/jeordanecarlosbatista/temperat…) conforme exemplo abaixo para o endereço onde está hospedada a API:
የመደብ ክፍል አገልጋይ {
የህዝብ የማይንቀሳቀስ ተነባቢ ብቻ URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* የህዝብ የማይንቀሳቀስ ተነባቢ ብቻ URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}
ደረጃ 7 FLUXOGRAMA
ደረጃ 8: REFERÊNCIAS
አስተማሪዎች -
Qualcomm DragonBoard 410C:
ዊንዶውስ 10 እና DragonBoard ™ 410c-ለ IoT ልማት ፍጹም ጅምር
Monitore sua planta usando Arduino:
የሚመከር:
Jukebox Casera Por: Tono Kiehnle: 5 ደረጃዎች (ከስዕሎች ጋር)
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 interacción con el usuario.La jukebox cuenta con 3 botones. 2 de ellos se util
ሲስተማ ደ Irrigação Automático Para Plantas: 8 ደረጃዎች
ሲስተማ ደ ኢርሪጋያኦ አውቶማቲክ ፓራ ፕላንታስ - አንድ irrigação é uma das tecnologias mais utilizadas por ግብርores pois esta atividade independe da ocorrência de chuvas, garante uma safra uniforme, reduz a falha humana, minimiza o consumo de águen (utiliz አስፈላጊ)
Asistente Solar: Un Smartphone Modificación: 3 ደረጃዎች
የአሲስታንቴ ሶላር Un Smartphone Modificación: Lo siento por mi አስፈሪ እስፓ ñ ol. Gracias por leer mi Instructables usted! Tel é fonos tienden a estar fuera de derecho de la bater á a cuando m á s los necesitan. እንደዚሁም ፕሮፌክት ፣ እንደዚሁም ተጨማሪ ማስፋፊያ ላ ቪዳ ዴ ላ ባተር እና iacute
Comando Por Voz - DragonBoard410c: 5 ደረጃዎች
ኮማንዶ ፖር ቮዝ - DragonBoard410c: Este guia ir á ጁሊየስ ጁንቶ ኮም ኦ Coruja ፣ que s ã o respectivamente um programa de reconhecimento de voz e o modelo ac ú stico em Portugu ê s vantagem da utiliza ç ã o do Ju
ጂፒኤስ ቢስክሌት ወይም መኪና ከ SMARTPHONE መከታተል 9 ደረጃዎች
የጂፒኤስ ቢስክሌት ወይም የመኪና መከታተያ ከ SMARTPHONE: ሰላም ፣ ወደ ፈጠራ Buzz እንኳን በደህና መጡ። እዚህ ብስክሌትዎን ወይም መኪናዎን እንዴት እንደሚከታተሉ አሳያችኋለሁ። ይህንን ንድፍ በመጠቀም የብስክሌት ቀጥታ ሥፍራ መከታተል ይችላሉ። ይህንን ንድፍ በመጠቀም ማንኛውንም ብስክሌት መከታተል ይችላሉ።