LX Group explores the new Nearbus Open IoT project in its series on various Internet-of-things systems.
Although not the most complex of systems, Nearbus offers a level of control and interaction with devices and sensors considered ideal for demonstrations, proof-of-concept designs or even simple products where rapid development and low-cost are the main requirements.
However, Nearbus takes a different approach to device control. Once Nearbus is loaded on the device’s microcontroller, it is considered to be part of the cloud and as such transparent to the web services or API. One can therefore, read or write to the MCU’s registers directly from the cloud, simplifying control. ‘Virtualising’ the hardware in the cloud makes it much easier for existing services to interact with the real hardware, and in a more secure manner. Let’s examine how this is possible with regards to the required hardware and software.
Due to market forces and age of the system, the Nearbus system only works with the Arduino-Ethernet platform. The end microcontrollers used are Atmel ATmega328 programmed with the Arduino boot loader and interfaced with the Wiznet W5100 Ethernet controller. However, this allows plenty of GPIO, ADCs and CPU speed to complete a variety of tasks; due to the open-source licensing of the Arduino platform the hardware cost is around A$20 per unit in volume. The main downside to this solution is its inability to use onboard WiFi chipsets, so the agent hardware needs to be connected to a separate WiFi router for true wireless control.
Due to the current hardware requirement, the only code for each Nearbus node is their sketch (code) and the Arduino boot loader, both of which are totally open-source. The rest of the work is in interfacing one’s own cloud- or server-based applications with the Nearbus hub system. This transfer takes place via HTTP requests.
There are two methods for interfacing applications with the Nearbus system. The first method, the ‘transparent’ mode allows the agent to send and receive a packet of data over preconfigured periods of time, for example, every five or ten seconds. This allows the cloud applications to call functions on the agent hardware as if it was controlling the MCU directly.
The second method is the ‘VMCU’ mode (Virtual Microcontroller), which allows direct control of the basic MCU features such as GPIO and ADC via a web services API. A more complex method, the VMCU mode maps the MCU remotely and allows direct control of the MCU’s registers, returning data in the raw from for one’s own web app to work with. The ability to map the registers removes a layer of complexity from the user or designer as they don’t have to worry about network protocols, and only be concerned with the microcontroller itself.
One can also configure, add and remove devices with a web interface, and also create connections to send data to other IoT services such as cosm or twitter. If one doesn’t have a server capable of running their own web apps to interface with Nearbus, free or paid services such as Google Spreadsheet web apps can be used.
A different paradigm to the usual IoT systems, the Nearbus system may seem awkward or different to more conventional or consumer-oriented ways of doing things; however if one has a strong PHP and networking background it can be implemented easily. The low hardware cost makes it ideal for monitoring or remote control applications that don’t require complete real-time interaction.
Those interested in moving forward with their own system based on the Nearbus can partner with LX Group. As a partner, LX Group will discuss and understand the client’s requirements and goals, and help them navigate the various hardware and other options available to help solve their problems.
LX Group is an award-winning electronics design company based in Sydney, Australia specialising in embedded systems design and wireless technologies.