İçindekiler:

SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR AKILLI TELEFON: 8 Adım
SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR AKILLI TELEFON: 8 Adım

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR AKILLI TELEFON: 8 Adım

Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR AKILLI TELEFON: 8 Adım
Video: Close Look at the Hunter BTT, Bluetooth Wireless Hose Tap Timer | SprinklerSupplyStore.com 2024, Kasım
Anonim
Image
Image
SİSTEMA DE IRRIGAÇÇO OTOMATİK KONTROLLÜ POR AKILLI TELEFON
SİSTEMA DE IRRIGAÇÇO OTOMATİK KONTROLLÜ POR AKILLI TELEFON
SİSTEMA DE IRRIGAÇÇO OTOMATİK KONTROLLÜ POR AKILLI TELEFON
SİSTEMA DE IRRIGAÇÇO OTOMATİK KONTROLLÜ POR AKILLI TELEFON

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAISCurso: Yazılım Distribütörlüğünün Özelleştirilmesi

Veri: 2017-10-26

Unidade: Praça da Liberdade

Disiplin: İnternet das Coisas

Profesör: 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])

GİRİŞ

Bitkilerimizi her zaman, her yerde sulayabilseydik nasıl olurdu? WaterPlant Projesi ile bu mümkün olacak. Bu proje, gezegen için bu kadar önemli olan bu durumu tedavi etmek için kolaylık ve pratikliği geliştirmeyi amaçlayan geliştirilmiştir.

GİRİŞ

Como seria se pudéssemos aguar nossas plantas bir qualquer hora e de qualquer lugar? Com o Projeto WaterPlant será possível. En iyi projetolar için en önemli şey, gezegenin en önemli şeylerinden biridir.

İŞLEV

O projeto foi desenvolvido para monitoramento de jardins, onde é efetuar efetuar a do ru do ru yaln z solo, com relação a sua umidade. Sendo assim, por meio de parâmetros da umidade do solo ve olasılık mevcut bir necessidade de sua irrigação.

Bir API için envia enformasyon bilgileri, armazenada na nuvem, que por sua vez é acessada pelo aplicativo mobile, que recebe e trata tais informações. Tek başına bir uygulama şekli veya olağan bilgi. Kişisel iletişim için başvurular, bireysel başvurular için bireysel başvurular, kişisel bilgiler için enviada ve API için iletişim kurun ve bunun için gerekli koşulların sağlanması için başvurun.

Adım 1: BİLEŞENLER - DRAGONBOARD

BİLEŞENLER - DRAGONBOARD
BİLEŞENLER - DRAGONBOARD

DragonBoard 410C

Bir DragonBoard 410C, temel bir işlemci değil, Qualcomm Snapdragon 400, kablosuz iletişim ağları Wifi, Bluetooth ve GPS, tamanho için en uygun kart, 64'ten daha fazla özellik, aşağıdaki işlemleri gerçekleştirin 1.2GHz'de Qualcomm rodando, DDR3 533 MHz bellek ve 8GB bellek bellek (eMMC) ile.

Preço: 500 R$ ~ 750 R$

2. Adım: BİLEŞENLER - BAĞLAYICI TABAN

BİLEŞENLER - BAĞLAYICI TABAN
BİLEŞENLER - BAĞLAYICI TABAN

Sensörlerin kullanımını kolaylaştıran haritaların genişletilmesi.

Adım 3: BİLEŞENLER - SENSÖR

BİLEŞENLER - SENSÖR
BİLEŞENLER - SENSÖR

Sensor de Umidade Solo yapmak

Sensörü en iyi şekilde kullanan sensörler, tek başına tek başına ve her şeyi kontrol etme ve karşılaştırma için bir direnç gösterme sensöründen yararlanır. Quando o solo estiver seco, bir sua resistência aumenta, dificultando bir geçiş de corrente. Bir absorção da água, bir direnme, solo olarak azalmaya izin verir, bir geçişe izin verir. Şu anda, tek başına veya tek başına, şu anda ikinci sırada yer almaktadır.

