Բովանդակություն:
- Քայլ 1. Բաղադրիչներ - DRAGONBOARD
- Քայլ 2. Բաղադրիչներ
- Քայլ 3. Բաղադրիչներ - սենսոր
- Քայլ 4. DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- Քայլ 5. ՊԱՏՐԱՍՏԵՔ API
- Քայլ 6: PՐԱԳԻՐ Շարժական
- Քայլ 7: FLUXOGRAMA
- Քայլ 8. ԳՆԱՀԱՏՈՄ
Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Կուրսը ՝ Especialização em Arquitetura de Software Distribuído
Տվյալներ `2017-10-26
Unidade: Praça da Liberdade
Կարգապահություն. Ինտերնետ das Coisas
Պրոֆեսոր ՝ Իլո Ռիվերո
Ալունոս. Բրունո Վալգաս ([email protected])
Դելան Հոֆման Պ. Սիլվա ([email protected])
Հեբերտ Ալվեշ Ֆերեյրա ([email protected])
Jeanան Կառլոս Բատիստա ([email protected])
Ordորդան Բատիստա ([email protected])
ՆԵՐԱՈԹՅՈՆ
Ի՞նչ կլիներ, եթե մենք կարողանայինք մեր բույսերը ջրել ցանկացած պահի, ցանկացած վայրում: Pրային գործարան նախագծով դա հնարավոր կլինի: Այս նախագիծը մշակվել է ՝ նպատակ ունենալով բարելավել մոլորակի համար այդքան կարևոր վերաբերմունքի հարմարավետությունն ու գործնականությունը:
INTRODUÇÃO
Como seria se pudéssemos aguar nossas plantas a qualquer hora e de qualquer lugar? Com o Projeto WaterPlant- ի հնարավորությունը: 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 needidade de sua irrigação.
A placa envia informações para a API, armazenada na nuvem, que sua sua vez é écessa 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: Օգտագործելով մեր դիմումը, որը կարող է օգտագործվել միայնակ կամ ոռոգման համար անհրաժեշտ է կատարել միայնակ, մենք պետք է տեղեկացված լինենք API- ի կողմից, որը թույլ է տալիս օգտագործել ջրի մակարդակը, ինչպես նաև օգտագործել ջրի մակարդակը:
Քայլ 1. Բաղադրիչներ - DRAGONBOARD
DragonBoard 410C
A DragonBoard 410C- ն առաջին տեղն է զբաղեցնում տվյալների բազայի վրա, որը չի մշակվում Qualcomm Snapdragon 400- ի միջոցով, միացված է Wi -Fi- ին, Bluetooth- ին և GPS- ին, ինչպես նաև թույլ է տալիս արագացնել 64 -րդ գործընթացը: Qualcomm- ն աշխատում է 1.2 ԳՀց հաճախականությամբ, 1 ԳԲ հիշողությամբ DDR3 533 ՄՀց և 8 ԳԲ սպառազինության հիշողությամբ (eMMC):
Գինը ՝ 500 $ 750 750 դոլար
Քայլ 2. Բաղադրիչներ
Placa de expansão para mapeamento e utilização de portas- ը, հեշտացնում և օգտագործում են սենսորները:
Քայլ 3. Բաղադրիչներ - սենսոր
Sensor de Umidade do Solo
Սենսորը օգտագործվում է միայն էլեկտրոնային եղանակով, որը թույլ է տալիս օգտագործել միայնակ սենսորը, սակայն այն կարող է օգտագործվել որպես սենսորային դիմադրություն, որը թույլ է տալիս օգտագործել հզորությունը: Quando o solo estiver seco, a sua resistência aumenta, դժվարանում է passagem de corrente- ով: Com a absorção da gua, a resistencia do solo diminui allowindo 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.
Թարգմանե՞լ նկարագրությունը հայերեն (Հայաստան) Google Translate- ի օգնությամբ O sinal digital é ajustado para que tenha valor lógico 1 quando a umidade for maior do que um um valor predefinido, ajustado através do potenciômetro presente no módulo.
Գինը ՝ 6 $ ~ 20 դոլար:
Քայլ 4. DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
Կիրառելի ծրագիր, որը նախատեսված է Dragonboard 410c- ի միջոցով օգտագործելու համար ՝ օգտագործելով Windows 10 IoT Core- ը:
O Windows 10 IoT Core- ն իր ծրագրային ապահովման պլատֆորմն է, որն ապահովում է ծրագրավորման և օգտագործման դյուրին միջոցներ: Com ele é possível desenvolver para várias placas existenes 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- ը կարող է որակապես դուրս գալ (https://www.visualstudio.com/thank-you-downloading…);
- DragonBoard- ի թարմացման գործիք;
- Windows 10 IoT Core Dashboard;
- DragonBoard Windows 10 IoT հիմնական պատկեր;
- Windows IoT նախագծի ձևանմուշներ;
Տեղադրման ամբողջական ընթացակարգը և կազմաձևումը, որը պարունակում է ծածկագիր, առանց որևէ հղման ՝
Տեղադրեք մի կարգաբերում կամ կազմաձևեք այն ձեռնարկի համար, որը նախատեսված է Microsoft- ի կողմից ՝ առանց նոր ծրագրերի, առանց Visual Studio- ի ՝ հետին պլանի կիրառման համար:
Այս դասընթացը նախատեսված է այն բանից հետո, երբ անհրաժեշտ է կիրառել GitHub em- ը
Toda a configuração do aplicativo está no arquivo StartupTask.cs na raiz do projeto, եւ 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 (); ժամանակաչափ = 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 utilisadas na nossa aplicação enquanto as variáveis timer e timer2 criam 2 timers para serem performados a cada quantidade de tempo, e neste caso foramramisadosos 10 segundisadosados 10os). 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.
մասնավոր դատարկ InitGPIO ()
{var gpio = GpioController. GetDefault (); if (gpio == null) {pin = null; վերադարձ; } pin = gpio. OpenPin (36); if (pin == null) {վերադարձ; } pin. Write (GpioPinValue. High); pin. SetDriveMode (GpioPinDriveMode. Output); }
Մուտքագրեք InitSPI- ն () կազմաձևեք SPI0- ի մուտքի վահանակը:
մասնավոր async Task InitSPI ()
{try {var settings = new SpiConnectionSettings (0); // Seleciona a porta SPI0 da DragonBoard- ի կարգավորումներ: Clock Frequency = 500000; // clockամացույցի կազմաձևում SPI em 0.5MHz պարամետրերով: Mode = SpiMode. Mode0; // COffigura polaridade e fase do clock do SPI var controller = սպասել SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (կարգավորումներ); } բռնել (Բացառություն բացառություն) {նետել նոր բացառություն («Falha na inicialização do SPI», նախկին); }}
O Primeiro timer invoca o método Timer_Tick () que tem como funcão a verificação através da API se houve um komando para iniciar կամ uma ոռոգում: 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 = "դիմում/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. Neste trecho de código que a irrigação é encerrada também.
Para o segundo timer é invocado o método Timer_Tick2 () que ié 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 = "ՓՈՍՏ";
O método LerADC (բայթ ջրանցք) կամ մեթոդը արձագանքելու համար, որը թույլ է տալիս փոխակերպել վերլուծական/թվային համակարգերի արժեքները, որոնք կօգնեն ձեզ ապահովել սենսորները: Հարմարվողական տեղեկատվություն այն զանգվածների համար, որոնցից բայթերը կարող են փոխակերպվել մեր ամբողջ ուժով, ինչպես նաև օգտագործել ConvertToInt ([ReadOnlyArray] բայթ տվյալները): Segue os trechos de código:
public 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] բայթ տվյալներ) {int արդյունք = 0; արդյունք = տվյալներ [1] & 0x03; արդյունք << = 8; արդյունք += տվյալներ [2]; վերադարձի արդյունք; }
Քայլ 5. ՊԱՏՐԱՍՏԵՔ API
API- ն օգտագործում է NodeJS պլատֆորմը (https://nodejs.org), օգտվում է Swagger- ից (https://swagger.io/specification/) և ապահովում է մոդեռն մոդելի և փաստաթղթերի օգտագործումը ինտեգրման համար:
Para armazenamento dos dados foi utilizado o banco de dados MySQL, banco de dados relacional և բաց կոդով:
Segue abaixo a arquitetura de camadas que compõem API:
● /api: Camada que gerencia os recursos disponibilizados para que terceiros possam acessar.
○ /api /վերահսկիչ.
○ /api /ծառայություն. Camada que entrega os dados de entrada para serem tratados, depois escritos կամ 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:
● /տիրույթ ՝ Camada que contém toda codificação relacionada a regra de negócio da aplicação:
○ /շտեմարան. Camada de persistência de dados.
● /ենթակառուցվածք. Cama de configuração das strings de conexão do banco de dados e também do servidor que será providerado pela própria aplicação.
Para mais informações e consulta ao código fonte acesso o link to github:
Segue abaixo uma breve descrição de cada recurso disponibilizados na API:
Մեթոդո. ՓՈՍՏ
URI ՝/api/v1/umidades
Նկարագրություն. Recurso utilisado para գրանցման համար օգտագործեք ձեր սարքի սենսորները:
Exemplo de Requisição:
{
«Քաջություն» ՝ 355}
Մետոդո
URI ՝/api/v1/umidades
Recurso que recupera todos os registries de valores de umidade que foram salvos anteriormente.
Գործազրկման արձագանք.
[{«Id» ՝ 1, «քաջություն» ՝ 355, «dataCadastro» ՝ yyyy-MM-dd HH: MM}]
Մեթոդո. ՓՈՍՏ
URI ՝/api/v1/ոռոգիչ
Նկարագրություն. Recurso utilizado para ativar o dispositivo de irrigação.
Մետոդո
URI ՝/api/v1/ոռոգիչ
Recurso utilizado para verificar o estado de umidade atual do solo կատարման համար:
Գործազրկման արձագանք.
{
«Քաջություն» ՝ 355}
Քայլ 6: PՐԱԳԻՐ Շարժական
Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todas as plataformas (Android և IOS) գործիքների և գործիքների օգտագործման նվազեցման կամ նվազեցման համար: O Ionic é um um շրջանակ, որը հնարավոր է որպես հսկայական գրադարանային բաղադրիչ բաղադրիչներ, որոնք թույլ են տալիս կատարելագործել տեսողական կիրառումը: Օգտագործեք լեզուների համացանցը (HTML, CSS և Javascript) ՝ արագ և արագ օգտագործելու համար ՝ անկյունային կոմունալ կամ միջուկային (հիմնական) միջոցով: Através do cordova (biblioteca javascript) os recursos do dispositivos são acessados pelo webview do mesmo.
Կիրառվում են API- ի համակարգերի կիրառման համար, որոնք պահանջում են տեղեկատվություն, որը թույլ է տալիս կատարել հեռավոր հեռավորություն: Através de um evento de botão uma requisição é enviada para o servidor e açãorespondente é realizada.
Հղումներ:
- https://ionicframework.com/
- https://angular.io/
- https://ionicframework.com/
Odigi fonte do aplicativo modelo encontra-se no GitHub, no endereço
API- ի գործառնական գործառնական կարգավորումը կարող է օգտագործվել API- ի բացակայության դեպքում: server.ts- ն չի կարող մուտքագրել /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) և փոփոխել URI_PREFIX- ը, conforme exemplo abaixo para o endereço onde está hospedada a API:
արտահանման դասի սերվեր {
հանրային ստատիկ միայն կարդալու համար URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* public static readonly URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}
Քայլ 7: FLUXOGRAMA
Քայլ 8. ԳՆԱՀԱՏՈՄ
Հրահանգներ ՝
Qualcomm DragonBoard 410C:
Windows 10 և DragonBoard ™ 410c-IoT- ի զարգացման կատարյալ սկիզբ.
Monitore sua planta usando Arduino ՝
Խորհուրդ ենք տալիս:
Asistente Solar: Un Smartphone Փոփոխություն ՝ 3 քայլ
Asistente Solar: Un Smartphone Փոփոխություն ՝ Lo siento por mi horror espa ñ ol: Instructables usted! Tel é fonnd tienden a estar fuera de derecho de la bater í a cuando m á s los necesitan. Pro estecte, se puede extender la vida de la bater & iacute
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)
SMARTPHONE CONTROLLED ROBOT USING BLE 4.0 !!!: 5 քայլ
SMARTPHONE CONTROLLED ROBOT USING BLE 4.0 !!! Դուք կարող եք ստուգել այն այստեղ: Այս ուսանելիում ես ձեզ ցույց կտամ, թե ինչպես կառուցել ռոբոտ, որը կարող է լինել
Arduino Smartphone Coms/Serial Monitor Via Bluetooth HC-05, HC-06: 4 քայլ (նկարներով)
Arduino Smartphone Coms/Serial Monitor Via Bluetooth HC-05, HC-06. Սա աներևակայելի օգտակար է, եթե ցանկանում եք ձեր ուրվագիծը փորձարկել իրական աշխարհի միջավայրում ՝ ձեր համակարգչից հեռու: Արդյունքն այն է, որ ձեր սմարթֆոնը գործում է նույնը, ինչ ձեր համակարգչի Arduino սերիալային մոնիտորը: HC-05 և HC-06 Bluetooth մոդուլները մատչելի են
SmartPhone Game Simulator- Խաղացեք Windows խաղեր ՝ օգտագործելով ժեստերի կառավարման IMU, արագացուցիչ, գիրոսկոպ, մագնիսաչափ ՝ 5 քայլ
SmartPhone Game Simulator- Խաղացեք Windows խաղեր ՝ օգտագործելով ժեստերի կառավարման IMU, արագացուցիչ, գիրոսկոպ, մագնիսաչափ. Աջակցեք այս նախագծին ՝ https://www.paypal.me/vslcreations ՝ նվիրաբերելով բաց կոդերի & աջակցություն հետագա զարգացմանը