The maker community was abuzz with excitement when Mozilla announced Project Things last month, so we sat down with Benjamin Francis from the development team to talk about exactly what it means. Here’s what he told us.
The MagPi: Can you explain what Project Things is?
Benjamin Francis: Project Things is an experimental framework of software and services to help developers connect ‘things’ (physical objects in the real world) to the World Wide Web in a safe, secure and interoperable way. The project includes developing a ‘Web of Things’ gateway, which helps bridge existing IoT devices to the web; a collection of cloud services to help manage a large number of IoT devices over a wide geographic area; and a framework of reusable software components to help create IoT devices which directly connect to the Web of Things.
The first piece of the framework we’ve released is an early prototype of an open-source Web of Things gateway. Anyone can download the software image from Mozilla’s website and build their own Web of Things gateway using a Raspberry Pi. The gateway enables users to choose a unique web address for their home without any complex DNS or router configuration, by using a secure tunnelling service provided by Mozilla. The gateway can then be used to monitor and control existing smart home devices like ZigBee and Z-Wave smart plugs and sensors, and access them remotely via a unified web interface.
Our initial demo showed how you can turn smart plugs on and off from a web app. We’re now working with the community to add support for new types of devices and protocols via an adapter add‑on system, and developing new components like a rules engine which can be used to define automated rules for how individual ‘things’ interact with each other (e.g. having a light turn on when a sensor detects motion).
Why the Raspberry Pi?
The Raspberry Pi 3 is affordable, easy to get hold of, runs Linux, and has wireless LAN and Bluetooth built in. This makes it an ideal hardware platform for the initial use cases – and the initial audience of DIY hackers and makers we’re targeting with Project Things. We plan to support other hardware platforms in the future too, but the Pi was a great starting point for us.
Do you find it difficult to convey exactly what the IoT is to people?
People have diverse ideas about what the Internet of Things is, and there’s really no single accepted definition. It can range from sophisticated cloud-connected smart devices with artificial intelligence, to tiny RFID tags in smart packaging which give physical products an identity on the internet, used for inventory tracking or smart consumer experiences.
What makes IoT particularly confusing for end users is that because the technology is still in its infancy, there are no universally agreed standards for how connected devices should communicate. This means that there are lots of proprietary products and platforms available which can’t talk to each other, so it’s easy to get locked into a particular brand or cloud service.
At Mozilla we want to help educate users about the security, privacy, and interoperability issues around new IoT devices, while helping to define new standards for a decentralised Internet of Things which is safe and secure.
What is the Web of Things?
The Web of Things is an effort to take the lessons learned from the World Wide Web and apply them to the Internet of Things. It’s about creating a decentralised Internet of Things by making Things linkable and discoverable on the web, and defining standard data models and APIs (application programming interfaces) to make them interoperable.
To put it simply, it’s about giving Things URLs on the web.
We’re working with the W3C (World Wide Web Consortium) to help define standards for a decentralised Internet of Things, including a standard Web Thing description format to describe Things, and APIs to communicate with them. Project Things is Mozilla’s open‑source implementation of those proposed standards, but like all web standards, anyone is free to implement the specifications themselves in the programming language of their choice.
How can people get started?
Go to iot.mozilla.org to download our Things Gateway software image and follow the instructions to flash the image onto an SD card. You can then plug the SD card into your Raspberry Pi, plug in USB dongles for any additional wireless protocols you want to support, then access the gateway via your web browser to set up a secure web address for your home. You can pair devices like ZigBee and Z-Wave smart plugs with the gateway and control them from your browser using the built-in web app.
Project Things is an open-source project and we really encourage community contributions. There are lots of ways you can contribute, such as building your own IoT device which uses the proposed standard Web Thing API (magpi.cc/2vMuYB9), creating an adapter to bridge an existing IoT protocol or device to the web, or hacking Project Things itself to help us develop Mozilla’s Web of Things implementation (github.com/mozilla-iot).
We’re looking forward to seeing what the hacker and maker community can build with this software as it develops, and we’d love to hear about your DIY IoT projects!