Dive into the fundamentals of IoT with this practical guide for beginners. Learn the key concepts and skills to kickstart your journey today!
I have recently become obsessed with IoT for beginners. Where can someone start when trying to create custom IoT devices?
Here I plan on clearing things up.
What do I need to get started with the fundamentals of IoT?
You don’t need a Masters degree in computer science to understand and start developing IoT devices. All you need to start is an understanding of how everything fits into place. I’ll start you off by giving you a quick definition to clear things up.
The Internet of Things was a term used to describe a system where the physical world can be connected to the cloud.
The cloud includes the data processing and dispatches actuator requests. The “things” part of IoT, also known as the edge of the network or just edge, is used to allow the system to collect data and interact with the physical world.
Now that that is sorted, here are the IoT fundamentals you’ll need to understand:
- Actuators and sensors
- MCU and SBC
- Connectivity
- Cloud and Data Processing
- UI
Actuators and Sensor
Simply put, actuators interact with the world and sensors collect data about the world.
Actuators are the muscles of an IoT system. These are things like smart speakers, motors, solenoids and pumps – just about anything that moves.
Sensors are the eyes of the IoT system. They see the world as it is and report back to the cloud for processing.
Let’s take the example of a robot vacuum cleaner (great invention for people who dislike cleaning like me). The sensors would be the built-in camera, proximity sensor and the bumper in front of it. These parts let the robot map out the house and avoid obstacles while vacuuming. The actuators would be the motors controlling the wheels and the vacuum built inside. They allow the robot to do its job.
Actuators and sensors are integral to digital control systems, automating various processes in industrial applications.
MCU & SBC
MCUs and SBC are core IoT technologies that collect data from the sensors, transmit data to the cloud for processing to process the data themselves, and then tell the Actuators what to do. They are usually programmed in C++ or Python.
Although their tasks are similar, they are very different bits of hardware.
MCU
No, MCU is not the marvel cinematic universe in this case. It stands for Microcontroller Unit. MCUs are single chip solutions that are programmed through another computer to do specific tasks. They are really cheap and are commonly used for specific tasks in embedded systems.
Some examples include:
- Arduino UNO
- ESP8266
- STM32L010RB Eval Brd Development Kit
- Nordic NRF7002-DK
SBC
Single-Board Computers (SBC) on the other hand are full computers. They can have OS installed. Plug in a keyboard, mouse, and monitor and you can start using it as a regular PC. It has much higher functionality compared to the MCU. Overall, SBC are significantly more expensive that MCUs.
Some examples of SBC include:
- Raspberry Pi 4b
- LattePnada 3 Delta
- ASUS Tinker Board S R2.0
- Odroid N2+
Connectivity
Connectivity is the basics of IoT networks. It dictates how the IoT devices communicate to eachother and to the cloud.
Now, although IoT networks are mostly wireless networks, they can still be connected to through ethernet cables (esspesially single paired ethernet is becoming more and more popular).
Your smart devices need some way to communicate with each other. This is where connectivity comes into play.
The hardware can connect through different methods and protocols such as Wi-Fi, Bluetooth, MQTT, or even just through a wired connection like ethernet.
At its core, connectivity involves data transmission, data reception and network connection. These fundamental capabilities allow IoT devices communicate with eachother along with other gateways, apps, servers, routers, etc. and enable them to carry out their tasks.
Cloud and Data Processing
Most of the processing in IoT is done in the cloud through processing services provided by Computing service providers such as MS Azure IoT, Google Cloud IoT, Cisco’s IoT cloud solutions, and AWS IoT. But, data processing on the edge of the network is becoming more popular thanks to AI.
Cloud computing services provide platforms, infrastructure and software for clients, like you and I, who want to start producing IoT devices but don’t want to cough up a lot of money. They generally pay as you go and so you only pay for what you use – which is convenient.
Edge computing / Edge Processing processing the big data received by sensors using embedded AI on MCU and SBC, before sending the processed data to the cloud for further processing.
User Interface
People will still need to somehow be able to interface with your IoT device. Commonly this is done through apps, dashboards, HomeAssistant Widgets, buttons, and screens.
My most recent project involved a UI of RGB LEDs and buttons. Very simple interface and the different colours and blinking patterns of the LEDs told me how to troubleshoot the device. This is good for low cost devices.
Tools to get Started
Now you know about the basic concepts of how to get started in IoT dev, let me give you some tools that you can start on some introductory projects for IoT. Cisco internal system engineers often provide free training and resources to help beginners get started with IoT development.
Hardware
You’ll need a Laptop / PC for most of the programming if you are using an MCU.
You’ll need an SBC or MCU – I recommend the raspberry pi 4b. Full SBC and will be able to handle just about all IoT projects you want to complete.
Software
Integrated Development Environment (IDE) VSC or Arduino IDE- I use Microsoft’s visual studio code (VSC) with the PlatformIO IDE (PIO) extension. VSC allows me to remotely program devices and PIO lets me connect to and program most dev kits that I use.
VSC can also be installed on the raspberry pi to program there directly.
CounterFit fake IoT Hardware is a great way to get started without needing to buy any actuators and sensors. Just start programming right away.
Skills
You need to know how to program. Either Python or C/C++ will do.
Knowing how to set up networks and how network security works would also come in handy. Understanding IoT security is also crucial, as many devices are vulnerable to attacks due to default passwords and lack of monitoring.
Additionally, the basics of how to use the command line in Linux and Windows is a skill that you will need to develop.
Projects and Resources
I have a list of IoT projects for people at different skill levels to complete. Projects from setting up a Home Assistant server to creating a Smart Mirror. These projects will help you understand the potential of IoT solutions in various industries.
There are also courses online that are great introductions to IoT development. My favorite is MS IoT for Beginners. But I suggest joining the Reddit forum r/IOT for help in getting started. They have long threads on helping people get started.
FAQs
What are the fundamental components of IoT?
The fundamental components of IoT are actuators & sensors, MCU & SBC, connectivity, cloud & data processing, and user interface (UI).
What are the 5 C’s of IoT Security?
The 5 C’s of IoT stand for connectivity, continuity, compliance, coexistance, and cybersecurity. In order for IoT devices to succeed in the market, the 5 C’s need to be addressed and go through vigorous testing. But there is another C that needs to be addressed: Customer experience.