O módulo fornece tanto uma saída dijital (D0), como uma saída analógica (A0). O sinal dijital é ajustado para que tenha valor lógico 1 qudo a umidade for maior do que um valor predefinido, ajustado através do potenciômetro hiçbir módulo sunma.

Preço: 6 R$ ~ 20 R$.

Adım 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE

Windows 10 IoT Core üzerinde Dragonboard 410c için bir uygulama.

O Windows 10 Nesnelerin İnterneti Çekirdeği, programlamanın en temel unsurlarıdır. Com ele é é équência de ınstalação, hiçbir mercado, bastando ter ınstalado hiçbir bilgisayar os seguintes itens (já em sequência de installation, hiçbir caso de uso da Dragonboard) mevcut değildir.

  • Visual Studio 2017 Topluluğu, her şeyin ötesinde (https://www.visualstudio.com/thank-you-downloading…);
  • DragonBoard Güncelleme Aracı;
  • Windows 10 IoT Core Dashboard;
  • DragonBoard Windows 10 IoT Çekirdek Görüntüsü;
  • Windows IoT proje şablonları;

O süreç tamamlama para yükleme ve yapılandırma pode ser encontrado seguinte bağlantı yok:https://developer.microsoft.com/en-us/windows/iot/…

Visual Studio'nun Arka Plan Uygulaması yapmaması için bir Microsoft kurulumu ve yapılandırması için uygun bir eğitim.

GitHub em

Şu anda, hiçbir proje için bir yapılandırma yok, StartupTask.cs projeto, e vamos açıklayıcı abaixo parte ve parte do codigo.

O método esas da aplikaçã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 yöntemleri InitGPIO() ve InitSPI() inicializam değişkenler için değişkenlik gösteren zamanlayıcı ve zamanlayıcı2 criam 2 zamanlayıcı parasal executados bir cada nicel executados bir cada quantidade de tempo, e parametrik paradoksu için 10 zaman aralığı için enquanto olarak değişken. Para alterar esse tempo basta mudar estes valores nessa parte do código.

O Método InitGPIO() bir seguir tem como função configuraçõese olarak tanımlayın, pino que ativa ve válvula solenoid de água. 36. Nesse, Dragonboard ve 36.

özel boşluk InitGPIO()

{ var gpio = GpioController. GetDefault(); if (gpio == boş){ pin = boş; dönüş; } pin = gpio. OpenPin(36); if (pin == null){ dönüş; } pin. Write(GpioPinValue. High); pin. SetDriveMode(GpioPinDriveMode. Output); }

O yöntem InitSPI() Dragonboard için bir SPI0 porta yapılandırın.

özel zaman uyumsuz Görev InitSPI()

{ try { var settings = new SpiConnectionSettings(0); // DragonBoard ayarları için bir SPI0 bağlantı noktası seçin. ClockFrequency = 500000; // SPI ve 0,5MHz ayarları için saat yapılandırması yapın. Mode = SpiMode. Mode0; // Configure polaridade e fase do clock do SPI var controller = wait SpiController. GetDefaultAsync(); SpiADC = controller. GetDevice(ayarlar); } catch (ex istisna){ throw new Exception("Falha na incialização do SPI", eski); } }

O birincil zamanlayıcı çağrısı, bu yöntem Timer_Tick()'i sıraya koymak için bir doğrulama işlemine tabi tutulur. 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 = "GET";

Neste trecho de código deve ser alterado para o endereço onde hospedado o código da API para buscar o comando de irrigação. Sulamanın en iyi yolu.

Para o segundo timer é çağrı o método Timer_Tick2() que é yanıtlar ve pelo envio dos dados ve umidade yalnız naquele momento yapmak. Bu, API'nin envio dos dados'u için geçerli değildir:

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 canal) é o método yanıtları por ler do conversor analógico/dijital os valores bilgi ve pelo sensor de umidade. ConvertToInt([ReadOnlyArray] byte data) için en iyi uyarlama bilgileri dizisi baytları sıraya dönüştürmeyi ve enteiroları değiştirmeyi amaçlar. Segue os trechos de codigo:

public int LerADC(bayt kanalı)

{ byte readBuffer = yeni bayt[3]; bayt writeBuffer = yeni bayt[3] { 0x00, 0x00, 0x00 }; writeBuffer[0] = 0x01; writeBuffer[1] = kanal; SpiADC. TransferFullDuplex(writeBuffer, readBuffer); adcValue = ConvertToInt(readBuffer); adcValue döndür; } public int ConvertToInt([ReadOnlyArray] bayt veri) { int sonuç = 0; sonuç = veri[1] & 0x03; sonuç <<= 8; sonuç += veri[2]; dönüş sonucu; }

Adım 5: Bir API HAZIRLAYIN

API, NodeJS (https://nodejs.org) için platform oluşturma, Swagger'ın (https://swagger.io/specation/) entegral utilizado ve integração do trabalho için fim de modelar ve belgeseller için foi utilizado.

MySQL'in yasaklanması ve açık kaynak kodlarının kullanılması için para armazenamento dos dados foi.

Bir API'yi bir araya getir.

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

○ /api/controller: Camada que gerencia, rotas definidas olarak hiçbir belge gerado pelo swagger.

○ /api/service: Ana sayfalar için geçerlidir. Nesta camada está konfigurado o retorno ocorrido durante o süreç de istek.

○ /api/swagger: Configuraço que contém o arquivo de configuração do swagger, onde estão toda configurações dos recursos olarak.

● /domain: Şu anda geçerli olan kodlayıcı bir durum.

○ /depo: Camada de persistência de dados.

● /altyapı: Öngörülen hizmetlerin sağlanması için gerekli olan tüm düzenlemelerin yapılandırılması.

Para mais bilgiações ve danışma ao código fonte acesso o link do github:

API'ye göre yeniden düzenle:

Metod: POST

URI: /api/v1/umidades

Açıklama: Recurso utilizado para registar umidade coletada pelo sensor de umidade.

Örnek talep:

{

"yiğitlik": 355 }

Metod: GET

URI: /api/v1/umidades

Açıklama: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.

Örnek yanıt:

[{ “id”: 1, “valor”: 355, “dataCadastro”: yyyy-AA-gg SS:DD }]

Metod: POST

URI: /api/v1/irrigacoes

Açıklama: Recurso utilizado para ativar o dispositivo de irrigação.

Metod: GET

URI: /api/v1/irrigacoes

Açıklama: Recurso utilizado para verificar o estado de umidade atual do solo.

Örnek yanıt:

{

"yiğitlik": 355 }

Adım 6: UYGULAMA MOBİL

UYGULAMA MOBİL
UYGULAMA MOBİL
UYGULAMA MOBİL
UYGULAMA MOBİL

Platformlar olarak (Android ve IOS) her şeyin yeniden kullanılması, projelendirmenin bir uzantısıdır. O Ionic é um çerçevesi que possui uma gigantesca biblioteca debileşenler gáficos que facilita ve aplicativo görsel bir uygulama. Angular como o seu núcleo (çekirdek) için web'i (HTML, CSS ve Javascript) kullanın. Através do cordova (biblioteca javascript) ve recursos, dispositivos são acessados pelo web görünümü do mesmo yapmak.

O aplikasyon, bir API'nin sistema ve fim de se obter bilgileri için gerekli olan em realizar algumas gereksinimlerinden oluşur. Através de um evento de botão uma requisição é enviada para o server ve bir ação muhabiri é realizada.

Bağlantılar:

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

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

API'nin yapılandırılması ve yapılandırılması için para que o aplicativo funcione endereço da API arquivo server.ts que encontra-se no diretório /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) ve bir değişken URI_PREFIX, uygun örnek abaixo para o endereço onde está hospedada a API:

dışa aktarma sınıfı Sunucu {

genel statik salt okunur URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; /* genel statik salt okunur URI_PREFIX: string = "https://dominio.com/aplicacao/"; */ }

Adım 7: FLUXOGRAMA

FLUXOGRAM
FLUXOGRAM

Adım 8: REFERANSLAR

Eğitilebilirler:

Qualcomm DragonBoard 410C:

Windows 10 ve DragonBoard™ 410c – IoT Geliştirme için Mükemmel Başlangıç:

Arduino'yu izleyin:

Önerilen: