תוכן עניינים:

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 שלבים
וִידֵאוֹ: Irrigação via WiFi? Como funciona automatização de irrigação? Irrigação de Jardim? 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 קורס: Especialização em Arquitetura de Software Distribuído

נתונים: 2017-10-26

Unidade: Praça da Liberdade

דיסציפלינה: אינטרנט das Coisas

פרופסור: אילו ריברו

אלונוס: ברונו ואלגאס ([email protected])

דלן הופמן פ. סילבה ([email protected])

הברט אלבס פריירה ([email protected])

ז'אן קרלוס בטיסטה ([email protected])

Jeordane Batista ([email protected])

מבוא

איך זה היה אם נוכל להשקות את הצמחים שלנו בכל זמן ובכל מקום? עם פרויקט WaterPlant זה יהיה אפשרי. פרויקט זה פותח במטרה לשפר את הנוחות והפרקטיות לטפל בכך שהוא כה חשוב לכדור הארץ.

INTRODUÇÃO

Como seria se pudéssemos aguar nossas plantas a qualquer hora e de qualquer lugar? Com o Projeto WaterPlant será possível. 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 necessidade de sua irrigação.

A placa envia informações for 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 o usuário informado da situação do solo. O usuário em contato com aplicação poderá solicitar o irrigamento imediado do solo, esta informação é enviada para API que por sua vez se comunica com a placa para acionamento do dispositivo de irrigação.

שלב 1: רכיבים - 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 to tamanho aproximado de um cartão de crédito, and one caracterizada pelo alt desempenho do processador de 64 bits da Qualcomm rodando à 1.2GHz, com 1GB memoria DDR3 533 MHz e 8GB de memoria de armazenamento (eMMC).

מחיר: R $ 500 ~ R $ 750

שלב 2: רכיבים - בסיס לינקר

רכיבים - בסיס לינקר
רכיבים - בסיס לינקר

Placa de expansão para mapeamento e utilização de portas, הנחיה ושימוש בחושים.

שלב 3: רכיבים - חיישן

רכיבים - חיישן
רכיבים - חיישן

Sensor de Umidade do Solo

חיישן Este utilize dois eletrodos para מתאים corrente pelo solo e lê o nível de umidade por comparação com a resistência 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, o circuito. Dessa forma podemos definir quando o solo está molhado, ou quando está seco.

או לא יכול להיות דיגיטלי (D0), כמו גם אנאליקה (A0). O sinal digital é ajustado 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.

