Connect Raspberry Pi online simulator to Azure IoT Hub (Node.js)
In this tutorial, you begin by learning the basics of working with Raspberry Pi online simulator. You then learn how to seamlessly connect the Pi simulator to the cloud by using Azure IoT Hub.
If you have physical devices, visit Connect Raspberry Pi to Azure IoT Hub to get started.
What you do
- Learn the basics of Raspberry Pi online simulator.
- Create an IoT hub.
- Register a device for Pi in your IoT hub.
- Run a sample application on Pi to send simulated sensor data to your IoT hub.
Connect simulated Raspberry Pi to an IoT hub that you create. Then you run a sample application with the simulator to generate sensor data. Finally, you send the sensor data to your IoT hub.
What you learn
- How to create an Azure IoT hub and get your new device connection string.
- How to work with Raspberry Pi online simulator.
- How to send sensor data to your IoT hub.
Overview of Raspberry Pi web simulator
Click the button to launch Raspberry Pi online simulator.
[!div class="button"] Start Raspberry Pi simulator
There are three areas in the web simulator.
- Assembly area - The default circuit is that a Pi connects with a BME280 sensor and an LED. The area is locked in preview version so currently you cannot do customization.
- Coding area - An online code editor for you to code with Raspberry Pi. The default sample application helps to collect sensor data from BME280 sensor and sends to your Azure IoT Hub. The application is fully compatible with real Pi devices.
- Integrated console window - It shows the output of your code. At the top of this window, there are three buttons.
- Run - Run the application in the coding area.
- Reset - Reset the coding area to the default sample application.
- Fold/Expand - On the right side there is a button for you to fold/expand the console window.
[!NOTE] The Raspberry Pi web simulator is now available in preview version. We'd like to hear your voice in the Gitter Chatroom. The source code is public on Github.
Create an IoT hub
In the Azure portal, click New > Internet of Things > IoT Hub.
In the IoT hub pane, enter the following information for your IoT hub:
Name: It is the name for your IoT hub. If the name you enter is valid, a green check mark appears.
Pricing and scale tier: Select the free F1 tier. This option is sufficient for this demo. See pricing and scale tier.
Resource group: Create a resource group to host the IoT hub or use an existing one. See Using resource groups to manage your Azure resources.
Location: Select the closest location to you where the IoT hub is created.
Pin the dashboard: Check this option for easy access to your IoT hub from the dashboard.
Click Create. It could take a few minutes for your IoT hub to be created. You can see progress in the Notifications pane.
Once your IoT hub is created, click it from the dashboard. Make a note of the Hostname, and then click Shared access policies.
In the Shared access policies pane, click the iothubowner policy, and then copy and make a note of the Connection string of your IoT hub. For more information, see Control access to IoT Hub.
Register a device in the IoT hub for the your device
- In the Azure portal, open your IoT hub.
- Click Device Explorer.
In the Device Explorer pane, click Add to add a device to your IoT hub.
Device ID: The ID of the new device. Device IDs are case sensitive.
Authentication Type: Select Symmetric Key.
Auto Generate Keys: Check this field.
Connect device to IoT Hub: Click Enable.
Click Save.
- After the device is created, open the device in the Device Explorer pane.
Make a note of the primary key of the connection string.
Run a sample application on Pi web simulator
In coding area, make sure you are working on the default sample application. Replace the placeholder in Line 15 with the Azure IoT hub device connection string.
Click Run or type
npm start
to run the application.
You should see the following output that shows the sensor data and the messages that are sent to your IoT hub
Next steps
You’ve run a sample application to collect sensor data and send it to your IoT hub.