Table des matières:
- Étape 1: COMPOSANTS - DRAGONBOARD
- Étape 2: COMPOSANTS - BASE DE LIAISON
- Étape 3: COMPOSANTS - CAPTEUR
- Étape 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- Étape 5: PREPARANDO une API
- Étape 6: APP MOBILE
- Étape 7: FLUXOGRAMME
- Étape 8: RÉFÉRENCES
Vidéo: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE : 8 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAISCurso: Especialização em Arquitetura de Software Distribuído
Données: 2017-10-26
Unité: Praça da Liberdade
Discipline: Internet das Coisas
Professeur: Ilo Rivero
Alunos: Bruno Valgas ([email protected])
Dellan Hoffman P. Silva ([email protected])
Hébert Alves Ferreira ([email protected])
Jean Carlos Batista ([email protected])
Jeordane Batista ([email protected])
INTRODUCTION
Que serait-ce si nous pouvions arroser nos plantes n'importe quand, n'importe où ? Avec le projet WaterPlant, ce sera possible. Ce projet a été développé dans le but d'améliorer la commodité et la praticité pour traiter cet être si important pour la planète.
INTRODUCTION
Como seria se pudessemos aguar nossas plantas a qualquer hora e de qualquer lugar? Com o Projeto WaterPlant sera possible. Este projeto foi desenvolvido visando melhorar a comodidade e a praticidade para tratar deste ser tão important para o planeta.
FONCTIONNEMENT
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.
A placa envia informações para a API, armzenada 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, isa informação é enviada para a API que por sua vez se comunica com a placa para acionamento do dispositivo de irrigação.
Étape 1: COMPOSANTS - DRAGONBOARD
DragonBoard 410C
A DragonBoard 410C é a primeira placa de desenvolvimento baseada no processador da série Qualcomm Snapdragon 400, contando com conexões Wifi, Bluetooth e GPS em uma placa do tamanho aproximado de um cartão de credito, e é caracterizada pelo alto desempenho do a processador de 64 bits Qualcomm rodando à 1.2GHz, avec 1 Go de mémoire DDR3 533 MHz et 8 Go de mémoire d'armement (eMMC).
Prix: 500 R$ à 750 R$
Étape 2: COMPOSANTS - BASE DE LIAISON
Placa de expansão para mapeamento e utilização de portas, facilitando a utilização de sensores.
Étape 3: COMPOSANTS - CAPTEUR
Capteur d'Umidade do Solo
Este capteur 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 module 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 é ajustado para que tenha valor lógico 1 quando a umidade for maior do que um valor predefinido, ajustado atraves do potenciômetro presente no modulo.
Prix: 6 R$ à 20 R$.
Étape 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
Une application destinée à utiliser Dragonboard 410c pour l'utilisation de Windows 10 IoT Core.
O Windows 10 IoT Core est une plate-forme de développement pour faciliter la vidéo des développements à partir de la programmation de ces dispositifs. 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):
- Visual Studio 2017 Community ou qualquer outtra versão (https://www.visualstudio.com/thank-you-downloading…);
- Outil de mise à jour DragonBoard;
- Tableau de bord Windows 10 IoT Core;
- Image principale de l'IoT pour Windows 10 DragonBoard;
- modèles de projet Windows IoT;
O processo completo para instalação e configuração pode ser encontrado no seguinte link:https://developer.microsoft.com/en-us/windows/iot/…
Após a instalação e configuração conforme o tutorial da Microsoft basta criar um novo projeto no Visual Studio do tipo Background Application.
Para este tutoriel vamos disponibilizar o código finalizado da aplicação atraves 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:
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() et 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 segundostrizados10 time(s). 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 exemplo de código para a Dragonboard o código do pino foi o 36.
vide privé InitGPIO()
{ var gpio = GpioController. GetDefault(); if (gpio == null){ pin = null; revenir; } broche = gpio. OpenPin(36); if (pin == null){ return; } pin. Write(GpioPinValue. High); pin. SetDriveMode(GpioPinDriveMode. Output); }
O método InitSPI() configure un porta SPI0 da Dragonboard.
Tâche privée asynchrone InitSPI()
{ essayez { var settings = new SpiConnectionSettings(0); // Sélectionne le port SPI0 des paramètres DragonBoard. ClockFrequency = 500000; // Configura o clock do barramento SPI em 0.5MHz settings. Mode = SpiMode. Mode0; // Configura polaridade e fase do clock do SPI var controller = wait SpiController. GetDefaultAsync(); SpiADC = contrôleur. GetDevice(paramètres); } catch (Exception ex){ throw new Exception("Falha na inicialização do SPI", ex); } }
O premier timer invoca o método Timer_Tick() que tem como função a verificação attravés da API se houve um commando para iniciar uma irrigação. 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"; httpRequêteWeb. Méthode = "GET";
Neste trecho de código deve ser alterado para o endereço onde será hospedado o código da API para buscar o commando de irrigação. É 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 = "application/json"; httpWebRequest. Method = "POST";
O método LerADC (byte canal) é 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 atraves do método ConvertToInt([ReadOnlyArray] byte data). Segue os trechos de código:
public int LerADC (octet canal)
{ byte readBuffer = new byte[3]; byte writeBuffer = new byte[3] { 0x00, 0x00, 0x00 }; writeBuffer[0] = 0x01; writeBuffer[1] = canal; SpiADC. TransferFullDuplex(writeBuffer, readBuffer); adcValue = ConvertToInt(readBuffer); return adcValue; } public int ConvertToInt([ReadOnlyArray] byte data) { int result = 0; résultat = données[1] & 0x03; résultat <<= 8; résultat += données[2]; renvoyer le résultat; }
Étape 5: PREPARANDO une API
API pour desenvolvida na plate-forme NodeJS (https://nodejs.org), pour utilizado o Swagger (https://swagger.io/specification/) une fim de modelar e documentar os recursos utilizados na integração do trabalho.
Para armazenamento dos dados foi utilizado o banco de dados MySQL, banco de dados relation e open source.
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 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 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.
○ /référentiel: Camada de persistência de dados.
● /infrastructure: Cama de configuração das strings of conexão do banco de dados e também do servidor que será provisionado pela própria aplicação.
Pour plus d'informations et de consultation ao código fonte acesso o link do github:
Segue abaixo avec une brève description de cada recurso disponibilizados avec API:
Méthode: POST
URI: /api/v1/umidades
Description: Recurso utilizado para registar umidade coletada pelo sensor de umidade.
Exemple de demande:
{
"valeur": 355 }
Méthode: GET
URI: /api/v1/umidades
Description: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.
Exemple de réponse:
[{ « id »: 1, « valeur »: 355, « dataCadastro »: aaaa-MM-jj HH:MM }]
Méthode: POST
URI: /api/v1/irrigacoes
Description: Recurso utilizado para ativar o dispositivo de irrigação.
Méthode: GET
URI: /api/v1/irrigacoes
Description: Recurso utilizado para verificar o estado de umidade atual do solo.
Exemple de réponse:
{
"valeur": 355 }
Étape 6: APP MOBILE
Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todas as plateformas (Android e IOS) para aumentar a abrangência de usuários e diminuir o custo do projecto. O Ionic é um framework que possui uma gigantesca biblioteca de componentes gráficos que facilita a implementação visual do aplicativo. Ele utiliza de linguagens web (HTML, CSS e Javascript) pour un 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 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 correspondante é realizada.
Liens:
- 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…) e alterar a variável URI_PREFIX, conforme exemplo abaixo para o endereço onde está hospedada a API:
classe d'exportation Serveur {
URI_PREFIX public statique en lecture seule: string = "https://serverless-study.appspot.com/api/v1/"; /* public static readonly URI_PREFIX: string = "https://dominio.com/aplicacao/"; */ }
Étape 7: FLUXOGRAMME
Étape 8: RÉFÉRENCES
Instructables:
Qualcomm DragonBoard 410C:
Windows 10 et DragonBoard™ 410c – le point de départ idéal pour le développement IoT:
Monitore sua planta usando Arduino:
Conseillé:
Comment installer le système d'exploitation Raspbian dans Raspberry Pi à l'aide du logiciel NOOBS et d'un smartphone : 6 étapes
Comment installer le système d'exploitation Raspbian dans Raspberry Pi à l'aide du logiciel NOOBS et d'un smartphone. : Bonjour à tous ! aujourd'hui, dans ce tutoriel, je vous montre comment installer facilement Raspbian OS dans Raspberry Pi à l'aide du logiciel NOOBS et d'un smartphone
Tube LED en pierre de verre (contrôlé par WiFi via une application pour smartphone) : 6 étapes (avec photos)
Tube LED en pierre de verre (contrôlé par WiFi via une application pour smartphone) : Bonjour collègues fabricants ! Dans cette instructable, je vais vous montrer comment construire un tube LED contrôlé par WiFi qui est rempli de pierres de verre pour un bel effet de diffusion. Les LED sont adressables individuellement et donc de jolis effets sont possibles dans le
Bricolage -- Comment faire un robot araignée qui peut être contrôlé à l'aide d'un smartphone à l'aide d'Arduino Uno : 6 étapes
Bricolage || Comment faire un robot araignée qui peut être contrôlé à l'aide d'un smartphone à l'aide d'Arduino Uno : Tout en créant un robot araignée, on peut apprendre tellement de choses sur la robotique. Dans cette vidéo, nous allons vous montrer comment fabriquer un robot Spider, que nous pouvons faire fonctionner à l'aide de notre smartphone (Androi
Comment fabriquer une voiture contrôlée par smartphone : 5 étapes
Comment fabriquer une voiture contrôlée par smartphone : Tout le monde aime jouer avec une voiture à distance commandée par smartphone. Cette vidéo explique comment la fabriquer
Sistema De Irrigação Automático Para Plantas : 8 étapes
Sistema De Irrigação Automático Para Plantas: A irrigação é uma das tecnologias mais utilizadas por agricultores pois esta atividade independe da ocorrência de chuvas, garante uma safra uniform, reduz a falha humana, minimiza o consumo de a miniácessan