Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sistema Smart Home de Baixo Custo com Raspberry Pi e MediaTek LinkIt

Componentes e Materiais Necessários

Componente Quantidade Observações
Raspberry Pi 2 Model B (ou Orange Pi) 1 Servidor local de baixo custo (~$15)
Xbee 1 Transceptor de rádio para sensores
Arduino UNO 1 Interface com sensores locais

Aplicativos e Serviços Online

Sobre o Projeto

Introdução

Vamos ver o que precisamos para configurar um sistema smart home usando MediaTek LinkIt. Como há muitos especialistas aqui para guiar você na conexão de hardware para leitura de dados de sensores, vou me concentrar na criação de APIs e configuração de um servidor local ultra baixo custo de $15 para capturar todos os dados dos sensores. Opcionalmente, registro os dados no Azure.

Configuração da Arquitetura

Sistema Smart Home de Baixo Custo com Raspberry Pi e MediaTek LinkIt
Arquitetura geral: Sensores → MediaTek LinkIt → Servidor Local (Orange Pi) → Nuvem (Azure)

Os sensores transmitem seus dados via sinais de rádio usando Xbee ou qualquer transceptor de baixo custo para o MediaTek LinkIt. O MediaTek LinkIt recebe todos os dados brutos dos sensores, empacota-os em objeto JSON usando a biblioteca ArduinoJson e faz uma requisição POST para o servidor local. O servidor local hospeda uma aplicação web Node.js e recebe todos os dados dos sensores como objetos JSON.

O servidor local é usado como pré-processador e adiciona timestamp UTC e assinatura. Qualquer validação, conversão e filtragem de dados pode ser processada aqui. O servidor local registra todos os dados no serviço de nuvem, no nosso caso Azure Storage Services. Alternativamente, o MediaTek LinkIt pode postar diretamente os objetos JSON para o Azure Storage Services. Configurei um servidor local apenas para provar que um PC de $15 pode ser poderoso o suficiente para lidar com nossos dados. Podemos registrar nossos dados em qualquer banco de dados NoSQL até mesmo em nosso servidor local, eliminando completamente a necessidade de armazenamento em nuvem externo. Deixo tudo isso a critério de vocês.

Sistema Smart Home de Baixo Custo com Raspberry Pi e MediaTek LinkIt
Sistema Smart Home de Baixo Custo com Raspberry Pi e MediaTek LinkIt
Sistema Smart Home de Baixo Custo com Raspberry Pi e MediaTek LinkIt

Demonstração

[Vídeo de demonstração do sistema funcionando]

Pré-requisitos

Assumo que você saiba como ler dados de sensores usando sensores e microcontroladores como Arduino ou MediaTek. Para limitar o escopo deste projeto, vou assumir que os dados dos sensores estão disponíveis no MediaTek LinkIt. Você pode usar transceptor de rádio de baixo custo ou Xbee para transmitir e receber sinais de rádio de sensores conectados a microcontroladores como MediaTek. Iniciantes podem usar o kit MediaTek LinkIt Grove Starter para ler dados do ambiente externo como temperatura, umidade, luz, etc.

JSON - O Padrão para IoT

JSON tornou-se o padrão de facto para IoT e foi amplamente adotado. Dito sobre os pré-requisitos, vamos começar modelando nossos dados de sensores. O principal objetivo é capturar o máximo de dados possível e passá-los para o servidor. O servidor pode fazer todo o trabalho pesado como analytics, conversão de dados, machine learning, etc.

O objeto JSON 'desired' (desejado) será o estado desejado dos dados do sensor. Por exemplo, quando registramos a temperatura, o valor desejado de 24 significa que precisamos sincronizar o valor para a nuvem com o valor 24. Nossos clientes como app web ou mobile serão atualizados para este valor.

Quando queremos ligar uma luz, dizemos que o estado desejado é "on". Significa que a luz está ligada ou será ligada. Todos nossos aplicativos clientes usarão este estado para refletir as mudanças para o usuário. Quero dizer, o ícone no nosso app web será ligado ou desligado.

Este não é um padrão internacional, eu apenas criei este formato. Portanto, sinta-se à vontade para usar seu próprio formato conveniente.

Exemplos de Objetos JSON para Diferentes Sensores

