Java Magazine: Devices and IoT by Andrew Benstock

Java Magazine: Devices and IoT by Andrew Benstock

Author:Andrew Benstock [Benstock, Andrew]
Language: eng
Format: azw3
Publisher: UNKNOWN
Published: 2018-12-04T16:00:00+00:00


Activate

“Power” Action Data

Updates Action

Requests

ALERT!

Data

Updates

with the appropriate device attributes. The data source is the conveyor belt motor, and the logic should send an alert when the motor temperature goes above 100 degrees Fahrenheit and the cooling fan speed is less than 1 (the fan is not on). The TempThreshold2 analytic is similar, except that it looks for a higher temperature (> 150 degrees Fahrenheit) and a fan speed that is less than 2. The remaining analytics are similar.

However, these analytics are useless unless there’s an application that listens for the resulting alerts to act on them. This is the Java monitoring application mentioned previously, which is integrated through a REST endpoint to which IoTCS sends the analytics-driven alerts. As a result, the monitoring application instructs the device to change its belt motor speed, adjust the cooling fan speed, or shut down in response to the analytics alerts (see Listing 3).

CONVEYOR B E LT

(EMULATOR) FACTORY MONITOR APPLICATION

Oracle IoT Cloud Service Java Device Client Software Library Oracle IoT Cloud Service Java Enterprise Client Software Library

Figure 2. The architecture of the sample Oracle IoTCS application

Figure 3. A Streams Explorer analytic definition

Listing 3.

public static void handleREST(HttpExchange t) throws Exception {

// Read request JSON string

BufferedReader bodyReader =

new BufferedReader(

new InputStreamReader(

t.getRequestBody() )); //...

// Parse the JSON string StringReader sr =

new StringReader(alert.toString());

JsonReader jr = Json.createReader(sr);

JsonObject jo = //...

JsonObject payload =

jo.getJsonObject("payload");

// Get the alert type by URN

35 String alertType =

payload.getString("format");

switch ( alertType ) {

case TEMP_TOO_LOW_ALERT_URN: device.set(FAN_SPEED_ATTR, OFF);

break;

case TEMP_LOW_ALERT_URN: device.set(FAN_SPEED_ATTR, FAN_LOW_SPEED); break;

case TEMP_MED_ALERT_URN: device.set(FAN_SPEED_ATTR, FAN_MED_SPEED); break;

case TEMP_HIGH_ALERT_URN: device.set(FAN_SPEED_ATTR, FAN_HIGH_SPEED); break;

case TEMP_CRITICAL_ALERT_URN: shutDownBelt(device); break;

//...

}

} Listing 4.

VirtualDevice device = event.getVirtualDevice(); int temp = (Integer)namedValue.getValue(); int coolingFanSpeed = device.get(FAN_SPEED_ATTR);

// Determine if action is needed based on new temp if ( temp >= 300 ) {

// Shut things down!

device.set(BELT_SPEED_ATTR, 0);

}

else if ( temp > 250 && ...

To receive notiication that the monitoring application changed the belt or fan speed, the device needs to register for appropriate attribute changes, as shown in Listing 5.

Listing 5.

DeviceModel model =

device.getDeviceModel( CONVEYOR_BELT_MODEL_URN); VirtualDevice virtualDevice = device.createVirtualDevice( device.getEndpointId(), model);



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Popular ebooks
Whisky: Malt Whiskies of Scotland (Collins Little Books) by dominic roskrow(56073)
What's Done in Darkness by Kayla Perrin(26615)
The Fifty Shades Trilogy & Grey by E L James(19095)
Shot Through the Heart: DI Grace Fisher 2 by Isabelle Grey(19079)
Shot Through the Heart by Mercy Celeste(18952)
Wolf & Parchment: New Theory Spice & Wolf, Vol. 10 by Isuna Hasekura and Jyuu Ayakura(17131)
Python GUI Applications using PyQt5 : The hands-on guide to build apps with Python by Verdugo Leire(17018)
Peren F. Statistics for Business and Economics...Essential Formulas 3ed 2025 by Unknown(16893)
Wolf & Parchment: New Theory Spice & Wolf, Vol. 03 by Isuna Hasekura and Jyuu Ayakura & Jyuu Ayakura(16840)
Wolf & Parchment: New Theory Spice & Wolf, Vol. 01 by Isuna Hasekura and Jyuu Ayakura & Jyuu Ayakura(16466)
The Subtle Art of Not Giving a F*ck by Mark Manson(14375)
The 3rd Cycle of the Betrayed Series Collection: Extremely Controversial Historical Thrillers (Betrayed Series Boxed set) by McCray Carolyn(14157)
Stepbrother Stories 2 - 21 Taboo Story Collection (Brother Sister Stepbrother Stepsister Taboo Pseudo Incest Family Virgin Creampie Pregnant Forced Pregnancy Breeding) by Roxi Harding(13669)
Scorched Earth by Nick Kyme(12785)
Drei Generationen auf dem Jakobsweg by Stein Pia(10980)
Suna by Ziefle Pia(10902)
Scythe by Neal Shusterman(10365)
The Ultimate Python Exercise Book: 700 Practical Exercises for Beginners with Quiz Questions by Copy(10189)
D:\Jan\FTP\HOL\Work\Alien Breed - Tower Assault CD32 Alien Breed II - The Horror Continues Manual 1.jpg by PDFCreator(10147)
De Souza H. Master the Age of Artificial Intelligences. The Basic Guide...2024 by Unknown(10143)