Isi kandungan:
- Langkah 1: KOMPONEN - DRAGONBOARD
- Langkah 2: KOMPONEN - ASAS LINKER
- Langkah 3: KOMPONEN - PEMENANG
- Langkah 4: DESENVOLVIMENTO COM WINDOWS 10 IOT TERAS
- Langkah 5: MENYEDIAKAN API
- Langkah 6: BERGERAK APLIKASI
- Langkah 7: FLUXOGRAMA
- Langkah 8: RUJUKAN
Video: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAISCurso: Especialização em Arquitetura de Software Distribuído
Data: 2017-10-26
Unidade: Praça da Liberdade
Disciplina: Internet das Coisas
Guru Besar: 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])
PENGENALAN
Bagaimana rasanya jika kita dapat menyiram tanaman kita kapan saja, di mana saja? Dengan Projek WaterPlant akan dapat dilaksanakan. Projek ini dibangunkan bertujuan untuk meningkatkan kemudahan dan kepraktisan untuk menganggap ini sangat penting bagi planet ini.
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 juga mendesenvolvido visando melhorar komodidade e a praticidade para tratar deste ser tão importante para o planeta.
FUNCIONAMENTO
Sebagai projeto juga telah disenvolvido untuk monitoramento de jardins, onde é possível efetuar a verificação do estado do solo, com relação a sua umidade. Sendo assim, dari meio de parâmetros da umidade melakukan secara solo dan mungkin ada yang diperlukan sebagai sua irrigação.
Maklumat tambahan untuk 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. Sebagai pengguna dan pelengkap aplikasi solicitar o irrigamento imediado lakukan secara solo, esta informação é enviada para API que por sua vez se comunica com a placa para acionamento do dispositivo de irrigação.
Langkah 1: KOMPONEN - DRAGONBOARD
DragonBoard 410C
A DragonBoard 410C adalah primeira placa de desenvolvimento baseada no processador da série Qualcomm Snapdragon 400, contando com conexões Wifi, Bluetooth e GPS em uma placa do tamanho aproximado de um cartão de crédito, e carcterizada pelo alto desempenho do processador de 64 bits Qualcomm rodando à 1.2GHz, com 1GB de memória DDR3 533 MHz e 8GB de memória de armazenamento (eMMC).
Preço: R $ 500 ~ R $ 750
Langkah 2: KOMPONEN - ASAS LINKER
Placa de expansão para mapeamento e utilização de portas, memfasilitasi a utilização de sensores.
Langkah 3: KOMPONEN - PEMENANG
Sensor de Umidade do Solo
Este sensor utiliza dois eletrodos para passar corente 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 corente. Com a absorção da água, sebuah resistensi yang dilakukan secara solomedia permitindo a passagem de corente 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 untuk maior do que um valor predefinido, ajustado através do potenciômetro presente no módulo.
Pra: R $ 6 ~ R $ 20.
Langkah 4: DESENVOLVIMENTO COM WINDOWS 10 IOT TERAS
Aplicação desenvolvida para rodar na Dragonboard 410c juga telah menggunakan Windows 10 IoT Core.
O Windows 10 IoT Core é uma plataforma de desenvolvimento criada para facilityitar a vida dos desenvolvedores na hora de programar seus dispositivos. Com ele é possível desenvolver para várias plasas tidak ada mercado, bastando ter instalado no computador os seguintes itens (já em sequência de instalação, no caso de uso da Dragonboard):
- Komuniti Visual Studio 2017 ou qualquer outra versão (https://www.visualstudio.com/thank-you-downloading…);
- Alat Kemas kini DragonBoard;
- Papan Pemuka Teras IoT Windows 10;
- DragonBoard Windows 10 IoT Teras Gambar;
- Templat projek Windows IoT;
O processoomplo para instalação e configuração pode ser encontrado no seguinte link:
Aps a instalação e configuração confige o tutorial da Microsoft basta criar um novo projeto no Visual Studio do tipo Latar Belakang Aplikasi.
Para este tutorial vamos disponibilizar o código finalizado da aplicação através do GitHub em
Untuk mengetahui bahawa anda melakukan aplicativo está no arquivo StartupTask.cs na raiz do projeto, e vamos explicar abaixo parte a parte do código.
O método prinsipal da aplicação é o Run () e seu código é o seguinte:
larian kekosongan awam (IBackgroundTaskInstance taskInstance)
{InitGPIO (); InitSPI (); _deferral = taskInstance. GetDeferral (); pemasa = 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 sebagai variáveis timer e timer2 criam 2 timers para serem executados a cada quantidade de tempo, e neste caso foram parametridadososososososos 10 (10). Para alterar esse tempo basta mudar estes valores nessa parte do código.
O Método InitGPIO () seguir tem como função definir sebagai configuraçõese do pino que ativa a válvula solenoide de água. Nesse exemplo de código para Dragonboard o código do pino juga o 36.
kekosongan peribadi InitGPIO ()
{var gpio = GpioController. GetDefault (); jika (gpio == null) {pin = null; kembali; } pin = gpio. OpenPin (36); jika (pin == null) {kembali; } pin. Write (GpioPinValue. High); pin. SetDriveMode (GpioPinDriveMode. Output); }
O método InitSPI () configura a porta SPI0 da Dragonboard.
tugas async peribadi InitSPI ()
{cuba {var setting = SpiConnectionSettings baru (0); // Seleciona a porta SPI0 da DragonBoard setting. ClockFrequency = 500000; // Configura o clock do setting barramento SPI em 0.5MHz. Mode = SpiMode. Mode0; // COnfigura polaridade e fase do clock do SPI var controller = tunggu SpiController. GetDefaultAsync (); SpiADC = pengawal. GetDevice (tetapan); } tangkapan (Pengecualian ex) {buang Pengecualian baru ("Falha na inicialização do SPI", cth); }}
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 responsável pela chamada à API:
var httpWebRequest = (HttpWebRequest) WebRequest. Create ("https://serverless-study.appspot.com/api/v1/irrigacoes");
httpWebRequest. ContentType = "application / json"; httpWebRequest. Method = "DAPATKAN";
Neste trecho de código deve ser alterado para o endereço onde será hospedado o código da API untuk buscar o comando de irrigação. Est neste trecho de código que a irrigação é encerrada também.
Para o segundo timer adalah invocado o método Timer_Tick2 () que é responsável pelo envio dos dados da umidade buat solo naquele momento. É tidak ada 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 (byte canal) o método responsável por ler do analor converter / digital os valores informados pelo sensor de umidade. Este adaptador informa um array de bytes que é convertido em inteiro através do método ConvertToInt (data [ReadOnlyArray] byte data). Segue os trechos de código:
int awam LerADC (terusan byte)
{byte readBuffer = bait baru [3]; bait writeBuffer = bait baru [3] {0x00, 0x00, 0x00}; writeBuffer [0] = 0x01; writeBuffer [1] = terusan; SpiADC. TransferFullDuplex (writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); pulangkan adcValue; } public int ConvertToInt ([ReadOnlyArray] byte data) {int hasil = 0; hasil = data [1] & 0x03; hasil << = 8; hasil + = data [2]; hasil pulangan; }
Langkah 5: MENYEDIAKAN API
API juga desenvolvida na plataforma NodeJS (https://nodejs.org), foi utilizado o Swagger (https://swagger.io/specification/) a fim de modelar e documentar os recursos utilizados na integração do trabalho.
Para armazenamento dos dados juga menggunakan sumber MySQL, banco de dados dan sumber terbuka.
Segera abaixo a arquitetura de camadas que compemem a API.
● / api: Camada que gerencia os recursos disponibilizados para que terceiros possam acessar.
○ / api / pengawal: Camada que gerencia sebagai rotas definidas no documento gerado pelo swagger.
Api / api / perkhidmatan: 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 / api / swagger: Camada que contém o arquivo de configuração do swagger, onde estão toda sebagai configurações dos recursos.
● / domain: Camada que contém toda codificação relacionada a regra de negócio da aplicação.
○ / repositori: Camada de persistência de dados.
● / infrastruktur: Cama de configuração das string de conexão do banco de dados e também do servidor que será provado 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:
Método: POST
URI: / api / v1 / umidades
Descrição: Recurso utilizado para registar umidade coletada pelo sensor de umidade.
Contoh teladan:
{
"Keberanian": 355}
Método: DAPATKAN
URI: / api / v1 / umidades
Descrição: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.
Contoh teladan:
[{“Id”: 1, “keberanian”: 355, “dataCadastro”: yyyy-MM-dd HH: MM}]
Método: POST
URI: / api / v1 / irrigacoes
Descrição: Recurso utilizado para ativar o dispositivo de irrigação.
Método: DAPATKAN
URI: / api / v1 / irrigacoes
Descrição: Recurso utilizado para verificar o estado de umidade atual do solo.
Contoh teladan:
{
"Keberanian": 355}
Langkah 6: BERGERAK APLIKASI
Escolhemos uma tecnologia híbrida para gerar um código reutilizável para todas sebagai plataformas (Android e IOS) untuk aumentar a abrangência de usuários e diminuir o custo do projeto. O Ionic é um kerangka kerja que possui uma gigantesca biblioteca de componentses gráficos que سهولتita a implementação visual do aplicativo. Ele utiliza de linguagens web (HTML, CSS dan Javascript) untuk a criação das telas e tem o Angular como o seu núcleo (inti). Através do cordova (biblioteca javascript) os recursos do dispositivos são acessados pelo webview do mesmo.
Oplicativo terdiri daripada realisasi algumas yang diperlukan untuk API melakukan sistema a fim de se obter informações sobre a umidade do solo e regar o mesmo remotamente. Através de um evento de botão uma requisição é enviada para o servidor dan açãoespondente é realizada.
Pautan:
- 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 o endereço da API no arquivo server.ts que encontra-se no diretório /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) dan ubah satu variasi URI_PRE sesuai dengan contoh abaixo para o endereço onde está hospedada a API:
pelayan kelas eksport {
umum baca statik URI_PREFIX: string = "https://serverless-study.appspot.com/api/v1/"; / * bacaan statik awam URI_PREFIX: string = "https://dominio.com/aplicacao/"; * /}
Langkah 7: FLUXOGRAMA
Langkah 8: RUJUKAN
Instructables:
Qualcomm DragonBoard 410C:
Windows 10 dan DragonBoard ™ 410c - Permulaan yang Sempurna untuk Pembangunan IoT:
Monitore sua planta usando Arduino:
Disyorkan:
Sistema De Irrigação Automático Para Plantas: 8 Langkah
Sistema De Irrigação Automático Para Plantas: A irrigação é uma das tecnologias mais utilizadas por Agricultores pois esta atividade independe da ocorrência de chuvas, garante uma safra uniforme, reduz a falha humana, minimiza o consumero de água (utilizando aprina)
SMARTPHONE CONTROLLED ROBOT MENGGUNAKAN BLE 4.0 !!!: 5 Langkah
SMARTPHONE CONTROLLED ROBOT MENGGUNAKAN BLE 4.0 !!!: Dalam arahan sebelumnya saya telah berkongsi dengan anda bagaimana anda boleh menggunakan Bluetooth Module (Khususnya HM10 BLE v4.0) dengan Arduino untuk mengawal LED menggunakan telefon pintar. Anda boleh menyemaknya di sini. Dalam arahan ini saya akan menunjukkan kepada anda bagaimana membina robot yang boleh
Tripod DIY - Cara Membuat Smartphone dan Tripod Kamera dengan Antena: 8 Langkah
Tripod DIY | Cara Membuat Tripod Telefon Pintar dan Kamera oleh Antena: Semasa saya mencari Tripod untuk membuat video untuk CookQueens maka saya melihat bahawa setiap harga tripod 5 kaki bermula dari jarak yang sangat tinggi di laman web E-dagang yang berbeza. Saya juga menunggu diskaun, tetapi saya tidak mendapatnya. Selepas itu, saya memutuskan untuk membuat
TRACKING BIKE ATAU KERETA GPS DARI SMARTPHONE: 9 Langkah
GPS BIKE ATAU CAR TRACKING DARI SMARTPHONE: Hai, Selamat Datang di Buzz Kreativiti. Di sini saya menunjukkan kepada anda Bagaimana Anda Melacak Basikal atau Kereta Anda. Anda boleh mengesan lokasi basikal secara langsung dengan menggunakan alat ini. Anda boleh menjejaki mana-mana basikal menggunakan alat ini
Arduino Smartphone Com / Monitor Bersiri Melalui Bluetooth HC-05, HC-06: 4 Langkah (dengan Gambar)
Arduino Smartphone Coms / Serial Monitor Via Bluetooth HC-05, HC-06: Ini sangat berguna jika anda ingin menguji lakaran anda dalam persekitaran dunia nyata, jauh dari PC anda. Hasilnya ialah telefon pintar anda bertindak sama seperti monitor bersiri Arduino di PC anda. Modul Bluetooth HC-05 dan HC-06 tersedia