Note: this article has been archived and it is not longer updated. Instructions may not be totally up to date.
This page contains technical information to help you get familiar with Azure IoT using the Azure IoT Starter Kit - Intel Edison. You will find two tutorials that will walk you through different scenarios. The first tutorial will show you how to connect your Azure IoT Starter kit to our Remote Monitoring preconfigured solution from Azure IoT Suite. In the second tutorial, you will leverage Azure IoT services to create your own IoT solution.
You can choose to start with whichever tutorial you want to. If you've never worked with Azure IoT services before, we encourage you to start with the Remote Monitoring solution tutorial, because all of the Azure services will be provisioned for you in a built-in preconfigured solution. Then you can explore how each of the services work by going through the second tutorial.
We hope you enjoy the tutorials! Please provide feedback if there's anything that we can improve.
Don't have a kit yet?: Click here
This tutorial describes the process of taking your Intel Edison Grove kit, and using it to develop a temperature, humidity and pressure reader that can communicate with the cloud using the Microsoft Azure IoT SDK.
In this tutorial, you'll be doing the following:
Note: For first time users, click here to get your Azure free trial which gives you 200USD of credit to get started.
Note: Make sure to copy down the names and connection strings mentioned into a text document for reference later.
Note: You may be asked to log back in. This is to ensure your solution has proper permissions associated with your account.
device ID
. In this case we’ll use _“EdisonGrove”, and then click Check IDdevice ID
, Device Key
, and IoT Hub Hostname
to enter into the code you’ll run on your device later Warning: The Remote Monitoring solution provisions a set of Azure IoT Services in your Azure account. It is meant to reflect a real enterprise architecture and thus its Azure consumption is quite heavy. To avoid unnecessary Azure consumption, we recommend you delete the preconfigured solution in azureiotsuite.com once you are done with your work (since it is easy to recreate). Alternatively, if you want to keep it up and running you can do several things to reduce consumption:
1) Visit this guide to run the solution in demo mode and reduce the Azure consumption.
2) Disable the simulated devices created with the solution (Go to Devices>>Select the device>> on the device details menu on the right, clich on Disable Device. Repeat with all the simulated devices).
3) Stop your remote monitoring solution while you are working on the next steps. (See: Troubleshooting)
For additional references, refer to the following:
If this is the first time you use your Intel Edison board, you will have to follow some steps to assemble it.
Edison Port | Component |
---|---|
A0 | Temperature |
At the end of your work, your Intel Edison should be connected with a working sensor. We'll test it in the next sections.
wget https://raw.githubusercontent.com/Azure-Samples/iot-hub-node-intel-edison-getstartedkit/master/remote_monitoring/remote_monitoring.js
wget https://raw.githubusercontent.com/Azure-Samples/iot-hub-node-intel-edison-getstartedkit/master/remote_monitoring/package.json
nano remote_monitoring.js
mkdir nano-installer
cd nano-installer
wget http://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz
tar xvf nano-2.2.6.tar.gz
cd nano-2.2.6
./configure && make && make install
var hostName = '<IOTHUB_HOST_NAME>';
var deviceId = '<DEVICE_ID>';
var sharedAccessKey = '<SHARED_ACCESS_KEY>';
Save your changes by pressing Ctrl+O and when nano prompts you to save it as the same file, just press ENTER.
Press Ctrl+X to exit nano.
Run the sample application using the following commands:
npm install
node remote_monitoring.js
Note: Make sure you delete or stop your remote monitoring solution once you have completed this to avoid unnecesary Azure consumption! Check out the troubleshooting section for more details.
Please visit our Azure IoT Dev Center for more samples and documentation on Azure IoT.
This tutorial describes the process of taking your Microsoft Azure IoT Starter Kit for the Intel Edison, and using it to develop a temperature and humidity reader that can communicate with the cloud using the Microsoft Azure IoT SDK.
This tutorial has the following steps:
The end result will be a functional command center where you can view the history of your device's sensor data, a history of alerts, and send commands back to the device.
Edison Port | Component |
---|---|
A0 | Temperature |
D8 | LED Socket Kit |
At the end of your work, your Intel Edison should be connected with a working sensor. We'll test it in the next sections.
Note: Make sure to copy down the names and connection strings mentioned into a text document for reference later.
Event Hub is an Azure IoT publish-subscribe service that can ingest millions of events per second and stream them into multiple applications, services or devices.
EdisonEventHub
Your choice
Your choice
Your Project Namespace, in our case “Edison2Suite”
Edison2Suite
service bus (what you named your service bus)EdisonEventHub
eventhub and go in the Configure tab in the Shared Access Policies section, add a new policy:
readwrite
Send, Listen
readwrite
policy you created.Now we will create a service to store our data in the cloud.
edisonstorage
) for the account name, Standard-RAGRS
for the type, choose your subscription, select the resource group you created earlier, then click on CreateStream Analytics is an Azure IoT service that streams and analyzes data in the cloud. We'll use it to process data coming from your device.
Log on to the Microsoft Azure Portal
In the menu, click New, then click Internet of Things, and then click Stream Analytics Job
Enter a name for the job (We chose “EdisonStorageJob”), a preferred region, then choose your subscription. At this stage you are also offered to create a new or to use an existing resource group. Choose the resource group you created earlier (In our case, Edison2Suite
).
Once the job is created, open your Job’s blade or click on the pinned tile, and find the section titled “Job Topology” and click the Inputs tile. In the Inputs blade, click on Add
Enter the following settings:
TempSensors
Data Stream
IoT Hub
Edison2Suite
(use the name for the IoT Hub you create before)service
service
primary key saved from earlierJSON
UTF-8
Back to the Stream Analytics Job blade, click on the Query tile (next to the Inputs tile). In the Query settings blade, type in the below query and click Save:
SELECT
DeviceId,
EventTime,
MTemperature as TemperatureReading
INTO
TemperatureTableStorage
from TempSensors
WHERE
DeviceId is not null
and EventTime is not null
SELECT
DeviceId,
EventTime,
MTemperature as TemperatureReading
INTO
TemperatureAlertToEventHub
FROM
TempSensors
WHERE MTemperature > 25
Note: You can change the 25
to 0
when you're ready to generate alerts to look at. This number represents the temperature in degrees celsius to check for when creating alerts. 25 degrees celsius is 77 degrees fahrenheit.
TemperatureTableStorage
Table Storage
edisonstorage
(The storage you made earlier)TemperatureRecords
Your choice - If the table doesn’t already exist, Local Storage will create itDeviceId
EventTime
1
TemperatureAlertToEventHub
Event Hub
Edison2Suite
edisoneventhub
(The Event Hub you made earlier)readwrite
0
JSON
UTF-8
Line separated
Note: Make sure to stop your Command Center jobs once you have when you take a break or finish to avoid unnecessary Azure consumption! (See: Troubleshooting)
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
git clone https://github.com/Azure-Samples/iot-hub-node-intel-edison-getstartedkit.git
command_center_node
folder in your command prompt (cd path/to/command_center_node
) and install the required modules by running the following:npm install -g bower
npm install
bower install
Open the config.json
file and replace the information with your project. See the following for instructions on how to retrieve those values.
TemperatureRecords
{
"port": "3000",
"eventHubName": "event-hub-name",
"ehConnString": "Endpoint=sb://name.servicebus.windows.net/;SharedAccessKeyName=readwrite;SharedAccessKey=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=",
"deviceId": "iot-hub-device-name",
"iotHubConnString": "HostName=iot-hub-name.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=",
"storageAcountName": "aaaaaaaaaaa",
"storageAccountKey": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==",
"storageTable": "TemperatureRecords"
}
node server.js
You should then see something similar to:
app running on http://localhost:3000
Visit the url in your browser and you will see the Node app running!
To deploy this project to the cloud using Azure, you can reference Creating a Node.js web app in Azure App Service.
Next, we will update your device so that it can interact with all the things you just created.
wget https://raw.githubusercontent.com/Azure-Samples/iot-hub-node-intel-edison-getstartedkit/master/command_center/command_center.js
wget https://raw.githubusercontent.com/Azure-Samples/iot-hub-node-intel-edison-getstartedkit/master/command_center/package.json
nano command_center.js
mkdir nano-installer
cd nano-installer
wget http://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz
tar xvf nano-2.2.6.tar.gz
cd nano-2.2.6
./configure && make && make install
Locate the following code in the file and update your connection data. See below for information how how to retrieve these values:
<IOT_HUB_DEVICE_CONNECTION_STRING>
below with that name.var connectionString = '<IOT_HUB_DEVICE_CONNECTION_STRING>';
Save your changes by pressing Ctrl+O and when nano prompts you to save it as the same file, just press ENTER.
Press Ctrl+X to exit nano.
Run the sample application using the following commands:
npm install
node command_center.js
Head back to your Node application and you will have a fully functional command center, complete with a history of sensor data, alerts that display when the temperature got outside a certain range, and commands that you can send to your device remotely.
Note: Make sure to stop your Command Center jobs once you have when you finish to avoid unnecessary Azure consumption! (See: Troubleshooting)
Please visit our Azure IoT Dev Center for more samples and documentation on Azure IoT.