Академический Документы
Профессиональный Документы
Культура Документы
Things Gateway
David Woodard, Eurotech
No connectivity
options required
Business
Application
Internet /
TCP/IP
Single or no special
application on gateway
Only one type of
Gateway HW & SW
Only one type of
device / sensor
Service
Gateway
Sensors,
Actuators,
Displays,
Customer specific
business logic
Business
Application
Internet /
TCP/IP
xDSL
Cable
Ethernet
2G /
2.5G
WiFi
3G /
LTE
Satellite
WiMAX
Other
Sensors,
Actuators,
Displays,
Business
Applications
?
Sensors,
Actuators,
Displays,
IoT Architectures
@
Business
Applications
M2M
Integration
Platform
Application
Framework
+
Multi-Service
Gateway
Sensors,
Actuators,
Displays,
Code
Code
on
Code
OSGi
Java SE Embedded
Linux
Hardware
Birth of
June 16,
2013
December
16, 2013
v0.7.0
August14,
2014
September
25, 2014
Eclipse
www.eclipse.org/kura
Embedded App
Simplify the design, deployment and remote
management of embedded applications.
Modular software components
Manage cloud connectivity
Configure the network, such as Wi-Fi and
cellular bearers, firewalling and routing, etc.
Support different protocols to connect to
different servers or devices (ex. MQTT, Serial,
Modbus, CANBus).
Allow for remote application and device
management and configuration.
Cohesive and integrated ensuring application
portability
Java / OSGi
Linux OS
Open HW
Industrial
HW
Services
Your Application
Your Application
Data Services
Field Protocols
MQTT Paho
Modbus
Network
Configuration
Network Configuration
Cellular, Wi-Fi,
Ethernet
Firewall,
Port Forwarding
CANBus
Link Monitors
Device Profile
Clock Service
Watchdog
Custom Protocols
Administration GUI
Updates
Management
Configuration
Management
Remote Management
Remote Access
(VPN)
Applications
Device Abstraction
javax.comm
javax.usb / udev
GPS Position
Developers Experience
Emulate on PC
Deploy on Target
Cloud Managed
One-click Deployment
Eclipse Plugin
Remote Debugging
Remote OSGi
Management via MQTT
Web-based Console
Network Services
I2C
Humidity Sensor
Light Sensor
GPIO
OSGi Services
CloudClientListener (From Kura)
Provided service for handling messaging events (connection
established, message arrived, message sent, etc.)
CloudService (From Kura)
Consumed service to manage connection to cloud across multiple
applications, publish life cycle messages, serialize/deserialize
compressed data payload, and more.
SensorChangedListener (From Application)
Provided service to send MQTT message once a sensor has
detected a change
GreenhouseSensorService (From Application)
Provided service for getting values from sensors and setting
actuator values (i.e. LED)
Greenhouse Application
public class GreenhousePublisher implements ConfigurableComponent,!
!
!CloudClientListener, SensorChangedListener {!
!
private static final String APP_ID = "greenhouse-demo";!
!
_cloudClient = _cloudService.newCloudClient(APP_ID);!
_cloudClient.addCloudClientListener(this);!
!
@Override!
public void onConnectionEstablished() {!
!_cloudClient.subscribe("#", 0);!
}!
!
@Override!
public void sensorChanged(String sensorName,Object newValue) {!
!KuraPayload payload = new KuraPayload;!
!payload.setTimestamp(new Date());!
!payload.addMetric("value", newValue);!
!int messageId = cloudClient.publish(topic, payload,!
!
!
!
!
!qos, retain, 2);!
}!
}!
GreenhouseSensorService
public class Pi4JGreenhouseSensorService implements !
!GreenhouseSensorService {!
!
_gpioController = GpioFactory.getInstance;!
_i2cbus = I2CFactory.getInstance(I2CBus.BUS_1;!
!
!
!!
_temperatureSensor = _i2cbus.getDevice(0x40);!
!
_lightActuator =_gpioController.provisionDigitalMultipurposePin(!
!
!RaspiPin.GPIO_00, "led, PinMode.DIGITAL_OUTPUT);!
@Override!
public void setActuatorValue(String actuatorName, Object value){!
!_lightActuator.setState("on".equals(value));!
!notifyListeners("light", value);!
}!
}!
Business Logic
actuator
sensors
temperature
humidity
Kura Payload
Timestamp
Metrics:
value
warn
lux
light
Kura Payload
Timestamp
Metrics:
value
on
Java/OSGi
Linux OS
on
on
Java/OSGi
Linux OS
on
Thank You!
www.eurotech.com