Projeto Smart Home


#1

Bom dia,

estou desenvolvendo um projeto e resolvi usar esse forum como worklog.

Hoje existem diversas aplicações IOT, mas pelo que eu analisei cada empresa lança sua própria solução que funciona dentro de sua app, ou seja, um único cliente ou nas hipoteses que eu vi há um compartilhamento entre apps.

A ideia do projeto é a seguinte: ter um servidor para controlar o ecosistema de iot’s da casa, esse servidor é com a estrutura LAMP (Linux, Apache, MySql e PHP), hoje minha versão está instalada em um Raspberry. Como esse serviço é via http então qualquer dispositivo que tenha um navegador conseguirá acessar a app.

Há duas propostas de funcionamento do IOT’s: 1 - Código genérico que busca todas as configurações de pinos do Servidor e monta a configuração em tempo de execução; 2 - Código especifico dentro do dispositivo que comunica com o servidor somente para enviar dados ou saber o que tem que ser feito.

Por enquanto essa é a ideia (tem mais coisas, mas vou postando a medida que conseguir externalizar o que já está feito), qualquer dúvida vou respondendo e desenvolvendo a ideia.


#2

Olá pessoa,

Dando continuidade à apresentação do projeto, a parte do administrador está dessa forma (haverão melhoramentos)

Uma explicação rápida sobre a interface:

  • o usuário poderá criar quantas visualizações ele quiser, essa visualização é dinâmica, no editor ele poderá colocar, ordenar, adicionar os plug-ins na posição e no tamanho que ele quiser;
  • os plug-ins serão responsáveis por exibir informações, executar ações e coordenar os dispositivos;
  • os plug-ins são itens a parte, ou seja, como serão instalados ele são dinâmicos permitindo que as funcionalidades da aplicação cresçam de forma modular e que cada pessoa que usar a aplicação instale somente o que for necessário pra ela, evitando sobrecargas e também
    se o usuário tiver interesse ele poderá criar seus próprios plug-ins;
  • Os dispositivos são os iot’s registrados no sistema, no caso de aplicações especificas (lógica dentro do iot) esse registro será somente para monitoramento e interação com os plug-ins, no caso de aplicações genéricas esse registro servirá, além dos informados acima também para configurar o que será cada pino (DHT, Digital Output, Digital Input, Analógico…).

Por enquanto só fiz o plug-in pra interagir com as placas genéricas que usam o DHT, pode ver que na visualização tem dois cômodos onde é monitorado a temperatura e a umidade.

Quem tiver ideias de funcionalidades, por favor me ajudem ai.


#3

Alexandre, tudo bem?

também vejo que empresas e grupos por ai fazem muita coisa proprietária e fechada. Porém tem algumas coisas mais abertas que já tem bastante coisa pronta e open source.

Na camada de gerenciamento como sua aplicação LAMP, alguns dos principais e que tem codigo aberto são:

  • OpenHAB
  • Home Assistant
  • Domoticz
    mas tem várias abertas e com ampla integração e aberta para você criar plugins para suprir necessidades que elas não suportam

E para os dispositivos, principalmente Arduino e ESP8266/ESP32, existem:

  • Tasmota
  • ESPEasy
  • ESPurna
    existem outras também, mas as que vejo mais movimento. Se você não conhece ou não testou, vale a pena dar uma olhada, pelo menos como referencia.