Introduction
The Internet of Things (IoT) refers to the network of physical objects such as devices, vehicles, appliances and lots more embedded with sensors, software, and other technologies that enable them to connect and exchange data with other devices and systems over the internet. IoT represents a significant technological advancement, enabling a more connected and automated world, driving innovation across various sectors.
Vital Components of IoT
Devices/Sensors:
- These are the physical objects that collect data from their environments. Examples include temperature sensors, smart thermostats, health monitors, and industrial machines.
Connectivity:
- The collected data needs to be transmitted to a central location for processing. This is done through various communication protocols such as Wi-Fi, Bluetooth, Zigbee, cellular networks, or other specialized IoT protocols.
Data Processing:
- Once the data is collected and transmitted, it is processed and analyzed. This can happen at the edge (near the data source) or in the cloud, depending on the application.
User Interface:
- The processed data needs to be accessible to users. This can be through dashboards, mobile apps, or other interfaces that allow users to monitor and control their IoT devices.
Area of Applications of IoT
Smart Home:
- Devices like smart thermostats, smart lighting, and security systems make homes more efficient and secure.
Wearables:
- Fitness trackers and smartwatches monitor health metrics like heart rate, sleep patterns, and physical activity.
Industrial IoT (IIoT):
- Used in manufacturing and supply chain management to monitor equipment health, optimize operations, and increase efficiency.
Smart Cities:
- Implementing IoT in city infrastructure to improve energy efficiency, reduce traffic congestion, and enhance public services.
Healthcare:
- Remote patient monitoring, smart medical devices, and telehealth services improve patient care and reduce healthcare costs.
Creating a practical IoT solution using Azure IoT Hub
To achieve this, follow steps below:
Step 1: Set Up Azure IoT Hub
Create an IoT Hub:
Sign in to the Azure Portal. If you do not have one, you can create a free account here.
On the search bar, Search and select
IoT Hub
.
- click create
Configure the IoT Hub:
Subscription: Select your subscription.
Resource group: Create a new resource group or use an existing one.
Region: Select a region close to you.
IoT Hub Name: Provide a unique name for your IoT Hub.
Tier: select free
Click Review + create, then Create.
- Once the deployment is complete, go to the resource.
Step 2: Register a Device
on the left pane of the IoT Hub created, navigation to device Management
select device
Click + Add Device.
on the create a device menu, Provide a unique device ID.
Click Save.
Note Down Device Connection String:
Select the device you just created.
click on the copy icon beside the Primary Connection String, copy it. paste it somewhere, you will need it for your device simulation.
Step 3: Configure IoT Hub to Route Data to Blob Storage
Create message routing to Azure Blob Storage
Navigate to your IoT Hub.
Go to Hub Settings
Select Message routing.
under route tab, Click + Add
For end point type, Select storage
Give the endpoint a name.
click Pick a container
Create a storage account and in turn create a container or select an existing one if you have one created already. For this project, I will be creating a new storage account here.
- click +Storage account
Provide a name for the storage account.
click ok
Once the storage is deployed, click on it to open and add a container.
click + container
Provide a name for the container. Ensure to follow the naming convention.
click create
Click on the container you created.
Click select to return to create a route page.
Under encoding, pick JSON
click create and next
provide a route name. Ensure enable this route is checked.
For data source, Choose Device telemetry message.
Click test, test route. Ensure you see "the message match the query" and then continue.
click create +skip enrichments or create +add enrichments. Here, we will create +add enrichments.
Add a name and value if you choose create + add enrichments
Click add
Ensure you can see the created route back to top
Create File Upload
Navigate to your IoT Hub.
Select Hub setting.
Click File upload.
Click select Azure storage container
Select container and storage account you created.
save
- Upload Image to IoT plug and play:
Go to your smartphone app store, download and install IOT plug and play app and then open the app.
click on scan QR code then click connect manually,
paste the primary connection string copied earlier on the Iot hub device connection string path.
click connect.
choose upload image.
Upload any image of your choice
Step 4: Verify Data in Blob Storage
Once your connection to the IoT plug and play is successful, a folder with the telemetry data will be created for you. Another folder with the uploaded file will be created too after file upload is created.
- Go to Your created storage container in Azure, click the folders to view the image uploaded.
To view telemetry data,
click the folder containing the name of your IoT. Here it is amazing-world-iot. Open it until you see a file with .json extension.
click on the three dot on right of the file to download the .json file or generate SAS link
Open it on visual studio code. The telemetry data should look like this when opened.
Step 5: Simulate a Device to Send Telemetry Data (Practical IoT Solution)
Communication from device to cloud
On the IoT hub, go to device
Select your device to open it
click on device twin and notice editable in line 37
go to IoT plug and play app
click on property and go to editable
edit it with any message and send
- go back to device twin and notice the message sent appeared in line 37.
Using Direct Method
On the IoT hub, go to device
Select your device to open it
Click on direct method
Provide a method name for example lightOn
Under payload, write a JSON command. for this guided we will use existing command, copy and paste any of the commands below
for light on,
{
"duration ": 3,
"deley": null
"pulse": 2
}Click invoke method