BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Mozilla relança WebThings, sua plataforma IoT open source

Mozilla relança WebThings, sua plataforma IoT open source

A Mozilla recentemente liberou sua plataforma IoT open source anteriormente chamada Project Things como WebThings. O Mozilla WebThings traz uma série de funcionalidades para alarmes, rede e logging.

O Mozilla WebThings é uma implementação open source do emergente Web of Things standards da W3C. O W3C Web of Things é uma iniciativa que visa reduzir a fragmentação IoT, através do recente grupo Web of Things Working Group, a W3C começou a desenvolver os padrões iniciais para a Web of Things, tentando reduzir os custos do desenvolvimento, diminuir os riscos para investidores e clientes, e encorajar o crescimento exponencial no mercado de serviços e dispositivos IoT.

O Mozilla WebThings é uma plataforma aberta para monitorar e controlar os dispositivos através da web, e consiste de dois componentes principais: WebThings Gateway, projetado para smart home gateways com foco em privacidade, segurança e interoperabilidade, e o WebThings Framework, projetado para ajudar os desenvolvedores a desenvolverem suas próprias funcionalidades para a web das coisas.

WebThings Gateway

O WebThings Gateway é um software que permite que os usuários monitorem e controlem seus smart homes através da web. Usando o WebThings Gateway, é possível por exemplo, verificar quantas vezes uma porta foi aberta/fechada, ou a quantidade de energia que os aparelhos conectados estão consumindo. Para habilitar isso, os usuários devem ir no "main menu > Settings > Experiments" e habilitar a opção "Logs".

O WebThings Gateway agora fornece novas funcionalidades de alarmes, tais como como alarmes de fumaça, alarmes de monóxido de carbono ou alarmes contra roubo; isso significa que os usuários podem agora verificar se um alarme está ativo, e então configurar regras para notificá-los quando um alarme é disparado.

A partir do WebThings Gateway 0.8 é possível reconfigurar a rede a partir de uma interface web. Além disso, os usuários podem configurar a porta de ethernet com um ip estático ou dinâmico, ou escanear novamente por redes wireless disponíveis e mudar a rede que o gateway está conectado.

WebThings Framework

O WebThings Framework é uma coleção de componentes de software reutilizáveis projetados para que os desenvolvedores construam suas próprias funcionalidades para a internet das coisas, essas funcionalidades são expostas diretamente através da Web Thing API. A Web Things API destina-se a complementar o trabalho do W3C Web of Things Working Group com um modelo de dados abstrato e API para a Web of Things, definindo uma serialização e um protocolo simples. A Web Thing REST API e Web Thing WebSocket API permitem que um cliente web acesse as propriedades dos dispositivos, solicitem a execução de ações, e inscrevam-se em eventos que representam uma mudança de estado.

A biblioteca oficial do WebThings está disponível em linguagens como Java, Python, Node.js, e Rust. Vamos ver a implementação de uma luz regulável em Java.

Primeiro adicione a seguinte dependência maven ao projeto:

<dependencies>
    <dependency>
        <groupId>org.mozilla.iot</groupId>
        <artifactId>webthing</artifactId>
        <version>LATEST</version>
    </dependency>
</dependencies>

Agora crie um novo Thing:

Thing light = new Thing("My Lamp",
                        new JSONArray(Arrays.asList("OnOffSwitch", "Light")),
                        "A web connected lamp");

Adicione as propriedades para on, e brightness:

JSONObject onDescription = new JSONObject();
onDescription.put("@type", "OnOffProperty");
onDescription.put("title", "On/Off");
onDescription.put("type", "boolean");
onDescription.put("description", "Whether the lamp is turned on");

Value<Boolean> on = new Value<>(true,
                                // Here, you could send a signal to
                                // the GPIO that switches the lamp
                                // off
                                v -> System.out.printf(
                                        "On-State is now %s\n",
                                        v));

light.addProperty(new Property(light, "on", on, onDescription));

Agora adicione o recém criado Thing ao servidor e o inicie:

try {
   WebThingServer server = new WebThingServer(new SingleThing(light), 8888);
    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
            server.stop();
        }
    });
    server.start(false);
} catch (IOException e) {
    System.out.println(e);
    System.exit(1);
}

O código acima iniciará o servidor, fazer com que a luz esteja disponível via WoT REST API e anunciá-lo como um recurso detectável na rede local.

Maiores detalhes estão disponíveis no website do Mozilla IoT, e na documentação do desenvolvedor para o WebThings Gateway e WebThings Framework. Desenvolvedores que queiram contribuir com essa documentação podem fazê-lo através do repositório disponível no GitHub.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT