Homeworks academic service

An overview and application of the internet of things

The Information Value Loop

Hardware serial number State information State information describes the current status of the device, not of the environment. It is updated, but usually not frequently. Telemetry Data collected by the device is called telemetry. This is the eyes-and-ears data that IoT devices provide to applications.

Telemetry is read-only data about the environment, usually collected through sensors. Each source of telemetry results in a channel. Telemetry data might be preserved as a stateful variable on the device or in the cloud. Although each device might send only a single data point every minute, when you multiply that data by a large number of devices, you quickly need to apply big data strategies and patterns.

Commands Commands are actions performed by a device. Commands often have traits that constrain the choices available in your implementation. Commands are not easily represented as state data. Commands are often not idempotent, which means each duplicate message usually results in a different outcome.

Like messaging systems, the implementation of a command function determines the delivery semantics, such as "at least once" or "exactly once". The command mechanism can include a return value, or might rely on the confirmation being made through a separate return message or by reflecting the expected change in the state data. Commands might be of limited temporal relevance, so they should include a time-to-live TTL or other expiration value. Examples of commands include: Spin 360 degrees to the right.

Run self cleaning cycle. Increase the rate by ten percent. Operational information Operational information is data that's most relevant to the operation of the device as opposed to the business application. This might include things such as CPU operating temperature and battery state. This kind of data might not have long-term analytical value, but it has short-term value to help maintain the operating state, such as responding to breakages and correcting performance degradation of software after updates.

Operational information can be transmitted as telemetry or state data. Devices It's not always clear what constitutes a device. Many physical things are modular, which means it can be hard to decide whether the whole machine is the device, or each module is a discrete device.

There's no single, right answer to this question. As you design your IoT project, you'll need to think about the various levels of abstraction in your design and make decisions about how to represent the physical things and their relationships to each other.

  1. Passive sensors require less energy, but active sensors can be used in a wider range of environmental conditions.
  2. Commands might be of limited temporal relevance, so they should include a time-to-live TTL or other expiration value. Based on the data collected and algorithmic calculations, machines have the potential to convey suggestive actions to individuals who then exercise their discretion to take or not to take the recommended action.
  3. Data brokers are companies that sell data collected from various sources.

The specific requirements of your application will help you understand whether something that generates information should be treated as a device, and therefore deserves its own ID, or is simply a channel or state detail of another device. As an example, consider a project that has the goal of monitoring the temperature of rooms in a hotel.

In each room there might be three sensors: You can model this setup by representing each sensor as a device: While you usually wouldn't consider a room to be a device, in IoT the device abstraction is really about what you manage and record from as a unit; it isn't always limited to a single gizmo you can hold in your hand. Viewed that way, you could model the hotel room as a device that contains three sensors: Note the average temperature field in the second example. This might be what the hotel is looking for.

Is metadata from each sensor most valuable on its own, or do the separate pieces of metadata make more sense applied to the room as a whole?

What if the room was a suite and the three locations were the bathroom, lounge, and bedroom? These are the sorts of questions you'd need to ask yourself when deciding how to model the data. The domain model of the connected application defines the exact boundary of what constitutes the device. Device hardware General considerations when choosing hardware When choosing hardware, consider the following factors, which are affected by how the hardware is deployed: Given the value of the data provided, think about what cost can be supported for each device.

The device might be primarily a sensor, an actuator, or some combination of the two roles. The device might have access to electricity, or power might be scarce. Think about whether the device will require battery or solar power. Some types of connections, such as cellular, can be expensive with high traffic. Think about the reliability of the network, and the impact of that reliability on latency and throughput.

If it is wireless, consider the range the transmission power achieves and the added energy costs. Functional inputs and outputs The devices used an overview and application of the internet of things interact with the physical world contain components, or are connected to peripherals, that enable sensor input or actuator output. For example, the sensitivity or complexity of the motion you need to detect will determine what kind of accelerometer you choose, or whether you need a gyro instead.

If you are doing gas detection, the type of gases that the sensor can accurately detect matters. When using a device to produce output, you must consider requirements such as how loud a buzzer needs to sound, how fast a motor needs to turn, or how many amps a relay needs to carry. For example, a stepper motor can be set to a specific direction that might be represented in device state data, while a microphone might be steadily sampling data in terms of frequencies, which is best transmitted as telemetry.

These components are connected to the logic systems of the device through a hardware interface. Device platforms There is an incredible amount of diversity in the specific hardware available to you for building IoT applications. This diversity starts with the options for hardware platforms. Common examples of platforms include single-board-computers such as the Beagleboneand Raspberry Pias well as microcontroller platforms such as the Arduino seriesboards from Particleand the Adafruit Feather.

