Getting started with Embedded Systems and IoT
Have you ever wondered about the technologies that work behind automating your household devices? Or the ones that help the GPS in your vehicles communicate with the Internet? Have you ever wondered how you are able to leverage the power of your mobile phone speaker and camera with a tap of your fingertips? If you answered yes to any of the above questions, you are in the right
This article series will provide you with all the knowledge you need to start with your IoT and Embedded Systems journey. Throughout these articles, I’ll be giving you tips to smoothly glide through your learning process. I’ll cover hot topics and questions surrounding these technologies with every passing article.
So, to begin with, let’s understand these two highly anticipated terms which are often used interchangeably.
Embedded systems are computing hardware and software embedded in everyday things. Whereas, the Internet of Things or IoT is hardware, software, and networking capabilities that are embedded into everyday things. So an analog or digital watch is an embedded system however, a smartwatch with capabilities to connect to the internet for information updates is an IoT device.
Now that you are familiar with what these terms mean, I have my first tip for you — STICK TO EMBEDDED SYSTEMS AND PROGRESS TOWARDS LEARNING IoT ONCE YOU ARE FAMILIAR WITH IT. I advocate this because an IoT application is essentially an embedded system with the added complexity of interfacing your hardware to communicate with the internet. As a beginner, the last thing you want is to get demotivated by going through verbose documentation for several days just to find out that your device couldn’t connect to the internet due to a lame proxy preventing youfrom it. Beginner embedded system projects are far more rewarding in these terms.
Now, we are ready to dive into the interesting stuff, how to start developing your own embedded systems projects?
Choosing your hardware right
Your first step in this endeavor of yours would be to choose the right development board for yourself. A development board provides you with easy access to all the ports of a microcontroller, the brains of your system with some indicators for ease of debugging. A microcontroller is a small, low-cost, self-contained computer-on-a-chip. There is a wide range of hardware choices available for all sorts of applications ranging from the increasingly powerful phone-like processors to hobby development boards like the Arduino boards. So, what is the right starting point for you? Several factors should influence your choice here.
1. Don’t know anything about electronics or programming?
If you are a complete beginner and have no idea about programming or electronics, Arduino boards are a good starting point, strictly to give you an intuition about how a complete embedded system works. This is because Arduino was founded with the sole purpose of giving the power of embedded systems to the average hobbyist. However, you don’t need to get into the nitty-gritty of the Arduino ecosystem. One or two projects with follow-along guides from the Arduino website itself will be enough for starters.
Once you gain intuition about how these systems work, it’s time to get your hands on to the more sophisticated stuff. There are several microcontrollers you can go for like ARM, PIC or AVR microcontrollers, you can even go for a Raspberry Pi.
2. Do you already know a programming language? Which one?
These systems can be programmed in many programming languages, some more commonly used than others. A smart choice would be to go for an AVR or ARM microcontroller if you don’t know any programming language or know a little bit of C/C++, however, if you are familiar with python go for a Raspberry Pi. Choosing a language can be an intimidating task. But, don’t worry! We’ve got you covered as we discuss this in detail in our next post.
Some development boards are cheaper than others. A Raspberry Pi can cost you as much as 8 to 10 times more than an AVR or PIC microcontroller. If you are just testing the waters and don’t want to spend as much, you now know what to go for.
4. Keeping IoT in mind
Yes, I did tell you to focus on embedded systems and not think about IoT at this point. But when investing in a development board you would want to consider it. This is because some development boards come with a wi-fi component integrated while others don’t. Getting one that has a wi-fi module will save you from the hassle of integrating an external component with the board or buying a new board altogether to start learning to build IoT applications.
5. LEDs, switches, LCDs, and keypads
Apart from the development board, you need some peripherals to work with. These peripherals are input and output devices that work on the microcontroller’s instructions. LEDs, LCDs, switches, IR sensors, and keypads will be enough to cover all the basic concepts used in interfacing input and output devices with a microcontroller.
Now you know what hardware to go for, right? But really, do you?
Once you start searching your favourite marketplace for your first development kit, you are bound to get overwhelmed by a zillion different microcontroller models powering these boards by different manufacturers. They are different in so many ways, be it the number of bits, memory devices used, RISC or CISC architecture, memory architecture employed, and whatnot. However, all you need to worry about as a beginner is that it should be working on more than 8-bits and a RISC architecture. Don’t worry about what this means at the moment. Just remember that this will provide you with good enough processing speed for all your projects and will help you reduce the lines of code you need to write exponentially.
Finally, you now know what hardware is best for you. So, let the learning begin!
Written by: RITESH SOUN (General Secretary), BOOLEAN(Tech Society of SVC)