Spisu treści:
- Krok 1: KOMPONENTY - DRAGONBOARD
- Krok 2: KOMPONENTY - BAZA ŁĄCZNIKA
- Krok 3: KOMPONENTY - CZUJNIK
- Krok 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- Krok 5: PRZYGOTOWANIE API
- Krok 6: APLIKACJA MOBILNA
- Krok 7: FLUXOGRAM
- Krok 8: REFERENCJE
Wideo: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAISCurso: Especialização em Arquitetura de Software Distribuído
Data: 26.10.2017
Unidade: Praça da Liberdade
Dyscyplina: Internet das Coisas
Profesor: 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])
WPROWADZANIE
Jak by to było, gdybyśmy mogli podlewać nasze rośliny zawsze i wszędzie? Dzięki projektowi WaterPlant będzie to możliwe. Ten projekt został opracowany w celu poprawy wygody i praktyczności traktowania tego, co jest tak ważne dla planety.
WPROWADZENIE
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 tao Importante para o planeta.
FUNKCJONALNOŚĆ
O projeto foi desenvolvido para monitormento de jardins, onde é possível efetuar a verificação do estado do solo, com relação a sua umidade. Sendo assim, por meio de parametros da umidade do solo é possível avaliar a necessidade de sua irrigação.
Placa envia informações para API, armazenada na nuvem, que por sua vez é acessada pelo aplicativo mobile, que recebe e trata tais informações. Desta forma aplicação mantem lub usuário informado da situação zrobić 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.
Krok 1: KOMPONENTY - DRAGONBOARD
DragonBoard 410C
DragonBoard 410C jest głównym miejscem, w którym nie ma procesorów z serii Qualcomm Snapdragon 400, jest połączony z połączeniami Wi-Fi, Bluetooth i GPS w miejscu, w którym znajduje się karta kredytowa, i jest wyposażony w 64-bitowy proces Qualcomm łączy się z 1,2 GHz, z 1 GB pamięci DDR3 533 MHz i 8 GB pamięci broni (eMMC).
Cena: 500 R$ ~ 750 R$
Krok 2: KOMPONENTY - BAZA ŁĄCZNIKA
Placa de expansão para mapeamento e utilização de portas, facilitando a utilização de sensores.
Krok 3: KOMPONENTY - CZUJNIK
Sensor de Umidade do Solo
Este sensor utiliza dois eletrodos para passar corrente pelo solo e le o nível de umidade por comparação com a Resistancencia do potenciômetro do módulo do sensor. Quando o solo estiver seco, sua Resistancencia aumenta, dificultando a passagem de corrente. Com a absorção da água, a Resistancencia 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.
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.
Cena: 6 BRL ~ 20 BRL.
Krok 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
Aplikacja przeznaczona do gry w Dragonboard 410c do użytku w systemie Windows 10 IoT Core.
O Windows 10 IoT Core jest platformą, na której można się rozwijać, ułatwiając dostęp do nowych użytkowników w różnych programach. 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 Community ou qualquer outra versão (https://www.visualstudio.com/thank-you-downloading…);
- Narzędzie do aktualizacji DragonBoard;
- Główny pulpit nawigacyjny systemu Windows 10 IoT;
- Obraz rdzenia DragonBoard Windows 10 IoT;
- Szablony projektów Windows IoT;
O processo completo para instalação e configuração pode ser encontrado no seguinte link:
Można zainstalować i skonfigurować konformację lub samouczek przez Microsoft, jeśli chodzi o nowy projekt, bez Visual Studio do aplikacji w tle.
Para este tutorial vamos disponibilizar lub código sfinalizowane z aplicação através do GitHub em
Toda a configuração do aplicativo está no arquivo StartupTask.cs na raiz do projeto, e 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 Uruchom(IBackgroundTaskInstance taskInstance)
{ InitGPIO(); InitSPI(); _deferral = taskInstance. GetDeferral(); timer = ThreadPoolTimer. CreatePeriodicTimer(Timer_Tick, TimeSpan. FromMilliseconds(10000)); timer2 = ThreadPoolTimer. CreatePeriodicTimer(Timer_Tick2,TimeSpan. FromMilliseconds(10000)); }
Metodę InitGPIO() i InitSPI() zainicjuj różne funkcje sera w nowej aplikacji, używając różnych funkcji timera i timera2 criam 2 timery dla sera wykonywanych w określonym tempie, i zagnieżdżone w czasie, gdy masz ustawione parametry 10. Para alterar esse tempo basta mudar estes valores nessa parte do código.
O Método InitGPIO() seguir tem como função definir jako 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.
private void InitGPIO()
{ var gpio = GpioController. GetDefault(); if (gpio == null){ pin = null; powrót; } pin = gpio. OpenPin(36); if (pin == null){ return; } pin. Write(GpioPinValue. High); pin. SetDriveMode(GpioPinDriveMode. Output); }
O metodzie InitSPI() skonfiguruj porta SPI0 przez Dragonboard.
prywatne zadanie asynchroniczne InitSPI()
{ spróbuj { ustawienia var = new SpiConnectionSettings(0); // Wybierz port SPI0 z ustawień DragonBoard. ClockFrequency = 500000; // Skonfiguruj zegar do barramento SPI z ustawieniami 0.5MHz. Mode = SpiMode. Mode0; // KONfiguracja polaryzacji e fase do zegara do SPI var controller = await SpiController. GetDefaultAsync(); SpiADC = kontroler. GetDevice(ustawienia); } catch (Exception ex){ throw new Exception("Falha na inicialização do SPI", ex); } }
O pierwsze wywołanie licznika czasu lub metodę Timer_Tick() jest to funkcja, która umożliwia weryfikację i przeprowadzanie weryfikacji przez interfejs API, aby uzyskać polecenie dotyczące rozpoczęcia nawadniania. 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 = "aplikacja/json"; httpWebRequest. Method = "POBIERZ";
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 lub metodo Timer_Tick2() que é 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 = "aplikacja/json"; httpWebRequest. Method = "POST";
O metodzie LerADC (kanał bajtów) lub o metodzie odpowiada za przekonwertowanie analogowe/cyfrowe lub wartościowe informacje o czujnikach obsługi. Jest to adaptor informa um array de bytes que é é é to convertido em inteiro através to method ConvertToInt([ReadOnlyArray] byte data). Segue o trechos de código:
public int LerADC (kanał bajtów)
{ byte readBuffer = nowy bajt[3]; byte writeBuffer = new byte[3] { 0x00, 0x00, 0x00 }; bufor zapisu[0] = 0x01; writeBuffer[1] = kanał; SpiADC. TransferFullDuplex (bufor zapisu, bufor odczytu); adcValue = ConvertToInt(readBuffer); zwróć wartość adc; } public int ConvertToInt([ReadOnlyArray] byte data) { int wynik = 0; wynik = dane[1] i 0x03; wynik <<= 8; wynik += dane[2]; zwróć wynik; }
Krok 5: PRZYGOTOWANIE API
API dla platformy NodeJS (https://nodejs.org), dla użycia lub Swaggera (https://swagger.io/specification/) filmu modelowego i dokumentalnego, które są wykorzystywane do integracji.
Dla armazenamentu dados do korzystania z banku Dados MySQL, banku Dados relacyjnego i open source.
Segue abaixo arquitetura de camadas que compõem API.
● /api: Camada que gerencia os recursos disponibilizados para que terceiros possam acessar.
○ /api/controller: Camada que gerencia jako rota 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 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.
● /domain: Camada que contém toda codificação relacionada a regra de negócio da aplicação.
○ /repozytorium: Camada de persistência de dados.
● /infrastructure: 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.
Para mais informações e consulta ao código fonte acesso o link do github:
Segue abaixo uma breve descrição de cada recurso disponibilizados na API:
Metoda: POST
URI: /api/v1/umidades
Opis: Recurso utilizado para registar umidade coletada pelo sensor de umidade.
Przykład wymagań:
{
„męstwo”: 355 }
Metoda: GET
URI: /api/v1/umidades
Opis: Recurso que recupera todos os registros de valores de umidade que foram salvos anterioremente.
Przykładowa odpowiedź:
[{ “id”: 1, “valor”: 355, “dataCadastro”: rrrr-MM-dd GG:MM }]
Metoda: POST
URI: /api/v1/irrigacoes
Opis: Recurso utilizado para ativar o dispositivo de irrigação.
Metoda: GET
URI: /api/v1/irrigacoes
Opis: Recurso utilizado para verificar o estado de umidade atual do solo.
Przykładowa odpowiedź:
{
„męstwo”: 355 }
Krok 6: APLIKACJA MOBILNA
Escolhemos uma tecnologia hibrida para gerar um código reutilizável para todas as plataformas (Android i IOS) dla aumentar a abrangência de użytkowych i diminuir o klienta projektu. O Ionic é um framework que possui uma gigantesca biblioteca de componentes graficos que facilita a implementação visual do aplicativo. Użyj sieci języków (HTML, CSS i Javascript) do szukania wiadomości i motywów w Angular lub seu núcleo (rdzeń). Através do cordova (biblioteca javascript) os recursos do dispositivos são acessados pelo webview do mesmo.
O aplicativo składa się em realizar algumas requisições para API zrobić sistema a fim de se obter informações sobre a umidade zrobić solo e regar o mesmo remotamente. Através de um evento de botão uma requisição é enviada para o servidor e ação korespondent é realizada.
Spinki do mankietów:
- https://ionicframework.com/
- https://angular.io/
- https://ionicframework.com/
O código fonte do aplicativo modelo encontra-se bez GitHub, bez endereço
Para que o aplicativo funcione 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 exemplo abaixo para o endereço onde está hospedada a API:
klasa eksportu Serwer {
public static readonly URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* public static readonly URI_PREFIX: string = "https://dominio.com/aplicacao/"; */ }
Krok 7: FLUXOGRAM
Krok 8: REFERENCJE
Instrukcje:
Qualcomm DragonBoard 410C:
Windows 10 i DragonBoard™ 410c - idealny początek rozwoju IoT:
Monitoruj swoją roślinę za pomocą Arduino:
Zalecana:
Jukebox Casera Por: Tono Kiehnle: 5 kroków (ze zdjęciami)
Jukebox Casera Por: Tono Kiehnle: Jukebox jest przeznaczony do programowania z Arduino UNO. Contiene 3 canciones reproducidas por medio de un buzzer pasivo i cuenta con botones de pulso i una pantalla LCD do interakcji z usuario.La Jukebox Cuenta con 3 botones. 2 de ellos se util
Sistema De Irrigação Automático Para Plantas: 8 kroków
Sistema De Irrigaçãoo Automático Para Plantas: A irrigaçãoo é uma das tecnologias mais utilizadas por agricultores pois esta atividade independe da ocorrência de chuvas, garante uma safra uniforme, reduz a falha guapena qua úmimiza o minimiza
Carro Robô Controlado Por Bluetooth: 10 kroków
Carro Robô Controlado Por Bluetooth: Um dos projetos mais ambiciosos para se fazer com Arduino é a construção de um carro robô, for mim foi que me incentivou a estudar mais sobre lub Arduino, na internet i można je obsługiwać w różnych formach, seguidor de linha, de
Nintendo VIRTUAL BOY - Reparación De Los LCD Y Alimentación Por USB.: 7 kroków
Nintendo VIRTUAL BOY - Reparación De Los LCD Y Alimentación Por USB.: ¡Bienvenidos a Elartisans!En este tutorial vamos a reparar los LCD y la fuente of alimentación de la Nintendo Virtual Boy.;odwiedzający kanał Nuestro de Youtube: https://youtu.be/8
Sam - NFC Smartphone Automation Mate: 6 kroków
Sam - NFC Smartphone Automation Mate: Wprowadzenie: Sam - NFC Smartphone Automation MatePrzedmowa: Jest to projekt grupowy pomiędzy Lance Pan i Zeynep Kirmiziyesil z Emily Carr University of Art & Projektowanie rdzenia obiektów inteligentnych. Ten projekt bada komunikację Near Field Communication (NFC), która