Სარჩევი:

SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 ნაბიჯი
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 ნაბიჯი

ვიდეო: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 ნაბიჯი

ვიდეო: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 ნაბიჯი
ვიდეო: 📺 SAMSUNG UE55RU7300UXUA მრგვალი ეკრანის ტელევიზორი / 55 ინჩი 2024, ნოემბერი
Anonim
Image
Image
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS კურსორი: სპეციალიზებული პროგრამული უზრუნველყოფის დისტრიბუცია

მონაცემები: 2017-10-26

უნიდადი: Praça da Liberdade

დისციპლინა: ინტერნეტი das Coisas

პროფესორი: ილო რივერო

ალუნოსი: ბრუნო ვალგასი ([email protected])

დელან ჰოფმანი პ. სილვა ([email protected])

ჰებერტ ალვეშ ფერეირა ([email protected])

ჟან კარლოს ბატისტა ([email protected])

ჯორდან ბატისტა ([email protected])

შესავალი

როგორი იქნებოდა, თუ ჩვენ შეგვეძლო ჩვენი მცენარეების მორწყვა ნებისმიერ დროს, ნებისმიერ ადგილას? წყლის ქარხნის პროექტით ეს შესაძლებელი იქნება. ეს პროექტი შემუშავებულია პლანეტისთვის ამდენად მნიშვნელოვანი მოხერხებულობისა და პრაქტიკულობის გაუმჯობესების მიზნით.

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 comodidade e praticidade para tratar deste ser tão importante para o planeta.

FUNCIONAMENTO

O jarins for 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 needidade de sua irrigação.

Placa envia informações para a API, armazenada na nuvem, que sua vea éz écessa pelo aplicativo mobile, que recebe e trata tais informações. Desta forma aplicação mantem o usuário informado da situação do solo. ჩვენ შეგვიძლია გამოვიყენოთ სარჩელი, რომელიც გამოიყენება როგორც სარწყავი ან სარწყავი სისტემა, რომელიც მოგვაწოდებს ინფორმაციას იმის შესახებ, თუ როგორ უნდა გამოვიყენოთ API, რომლითაც შესაძლებელია გამოვიყენოთ მორწყვის სისტემა.

ნაბიჯი 1: კომპონენტები - DRAGONBOARD

კომპონენტები - DRAGONBOARD
კომპონენტები - DRAGONBOARD

DragonBoard 410C

DragonBoard 410C არის ძირითადი ბაზა, რომელიც განკუთვნილია ბაზის არარსებობისთვის, რომელიც არ ემსახურება Qualcomm Snapdragon 400– ს, რაც დაკავშირებულია Wifi– სთან, Bluetooth– სთან და GPS– სთან ერთად, რათა დააკონკრეტოთ, რომ ეს არის 64 პროცესი Qualcomm მუშაობს à 1.2GHz, 1 GB მეხსიერებით DDR3 533 MHz და 8 GB არმიის მეხსიერების მეხსიერებით (eMMC).

ფასი: $ 500 ~ $ 750

ნაბიჯი 2: კომპონენტები - ბმულის ბაზა

კომპონენტები - ლინკერის ბაზა
კომპონენტები - ლინკერის ბაზა

Placa de expansão para mapeamento e utilização de portas, გაადვილებულია და იყენებს სენსიორებს.

ნაბიჯი 3: კომპონენტები - სენსორი

კომპონენტები - სენსორი
კომპონენტები - სენსორი

სენსორი დე უმიდადე დო სოლო

ეს არის სენსორი, რომლის საშუალებითაც შეგიძლიათ გამოიყენოთ ელექტრონული სენსორი, მაგრამ შეგიძლიათ შეაფასოთ ის, რომ შევადაროთ სენსორის წინააღმდეგობის გაწევის უნარი. Quando o solo estiver seco, sua resistência aumenta, ძნელია passagem de corrente. Com absorção da gua, resistensia do solo diminui ნებადართულია 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.

ეს არის ციფრული (D0), როგორც ანალიტიკური (A0). O ციფრული ციფრული aj აჯუსტადო que que ten 1 1 1 1 1 and qu qu qu qu qu qu qu qu qu qu qu qu qu qu qu qu qu qu 1 qu qu qu qu 1 1 qu 1

ფასი: $ 6 ~ 20 $.

ნაბიჯი 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

პროგრამა გამოიყენება Dragonboard 410c– სთვის, რომელიც იყენებს Windows 10 IoT Core– ს.

