Taula de continguts:
- Pas 1: COMPONENTS: DRAGONBOARD
- Pas 2: COMPONENTS: BASE DE LINKER
- Pas 3: COMPONENTS: SENSOR
- Pas 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- Pas 5: PREPARAR una API
- Pas 6: APP MILEBIL
- Pas 7: FLUXOGRAMA
- Pas 8: REFERÊNCIAS
Vídeo: SISTEMA D'IRRIGAÇÓ AUTOMÀTICA CONTROLADA PER SMARTPHONE: 8 Steps
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Curs: Especialització en Arquitetura de Software Distribuído
Dades: 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])
INTRODUCCIÓ
Com seria si poguéssim regar les nostres plantes en qualsevol moment i en qualsevol lloc? Amb el Projecte WaterPlant serà possible. Aquest projecte es va desenvolupar amb l'objectiu de millorar la comoditat i la pràctica per tractar aquest fet tan important per al planeta.
INTRODUCCIÓ
Como seria se pudéssemos aguar nossas plantes a qualquer hora e de qualquer lugar? Com o Projecte WaterPlant serà possible. Aquest projecte es va desenvolupar visitant melhorar a comoditat i a pràctica per tractar d’aquest ser important per al planeta.
FUNCIONAMENTO
O projecto va ser desenvolupat per a monitoratge de jardins, on és possible efetuar a verificació de l'estat del sol, amb relació amb la seva humitat. Sendo assim, per meio de parámetros da umidade do solo é possível avaliar a necessidade de la seva irrigação.
A placa envia informações para a API, armazenada na nuvem, que por sua vez é acessada pelo aplicativo mobile, que recebe e tracta tais informações. Desta forma a aplicació mantem o usuari informado da situação do solo. O usuari em contato com a aplicação poderá solicitar o irrigamento imediado do solo, esta information és enviada per a API que per la seva vegada es comunica com a placa per accionament do dispositiu d'irrigació.
Pas 1: COMPONENTS: DRAGONBOARD
DragonBoard 410C
A DragonBoard 410C és la primera placa de desenvolupament basada no processador da sèrie Qualcomm Snapdragon 400, contant com connexions Wifi, Bluetooth i GPS em uma placa do tamanho aproximado de um cartão de crédito, e es caracterizado pelo alto desempenho do processador de 64 bits da Qualcomm rodant a 1.2GHz, com 1GB de memòria DDR3 533 MHz i 8GB de memòria d’armament (eMMC).
Preu: R $ 500 ~ R $ 750
Pas 2: COMPONENTS: BASE DE LINKER
Plaça d’expansió per a mapeament i utilització de portes, facilitant una utilització de sensors.
Pas 3: COMPONENTS: SENSOR
Sensor de Umidade do Solo
Aquest sensor utilitza eletros per passar corrent pel sol i el seu nivell d’humitat per comparació com a resistència del potenciòmetre del mòdul del sensor. Quan o solo estiver seco, a la seva resistència augmenta, dificultant un passatge de corrent. Com a absorció da àgua, a resistència del solo diminui permetent un passatge de corrent entre els eletrodos e fechando, desta forma, o circuito. Dessa forma podem definir quan només hi ha molhado, o quan està sec.
O módulo fornece tanto uma saída digital (D0), com uma saída analògica (A0). O sinal digital é ajustado para que tenha valor lógico 1 quan a umidade for maior do que um valor predefinido, ajustado através do potenciômetro presente no módulo.
Preu: R $ 6 ~ R $ 20.
Pas 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
Una aplicació desenvolupada per rodar a Dragonboard 410c es va utilitzar utilitzant Windows 10 IoT Core.
O Windows 10 IoT Core és la vostra plataforma de desenvolupament criada per facilitar la vida dos desenvolupadors a l’hora de programar els seus dispositius. Com ele é possível desenvolver for várias placas existents no market, bastant ter installado no computador os following itens (já em sequência of installationção, no case of use da Dragonboard):
- Visual Studio 2017 Community o qualquer altra versão (https://www.visualstudio.com/thank-you-downloading…);
- Eina d'actualització de DragonBoard;
- Tauler de control de l'IoT Core de Windows 10;
- DragonBoard Windows 10 IoT Core Image;
- Plantilles de projecte IoT de Windows;
O procés complet per a instal·lació i configuració es pot trobar sense l'enllaç següent:
Podeu instal·lar-la i configurar-la segons el tutorial de Microsoft Basta Criar amb un nou projecte de Visual Studio per a un tipus d'aplicació de fons.
Per a aquest tutorial, es pot obtenir un codi finalitzat per aplicar el fitxer GitHub a
Toda a configuração do aplicativo está no arquivo StartupTask.cs na raiz do projectet, e vamos explicar abaixo part a part do code.
El mètode principal és aplicable a Run () i el seu codi és el següent:
public void Run (IBackgroundTaskInstance taskInstance)
{InitGPIO (); InitSPI (); _deferral = taskInstance. GetDeferral (); temporitzador = ThreadPoolTimer. CreatePeriodicTimer (Timer_Tick, TimeSpan. FromMilliseconds (10000)); timer2 = ThreadPoolTimer. CreatePeriodicTimer (Timer_Tick2, TimeSpan. FromMilliseconds (10000)); }
Os métodos InitGPIO () e InitSPI () inicializam variáveis for serem utilizades na nossa applyção enquanto as variáveis timer e timer2 criam 2 timers for serem executados a cada quantitat de tempo, i en aquest cas foram parametrizados 10 segundos (10 mil milissegundos) para cada timer. Per alterar esse tempo basta mudar aquests valors nessa part del codi.
O Método InitGPIO () a seguir tem com função definir as configuraçõese do pino que ativa a válvula solenoide de água. No hi ha cap exemple de codi per a Dragonboard o codi de pinyó o 36.
private void InitGPIO ()
{var gpio = GpioController. GetDefault (); if (gpio == nul) {pin = nul; tornar; } pin = gpio. OpenPin (36); if (pin == nul) {return; } pin. Write (GpioPinValue. High); pin. SetDriveMode (GpioPinDriveMode. Output); }
O método InitSPI () configura a porta SPI0 de Dragonboard.
Private async Task InitSPI ()
{try {var settings = new SpiConnectionSettings (0); // Selecciona una porta SPI0 de la configuració de DragonBoard. ClockFrequency = 500000; // Configuració del rellotge de barres SPI a 0,5 MHz settings. Mode = SpiMode. Mode0; // COnfigura polaridade e phase do clock do SPI var controller = await SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (configuració); } catch (Exception ex) {throw new Exception ("Falha na inicialização do SPI", ex); }}
El primer timer invoca o mètode Timer_Tick () que tem com a funció a verificació através de l'API es troba com a comandament per iniciar una irrigação. El següent codi de codi és responsable de la chamada à API:
var httpWebRequest = (HttpWebRequest) WebRequest. Create ("https://serverless-study.appspot.com/api/v1/irrigacoes");
httpWebRequest. ContentType = "aplicació / json"; httpWebRequest. Method = "OBTENIR";
Neste trecho de code 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.
Per al segon timer és invocat o mètode Timer_Tick2 () que és responsable de vells dos dies de la umitat del sol moment del seu naixement. No hi ha cap següent codi de mètode que ha de ser configurat o endereçat per l'API per al seu entorn dos dies:
var httpWebRequest = (HttpWebRequest) WebRequest. Create ("https://serverless-study.appspot.com/api/v1/umidades");
httpWebRequest. ContentType = "aplicació / json"; httpWebRequest. Method = "POST";
O método LerADC (byte canal) és un mètode responsable per convertir-lo en conversor analògic / digital amb valors informats de sensor de pèl. Aquest adaptador proporciona informació sobre una matriu de bytes que es converteix en un mètode convertit al mètode ConvertToInt ([ReadOnlyArray] byte data). Segueix els trets de codi:
públic a LerADC (canal de bytes)
{byte readBuffer = byte nou [3]; byte writeBuffer = byte nou [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = canal; SpiADC. TransferFullDuplex (writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); tornar adcValue; } public int ConvertToInt ([ReadOnlyArray] byte data) {int result = 0; result = data [1] & 0x03; resultat << = 8; resultat + = dades [2]; resultat de retorn; }
Pas 5: PREPARAR una API
API ha estat desenvolupat a la plataforma NodeJS (https://nodejs.org), ha estat utilitzat o Swagger (https://swagger.io/specification/) a fim de modelar i documentar els recursos utilitzats a la integració del treball.
Per armazenamento dos dados foi utilitzat o banc de dados MySQL, banc de dados relacional i open source.
Segue abaixo a arquitetura de camadas que compõem a API.
● / api: Camada que gerencia os recursos disponibles disponibles para que terceros possam acessar.
○ / api / controller: Camada que gerencia as rotas definidas no document gerado pelo swagger.
○ / api / service: Camada que entrega os dados de entrada para serem tractados, depois escritos o lidos pela camada de BO (descrita més a davant). Nesta camada està configurat o retornejat durant el procés de sol·licitud.
○ / api / swagger: Camada que contém o arquivo de configuração do swagger, on està tota com configurações dos recursos.
● / domain: Camada que conté tota codificació relacionada amb un regra de negatiu aplicable.
○ / dipòsit: Camada de persistència de dies.
● / infrastructure: Cama de configuração das strings de conexão do banco de dados e também do server que serà provisioned pela própria applicableção.
Per a més informació i consulta al codi de font acesso o link do github:
Seguiu un breu descripció de cada recurs disponible en API:
Método: POST
URI: / api / v1 / umidades
Descripció: Recurs utilitzat per registrar humitat coletada pelo sensor de umidade.
Exemple de requeriment:
{
"Valor": 355}
Mètode: ACONSEGUEIX-TE
URI: / api / v1 / umidades
Descripció: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.
Exemple de resposta:
[{"Id": 1, "valor": 355, "dataCadastro": aaaa-MM-dd HH: MM}]
Método: POST
URI: / api / v1 / irrigacoes
Descripció: Recurs utilitzat per ativar o dispositiu d'irrigació.
Mètode: ACONSEGUEIX-TE
URI: / api / v1 / irrigacoes
Descripció: Recurs utilitzat per verificar o estat d’humitat atual do solo.
Exemple de resposta:
{
"Valor": 355}
Pas 6: APP MILEBIL
Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todas as plataformas (Android e IOS) para aumentar a abrangência d'usuaris i disminuir o custodiar el projecte. O Ionic é um framework que possui uma gigantesca biblioteca de components gràfics que facilita a implementació visual do aplicative. Ele use de linguagens web (HTML, CSS e Javascript) per a una criació de les teles i el tema o Angular com al seu nucli (core). Através do cordova (biblioteca javascript) os recursos do devices são accessed hair webview do mesmo.
O aplicativo consisteix en realitzar algunes requeriments per a una API del sistema a una pel·lícula per obtenir informació sobre una humitat del sol i regar o fins i tot remotament. Através de un esdeveniment de botó uma requisição és enviada per a un servidor i a un corresponsal realitzat.
Enllaços:
- https://ionicframework.com/
- https://angular.io/
- https://ionicframework.com/
O codi font do aplicative model encontra-se no GitHub, no endereço
Per a què aplicable funcions 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 exemple abaixo per endereç on està hospedada a API:
servidor d'exportació de classe {
només estàtic públic de lectura URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; / * només estàtic públic URI_PREFIX: string = "https://dominio.com/aplicacao/"; * /}
Pas 7: FLUXOGRAMA
Pas 8: REFERÊNCIAS
Instructables:
Qualcomm DragonBoard 410C:
Windows 10 i DragonBoard ™ 410c: l’inici perfecte per al desenvolupament d’IoT:
Monitore sua planta usando Arduino:
Recomanat:
Tira LED controlada controlada per RC: 4 passos (amb imatges)
Franja LED Rgb controlada per RC: creeu la vostra pròpia tira led controlada per rc per a la il·luminació individual de la sala. Per apagar-lo, activar-lo o canviar el color, heu de mantenir-vos davant del receptor. Això és avorrit i no re
Llum RGB controlada per Bluetooth amb aplicació per a Android: 4 passos
Llum RGB controlada per Bluetooth amb aplicació per a Android: Hola, fabricants, avui aprendrem a fer una tira RGB controlada per Bluetooth que es controla des del nostre telèfon intel·ligent. La idea bàsica d’aquest projecte és crear llum de fons / escriptori que aporti una sensació de calor als ulls de l’espectador. Sí, aquesta llum
Plataforma controlada per sensor giroscòpic per a trencaclosques de laberint: 3 passos
Plataforma controlada per sensor de giroscopi per a trencaclosques de laberint: aquesta instrucció es va crear per complir els requisits del projecte del curs Make a la Universitat de South Florida (www.makecourse.com). des de l'acceleroma
Sistema de llum automàtica per a cotxes: 4 passos
Sistema de llum automàtica per al cotxe: vaja, el cotxe modern inclou un sistema de llum automàtic que significa que els fars s’encenen i s’apaguen automàticament depèn de la llum ambiental, de manera que quan es faci fosc o conduïu en tanel, els llums s’encenen automàticament. fins i tot vaig pensar en canviar
Feu una porta d'obertura i tancament automàtica amb detecció automàtica amb Arduino !: 4 passos
Crear una porta d'obertura i tancament automàtica amb detecció automàtica amb Arduino Ara podeu fer-ho seguint aquesta instrucció. En aquest instructiu construirem una porta que es pugui obrir i tancar automàticament sense que toqueu la porta. Sensors d'ultrasons o