Temperatura e Umidade
{
  "deviceid": "iot/myhome/livingroom/thermostat",
  "desired": {
    "temperature": "24",
    "humidity": "80"
  },
  "timeutc": "2015-11-23T00:41:48.824Z",
  "signedBy": "localserver"
}
Microfone (Intensidade Sonora)
{
  "deviceid": "iot/myhome/livingroom/mic",
  "desired": {"intensity": "66"},
  "timeutc": "2015-11-23T00:41:48.824Z",
  "signedBy": "localserver"
}
Distância (Sensor Ultrassônico)
{
  "deviceid": "iot/myhome/livingroom/obstacle",
  "desired": {"proximity": "150"},
  "timeutc": "2015-01-01",
  "signedBy": "localserver"
}
PIR (Detecção de Movimento)
{
  "deviceid": "iot/myhome/livingroom/pir",
  "desired": {"motion_start": "2500", "motion_end": "5345"},
  "timeutc": "2015-11-23T00:41:48.824Z",
  "signedBy": "localserver"
}
GPS (Localização)
{
  "deviceid": "iot/mydevice/location",
  "desired": {"lat": "25.5", "long": "32.2"},
  "timeutc": "2015-11-23T00:41:48.824Z",
  "signedBy": "localserver"
}
Umidade do Solo
{
  "deviceid": "/iot/myhome/garden/moisture",
  "desired": {"moisture": "20"},
  "timeutc": "2015-11-23T00:41:48.824Z",
  "signedBy": "localserver"
}
Vazamento de Gás
{
  "deviceid": "/iot/myhome/kitchen/gas",
  "desired": {"leak": "No"},
  "timeutc": "2015-11-23T00:41:48.824Z",
  "signedBy": "localserver"
}
Luz (Intensidade)
{
  "deviceid": "/iot/myhome/livingroom/light",
  "desired": {"intensity": "60"},
  "timeutc": "2015-11-23T00:41:48.824Z",
  "signedBy": "localserver"
}
Sala de Estar (Múltiplos Sensores)
{
  "deviceid": "/iot/myhome/livingroom",
  "desired": {
    "temperature": "25",
    "humidity": "80",
    "window": "open",
    "door": "closed",
    "light": "80",
    "noise": "low"
  }
}
Quarto (Múltiplos Sensores)
{
  "deviceid": "/iot/myhome/bedroom",
  "desired": {
    "temperature": "24",
    "humidity": "70",
    "window": "closed",
    "door": "closed",
    "light": "80",
    "ac": "on",
    "noise": "low"
  }
}

MediaTek - Receptor

Por favor, consulte o arquivo .ino anexado na seção de software para registrar dados no servidor local. Os dados dos sensores são simulados; você pode passar as leituras reais para os respectivos objetos JSON.

Servidor Local

O servidor local adiciona uma sobrecarga, mas será muito útil de várias maneiras. Podemos fazer uso do servidor local como pré-processador para nossos dados IoT. Dados podem ser filtrados, timestampados e assinados.

Um mini PC e Node.js é uma excelente escolha para servidor local. Podemos escolher qualquer mini PC como Raspberry Pi, Odroid, Banana Pi, BeagleBone, etc. Escolhi Orange Pi ($15) para este projeto.

Configuração do Servidor Local

APIs Criadas para Receber Dados dos Sensores

Para configurar o servidor local: Clone o código fonte iotapp do meu GitHub. Modifique o index.js para colocar seu endereço IP da nuvem ou nome de domínio onde a aplicação ASP.NET 5 está hospedada no Azure.

Servidor Remoto (Nuvem)

Publicar dados na nuvem tornou-se popular hoje em dia. Podemos comprar assinatura de provedores de dados IoT como Amazon, Azure, SparkFun, PubNub, Initial State e muitos outros. Escolhi Azure para esta demonstração. Algoritmos de analytics, data mining e machine learning podem ser desenvolvidos para processar nossos dados.

Baixe o iotwebapp do meu GitHub. Criei usando Visual Studio 2015 visando ASP.NET 5. Estas APIs foram configuradas para postar os dados IoT. A API registra os dados IoT nas tabelas de armazenamento do Azure.

APIs Configuradas no Servidor Remoto (ASP.NET 5)

Para configurar servidor remoto: Clone o código fonte iotwebapp do meu GitHub. Crie uma tabela de armazenamento Azure. Modifique o IoTController.cs e coloque seu nome de conta e chave da tabela de armazenamento Azure. Use este nome de domínio ou IP no servidor local.

Conclusão

Há muitas áreas para refatorar no código. Sinta-se à vontade para modificar e me avise se travar em algum ponto.

Código

Repositório completo com código do MediaTek (receptor), Node.js (servidor local) e ASP.NET 5 (servidor remoto): https://github.com/syediddi/iot-mediatek-linkIt

Principais Arquivos do Projeto

Esquemáticos

Sistema Smart Home de Baixo Custo com Raspberry Pi e MediaTek LinkIt
Transmitir sinal de rádio do Arduino
Sistema Smart Home de Baixo Custo com Raspberry Pi e MediaTek LinkIt
Transmitir sinal de rádio via Xbee do Arduino sem shield
Sistema Smart Home de Baixo Custo com Raspberry Pi e MediaTek LinkIt
Transmitir sinais de rádio do Arduino

Processo de manufatura

  1. Dados Inteligentes: Navegando a Próxima Fronteira de IoT e Big Data
  2. Construa um Controlador Doméstico Inteligente 433 MHz com Sensorflare e Raspberry Pi
  3. Construa Sistema de Automação Residencial com Raspberry Pi para Controle Remoto
  4. Bartender Inteligente: Construa sua Própria Estação de Coquetéis com Raspberry Pi
  5. Hospitais Inteligentes do Futuro: O Papel Crítico de Software Inteligente
  6. Preenchendo a Lacuna de Habilidades em Casas Inteligentes: Por Que a Grã-Bretanha Fica Atrás da Europa
  7. Como a Interconectividade Impulsiona Eficiência, Segurança e Sustentabilidade em Locais de Trabalho Modernos
  8. Evolução Casa Inteligente: O Que o Futuro Reserva para Vida Conectada
  9. Fábricas Inteligentes: Da Visão à Realidade — Por Que a Maioria das Empresas UK Ainda Erra o Alvo
  10. Conectividade de Casa Inteligente: 3 Passos Comprovados para Superar Obstáculos-Chave