Each of these platforms lets you connect multiple types of sensor and actuator modules through a hardware interface.

These platforms interface with the modules using a layered approach similar to those used in general-purpose computing. If you think about the common, everyday computer mouse, you can consider the layers of peripheral, interface, driver and application.

On a typical operating system, such as Linux or Windows, the hardware input is interpreted by a driver, which in turn relies on OS services, and might be part of the kernel. For simplicity, the following diagram omits the operating system. Hardware Interfaces Most hardware interfaces are serial interfaces. Serial interfaces generally use multiple wires to control the flow and timing of binary information along the primary data wire.

Each type of hardware interface defines a method of communicating between a peripheral and the central processor. IoT hardware platforms use a number of common interfaces.

  1. Toward that end, we earlier discussed the advantages and limitations of the Constrained Application Protocol, a communication protocol lighter than other popular protocols such as HTTP.
  2. Further, the tool could correlate the transactions with any accompanying bank-branch transactions such as an address change—potentially indicating a house purchase—and present a cross-selling opportunity, say home insurance, before a competitor draws the customer away. Depending on the application, a combination of techniques such as power-aware routing and sleep-scheduling protocols can help improve power management in networks.
  3. The first step in the process of transferring data from one machine to another via a network is to uniquely identify each of the machines.
  4. For example, the sensitivity or complexity of the motion you need to detect will determine what kind of accelerometer you choose, or whether you need a gyro instead.
  5. This can be used to trigger alerts, filter invalid data, or invoke other APIs.

Sensor and actuator modules can support one or more of these interfaces: Universal Serial Bus is in common use for a wide array of plug-and-play capable devices. As their name implies, these pins are provided by the manufacturer to enable custom usage scenarios that the manufacturer didn't design for. GPIO pins can be designed to carry digital or analog signals, and digital pins have only two states: PWM lets you very quickly switch a power source on and off, with each "on" phase being a pulse of a particular duration, or width.

The effect in the device can be a lower or higher power level. Analog pins might have access to an onboard analog-to-digital conversion ADC circuit. An ADC periodically samples a continuous, analog waveform, such as an analog audio signal, giving each sample a digital value between zero and one, relative to the system voltage.

The range depends on the resolution of the ADC. For example an 8-bit ADC can produce digital values from 0 to 255, while a 10-bit ADC can yield a wider range of values, from 0 to 1024. More values means higher resolution and thus a more faithful digital representation of any given analog signal. A higher sampling rate results in a higher maximum frequency in the digital data. For example, an audio signal sampled at 44,100 Hz produces a digital audio file with a frequency response up to 22. The bit precision dictates the resolution of the amplitude of the signal.

Inter-Integrated Circuit serial bus uses a protocol that enables multiple modules to be assigned a discrete address on the bus. Serial Peripheral Interface Bus devices employ a master-slave architecture, with a single master and full-duplex communication. SPI specifies four logic signals: UART is required when serial data must be laid out in memory in a parallel fashion.

The OS also provides very low-level support for the different hardware interfaces.

Overview of Internet of Things

Generally these abstractions are not easy to use directly, and frequently the OS does not provide abstractions for the wide range of sensor and actuator modules you might encounter in building IoT solutions.

You can take advantage of libraries that abstract hardware interfaces across platforms. These libraries enable you to work with a device, such as a motion detector, in a more straightforward way. Using a library lets you focus on collecting the information the module provides to your application instead of on the low-level details of working directly with hardware.

Some libraries provide abstractions that represent peripherals in the form of lightweight drivers on top of the hardware interfaces. Computing environment The computing environment of your platform executes the software.

Based on the hardware constraints of power and cost, the capabilities of the processor will vary. Some computing environments consist of a full system on a chip SOCwhich can support an embedded Linux operating system.

Ellipse by Lattis

Microcontroller-based devices might be more constrained, and your application code could run directly on the processor without the support of an operating system. These computing environments are the bridge between the logic of your application code and the physical hardware of the platform. The software they run might be entirely loaded during boot up from read-only memory ROM. Alternatively, the environment might result from a staged boot process. This process loads a small program called a bootloader from ROM, which then loads a full operating system from onboard flash or a connected SD card.

On-device processing After data is collected from a sensor, the device can provide data processing functionality before sending the data to the cloud. Multiple devices might handle the data before it gets to the cloud, and each might perform some amount of processing.