Inhoudsopgave:
- Stap 1: COMPONENTEN - DRAGONBOARD
- Stap 2: COMPONENTEN - LINKERBASIS
- Stap 3: COMPONENTEN - SENSOR
- Stap 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- Stap 5: PREPARANDO een API
- Stap 6: APP MOBIEL
- Stap 7: FLUXOGRAMA
- Stap 8: REFERNCIAS
Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAISCurso: Especialização em Arquitetura de Software Distribuído
Gegevens: 2017-10-26
Unidade: Praça da Liberdade
Disciplina: Internet das Coisas
Professor: 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])
INVOERING
Hoe zou het zijn als we onze planten altijd en overal water konden geven? Met het WaterPlant Project kan het. Dit project is ontwikkeld om het gemak en de bruikbaarheid te verbeteren om dit zo belangrijk voor de planeet te behandelen.
INLEIDINGÃO
Como seria se pudéssemos aguar nossas plantas a qualquer hora e de qualquer lugar? Com o Projeto WaterPlant is mogelijk. 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, door meio de parâmetros da umidade do solo é possível avaliar a necessidade de sua irrigação.
Een placa envia informações para a API, armazenada na nuvem, que por sua vez é acessada pelo aplicativo mobile, que recebe e trata tais informações. Desta forma a aplicação mantem of usuário informado da situação do solo. U kunt ons gebruiken om een aanvraag te doen voor een 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.
Stap 1: COMPONENTEN - DRAGONBOARD
DragonBoard 410C
Een DragonBoard 410C is een primeira op de basis van de serie Qualcomm Snapdragon 400, aangesloten op Wifi, Bluetooth en GPS op de kaart van de creditcard, en op 64 bits van het proces Qualcomm rodando 1.2GHz, met 1GB geheugen DDR3 533 MHz en 8GB geheugen geheugen (eMMC).
Prijs: R$500 ~ R$750
Stap 2: COMPONENTEN - LINKERBASIS
Placa de expansão para mapeamento en utilização de portas, facilitando and utilização de sensores.
Stap 3: COMPONENTEN - SENSOR
Sensor de Umidade do Solo
Este sensor utilizadois eletrodos para passar corrente pelo solo e lê o nível de umidade by comparação com een resistencia 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, of circuito. Dessa forma podemos definir quando of solo está molhado, of quando está seco.
O módulo fornece tanto uma saída digital (D0), como uma saída analógica (A0). O sinal digital é a justado 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.
Prijs: R $ 6 ~ R $ 20.
Stap 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
Een gebruiksvriendelijke versie van Dragonboard 410c voor gebruik van Windows 10 IoT Core.
O Windows 10 IoT Core is een platform voor het uitvoeren van een facilitaire procedure voor het programmeren van programma's. Het is mogelijk om verschillende dingen te doen die bestaan, zonder tussenkomst van Dragonboard:
- Visual Studio 2017-gemeenschap of meer dan vers (https://www.visualstudio.com/thank-you-downloading…);
- DragonBoard-updatetool;
- Windows 10 IoT Core-dashboard;
- DragonBoard Windows 10 IoT Core-afbeelding;
- Windows IoT-projectsjablonen;
O processo completo para installação en configuração pode ser encontrado no seguinte link:https://developer.microsoft.com/en-us/windows/iot/…
Er is een installatie en configuratie conform de tutorial van Microsoft nodig om een nieuw project te starten zonder Visual Studio om een achtergrondtoepassing te gebruiken.
Para este tutorial vamos disponibilizar o código finalizado da aplicação através do GitHub em
Het is mogelijk om een configuratie uit te voeren die niet beschikbaar is voor StartupTask.cs om een project te starten, en om een voorbeeld te geven van een deel van de procedure.
O met de belangrijkste toepassing van 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)); }
De methode van InitGPIO() en InitSPI() kan worden ingesteld voor het gebruik van verschillende soorten timers en timers en 2 timers voor het uitvoeren van een cada quantidade de tempo, en neste caso 10 milgunguntriza(10). Para alterar esse tempo basta mudar estes valores nessa parte do código.
O Método InitGPIO() een seguir tem como função definir as configuraçõese do pino que ativa a válvula solenoide de água. Een voorbeeld van een voorbeeld van een Dragonboard en een voorbeeld van een pino van 36.
privé leegte InitGPIO()
{ var gpio = GpioController. GetDefault(); if (gpio == null){ pin = null; opbrengst; } pin = gpio. OpenPin(36); if (pin == null){ return; } pin. Schrijven (GpioPinValue. High); pin. SetDriveMode(GpioPinDriveMode. Output); }
Om met InitSPI() een porta SPI0 van Dragonboard te configureren.
privé asynchrone taak InitSPI()
{probeer {var instellingen = nieuwe SpiConnectionSettings(0); // Selecteer een porta SPI0 da DragonBoard-instellingen. 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 = controller. GetDevice (instellingen); } catch (Exception ex){ throw new Exception("Falha na inicialização do SPI", ex); } }
O primeiro timer invoca of método Timer_Tick() voor een verificatie van de API die u kunt gebruiken om te beginnen met irrigaço. O seguinte trecho de código é respons op pela chamada à API:
var httpWebRequest = (HttpWebRequest)WebRequest. Create("https://serverless-study.appspot.com/api/v1/irrigacoes");
httpWebRequest. ContentType = "applicatie/json"; httpWebRequest. Method = "GET";
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. É neste trecho de código que a irrigação é encerrada também.
Para o segundo timer é invocado o método Timer_Tick2() que é respons op pelo envio dos dados da umidade do solo naquele momento. Er is geen seguinte trecho de código deste método que deve ser configurado o endereço da API voor o envio dos dados:
var httpWebRequest = (HttpWebRequest)WebRequest. Create("https://serverless-study.appspot.com/api/v1/umidades");
httpWebRequest. ContentType = "applicatie/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 attravés do método ConvertToInt([ReadOnlyArray] byte data). Segue os trechos de código:
openbaar int LerADC(bytekanaal)
{ byte readBuffer = nieuwe byte [3]; byte writeBuffer = nieuwe byte [3] { 0x00, 0x00, 0x00 }; schrijfbuffer[0] = 0x01; writeBuffer[1] = kanaal; SpiADC. TransferFullDuplex (schrijfbuffer, leesbuffer); adcValue = ConvertToInt(readBuffer); retour adcWaarde; } public int ConvertToInt([ReadOnlyArray] byte data) { int resultaat = 0; resultaat = gegevens[1] & 0x03; resultaat <<= 8; resultaat += gegevens[2]; resultaat teruggeven; }
Stap 5: PREPARANDO een API
API voor het ontwerpen van een plataforma NodeJS (https://nodejs.org), voor het gebruik van Swagger (https://swagger.io/specification/) en voor het modelleren en documenteren van gebruiksgegevens voor integratie.
Parawapens voor het gebruik van dados voor MySQL, voor relacional banco's en open source.
Segue heeft een 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 of retorno ocorrido durante of processo de request.
○ /api/swagger: Camada que contém of 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 dados.
/infrastructuur: Cama de configuração das strings de conexão do banco de dados en Também do servidor que será provisionado pela própria aplicação.
Voor meer informatie en advies, zoals lettertypen en een link naar github:
Een korte beschrijving van het cada-recursor beschikbaar voor API:
Methode: POST
URI: /api/v1/umidades
Beschrijving: Gebruiksvoorschrift voor de registratie van de pelo sensor de umidade.
Voorbeeld van vereiste:
{
“moed”: 355 }
Methode: GET
URI: /api/v1/umidades
Beschrijving: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.
Voorbeeld van antwoord:
[{ "id": 1, "valor": 355, "dataCadastro": jjjj-MM-dd UU:MM }]
Methode: POST
URI: /api/v1/irrigacoes
Beschrijving: Gebruikt voor het verwijderen van irrigatie.
Methode: GET
URI: /api/v1/irrigacoes
Beschrijving: Gebruiksvoorschrift om te verifiëren of om het zelf te doen.
Voorbeeld van antwoord:
{
“moed”: 355 }
Stap 6: APP MOBIEL
Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todas as plataformas (Android en IOS) para aumentar een abrangência de usuários en diminuir o custo do projeto. O Ionic e um framework que possui uma gigantesca biblioteca de componentes que facilita a implementação visual do aplicativo. Ele utiliza de linguagens web (HTML, CSS en Javascript) para a criação das telas e tem o Angular como seu núcleo (core). Através do cordova (biblioteca javascript) en andere bronnen voor toegang tot webview do mesmo.
O aplicativo con 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 reotamente. Através de um eventto de botão uma requisição é enviada para o servador e ação correspondente é realizada.
Links:
- https://ionicframework.com/
- https://hoekig.io/
- https://ionicframework.com/
O código fonte do aplicativo modelo encontra-se geen GitHub, geen 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…) en verander een variável URI_PREFIX, conform voorbeeld abaixo para o endereço onde está hospedada a API:
export klasse Server {
openbare statische alleen-lezen URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* openbare statische alleen-lezen URI_PREFIX: string = "https://dominio.com/aplicacao/"; */ }
Stap 7: FLUXOGRAMA
Stap 8: REFERNCIAS
Instructables:
Qualcomm DragonBoard 410C:
Windows 10 en DragonBoard™ 410c – de perfecte start voor IoT-ontwikkeling:
Monitor van planta usando Arduino:
Aanbevolen:
Hoe Raspbian OS in Raspberry Pi te installeren met behulp van NOOBS-software en smartphone: 6 stappen
Hoe Raspbian OS in Raspberry Pi te installeren met behulp van NOOBS-software en smartphone. Hallo allemaal! vandaag laat ik je in deze tutorial zien hoe je eenvoudig Raspbian OS in Raspberry Pi kunt installeren met behulp van NOOBS-software en Smartphone
Hoe maak je een door een smartphone bestuurde auto: 5 stappen
Hoe een door een smartphone bestuurde auto te maken: iedereen speelt graag met een door een smartphone bediende auto op afstand. Deze video gaat over hoe je het kunt maken
Verandering Een Ongebruikte Smartphone in Een Slim Display: 6 Stappen (met Foto's)
Verander Een Ongebruikte Smartphone in Een Slim Display: Deze tutorial is in het Nederlands, zie hier voor de Engelse versie.Heb jij een (oude) ongebruikte smartphone? Maak er een slim display van met Google Spreadsheets en wat pen en papier door deze eenvoudige tutorial te volgen.Als je de tutorial hebt voltooid
Een smartphone gebruiken zonder batterij: 5 stappen
Hoe een smartphone zonder batterij te gebruiken: Allereerst moet u de invoerpinnen van de cel identificeren; wat het positieve en het negatieve is, de andere twee pinnen doen er voorlopig niet toe. Plaats de batterij in de mobiele telefoon en identificeer waar elke pool naartoe gaat (positief en negatief), zoals weergegeven in de afbeelding
Goedkope smartphone gestuurde arm (+ optie opslaan positie): 5 stappen
Goedkope smartphonegestuurde arm (+ optie opslaan van positie): het project Bestuur een robotarm die wordt bestuurd door een smartphone met behulp van een Bluetooth-apparaat. Modusbonus: we hebben een knop waarmee de Arduino een positie kan onthouden. Wanneer we willen, kunnen we met een andere knop naar deze opgeslagen positie gaan. FRLE PROJET Commando