Съдържание:
- Стъпка 1: КОМПОНЕНТИ - DRAGONBOARD
- Стъпка 2: КОМПОНЕНТИ - БАЗА НА ЛИНКЕРА
- Стъпка 3: КОМПОНЕНТИ - СЕНЗОР
- Стъпка 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- Стъпка 5: ПОДГОТВЕТЕ API
- Стъпка 6: APP MOBILE
- Стъпка 7: FLUXOGRAMA
- Стъпка 8: РЕФЕРЕНЦИИ
Видео: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAISCurso: Especialização em Arquitetura de Software Distribuído
Данни: 26.10.2017
Унидаде: Praça da Liberdade
Дисциплина: Интернет das Coisas
Професор: Ило Риверо
Алунос: Бруно Валгас ([email protected])
Делън Хофман П. Силва ([email protected])
Хебърт Алвеш Ферейра ([email protected])
Жан Карлос Батиста ([email protected])
Джордан Батиста ([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.
ФУНКЦИОНАМЕНТО
O projeto foi desenvolvido para monitorramento 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 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 a aplicação poderá solicitar o 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.
Стъпка 1: КОМПОНЕНТИ - DRAGONBOARD
DragonBoard 410C
DragonBoard 410C е първостепенна платка за десенволвименто на базата на процесор за серия Qualcomm Snapdragon 400, свързващ com conexões Wifi, Bluetooth и GPS, който е платен до tamanho приблизително от um cartão de crédito, e é caracterizada pelo alto desempenito do processador Qualcomm работи на 1,2 GHz, с 1 GB памет DDR3 533 MHz и 8 GB памет за арматура (eMMC).
Цена: R $ 500 ~ R $ 750
Стъпка 2: КОМПОНЕНТИ - БАЗА НА ЛИНКЕРА
Placa de expansão para mapeamento e utilização de portas, улесняващ използването на sensores.
Стъпка 3: КОМПОНЕНТИ - СЕНЗОР
Sensor de Umidade do Solo
Este сензорът използва dois eletrodos para passar corrente pelo solo e lê o nível de umidade por comparação com a resistanceência do potenciômetro do módulo do sensor. Quando o solo estiver seco, a sua resistanceência aumenta, dificultando a Passagem de corrente. Com a absorção da água, resistantência do solo diminui allowindo a Passionm de corrente entre os eletrodos e fechando, desta forma, o circuito. Dessa forma podemos definir quando o solo está molhado, ou quando está seco.
O módulo fornece tanto uma saída digital (D0), como uma saída analógica (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 е ума за плащане на десенволвименто криада за улеснение на визуализацията на десенволведорите на програмата за програмиране на dispositivos. Com ele é possível desenvolver para várias placas existentes 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 или qualquer outra versão (https://www.visualstudio.com/thank-you-downloading…);
- Инструмент за актуализиране на DragonBoard;
- Табло за управление на Windows 10 IoT Core;
- DragonBoard Windows 10 IoT Core Image;
- Шаблони за проекти на Windows IoT;
O processo completeto para instalação e configuração pode ser encontrado no seguinte link:
Приложете инсталационно и конфигуриращо устройство за обучение за Microsoft basta criar um novo projeto без Visual Studio до типово фоново приложение.
В този урок можете да разкажете за окончателното завършване на приложението към GitHub
Днес конфигурацията за прилагане не съдържа arquivo StartupTask.cs на raiz do projeto, e vamos обяснява 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 (); timer = 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 utilizadas na nossa aplicação enquanto as variáveis timer e timer2 criam 2 timers para serem executedos a cada quantidade de tempo, e neste caso foram parametrizados 10 milisada. 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 konfigurationsõ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 до Dragonboard.
частна асинхронна задача InitSPI ()
{try {var settings = new SpiConnectionSettings (0); // Избор на порта SPI0 до настройки на DragonBoard. ClockFrequency = 500000; // Конфигуриране на часовник за барамен SPI с настройки 0.5MHz. Mode = SpiMode. Mode0; // COnfigura polaridade e fase do clock to SPI var controller = await SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (настройки); } catch (Exception ex) {throw new Exception ("Falha na inicialização do SPI", ex); }}
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 iniciar uma irrigaçã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 = "application/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.
Параметърът за таймер за отваряне и извикване на метода Timer_Tick2 () que é responseá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 = "application/json"; httpWebRequest. Method = "POST";
O método LerADC (байтов канал) е método реагиращ портал за разговор аналогов/цифров os valores информационен пело сензор de umidade. Тук можете да адаптирате информационен масив от байтове, които трябва да преобразувате в интерактивни условия за преобразуване на ConvertToInt ([ReadOnlyArray] байт данни). Segue os trechos de código:
публичен 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 за използване на banco de dados MySQL, banco de dados relational и open source.
Прегледайте abiixo a arquitetura de camadas que compõem 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 /услуга: 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 като конфигурации 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á provisionado pela própria aplicação.
За допълнителна информация и консултация по Código Fonte Acesso или за връзка към Github:
Segue abaixo uma breve descriptionção de cada recurso disponibilizados по API:
Метод: POST
URI:/api/v1/umidades
Описание: Рекурсивно използване на регистър умдиден колетарен пело сензор за ум.
Exemplo de requisição:
{
„Доблест“: 355}
Метод: ВЗЕМЕТЕ
URI:/api/v1/umidades
Описание: Recurso que recupera todos os registerros de valores de umidade que foram salvos anteriormente.
Пример за отговор:
[{“Id”: 1, “valor”: 355, “dataCadastro”: гггг-MM-dd HH: MM}]
Метод: POST
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 híbrida para gerar um código reutilizável para todas as plataformas (Android e IOS) para aumentar a abrangência de usuários e diminuir o custo do projeto. O Ionic é um framework que possui uma gigantesca biblioteca de componentsntes gráficos que facilitate a implementação visual do aplicativo. Използване на езикови езици (HTML, CSS и Javascript) за a criação das telas e tem o Angular como o seu núcleo (ядро). Através do cordova (biblioteca javascript) oscursos 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 ação korespondente é realizada.
Връзки:
- https://ionicframework.com/
- https://angular.io/
- https://ionicframework.com/
O código fonte do aplicativo modelo encontra-se no GitHub, no endereço
Para que o aplicativo funcione basta configurar or 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 exemplo abaixo para or endereço onde está hospedada a API:
експортиране на клас сървър {
публичен статичен само за четене URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* публично статично само за четене URI_PREFIX: string = "https://dominio.com/aplicacao/"; */}
Стъпка 7: FLUXOGRAMA
Стъпка 8: РЕФЕРЕНЦИИ
Инструкции:
Qualcomm DragonBoard 410C:
Windows 10 и DragonBoard ™ 410c-перфектният старт за разработка на IoT:
Monitore sua planta usando Arduino:
Препоръчано:
Vídeo Tutoriales De Tecnologías Creativas 05: ¿Hacemos Un Detector De Presencia? ¡Por Supuesto !: 4 стъпки
Vídeo Tutoriales De Tecnologías Creativas 05: ¿Hacemos Un Detector De Presencia? ¡Por Supuesto !: En este tutorial vamos a aprender como hacer un detector de presencia with un senzor de ultrasonidos sobre una placa Arduino Uno y uselizando Tinkercad Circuits (utilizando una cuenta gratuita). A Continuación se tiene el elultado final que posterior
Sistema De Irrigação Automático Para Plantas: 8 стъпки
Sistema De Irrigação Automático Para Plantas: A irrigação é uma das tecnologias mais utilizadas por farmtores pois esta atividade Independe da ocorrência de chuvas, garante uma safra uniforme, reduz a falha humana, minimiza o consumo de águanas eusigo minimoza okonmo de águas uisa
Asistente Solar: Un Smartphone Промяна: 3 стъпки
Asistente Solar: Un Smartphone Modificación: Lo siento por mi ужасно Испания ñ ol. Gracias por leer mi Instructables usted! Tel é fonos tienden a estar fuera de derecho de la bater í a cuando m á s los necesitan. Con este proyecto, se puede extender la vida de la bater & iacute
Сам - NFC Smartphone Automation Mate: 6 стъпки
Sam - NFC Smartphone Automation Mate Mate: Въведение: Sam - NFC Smartphone Automation Mate Mate Дизайн за Core Objects Core. Този проект изследва комуникацията в близкото поле (NFC), която
SmartPhone Game Simulator- Играйте игри на Windows с помощта на IMU за управление на жестове, акселерометър, жироскоп, магнитометър: 5 стъпки
SmartPhone Game Simulator- Играйте игри на Windows с помощта на IMU за управление на жестове, акселерометър, жироскоп, магнитометър: Подкрепете този проект: https://www.paypal.me/vslcreations, като дарите за кодове с отворен код & подкрепа за по -нататъшно развитие