Windows 10 IoT Core არის პლატფორმა, რომელიც შექმნილია ჩვენი მიზნებისათვის, რათა ხელი შეუწყოს პროგრამის განკარგულებაში გამოყენებას. Comé é possível desenvolver para várias placas existentes no mercado, bastando ter instalado no computador os seguintes itens (já em sequencia de instalação, no caso de uso da Dragonboard):

  • Visual Studio 2017 Community orouquer out outraão (https://www.visualstudio.com/thank-you-downloading…);
  • DragonBoard განახლების ინსტრუმენტი;
  • Windows 10 IoT Core Dashboard;
  • DragonBoard Windows 10 IoT ძირითადი სურათი;
  • Windows IoT პროექტის შაბლონები;

ინსტალაციის პროცესის დასრულება და კონფიგურაციის პოდის დაშიფვრა, არ არის მითითებული ბმული:

არის ინსტალაცია და კონფიგურაციის კონფიგურაცია, რომელიც ემსახურება Microsoft– ის პროგრამას, რომელიც იყენებს ახალ პროგრამას Visual Studio– სთვის და არ იყენებს ფონურ პროგრამას.

ეს არის გაკვეთილი vamos disponibilizar o código finalizado და aplicação através do GitHub em

Toda a configuração do aplicativo is not 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 () და seu código ან 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)); }

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 ekzadosos a cada quantidade de tempo, e neste caso foram parametrizados 10 seg 10 10) რა Para alterar esse tempo basta mudar estes valores nessa parte do código.

O Método InitGPIO () არის გარკვეული კომუნიკაციის ფუნქციის განსაზღვრება, როგორც კონფიგურაციის გაკეთება pino que ativa და válvula solenoide de gua. გთხოვთ გამოიყენოთ Dragonboard or 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 და Dragonboard.

პირადი async ამოცანა InitSPI ()

{try {var settings = new SpiConnectionSettings (0); // Seleciona a porta SPI0 da DragonBoard settings. ClockFrequency = 500000; // საათის კონფიგურაცია SPAR em 0.5MHz პარამეტრებისათვის. Mode = SpiMode. Mode0; // COFFIGURAR 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 com como funcão a verificação através da API se houve um comando para iniciar uma irrigrigaçã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 = "განცხადება/json"; httpWebRequest. Method = "GET";

Neste trecho de código deve ser alterado para or 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.

დრო ან დრო ტაიმერი და ინვოკადოს მეთოდით Timer_Tick2 () რა არის პასუხისმგებელი თქვენს შვილთან დაკავშირებით, რათა დაასრულოს სოლო ნაკელის მომენტი. 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 (ბაიტის არხი) არის მეტისმომცემი პასუხი, რომელიც საშუალებას მოგცემთ გაეცნოთ კონვერტორულ ანალიზს/ციფრულ სისტემას, რომელიც შეიცავს ინფორმაციას umidade სენსორის შესახებ. ეს არის ადაპტირებული ინფორმაციის მასივი, რომლის ბაიტი არის კონვერტირებული ჩვენი ინტერორირებული გადამოწმების შემდეგ, რათა მოხდეს ConvertToInt (

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), foi utilisado o Swagger (https://swagger.io/specification/) მოდელირებისა და დოკუმენტური სისტემის შემუშავების მიზნით, რომელიც გამოიყენება მთელს მსოფლიოში.

გამოყენება armosenamento dos dados foi utilisado 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 /კონტროლერი: Camada que gerencia როგორც rotas definidasas 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 როგორც 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.

გაეცანით ინფორმაციას და გაეცანით თქვენს ლინკს github:

Segue abaixo uma breve descrição de cada recurso disponibilizados na API:

მეტოდო: POST

URI:/api/v1/umidades

აღწერილობა: Recurso utilisado para registry umidade coletada pelo sensor umidade.

მოთხოვნა:

{

"გამბედაობა": 355}

მეტოდო: GET

URI:/api/v1/umidades

აღწერა: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.

პასუხი პასუხი:

[{"Id": 1, "გამბედაობა": 355, "dataCadastro": წწწწ-მმ-დდ HH: მმ}]

მეტოდო: POST

URI:/api/v1/irrigacoes

აღწერილობა: Recurso utilizado para ativar o dispositivo de irrigação.

მეტოდო: GET

URI:/api/v1/irrigacoes

აღწერა: Recurso utilisado para verificar o estado de umidade atual do solo.

პასუხი პასუხი:

{

"გამბედაობა": 355}

ნაბიჯი 6: აპლიკაცია მობილური

აპლიკაცია მობილური
აპლიკაცია მობილური
აპლიკაცია მობილური
აპლიკაცია მობილური

Escolhemos uma tecnologia híbrida para gerar um código reutilizável for todas as plataformas (Android და IOS) ინსტრუმენტების და მომხმარებელთა მომსახურების შემცირებისა და შემცირების მიზნით. O Ionic é um um que poss poss poss poss poss poss poss poss poss poss poss poss poss poss poss poss poss poss poss poss poss poss poss გამოიყენეთ ვებ ენათმეცნიერება (HTML, CSS და Javascript) კრიტიკული მონაცემების და თემატური თემისათვის კუთხის კომუნიკაციისთვის (ძირითადი). Através do cordova (biblioteca javascript) os recursos do dispositivos são acessados pelo webview do mesmo.

O APLICAVITO მოიცავს რეალიზაციის ალგუმას, რომელიც მოითხოვს 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/

თქვენ უნდა გამოიყენოთ მოდელი, რომელიც მოიცავს GitHub– ს, არ არის ბოლომდე

API– ს ფუნქციური პროგრამის კონფიგურაციისთვის ან API– ს არარსებობის შემთხვევაში, არ არსებობს სერვერი. ის არ შეიცავს/src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) და ცვლის სხვადასხვა URI_PREFIX, conforme exemplo abaixo para o endereço onde está hospedada 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:

გირჩევთ: