İçindekiler:
- Adım 1: BİLEŞENLER - DRAGONBOARD
- 2. Adım: BİLEŞENLER - BAĞLAYICI TABAN
- Adım 3: BİLEŞENLER - SENSÖR
- Adım 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- Adım 5: Bir API HAZIRLAYIN
- Adım 6: UYGULAMA MOBİL
- Adım 7: FLUXOGRAMA
- Adım 8: REFERANSLAR
Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR AKILLI TELEFON: 8 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
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
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
Sensörlerin kullanımını kolaylaştıran haritaların genişletilmesi.
Adım 3: 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
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
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:
SIERPINSKI'NİN ÜÇGENİ VE AKILLI TELEFONLA RENKLER YARATIN: 11 Adım
SIERPINSKI'NİN ÜÇGENİ VE AKILLI TELEFONU İLE RENKLER OLUŞTURUN: LED TELEFONU izlemesi harikadır ve bizi büyülemenin yanı sıra gözlerimizi yatıştırır ve beynimizi rahatlatır. O halde bu yazımda size, SIERPINSKI'S TRIANGLE ve AKILLI TELEFONUNUZU kullanarak kendi üzerimizde oluşturabileceğiniz bir uygulama üzerinden nasıl gölgeler oluşturduğumu anlatacağım
AKILLI İNTERNET ANAHTARI: 4 Adım
AKILLI İNTERNET ANAHTARI: Sadece birkaç bileşenle bu çok akıllı internet anahtarını oluşturabilirsiniz. Bu ilk olmayabilir ama en akıllısı !! Bu cihazlarla ilgili sorun, her zaman onu wifi'ye bağlamanın karmaşıklığıdır. Bu bağlanmak gerçekten çok basit, eve
AKILLI ÇİVİLER: 5 Adım
AKILLI ÇİVİLER: Bu, akıllı çivilerin bir kişinin konumunu anında nasıl kurtarabileceğinin teorik bir projesidir. Başparmak tırnağı, belirli bir düzende basıldığında cep telefonunda geçerli konumu kaydeden bir temas sensörüne sahiptir. Aklanmamak için
BLE 4.0 KULLANILAN AKILLI TELEFON KONTROLLÜ ROBOT !!!: 5 Adım
BLE 4.0 KULLANILAN AKILLI TELEFON KONTROLLÜ ROBOT !!!: Bir önceki talimatta, akıllı telefon kullanarak LED'leri kontrol etmek için Arduino ile Bluetooth Modülünü (Özellikle HM10 BLE v4.0) nasıl kullanabileceğinizi sizinle paylaşmıştım. Buradan kontrol edebilirsiniz. Bu talimatta size olabilecek bir robotun nasıl inşa edileceğini göstereceğim
AKILLI BABY ROCKER: 7 Adım
AKILLI BABY ROCKER: Ebeveynlerin profesyonel yaşamlarını sürdürmekle meşgul oldukları günümüz dünyasında, bebekleri için yeterli zaman bulmaları zordur. Ayrıca bebeğin bakımını annenin üstlenmesi de toplumun genel âdetidir