Sisukord:
- 1. samm: KOMPONENDID - DRAGONBOARD
- 2. samm: KOMPONENDID - LINKERI ALUS
- 3. samm: KOMPONENDID - ANDUR
- 4. samm: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- Samm: valmistage ette API
- 6. toiming: APP MOBILE
- 7. samm: FLUXOGRAMA
- 8. samm: viited
Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTTPHONE: 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Kursus: Especialização em Arquitetura de Software Distribuído
Andmed: 26.10.2017
Unidade: Praça da Liberdade
Distsipliin: Internet das Coisas
Professor: Ilo Rivero
Alunod: Bruno Valgas ([email protected])
Dellan Hoffman P. Silva ([email protected])
Hebert Alves Ferreira ([email protected])
Jean Carlos Batista ([email protected])
Jeordane Batista ([email protected])
SISSEJUHATUS
Mis oleks, kui saaksime oma taimi igal ajal ja igal pool kasta? WaterPlanti projektiga on see võimalik. See projekt töötati välja eesmärgiga parandada mugavust ja praktilisust, et see oleks planeedi jaoks nii oluline.
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, on on egy é 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 ja possível avaliar a needidade de sua irrigação.
A placa envia informationções para a API, armazenada na nuvem, que por sua vez é acessada pelo aplicativo mobile, que recebe e trata tais information. Desta forma a aplicação mantem o usuário informado da situção do solo. O usuário em contato com a aplicação poderá solicitar or irrigamento imediado do solo, esta infoção é enviada para a API que por sua vez se comunica com a placa para acionamento do dispositivo de irrigação.
1. samm: KOMPONENDID - DRAGONBOARD
DragonBoard 410C
A DragonBoard 410C on Qualcomm Snapdragon 400 protsessori põhiseadmepõhine protsessor, Wifi, Bluetoothi ja GPS -i ühilduvus, tamanho aproximado de cartédo de crédito, e caracterizada pelo alto desempenho do processor Qualcommi sagedus 1,2 GHz, 1 GB mälu DDR3 533 MHz ja 8 GB mälu mälu (eMMC).
Hind: 500–750 dollarit
2. samm: KOMPONENDID - LINKERI ALUS
Placa de expansão para mapeamento e utilização de portas, hõlbustab ja kasutab sensores.
3. samm: KOMPONENDID - ANDUR
Umidade do Solo andur
Este sensori kasutamine on võimeline andma eletrodos para passor corrente pelo solo and lê o nível de umidade por comparação com a resistên do potentsômetro do modeulo do sensor. Quando või soolo estiver seco, sua resistência aumenta, dificultando a passagem de corrente. Com absorção da água, a resistence to solo diminui loadindo a passagem de corrente entre os eletrodos e fechando, desta forma, o circuit. Dessa forma podemos definir quando o solo está molhado, ou quando está seco.
Kasutage seda meetodit digitaalseks (D0), analüütiliseks (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 modeulo.
Hind: 6–20 dollarit.
4. samm: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
Rakenduse Dragonboard 410c rakendus, mis on mõeldud kasutamiseks Windows 10 IoT Core jaoks.
O Windows 10 IoT Core on platvorm, mis võimaldab arendada desenvolvimento criada para lihtsustamiseks ja teenusepakkujatele, kes töötavad programmeerimise ajal. Com ele é possível desenvolver para várias placas thereistes no mercado, bastando ter instalado no computador os seguintes itens (já em sequência de instalação, no caso de uso da Dragonboard):
- Visual Studio 2017 kogukond või paremat väljaannet (https://www.visualstudio.com/thank-you-downloading…);
- DragonBoardi värskendustööriist;
- Windows 10 IoT Core Dashboard;
- DragonBoard Windows 10 IoT põhipilt;
- Windowsi IoT projekti mallid;
Täielik protsess installimiseks ja konfigureerimiseks, mis ei sisalda linki:
Installige ja installige seadistusi või konfigureerige juhendeid või Microsofti õpetusi Microsoft Visual Studio do tipo Background Application jaoks.
Selle õpetuse jaoks on Vamos Disponibilizar või Código finalizado da aplicação através do GitHub
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 princip da aplicação é o Run () e seu código é o seguinte:
public void Run (IBackgroundTaskInstance taskInstance)
{InitGPIO (); InitSPI (); _deferral = taskInstance. GetDeferral (); taimer = ThreadPoolTimer. CreatePeriodicTimer (Timer_Tick, TimeSpan. FromMilliseconds (10000)); timer2 = ThreadPoolTimer. CreatePeriodicTimer (Timer_Tick2, TimeSpan. FromMilliseconds (10000)); }
Osamoodulid InitGPIO () e InitSPI () algatializam varieveis 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 segmendit (10 miljonit). Para alterar esse tempo basta mudar estes valores nessa parte do código.
O Método InitGPIO () a seguir tem como função definir as configuraçõese do pino que ativa a válvula solenoide de água. Nesse näide de código kohta Dragonboard või código do pino foi o 36.
private void InitGPIO ()
{var gpio = GpioController. GetDefault (); if (gpio == null) {pin = null; tagasipöördumine; } pin = gpio. OpenPin (36); if (pin == null) {return; } pin. Write (GpioPinValue. High); pin. SetDriveMode (GpioPinDriveMode. Output); }
Installige InitSPI () SPI0 porti Dragonboardi konfiguratsioon.
privaatne asünkroonimisülesanne InitSPI ()
{proovige {var settings = new SpiConnectionSettings (0); // DragonBoardi seadete valimine ja SPI0 port. ClockFrequency = 500000; // Seadistage kell või tehke barramento SPI -d 0,5MHz seadistustel. Mode = SpiMode. Mode0; // COnfigura polaridade e fase do clock do SPI var controller = wait SpiController. GetDefaultAsync (); SpiADC = kontroller. GetDevice (seaded); } saak (erand erand) {viska uus erand ("Falha na inicialização do SPI", ex); }}
O primeiro taimer arve või metoodika Timer_Tick () que tem como função a verificação através da API se houve um comando para iniciar uma irrigação. Olemasolev trecho de código ja vastuste mäng chamada API:
var httpWebRequest = (HttpWebRequest) WebRequest. Create ("https://serverless-study.appspot.com/api/v1/irrigacoes");
httpWebRequest. ContentType = "application/json"; httpWebRequest. Method = "GET";
Neste trecho de código deve ser alterado para või endereço onde será hospedado o código da API para buscar or comando de irrigação. É neste trecho de código que a irrigação é encerrada também.
Para või segmenditaimer ja arveldus või metoodika Timer_Tick2 () que é responseável pelo envio dos dados da umidade do solo naquele moment. Ei ole seguinte trecho de código deste método que deve ser Configurado or endereço da API para or envio dos dados:
var httpWebRequest = (HttpWebRequest) WebRequest. Create ("https://serverless-study.appspot.com/api/v1/umidades");
httpWebRequest. ContentType = "application/json"; httpWebRequest. Method = "POST";
Olemasolev LerADC (baitkanal) ja metoodiline vastus, ler do converter analógic/digital os valores information pelo sensor de umidade. Este kohandada teavet massiivi baitide que ja convertido em inteiro através do método ConvertToInt ([ReadOnlyArray] bait andmed). Segue os trechos de código:
public int LerADC (bait kanal)
{bait readBuffer = uus bait [3]; bait writeBuffer = uus bait [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = kanal; SpiADC. TransferFullDuplex (writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); return adcValue; } public int ConvertToInt ([ReadOnlyArray] bait andmed) {int tulemus = 0; tulemus = andmed [1] & 0x03; tulemus << = 8; tulemus += andmed [2]; tagastamise tulemus; }
Samm: valmistage ette API
Rakenduse NodeJS (https://nodejs.org) desinvolvida ja platvormi rakendusliides, Swaggeri kasutamine (https://swagger.io/specification/) ja moderne dokumentatsioon ning dokumentatsiooni korduv kasutamine integratsiooni integreerimiseks.
Kasutage isade teenuseid MySQL -i, isade panga ja avaliku lähtekoodiga.
Segue abaixo a arquitetura de camadas que compõem a API.
● /api: Camada que gerencia os recursos disponibilizados para que terceiros possam acessar.
○ /api /kontroller: Camada que gerencia as 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). Seadistuse seadistamine või taotluse tagasilükkamine või korrigeerimine.
○ /api /swagger: Camada que contém o arquivo de configuração do swagger, on estão toda as configurações dos recursos.
● /domeen: Camada que contém toda codificação relacionada a regra de negócio da aplicação.
○ /hoidla: Camada de persência de dados.
● /infrastruktuur: 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.
Parima teabe saamiseks ja konsulteerimiseks ao código fonte acesso või lingile github:
Segue abaixo uma breve descrição de cada recurso disponibilizados API:
Método: POST
URI:/api/v1/umidades
Kirjeldus: Recurso utilizado para registar umidade coletada pelo sensor de umidade.
Nõudete näide:
{
"Vaprus": 355}
Método: SAA
URI:/api/v1/umidades
Kirjeldus: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.
Vastuse näide:
[{“Id”: 1, “valor”: 355, “dataCadastro”: aaaa-kk-pp HH: MM}]
Método: POST
URI:/api/v1/irrigacoes
Kirjeldus: Recurso utilizado para ativar o dispositivo de irrigação.
Método: SAA
URI:/api/v1/irrigacoes
Kirjeldus: Recurso utilizado para verificar or estado de umidade atual do solo.
Vastuse näide:
{
"Vaprus": 355}
6. toiming: APP MOBILE
Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todas as plataformas (Android ja IOS) para aumentar and abrangência de usuários e diminuir o custo do projeto. O Ionic é um Framework que possui uma gigantesca biblioteca de componentses gráficos que hõlbustab ja rakendab visuaalset rakendust. Keelekeelte veebipõhine kasutamine (HTML, CSS ja Javascript) 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.
O aplicativo consiste em realizar algumas requisições para a API do system and fim de se obter informationçõ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çãorespondente é realizada.
Lingid:
- https://ionicframework.com/
- https://angular.io/
- https://ionicframework.com/
Ocódigo fonte do aplicativo modelo encontra-se no GitHub, no endereço
Para que või aplicativo funcione basta configurar või endereço da da API no arquivo server.ts que encontra-se no directtório /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) e alternatiivne URI_PREFIX, kinnitage näide abaixo para või endereço on está hospedada a API:
ekspordi klass Server {
avalik staatiline kirjutuskaitstud URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* avalik staatiline kirjutuskaitstud URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}
7. samm: FLUXOGRAMA
8. samm: viited
Juhendid:
Qualcomm DragonBoard 410C:
Windows 10 ja DragonBoard ™ 410c-ideaalne algus asjade Interneti arendamiseks:
Montaore sua planta usando Arduino:
Soovitan:
Vídeo Tutoriales De Tecnologías Creativas 05: Kas Hacemos Un Detector De Presencia? Sup Por Supuesto !: 4 sammu
Vídeo Tutoriales De Tecnologías Creativas 05: Kas Hacemos Un Detector De Presencia? ¡Por Supuesto !: See on õpetus, mis on ette nähtud haceri anduri tuvastamiseks ja anduri andmiseks ultrasonidos sobre una placa Arduino Uno y utilizando Tinkercad Circuits (utilizando una cuenta gratuita). A Continueción se tiene el resultado final que posterior
Jukebox Casera Por: Tono Kiehnle: 5 sammu (piltidega)
Jukebox Casera Kirjanik: Tono Kiehnle: Jukebox hecha ja casa programm Arduino UNO jaoks. Sisaldab 3 kanalit, mis on reprodutseeritud keskmise helisignaali pasivo y cuenta con botones de pulso y una pantalla LCD para la interacción con el usuario.La jukebox cuenta con 3 botones abil. 2 de ellos se util
Irrigação Automático Para Plantas süsteem: 8 sammu
Irrigação Automático Para Plantas: A irrigação é uma das tecnologias mais utilizadas por Agriculturetores pois esta atividade Independent da ocorrência de chuvas, garante uma safra uniforme, reduz a falha humana, minimiza o consumo de água (utilizando os apien minim)
Comando Por Voz - DragonBoard410c: 5 sammu
Comando Por Voz - DragonBoard410c: Este guia ir á Sisestage installeerija ja seadistaja või programm Julius junto com o Coruja, que s ã o respectivamente um program de reconhecimento de voz e o modelo ac ú stico em Portugu ê s. Vantagem da utiliza ç ã o do Ju
Lámpara Portátil Con Carga Por Inducción (En Proceso): 4 sammu
Lámpara Portátil Con Carga Por Inducción (En Proceso): Primera versión de lámpara transportable con carga por in indducción. Komponendid: Bateria Lipo 500mAh/3.7V: https: //tienda.bricogeek.com/baterias-lipo/939-bat … LiPo USB ja DC aku aku: https://tienda.bricogeek.com/cargadores-de-bateria…Car