Research on IOT for GeoServer

How to config Azure IoT hub:

Quickstart: Send telemetry from a device to an IoT hub and read the telemetry from the hub with a back-end application (C#)
Create an IoT hub

This section describes how to create an IoT hub using the Azure portal.

Log in to the Azure portal. Choose +Create a resource, then choose Internet of Things. Click Iot Hub from the list on the right. You see the first screen for creating an IoT hub. Screenshot showing creating a hub in the Azure portal Fill in the fields.

Use VS Code as IoT Hub Device Simulator — Say Hello to Azure IoT Hub in 5 Minutes

https://blogs.msdn.microsoft.com/iotdev/2018/07/12/use-vs-code-as-iot-hub-device-simulator-say-hello-to-azure-iot-hub-in-5-minutes/

 

Subscription selected: Visual Studio Enterprise Resource Group selected: DroneFormToTCOMS Location selected: Central US Pricing and scale tier selected: F1: Free tier Creating IoT Hub: GeoEventIOT

...........................................................................................................................
IoT Hub 'GeoEventIOT' is created.

- Then create device:

  • Register a device

- A device must be registered with your IoT hub before it can connect. - Click ... > Create Device at AZURE IOT HUB DEVICES tab, or type Azure IoT Hub: Create Device in Command Palette. - Enter device ID and press Enter. - Wait a few seconds until the new device is created. - create device

 

Monitor device-to-cloud (D2C) message

You could also use your favorite programing language (e.g. C#, Go, Java, Node.js, PHP, Python and Ruby) to quickly generate an Azure IoT application.

 

generate app

Another way to create device simulation by VS studio:
https://marketplace.visualstudio.com/items?itemName=ErichWangMSFT.AzureIoTHubSampleofDeviceSimulation

Use VS Code to call Azure IoT Hub REST APIs

Create and control an IoT device connected to an IoT hub (.NET)

Device Simulation by Microsoft Azure IoT solution accelerators

https://www.azureiotsolutions.com/Accelerators#description/device-simulation

Microsoft Azure Connectors

In GeoEvent Server, need install the Azure IoT connector for GeoEvent:
Features
•Azure Transport and Connectors

Instructions

Building the source code:
1.Make sure Maven and ArcGIS GeoEvent Server SDK are installed on your machine.
2.Run 'mvn install -Dcontact.address=[YourContactEmailAddress]'

Installing the built jar files:
1.Copy the *.jar files under the 'target' sub-folder(s) into the [ArcGIS-GeoEvent-Server-Install-Directory]/deploy folder.

Requirements
•ArcGIS GeoEvent Server (Certified with version 10.6.x).
•ArcGIS GeoEvent Server SDK.
•Java JDK 1.8 or greater.
•Maven.

$PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Users\xubi\AppData\Local\Microsoft\WindowsApps;C:\Java\bin;C:\apache-maven-3.6.0\bin;

So I install the java, by check: java -version

I install the Maven, by check: mvn -v

after run the mvn install -Dcontact.address=bill.xu@tc.gc.ca
under azure-for-geoevent\azure-event-hub-transport\target

I got the 3 jar files in my local, then copied into Geoevent server directory:
C:\Program Files\ArcGIS\Server\GeoEvent\deploy

Install extension in CI on azure portal to monitor the iot hub:https://docs.microsoft.com/en-us/cli/azure/ext/azure-cli-iot-ext/iot?view=azure-cli-latest

Review the extension wiki tips to maximize usage https://github.com/Azure/azure-iot-cli-extension/wiki/Tips

az iot hub monitor-events GeoEventIOTDevice --login "HostName=GeoEventIOT.azure-devices.net

;SharedAccessKeyName=iothubowner;SharedAccessKey=EIZSt9kzLAUwI9zYGFeYdxWdoO3KZbf1Mk2FcoHcr0U="

Understand Different Connection Strings in Azure IoT Hub

 

  1. Get Event Hub-compatible endpoint by clicking Endpoints --> Events, we need use it in next step

  2. Use connection string got in IoT Hub Connection String, replace HostName=<Host Name> with Endpoint=<ENDPOINT> got in step 1

2019-01-09 Event Hub connector works. This document is the detail setting screenshots. (IoT hub connector is not working for input)
GeoEvent_IoT_Setting.docx

What is a stream service?

A stream service is a type of ArcGIS Server service that emphasizes low latency, real-time data dissemination, for client-server data flows. Clients connecting to a stream service begin receiving data immediately upon subscribing to the service. Clients can specify and reconfigure both spatial and attribute constraints without first unsubscribing and then reconnecting to the service.

The illustration below compares how feature data has traditionally been received, processed, and consumed with how real-time data is received and broadcast using stream services.

Traditional feature data workflow versus real-time data received and broadcast with stream services

https://scaug.org/resources/REGIONAL/CONFERENCES/2018_SAN_ANTONIO_SCAUG_CONFERENCE/Presentations/Geoevent.pdf
Real-Time GIS will

  • work with Real-Time Data,

  • apply Real-Time Analytics,

  • Give Real-Time Notifications and Alerting;

??? Can Stream service add into storage?

Fight Sensor Demo:https:

//github.com/mzesri/flight-sensor-demo

From this Demo, setting for GeoEvent server:

Live Web Map:
http://arcg.is/2k4VVh5

For AWS IOT:

Mobile solution:

then create local wifi from the button;

Lambda setting at background:

IFTTT website:

-->Maker channel

Reference: