สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบ - DRAGONBOARD
- ขั้นตอนที่ 2: ส่วนประกอบ - LINKER BASE
- ขั้นตอนที่ 3: ส่วนประกอบ - เซ็นเซอร์
- ขั้นตอนที่ 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
- ขั้นตอนที่ 5: เตรียมการ API
- ขั้นตอนที่ 6: APP MOBILE
- ขั้นตอนที่ 7: FLUXOGRAMA
- ขั้นตอนที่ 8: อ้างอิงÊNCIAS
วีดีโอ: SISTEMA DE IRIGAÇÃO AUTOMÁTICA CONTROLADA POR SMARTPHONE: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAISCurso: เฉพาะเจาะจงใน Arquitetura de Software Distribuído
ข้อมูล: 2017-10-26
Unidade: Praça da Liberdade
สาขาวิชา: Internet das Coisas
ศาสตราจารย์: อิโล ริเวโร
Alunos: บรูโน่ วัลกัส ([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? Com o Projeto WaterPlant ใช้งานได้จริง. Este projeto foi desenvolvido visando melhorar a comodidade e a praticidade para tratar deste ser tão importante para o planeta. โปรเจ็กต์นี้
ฟังชันนาเมนโต
โปรเจ็กต์ foi desenvolvido para monitoramento de jardins, onde é possí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 é possível ยอมจำนน a necessidade de sua irrigação
ข้อมูลอ้างอิงสำหรับ API, armazenada na nuvem, que por sua vez é acessada pelo aplicativo mobile, que recebe e trata tais informações รูปแบบการใช้งาน aplicação mantem o usuário informado da situação do solo O usuário em contato com 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. เข้าสู่ระบบ
ขั้นตอนที่ 1: ส่วนประกอบ - DRAGONBOARD
DragonBoard 410C
A DragonBoard 410C ที่ใช้งานได้จริงบนพื้นฐานที่ไม่มีโปรเซสเซอร์ Qualcomm Snapdragon 400, รองรับการเชื่อมต่อ Wifi, Bluetooth และ GPS ที่ใช้งานได้จริงทั้งหมด Qualcomm rodando à 1.2GHz, com 1GB สำหรับหน่วยความจำ DDR3 533 MHz e 8GB สำหรับหน่วยความจำ (eMMC)
ล่วงหน้า: R$500 ~ R$750
ขั้นตอนที่ 2: ส่วนประกอบ - LINKER BASE
Placa de expansão para mapeamento e utilização de portas, facilitando a utilização de sensores.
ขั้นตอนที่ 3: ส่วนประกอบ - เซ็นเซอร์
เซ็นเซอร์ Umidade do Solo
Este sensor utiliza dois eletrodos para passar corrente pelo solo e lê o nível de umidade por comparação com a resistência do potenciômetro do módulo do เซ็นเซอร์ Quando o เดี่ยว estiver seco, a sua resistência aumenta, dificultando a passagem de corrente. Com a absorção da água, a resistência do solo diminui permitindo 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.
ล่วงหน้า: R$6 ~ R$20.
ขั้นตอนที่ 4: DESENVOLVIMENTO COM WINDOWS 10 IOT CORE
แอปพลิเคชันสำหรับ Dragonboard 410c สำหรับใช้งานบน Windows 10 IoT Core
O Windows 10 IoT Core é uma plataforma desenvolvimento criada para facilitar a vida dos desenvolvedores na hora de programar seus dispositivos. 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 ชุมชนที่คุณเข้าถึงได้มากกว่า (https://www.visualstudio.com/thank-you-downloading…);
- เครื่องมืออัปเดต DragonBoard;
- Windows 10 IoT Core Dashboard;
- อิมเมจหลักของ DragonBoard Windows 10 IoT;
- แม่แบบโครงการ Windows IoT;
ดำเนินการเต็มประสิทธิภาพสำหรับการติดตั้ง e configuração pode ser encontrado no seguinte link:https://developer.microsoft.com/en-us/windows/iot/…
ติดตั้งและกำหนดค่าให้สอดคล้องหรือกวดวิชาสำหรับ Microsoft basta criar um novo projeto ไม่มี Visual Studio ทำ tipo แอปพลิเคชันพื้นหลัง
Para este กวดวิชา vamos disponibilizar o código finalizado da aplicação através do GitHub em
การกำหนดค่าตามความชอบสำหรับ aplicativo está no arquivo StartupTask.cs na raiz do projeto, e vamos explicar abaixo parte a parte do código.
O หลัก da aplicação é o Run() e seu código é o seguinte:
โมฆะสาธารณะ Run (IBackgroundTaskInstance taskInstance)
{ InitGPIO(); InitSPI(); _deferral = taskInstance. GetDeferral(); ตัวจับเวลา = ThreadPoolTimer. CreatePeriodicTimer (Timer_Tick, TimeSpan. FromMilliseconds(10000)); timer2 = ThreadPoolTimer. CreatePeriodicTimer (Timer_Tick2, TimeSpan. FromMilliseconds (10000)); }
ระบบปฏิบัติการ InitGPIO() และ InitSPI() เริ่มต้น variáveis para serem utilizadas na nossa aplicação enquanto as variáveis timer e timer2 criam 2 timers para serem executados a cada quantidade de neste tempogun s tempogun. Para alterar esse tempo basta mudar estes valores nessa parte do código.
O Método InitGPIO() a seguir tem como função definir as configuraçõese do pino que ativa a válvula solenoide de água. Nesse แบบอย่างของ código สำหรับ Dragonboard o código do pino foi o 36
โมฆะส่วนตัว InitGPIO()
{ var gpio = GpioController. GetDefault(); ถ้า (gpio == null) { ขา = null; กลับ; } พิน = gpio. OpenPin(36); if (pin == null){ return; } pin. Write(GpioPinValue. High); pin. SetDriveMode(GpioPinDriveMode. Output); }
O método InitSPI() กำหนดค่าพอร์ต SPI0 da Dragonboard
งาน async ส่วนตัว InitSPI()
{ ลอง { การตั้งค่า var = การตั้งค่า SpiConnection ใหม่ (0); // เลือกการตั้งค่าพอร์ต SPI0 da DragonBoard. ClockFrequency = 500000; // กำหนดค่านาฬิกาสำหรับ barramento SPI em 0.5MHz settings. Mode = SpiMode. Mode0; // กำหนดค่าคอนฟิกโพลาไรด์และ fase ทำนาฬิกาสำหรับตัวควบคุม SPI var = รอ SpiController. GetDefaultAsync (); SpiADC = controller. GetDevice (การตั้งค่า); } catch (ยกเว้นข้อยกเว้น){ โยนข้อยกเว้นใหม่ ("Falha na inicialização do SPI", อดีต); } }
O ตัวจับเวลาเบื้องต้น 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 = "แอปพลิเคชัน/json"; httpWebRequest. Method = "GET";
Neste trecho de código deve ser alterado para o endereço onde será hospedado o código da API สำหรับรถโดยสาร o comando de irrigação É neste trecho de código que a irrigação é encerrada ตัมเบม
Para o segundo timer é invocado o método Timer_Tick2() que é ตอบกลับ pelo envio dos dados da umidade ทำเดี่ยว naquele โมเมนโต É no seguinte trecho de código deste método que deve ser configurado o endereço da API สำหรับสภาพแวดล้อม dos dados:
var httpWebRequest = (HttpWebRequest)WebRequest. Create("https://serverless-study.appspot.com/api/v1/umidades");
httpWebRequest. ContentType = "แอปพลิเคชัน/json"; httpWebRequest. Method = "POST";
O método LerADC(byte canal) é o método responsável por ler do conversor analógico/digital os valores informados pelo sensor de umidade. Este adaptador ข้อมูล um array de byte que é convertido em inteiro através do método ConvertToInt([ReadOnlyArray] byte data) Segue os trechos de código:
สาธารณะ int LerADC (ช่องไบต์)
{ ไบต์ readBuffer = ไบต์ใหม่[3]; ไบต์ writeBuffer = ไบต์ใหม่ [3] { 0x00, 0x00, 0x00 }; writeBuffer[0] = 0x01; writeBuffer[1] = คลอง; SpiADC. TransferFullDuplex(writeBuffer, readBuffer); adcValue = ConvertToInt (readBuffer); ส่งคืน adcValue; } สาธารณะ 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/) a fim de modelar และ documentar os recursos utilizados na integração do trabalho.
สำหรับอาร์มาเซนาเมนโต dos dados foi utilizado o banco de dados MySQL, banco de dados relacional และโอเพ่นซอร์ส
แยก abaixo a arquitetura de camadas que compõem a API
● /api: Camada que gerencia os recursos disponibilizados สำหรับ que terceiros possam acessar
○ /api/controller: Camada que gerencia เป็น rotas definidas ไม่มี documento gerado pelo swagger
○ /api/บริการ: Camada que entrega os dados de entrada para serem tratados, depois escritos ou lidos pela camada de BO (descrita mais à diante). Nesta camada está กำหนดค่า o retorno ocorrido Durante o ประมวลผลคำขอ
○ /api/swagger: Camada que contém o arquivo de configuração do swagger, onde estão toda เป็น configurações dos recursos
● /โดเมน: Camada que contém toda codificação relacionada a regra de negócio da aplicação
○ /repository: 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á prepareado pela própria aplicação
ข้อมูลพื้นฐานและที่ปรึกษา ao código fonte acesso o ลิงก์ไปยัง github:
Segue abaixo uma breve descrição de cada recurso disponibilizados ที่ API:
วิธีการ: POST
URI: /api/v1/umidades
คำอธิบาย: Recurso utilizado para registar umidade coletada pelo sensor de umidade.
ตัวอย่างข้อกำหนด:
{
“ความกล้าหาญ”: 355 }
วิธีการ: GET
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 dispositivo de irrigação.
วิธีการ: GET
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 and diminuir or custo do projeto. เพิ่มเติม O Ionic é um framework que possui uma gigantesca biblioteca de componentes gráficos que facilita a Implementação visual do aplicativo. Ele utiliza de linguagens web (HTML, CSS e Javascript) สำหรับการอ้างอิงถึง telas e tem o Angular como o seu núcleo (core) Através do Cordova (biblioteca javascript) ระบบปฏิบัติการ recursos do dispositivos são acessados pelo webview do mesmo
ใช้งานได้จริง algumas requisições para a API do 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 e ação ผู้สื่อข่าว é 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 กำหนดค่า o endereço da API no arquivo server.ts que encontra-se no diretório /src/entity/server.ts(https://github.com/jeordanecarlosbatista/temperat…) และเปลี่ยนตัวเลือก URI_PREFIX Conforme แบบอย่าง 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: FLUXOGRAMA
ขั้นตอนที่ 8: อ้างอิงÊNCIAS
คำแนะนำ:
Qualcomm DragonBoard 410C:
Windows 10 และ DragonBoard™ 410c – จุดเริ่มต้นที่สมบูรณ์แบบสำหรับการพัฒนา IoT:
Monitore sua planta usando Arduino:
แนะนำ:
วิดีโอบทช่วยสอน De Tecnologías Creativas 05: ¿Hacemos Un Detector De Presencia? ¡Por Supuesto!: 4 ขั้นตอน
วิดีโอบทช่วยสอน De Tecnologías Creativas 05: ¿Hacemos Un Detector De Presencia? ¡Por Supuesto!: En este กวดวิชา vamos aprender como hacer un detector de presencia con un sensor de ultrasonidos sobre una placa Arduino Uno y utilizando Tinkercad Circuits (utilizando una cuenta gratuita).A continuación se tiene el resultado final que posterior
Sam - NFC Smartphone Automation Mate: 6 ขั้นตอน
Sam - NFC Smartphone Automation Mate: บทนำ: Sam - NFC Smartphone Automation MatePreface: นี่เป็นโครงการกลุ่มระหว่าง Lance Pan และ Zeynep Kirmiziyesil ที่ Emily Carr University of Art & การออกแบบสำหรับ Smart Objects Core โครงการนี้สำรวจ Near Field Communication (NFC) ซึ่ง
Arduino Smartphone Coms/Serial Monitor ผ่าน Bluetooth HC-05, HC-06: 4 ขั้นตอน (พร้อมรูปภาพ)
Arduino Smartphone Coms/Serial Monitor ผ่าน Bluetooth HC-05, HC-06: สิ่งนี้มีประโยชน์อย่างเหลือเชื่อหากคุณต้องการทดสอบภาพร่างในสภาพแวดล้อมจริง ห่างจากพีซีของคุณ ผลที่ได้คือสมาร์ทโฟนของคุณทำหน้าที่เหมือนกับจอภาพอนุกรม Arduino บนพีซีของคุณ โมดูลบลูทูธ HC-05 และ HC-06 มีจำหน่ายแล้ว
SmartPhone Game Simulator- เล่นเกม Windows โดยใช้ Gesture Control IMU, Accelerometer, Gyroscope, Magnetometer: 5 ขั้นตอน
SmartPhone Game Simulator- เล่นเกม Windows โดยใช้ Gesture Control IMU, Accelerometer, Gyroscope, Magnetometer: สนับสนุนโครงการนี้: https://www.paypal.me/vslcreations โดยบริจาคให้กับโอเพ่นซอร์สโค้ด & สนับสนุนการพัฒนาต่อไป
Digital Controller สำหรับ Air Suspension โดยใช้ Arduino และ Smartphone Remote: 7 ขั้นตอน (พร้อมรูปภาพ)
Digital Controller for Air Suspension โดยใช้ Arduino และ Smartphone Remote: สวัสดีทุกคน ในคำแนะนำนี้ฉันจะพยายามแสดงวิธีสร้างตัวควบคุมสำหรับระบบกันสะเทือนอากาศในรถยนต์ของคุณโดยใช้โมดูล Arduino + Bluetooth และสำหรับสมาร์ทโฟนที่มี Android +4.4 จากระยะไกล นี่เป็นคำสั่งแรกของฉันเช่นกัน แบก W