Programa MKR Over-the-Air + Goodies:Controle de Voz, etc.
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Aplicativos e serviços online
| ||||
| ||||
| ||||
| ||||
|
Sobre este projeto
Visão geral
Nossa contribuição tem 2 partes.
Parte 1: Uma coleção de componentes reutilizáveis. Eles podem servir como uma estrutura para a construção de vários projetos de IoT que potencializam recursos úteis:
- Programação Over-the-Air (OTA) do Arduino MKR1000 (ou seja, fazer upload do código binário compilado). Vários métodos estão disponíveis:por exemplo, de dentro da LAN ou da Internet, com segurança, via Microsoft Azure IoT Hub.
- Plataforma Universal do Windows (UWP) aplicativo cliente , com uma interface de usuário agradável. Ele se comunica com segurança com a placa por meio do Hub IoT do Azure.
- Reconhecimento de voz (no aplicativo cliente), por meio da API de reconhecimento de fala fornecida pelo Microsoft Project Oxford. Os comandos falados podem ser usados para controlar a placa por meio do Hub IoT do Azure.
Parte 2: Um caso de uso / amostra, criado com os componentes acima:um termostato de ambiente, controlado por telefone (aplicativo UWP). Nós o construímos para servir de exemplo de como usar os componentes. E fomos ainda mais longe:instalámos no nosso escritório e, à medida que vamos escrevendo estas linhas, o sistema de aquecimento do escritório é controlado por este mesmo projecto.
Parte 1:Os componentes reutilizáveis para OTA
Princípio de funcionamento da OTA
Desenvolvemos os seguintes componentes:
Para Arduino IDE:
- uma biblioteca de tempo de execução . Ele lida com a mecânica de upload e cópia do firmware.
- um pacote de "placas" personalizado . Ele tem algumas configurações relacionadas ao vinculador, necessárias para a biblioteca.
- um plug-in Arduino IDE . Ele envia sinais de download e esboços binários compilados (também conhecido como firmware). Ele se comunica com a placa, Azure IoT Hub, o aplicativo de servidor do dispatcher IoT (cf. abaixo).
Para ser instalado em um servidor de terceiros (por exemplo, como o Microsoft Azure Web Site):
- Expedidor IoT , um aplicativo PHP + MySQL que armazena e fornece firmware.
Princípio de funcionamento do aplicativo UWP
Nós desenvolvemos:
- Um aplicativo cliente UWP, escrito em C #. Ele se comunica com a placa por meio do Azure IoT Hub e reconhece comandos falados por meio do Microsoft Project Oxford. Ele pode ser usado como ponto de partida para vários projetos.
OTA DEMO
Parte 2:Caso de uso / amostra:Termostato de sala
Como mencionado antes, desenvolvemos o termostato de ambiente para demonstrar como podemos combinar nossos componentes para construir um projeto de vida real. No nosso caso, chegamos a colocá-lo em produção, ou seja, ele controla o aquecimento do nosso escritório.
A lógica é simples:
- quando a temperatura cai abaixo da temperatura predefinida => o relé (ou seja, aquecimento) liga
- quando a temperatura está acima da temperatura predefinida => o relé / aquecimento é DESLIGADO
- a interface do usuário / cliente UWP:mostra o status e define a temperatura predefinida (via caixa de texto ou voz)
1. Faça o projeto (hardware)
Não fornecemos um diagrama de Fritzing, pois usamos um Beta MKR1000. O layout do pino pode mudar no futuro.
2. Configure o Dev Environment para OTA e Azure IoT Hub
- Instale o Arduino IDE, pelo menos a versão 1.6.7
- Instale placas Arduino SAMD. No Arduino IDE: Tools> Board:...> Boards Manager ...> selecione "Arduino SAMD Boards"
- Baixe e descompacte algumas bibliotecas em: SKETCHBOOK_DIR (por exemplo, Documentos / Arduino) / bibliotecas :WiFi101, AzureIoT, RTCZero.
E agora nossos componentes:
- Baixe e descompacte a biblioteca de tempo de execução OTA em:SKETCHBOOK_DIR (por exemplo, Documentos / Arduino) / bibliotecas.
- Faça download do nosso pacote personalizado de "placas" . Crie um diretório: SKETCHBOOK_DIR (por exemplo, Documentos / Arduino) / hardware / flower-platform . Descompacte o arquivo baixado aqui.
- Faça download do plug-in IDE do Arduino . Crie um diretório:SKETCHBOOK_DIR (por exemplo, Documentos / Arduino) / ferramentas. Descompacte o arquivo baixado aqui.
Para OTA seguro via Internet / HTTPS:
- Faça download do IoT Dispatcher e instale-o em um servidor PHP + MySQL. Por exemplo. temos instruções sobre como implantar na nuvem do Microsoft Azure.
3. Test Drive OTA
Existem 3 métodos de upload OTA.
1) Experimente OTA via LAN: Arquivo> Exemplos> Arduino-FlowerOTA> WiFiOTA . Altere as linhas comentadas com "// CHANGE ME" consequentemente, a fim de configurar o endereço IP, parâmetros WiFi, plain / ssl, assinatura do servidor. Em seguida, Flower Platform> Upload OTA ...
Certifique-se de usar:
Cliente WiFiClient;
e (cf. a "assinatura do servidor" na janela pop-up).
ota.begin (&udp, &client, "1hvtdliHzKLjMykvfW1MfPwsFthUU / YfjN8fOZJ3Qhc =");
NOTA :para todos os 3 métodos, você precisa fazer um upload inicial via USB. Depois disso, você pode continuar a usar OTA, com o método de sua escolha.
2) Experimente OTA por meio de despachante seguro , usando o mesmo arquivo:
Certifique-se de usar:
Cliente WiFiSSLClient;
e
ota.begin (&udp, &client, "my-iot-dispatcher-upload-key"); // cf. configurado no IoT Dispatcher (PHP)
3) Experimente OTA via distribuidor seguro + Hub IoT do Azure . Arquivo> Exemplos> Arduino-FlowerOTA> WiFiOTA-AzureIoTHub. Novamente:não se esqueça de ajustar as linhas comentadas com " // MUDE-ME "
4) Experimente o caso de uso / amostra:o termostato ambiente. Está disponível aqui.
4. Teste a interface do usuário (aplicativo UWP c / Azure IoT Hub e reconhecimento de fala)
O projeto UWP está disponível aqui. O Visual Studio 2015 e o Windows 10 são necessários.
Certifique-se de alterar os parâmetros de conexão cf. sua conta do Azure:
SendCloudToDevice.cs
class SendCloudToDevice {// CHANGE ME:Substitua as constantes abaixo, por valores reais (retirados de seu Portal do Azure) private const string HOST ="???. azure-devices.net"; string const privada DEVICE_ID ="???"; string const privada DEVICE_KEY ="???"; string estática sharedAccessKeyName ="???"; static string sharedAccessKey ="???";
ReadDeviceToCloud.cs
class ReadDeviceToCloud {// Substitua as constantes abaixo, pelos valores reais (retirados do Portal do Azure) private static string ConnectionString ="???"; string estática privada eventHubEntity ="???";
Este código pode servir como ponto de partida para aplicativos cliente para vários projetos. Você só precisa ajustar a interface do usuário de acordo com o seu projeto.
Etapas futuras
Placas como a Arduino MKR1000, que possuem razoável poder de processamento e recursos de comunicação SSL, representam um grande passo à frente para a comunidade de fabricantes.
Estamos dando continuidade ao trabalho iniciado com este projeto, a fim de desenvolver o Flower Platform IoT, um serviço online que aceleraria tremendamente os projetos de IoT:
- desenvolvimento:uso de componentes OOP e linguagem de programação gráfica (que podem ser misturados com código escrito à mão);
- implantação:uso de OTA.
Aproveitando a plataforma de flores, planejamos criar uma base que se concentrará em ensinar crianças a fazer e programar projetos de IoT.
Código
Biblioteca de tempo de execução que lida com a mecânica de upload e cópia do firmware (C ++)
https://github.com/flower-platform/Arduino-FlowerOTAPacote de "placas" personalizado com algumas configurações relacionadas ao vinculador, necessárias para a biblioteca (script do vinculador)
https://github.com/flower-platform/ArduinoCore-samd-OTAPlug-in IDE do Arduino. Comunica-se com a placa, expedidor e IoT Hub (Java)
https://github.com/flower-platform/flower-platform-arduino-ide-pluginExpedidor IoT. Armazena e fornece firmware necessário durante OTA (PHP + MySQL)
https://github.com/flower-platform/flower-platform-iot-dispatcherCaso de uso / amostra do termostato de ambiente (C ++)
https://github.com/flower-platform/ThermostatIoTCliente UWP, para o caso de uso / amostra do termostato de ambiente (C #, HTML, JavaScript)
https://github.com/flower-platform/thermostat-uwp-uiEsquemas
Não fornecemos um diagrama de Fritzing, pois usamos um Beta MKR1000. O layout do pino pode mudar no futuro.Processo de manufatura
- Como se tornar um Microsoft Certified Azure Administrator?
- COMO É BOM É AZURE COMO UMA ESCOLHA DE CARREIRA
- Token Blockchain e Serviços de Gerenciamento de Dados do Microsoft Azure
- Folha de referências do Microsoft Azure 2020
- Conecte o Azure ao Power BI:um guia abrangente
- Pílula anticoncepcional
- Algoritmos e aumento de potência do hardware do controle de voz
- Controle de enchimento da piscina
- Microsoft lança Azure Edge Zones para aplicativos 5G
- unidade de sustentabilidade da Emerson com plataforma de controle de nuvem