מחיר מראש: R $ 6 ~ R $ 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 existentes no mercado, bastando ter instalado no computador os seguintes itens (yes em sequência de instalação, no caso de uso da Dragonboard):

  • קהילת Visual Studio 2017 תוכל לבסס את ההיפך (https://www.visualstudio.com/thank-you-downloading…);
  • כלי העדכונים של DragonBoard;
  • לוח המחוונים של Windows 10 IoT Core;
  • DragonBoard Windows 10 IoT Core Image;
  • תבניות פרויקט IoT של Windows;

כל התהליכים להתקנה ולהגדרות של פוד סוררים ללא קישור נפרד:

ניתן להתקין ולהגדיר את התצורה וההדרכה של Microsoft ליצירת תוכנות רקע של Visual Studio.

כמה שיעורי הוראה אפשריים או יכולים לסיים את השימוש באפליקציות GitHub

ניתן להגדיר את ההגדרות האפשריות של StartupTask.cs על מנת להפיק תוכניות, או להבהיר פרטים על חלקים מסוימים.

O método principal da aplicação é o Run () e seu código é o seguinte:

הפעלה חלל ציבורי (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 for serem utilizadas na nossa aplicação enquanto as variáveis timer e timer2 criam 2 timers para serem executados a cada quantidade de tempo, and next caso foram parametrizados 10 segundos (10 miliss). Para alterar esse tempo basta mudar estes valores nessa parte do código.

O Método InitGPIO () אנו יכולים להגדיר את ההגדרות של התצורה כפי שניתן לעשות זאת. דוגמה לדוגמא של דרגוןבורד או של פינו פו 36.

חלל פרטי InitGPIO ()

{var gpio = GpioController. GetDefault (); אם (gpio == null) {pin = null; לַחֲזוֹר; } pin = gpio. OpenPin (36); if (pin == null) {return; } pin. Write (GpioPinValue. High); pin. SetDriveMode (GpioPinDriveMode. Output); }

O método InitSPI () הגדרה ל- SPI0 של Dragonboard.

משימת async פרטית InitSPI ()

{try {var settings = SpiConnectionSettings חדשים (0); // בחירת הגדרות SPI0 של DragonBoard. ClockFrequency = 500000; // תצורת השעון של barramento SPI עם הגדרות 0.5MHz. Mode = SpiMode. Mode0; // COnfigura polaridade e phase do clock do SPI var controller = wait for SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (הגדרות); } לתפוס (יוצא מן הכלל) {לזרוק חריגה חדשה ("Falha na inicialização do SPI", לשעבר); }}

O primeiro timer invoca o método Timer_Tick () que tem como função a verificação através da API se houve um comando para iniciariar uma irrigação. O seguinte trecho de código and responsável pela chamada à API:

var httpWebRequest = (HttpWebRequest) WebRequest. Create ("https://serverless-study.appspot.com/api/v1/irrigacoes");

httpWebRequest. ContentType = "application/json"; httpWebRequest. Method = "GET";

Neste trecho de código deve ser alterado para o endereço onde será hospedado o código da API for buscar o comando de irrigação. É neste trecho de código que a irrigação é encerrada também.

עבור שעון עצם השעון וההפעלה של הטיימר Timer_Tick2 () יש תגובה אחראית על כל מה שאפשר לעשות. אני לא יכול להבחין במתכונת זו או שתוכל להגדיר את התוכנית או את ממשק ה- API עבור אוויוס 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 channel) é o método responsável por ler do conversor analógico/digital os valores informados pelo sensor de umidade. מידע אודות אדפטור במערך הבתים שבו ניתן להמיר את כל התכונות של ConvertToInt ([ReadOnlyArray] בייט נתונים). Segue os trechos de código:

public int LerADC (תעלת בתים)

{byte 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 result = 0; result = data [1] & 0x03; תוצאה << = 8; תוצאה += נתונים [2]; תוצאת החזרה; }

שלב 5: הכנת ממשק API

API foi desenvolvida na plataforma NodeJS (https://nodejs.org), foi utilizado o Swagger (https://swagger.io/specification/) a fim de modelar and documentar us recursos utilizados on trabalho.

על מנת להשתמש ב- dados foi utilizado או banco de dados MySQL, banco de dados relacional e קוד פתוח.

תוכל להשתמש במערך API.

● /api: Camada que gerencia os recursos disponibilizados para que terceiros possam acessar.

○ /api /controller: Camada que gerencia כמו 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 or retorno ocorrido durante or processo de בקשה.

○ /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.

○ /מאגר: 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á provisionado pela própria aplicação.

למידע נוסף על ייעוץ בנושא קישור או קישור ל github:

Segue abaixo uma breve תיאור de cada recurso disponibilizados and API:

מטודו: פוסט

URI:/api/v1/umidades

תיאור: Recurso utilizado for registar umidade coletada pelo sensor de umidade.

דוגמא לדוגמא:

{

"גבורה": 355}

מטודו: קבל

URI:/api/v1/umidades

תיאור: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.

דוגמה לדוגמא:

[{"Id": 1, "valor": 355, "dataCadastro": yyyy-MM-dd HH: MM}]

מטודו: פוסט

URI:/api/v1/irrigacoes

תיאור: Recurso utilizado para ativar o dispositivo de irrigação.

מטודו: קבל

URI:/api/v1/irrigacoes

תיאור: Recurso utilizado para verificar o estado de umidade atual do solo.

דוגמה לדוגמא:

{

"גבורה": 355}

שלב 6: APP MOBILE

נייד אפליקציה
נייד אפליקציה
נייד אפליקציה
נייד אפליקציה

Escolhemos uma tecnologia hibrida para gerar um código reutilizável para todas as plataformas (Android e IOS) para aumentar a abrangência de usuários e diminuir or custo do projeto. 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) עבור 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.

אנו עשויים לתמוך באלגומיות הנדרשות עבור ממשק API של מערכת ההפעלה והמידע. Através de um evento de botão uma requisição é enviada para o servidor e ação correspondente é realizada.

קישורים:

  • https://ionicframework.com/
  • https://angular.io/
  • https://ionicframework.com/

O código fonte do aplicativo modelo encontra-se no GitHub, no endereço

אם אפשר להגדיר את תצורת הבסטה או את ממשק ה- API ללא server.ts que encontra-se no diretório /src/entity/server. conforme exemplo abaixo para o endereço onde está hospedada a API:

ייצוא שרת Class {

ציבורי סטטי לקריאה בלבד URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* סטטי ציבורי לקריאה בלבד URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}

שלב 7: FLUXOGRAMA

FLUXOGRAMA
FLUXOGRAMA

שלב 8: הפניות

מדריכים:

Qualcomm DragonBoard 410C:

Windows 10 ו- DragonBoard ™ 410c-ההתחלה המושלמת לפיתוח IoT:

Monitore sua planta usando Arduino:

מוּמלָץ: