1. Doug Seven, Josh Holmes, Ivan Judson
Microsoft DX-TED, Partner Catalyst Team
Get settled and start preparing your machine
by following the instructions at…
http://ThingLabs.io/arduino/00/
@ThingLabsIo
2. FieldGateways
ProtocolAdapters
OSSProject
CloudGateway
EventHub->IoTHub
Hot Path Analytics
Azure Stream Analytics, Azure Storm
Cold / Batch Analytics & Visualizations
Azure HDInsight, AzureML, Power BI,
Azure Data Factory
Hot Path Business Logic
PaaS V2 & Actor Framework
EnterpriseProcessConnections
BizTalkServices,NotificationHubs
Devices
Linux,Android,iOS,RTOS,Windows
Device
Connectivity
Analytics &
Operationalized Insights
Business
Connectivity
3. FieldGateways
ProtocolAdapters
OSSProject
CloudGateway
EventHub->IoTHub
Hot Path Analytics
Azure Stream Analytics, Azure Storm
Cold / Batch Analytics & Visualizations
Azure HDInsight, AzureML, Power BI,
Azure Data Factory
Hot Path Business Logic
PaaS V2 & Actor Framework
EnterpriseProcessConnections
BizTalkServices,NotificationHubs
Devices
Linux,Android,iOS,RTOS,Windows
Device
Connectivity
Analytics &
Operationalized Insights
Business
Connectivity
4. MCU + Atheros /
Linux
MCU (e.g. ATMega) ARM/Atom / Linux, Windows
Micro-controller (MCU) MCU + SoC Micro-Computer
Example Arduino Pro
Mini
Arduino Uno Arduino Yún Raspberry Pi 2 MinnowBorad MAX
Micro-
controller
ATmega168 ATmega328 ATmega32u4 -- --
Processor
-- --
Atheros AR9331
(Wi-Fi SoC)
ARM Cortex-A7 Intel Atom E3825
GPU No No No Yes Yes
11. Voltage = current (in amps) x resistance
V = IR or R = V/I or I = V/R
Resistance (R) = Voltage (V) / Current (I)
R = 5V / 15mA (1,000 milliamps = 1 amp)
R = 5 / .015
R = 333.333 Ohms (330 Ohms is close enough)
R = 5V / 10mA
R = 5/.01
R = 500 Ohms (560 Ohms is close enough)
12. 5mm Green LED (1)
330-Ohm 1/4 Watt resistor
(Orange-Orange-Brown) (1)
http://ThingLabs.io/arduino/01/
14. A voltage divider splits input
voltage input amongst two or
more components.
The resisted voltage indicates
the value.
Brighter light == Less
resistance;
20. Nitrogen is an open-source, JavaScript backend for IoT.
Nitrogen provides
Device Management
Security and permissions
Data Ingest
Command & Control
Nitrogen includes a JavaScript client library for device and web applications
25. isRelevant – should I care about the message?
Message type is _lightState or _lightLevel and
the message is either from or to this device ID
isCommand – do I need to execute the message?
Message type is _lightLevel
obsoletes – do I care any more? (e.g. have I already processes this)
Does the CommadManager think this is obsolete?
Is the downstream message _lightState, and
is it in response to the specified upstream message, and
is the upstream message type _lightLevel
executeQueue – do whatever needs to be done based on the message
Iterate the activeCommands and perform some action
start – get things going
Starts the CommandManager, gets all the messages and subscribes to future messages