In my previous post, I gave a high-level overview of our Redis-based, industrial Internet of Things (IoT) technology at Inovonics, which is the leader in wireless networks. I will give more details on each of our system components in this and subsequent posts, and introduce you to some of the more technical features of Redis (and Redis Enterprise in particular) that we use at Inovonics.
To recap my previous post, the following components comprise a full IoT system:
Be aware that gateways, cloud data stores and network engineering can be configured in several different ways, and in some cases can be skipped altogether. At a minimum, an IoT system needs sensors, a network and some way of managing data from the sensors. Redis offers a portfolio of technologies and products for data storage, event triggering and analytics across all of these components. For this post, let us discuss the eyes and ears of the system, namely its sensors.
In choosing or designing sensors for a specific application, consider the following list of criteria:
Last but not least, when selecting a sensor, the cost of the sensor itself is a major consideration. This includes both the sensor’s material cost and the installation cost. Keep in mind that each application may require other, more specific criteria for sensor selection. For example, when choosing sensor electronics, data treatment implications also influence its performance (speed) and the cost of your sensors. A sensor might work with its data in any of the following modes:
Sensor without separate explicit data storage: In this model, the sensor simply sends and receives messages when triggered. For example, a temperature sensor may send a notification when the temperature rises above a certain threshold. In addition, the sensor may be equipped with some electronics in order to perform calculations (e.g., counters). Some pulse-encoded sensors send a message when the number of pulses exceeds a certain value since the last message. Typically, hardware electronics manage the state of the sensor without requiring a separate data store.
Sensor with short-term data storage: Here, the sensor is equipped with storage—such as internal flash or local storage—to temporarily buffer the data. The sensor may process and send only information of interest, or it may simply choose to send data in batches. Buffering can help synchronize the speed of sensing and transmitting data. A buffer can also guard against wireless network outages because the sensor simply resends the data. A sensor may choose to store its state as well, in which case a power cycle on the sensor will not cause any loss of state or data. A sensor fitted with a camera for pictures or videos will usually have a temporary data store.
Sensor with long-term data storage: One scenario for longer-term storage is when a sensor may not have any means of communicating on a wired or wireless network. In these cases, a technician visits the sensor periodically to retrieve its data. If you use these types of sensors for applications with stringent demands, it is very important to ensure that the data does not get lost due to any hardware or software issues.
If your application demands high volumes of data storage for either the short or long term, RedisEdge from Redis can be an excellent complement to your IoT environment. It is a multi-model database that was purpose-built for the demanding conditions at the IoT edge. Since RedisEdge can ingest millions of writes per second with <1ms latency and a very small footprint (<5MB), it works great for constrained compute environments. And even though RedisEdge is best known for its blazing-fast performance, its reliability in storing data also adds value to applications where performance may not be the driving factor. RedisEdge gracefully meets the diverse data services needs of IoT edge environments that might require multiple data models (e.g., time-series or graph data) to support video streaming analytics, image recognition or other complex computing requirements.
Regardless of the data store you choose, there are several trade-offs you may decide to make in your sensor selection. For example, a more “intelligent” sensor may require more powerful processing at the edge, which would drive up costs and impact battery life (due to higher power draw). In addition, harsh environmental conditions and tamper proofing requirements to bolster physical security may necessitate sturdier devices, which would increase costs as well. Given all of this, it is always important to analyze your short-term and longer-term application requirements and determine the ideal sensor for your use case. In my next blog, I will discuss network implications to consider for designing your IoT system.