جدول المحتويات:
- الخطوة 1: المكونات - DRAGONBOARD
- الخطوة 2: المكونات - LINKER BASE
- الخطوة 3: المكونات - المستشعر
- الخطوة 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- الخطوة 5: إعداد API
- الخطوة 6: APP MOBILE
- الخطوة 7: فلوكسوجراما
- الخطوة 8: REFERÊNCIAS
فيديو: SISTEMA DE IRRIGAÇÃO AUTOMÁTICA CONTROLADA POR الهاتف الذكي: 8 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAISCurso: Especialização em Arquitetura de Software Distribuído
البيانات: 2017-10-26
Unidade: Praça da Liberdade
الانضباط: الإنترنت das Coisas
الأستاذ: إيلو ريفيرو
ألونوس: برونو فالغاس ([email protected])
ديلان هوفمان ب. سيلفا ([email protected])
هيبرت ألفيس فيريرا ([email protected])
جان كارلوس باتيستا ([email protected])
جوردان باتيستا ([email protected])
المقدمة
كيف سيكون الأمر إذا تمكنا من سقي نباتاتنا في أي وقت وفي أي مكان؟ مع مشروع WaterPlant سيكون ذلك ممكنًا. تم تطوير هذا المشروع بهدف تحسين الراحة والتطبيق العملي للتعامل مع هذا الأمر المهم للغاية لكوكب الأرض.
مقدمة
Como seria se pudéssemos aguar nossas plantas a qualquer hora e de qualquer lugar؟ إمكانية الحصول على مشروع WaterPlant. Este projeto foi desenvolvido visando melhorar a comodidade e a praticidade para tratar deste ser tão importante para o planeta.
FunCIONAMENTO
O projeto foi desenvolvido para monitoramento de jardins، onde é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 é posível avaliar a mustidade de sua irigaçã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 irigamento imediado do solo، esta informação é enviada para a API que por sua vez se comunica com a placa para acionamento do detitivo de irigação.
الخطوة 1: المكونات - DRAGONBOARD
دراغون بورد 410 ج
لوحة DragonBoard 410C é a primeira 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 é caracterizada pelo alto desempenho do process Qualcomm rodando à 1.2GHz ، com 1GB de memória DDR3 533 MHz و 8GB de memória de armazenamento (eMMC).
Preço: 500 ريال برازيلي ~ 750 ريالاً برازيليًا
الخطوة 2: المكونات - LINKER BASE
Placa de expansão para mapeamento e utilização de portas ، تسهيل استخدام أجهزة الاستشعار.
الخطوة 3: المكونات - المستشعر
مستشعر أوميداد دو منفرد
إستشعار إستعمال إستشعار عن طريق إستشعار المرور منفردا أو مستشعر جديد للإستعمال بواسطة جهاز إستشعار المقاومة. Quando o solo estiver seco، a sua resistência aumenta، dificultando a passagem de corrente. قم بامتصاص لاغوا ، وهي مقاومة تقوم بمفردها بتصريح منفرداً مرورًا بمصادقة الدخول إلى نظام التشغيل الإلكتروني ، ديستا فورما ، أو الدائرة. 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 preefinido، ajustado através do potenciômetro presente no módulo.
Preço: R $ 6 ~ R $ 20.
الخطوة 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
تطبيق مصمم على نظام Dragonboard 410c لاستخدامه في Windows 10 IoT Core.
O Windows 10 IoT Core é uma plataforma de desenvolvimento criada para easyar a vida dos desenvolvedores na hora de programar seus disitivos. Com ele é luxível desenvolver para várias placasesentes 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 المجتمع يتأهل مقابل العكس (https://www.visualstudio.com/thank-you-downloading …) ؛
- أداة تحديث DragonBoard ؛
- لوحة معلومات Windows 10 IoT Core ؛
- لوحة DragonBoard Windows 10 IoT Core Image ؛
- قوالب مشروع Windows IoT ؛
العملية الكاملة للتكوين والتكوين بدون رابط رابط:
لا يوجد تطبيق Visual Studio لتطبيق الخلفية.
Para este tutorial vamos disponibilizar o código finalizado da aplicação através do GitHub em
يجب أن يكون التطبيق جاهزًا لعدم إنشاء StartupTask.cs من arquivo للمشروع ، أو شرح مفصل عن طرف واحد.
O método main da aplicação é o Run () e seu código é o seguinte:
تشغيل الفراغ العام (موقع مهمة مهمة)
{InitGPIO () ، InitSPI () ، _deferral = taskInstance. GetDeferral () ، المؤقت = 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 المنفذين a cada quantidade de tempo، e neste caso foram parametrizados (10 ميل واحد). Para alterar esse tempo basta mudar estes valores nessa parte do código.
O Método InitGPIO () هو عبارة عن مجموعة من الوظائف المحددة مثل 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.
InitGPIO () باطل خاص
{var gpio = GpioController. GetDefault () ، إذا (gpio == null) {pin = null ؛ إرجاع؛ } pin = gpio. OpenPin (36) ؛ إذا (pin == null) {return؛ } pin. Write (GpioPinValue. High) ؛ pin. SetDriveMode (GpioPinDriveMode. Output) ؛ }
O método InitSPI () تكوين منفذ SPI0 da Dragonboard.
InitSPI () المهمة غير المتزامنة الخاصة
{try {var settings = new SpiConnectionSettings (0) ؛ // Seleciona a porta SPI0 da إعدادات DragonBoard. ClockFrequency = 500000 ؛ // Configura o clock do barramento SPI em 0.5MHz. الوضع = SpiMode. Mode0؛ // COnfigura polaridade e fase do clock do spi var controller = await SpiController. GetDefaultAsync ()؛ SpiADC = controller. GetDevice (الإعدادات) ، } catch (استثناءً) {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 = "GET" ،
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 irigação. É neste trecho de código que a irrigação é encerrada também.
Para o segundo timer é invocado o método 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 = "application / json" ؛ httpWebRequest. Method = "POST" ،
O método LerADC (byte canal) é o método response by ler do Conversor analógico / 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 ([ReadOnlyArray] بايت بيانات). Segue os trechos de código:
العامة الدولية 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 foi desenvolvida na plataforma NodeJS (https://nodejs.org) ، foi utilizado o Swagger (https://swagger.io/specification/) ، نموذج وثائقي باستخدام الموارد.
الفقرة armazenamento dos dados foi utilizado o banco de dados MySQL، banco de dados relacional e open source.
Segue abaixo a arquitetura de camadas que compõem a API.
● / api: Camada que gerencia os recursos deponibilizados para que terceiros posam acessar.
○ / api / controller: Camada que gerencia as rotas لا يوجد مستند على الإنترنت.
○ / 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.
● / المجال: 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á Providado 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:
ميتودو: POST
URI: / api / v1 / umidades
الوصف: Recurso utilizado para registar umidade coletada pelo sensor de umidade.
Exemplo de Requisição:
{
"الشجاعة": 355}
ميتودو: احصل
URI: / api / v1 / umidades
الوصف: Recurso que recupera todos os registros de valores de umidade que foram salvos anteriormente.
مثال على الاستجابة:
[{"id": 1، "valor": 355، "dataCadastro": yyyy-MM-dd HH: MM}]
ميتودو: POST
معرّف الموارد المنتظم (URI): / api / v1 / irrigacoes
الوصف: Recurso utilizado para ativar o detitivo de irigaçã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 luxui uma gigantesca biblioteca de elementes gráficos que تسهيل تنفيذ مرئي للقيام بالتطبيق. استخدام الويب اللغوي (HTML، CSS e Javascript) للحصول على نسخة من الإنترنت. Através do cordova (biblioteca javascript) الموارد التي تقوم بها أجهزة عرض الويب الخاصة بك.
يتألف التطبيق من الألغاز الحقيقية المطلوبة من خلال واجهة برمجة التطبيقات (API) التي تعمل على توفير المعلومات اللازمة للحصول على معلومات منفردة أو عن بُعد. Através de um evento de botão uma Requisição é enviada para o servidor e ação developerente é 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 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 بديل متغير URI_PREFIX ، التوافق مع نموذج abaixo para o 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: فلوكسوجراما
الخطوة 8: REFERÊNCIAS
التعليمات:
Qualcomm DragonBoard 410C:
Windows 10 و DragonBoard ™ 410c - البداية المثالية لتطوير إنترنت الأشياء:
Monitore sua planta usando Arduino:
موصى به:
أنبوب LED بالحجر الزجاجي (يتم التحكم في WiFi من خلال تطبيق الهاتف الذكي): 6 خطوات (بالصور)
أنبوب LED بالحجر الزجاجي (يتم التحكم في WiFi من خلال تطبيق الهاتف الذكي): مرحبًا زملائي الصانعين! في هذه التعليمات ، سأوضح لك كيفية إنشاء أنبوب LED يتم التحكم فيه بواسطة WiFi مليء بالأحجار الزجاجية للحصول على تأثير انتشار لطيف. يمكن معالجة مصابيح LED بشكل فردي ، وبالتالي فإن بعض التأثيرات الرائعة ممكنة في
افعلها بنفسك -- كيفية صنع روبوت عنكبوت يمكن التحكم فيه باستخدام الهاتف الذكي باستخدام Arduino Uno: 6 خطوات
افعلها بنفسك || كيف تصنع روبوتًا عنكبوتًا يمكن التحكم فيه باستخدام الهاتف الذكي باستخدام Arduino Uno: أثناء صنع روبوت العنكبوت ، يمكن للمرء أن يتعلم الكثير من الأشياء عن الروبوتات ، مثل صنع الروبوتات هو أمر ترفيهي بالإضافة إلى كونه صعبًا. سنشرح لك في هذا الفيديو كيفية صنع روبوت عنكبوت ، يمكننا تشغيله باستخدام هاتفنا الذكي (Androi
كيفية جعل السيارة التي يتحكم فيها الهاتف الذكي: 5 خطوات
كيفية صنع سيارة يتم التحكم فيها عبر الهاتف الذكي: يحب الجميع اللعب بسيارة تعمل عن بُعد عبر الهاتف الذكي. يدور هذا الفيديو حول كيفية صنعها
تكييف سماعة الهاتف مع الهاتف الخليوي: 7 خطوات (بالصور)
تكييف سماعة الهاتف مع الهاتف الخلوي: بقلم بيل ريف ([email protected]) مقتبس من الماوس ([email protected]) إخلاء المسؤولية: الإجراء الموصوف هنا قد لا يعمل بالنسبة لك - فهذه مخاطرة لديك يأخذ. إذا لم ينجح الأمر ، أو إذا كسرت شيئًا ، فهذا ليس م
التحكم في إمالة عموم الهاتف عن طريق الهاتف الخلوي: 4 خطوات
يتم التحكم في Pan Tilt بواسطة الهاتف الخلوي: مرحبًا بالجميع ، في هذا مشروعي الجديد ، سأقدم لكم Pan-Tilt الذي يتحكم فيه الهاتف الخلوي. يتم إعادة إنتاج جميع حركات الهاتف الخلوي في جهاز pan-tilt عبر Bluetooth. بسيط باستخدام Arduino R3 (أو ما شابه) و tw