DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
11 Monitoring and Observability Tools for 2023
Learn more
  1. DZone
  2. Data Engineering
  3. Data
  4. Getting Started With IoT Hobbyist Projects

Getting Started With IoT Hobbyist Projects

Thanks to low-cost project components, anyone can tinker with IoT.

Francesco Azzola user avatar by
Francesco Azzola
CORE ·
Mar. 29, 19 · Tutorial
Like (6)
Save
Tweet
Share
15.77K Views

Join the DZone community and get the full member experience.

Join For Free

This article is featured in the new DZone Guide to IoT: Connecting Devices & Data. Get your free copy for insightful articles, industry stats, and more!

The Internet of Things is revolutionizing not only several aspects of our lives, but it is also having a big impact on several areas, for example:

  • Manufacturing
  • Transportation
  • Utilities
  • Smart cities
  • Smart homes

An interesting aspect of IoT is that we can use it to build hobbyist projects and we can experiment with them by ourselves, thanks to the availability of low-cost components.

When we approach the IoT for the first time, we may feel confused and disoriented, because it involves several disparate technologies, some of which are widely used, such as HTTP, and others which are specific to IoT development.

Moreover, an important role is played by hardware components such as sensors and microcontrollers. This article aims to be a practical guide to help you approach the development of an IoT project from a hobbyist's point of view.

When you start building your first IoT project, there are several pieces you need to consider. Generally speaking, an IoT project is built on several small bricks, including:

  • Sensors
  • Prototyping boards
  • IoT cloud platforms
  • External peripherals
  • Motors
  • Applications developed using different programming languages

Before analyzing the roles these bricks play, it is important to briefly describe what kind of IoT projects you can build by yourself.

Use Cases

There are countless projects we can build to experiment with IoT tech. From the hobbyist's point of view, we can group these projects into these categories:

  • Sensor-based projects
  • Cloud-based projects
  • Projects with external peripherals (such as LEDs, displays, servos, motors, etc.)

Sensor-Based Projects

This is the easiest IoT project you can build. These kinds of projects use sensors, such as:

  • Temperature sensors
  • Pressure sensors
  • Humidity sensors
  • Light sensors
  • Gyroscopes
  • Gas sensors

For these projects, we want to read the sensor data values and use them locally without the need for an internet connection. A typical example could be a weather station or a system that monitors gas leakages.

Cloud-Based Projects

This is a more complex project in which we use an IoT cloud platform to store and analyze data. An IoT cloud platform is a cloud platform that provides several services to simplify IoT project development. These services can include:

  • Data ingestion
  • Data analysis
  • Data visualization
  • Connection and device management
  • Provide security and authentication

This type of project is an extension of the sensor-based project, except the data that is acquired are sent to the IoT cloud platform through the Internet. It is also possible to use IoT cloud platforms to remotely control these devices.

Projects With External Peripherals

These IoT projects use external peripherals connected to prototyping boards. For example, a simple IoT project might use an LED strip connected to a prototyping board (such as Arduino or ESP8266). We can also connect DC motors or servos to build a simple robot. Another interesting use case is based on a relay that we can use to turn an appliance on or off.

Another interesting use case is based on the integration between smartphones and an IoT ecosystem. Almost all of the categories described above can be integrated with a smartphone so that we can control a prototyping board remotely or visualize information gathered by sensors.

IoT Project Architecture Overview

Before starting an IoT project, it is useful to have an overview of the architecture of an IoT project so that you can understand the role played by individual components.

Image title

This simplified IoT project overview is based on using prototyping boards.

Generally speaking, at the edge of an IoT system, there are sensors connected to some prototyping boards. In this context, the prototyping board controls the sensors and acquires data from them. At this level, there are also actuators, which are devices that we can use to intervene in the physical world. For example, they can switch lights on or off, open or close a door, and so on.

These prototyping boards do not do heavy work. Usually, these kinds of prototyping boards exchange data with a gateway that collects all the information coming from several boards/sensors, applies some data transformation to it, and sends it to a cloud platform.

The simplest way to include an IoT cloud platform is by using data ingestion and data visualization. A common project is to visualize the data coming from sensors, which requires a cloud platform to both analyze the data and, consequently, to take some action to implement a specific business process. For example, using a specific algorithm and the data gathered from soil sensors, an IoT cloud platform could send a command to an actuator to turn on the watering system in a garden. The rise of machine learning algorithms integrated with IoT are creating new scenarios where machine learning can be used to control devices and appliances.

Another typical use case of an IoT platform is to integrate cloud services so that when an event occurs, it will trigger a chain of events that involves those services. For example, it is possible to send a notification to our smartphone when a value measured by a sensor is over a threshold.

There are several IoT platforms that provide a free account with some limitations, which we can use to build a hobbyistIoT project.

When you build an IoT project, you can simplify the architecture shown above, connecting the prototyping boards directly to the IoT platform as long as the prototyping board supports the platform protocols and security standards.

The rise of machine learning algorithms integrated with the IoT are creating new scenarios where machine learning can be used to control devices and appliances

IoT Protocols

In the project overview defined above, it is important to specify and describe the IoT protocols that we should use when building a project.

As mentioned before, in this context there are some protocols we already know from other applications, such as HTTP/HTTPS, but there are other protocols specific for IoT and more oriented to an M2M data exchange. One of the most widespread protocols is MQTT. It is a widely adopted, message-based, lightweight protocol based on the publish/subscribe (pub/sub)paradigm. To make things simple, the key component is an MQTT-broker that dispatches messages to one or more MQTT clients. The broker uses topics to filter the MQTT clients that will receive the message. There are several MQTT implementations for different prototyping boards (Arduino, Raspberry, and so on).

Almost all IoT platforms use MQTT to exchange data. There are other protocols that we'll just mention without covering them in depth, including AMQP, CoAP, and Stomp.

IoT Prototyping Boards

By now, we have described which kind of IoT projects we can build by ourselves as well as prototyping boards. Nowadays, there are several boards, which have different features and computing power. The classic development boards commonly used when developing DIY IoT projects are:

  • Arduino family boards
  • Raspberry family boards
  • ESP boards
  • Particle boards

This is just a small list of the dozens of development boards available on the market that can fulfill our needs. It is important to select the right board according to the role it will play in our IoT project. A rule of thumb is:

  • If we only need to control sensors or actuators, we can use an Arduino Uno or compatible boards.
  • If we require an internet connection, we can select an ESP family board (i.e ESP8266) that has built-in Wi-Fi support.
  • If we need more computational power because we need to implement application logic, we can use a Raspberry Pi 2 or 3. We could run some machine learning algorithms or frameworks on these boards (see Tensorflow).
  • If you want to develop an IoT project within a complete ecosystem where you do not have to worry about selecting a specific IoT platform, you might consider Particle boards.

Conclusion

At the end of this brief introduction to IoT, we've reviewed the dozens of IoT projects you can build to experiment with IoT.

These low-cost components and boards allow us to take our first steps into the IoT world without spending too much or committing to massive industrial IoT projects.

This article is featured in the new DZone Guide to IoT: Connecting Devices & Data. Get your free copy for insightful articles, industry stats, and more!

IoT Machine learning Data visualization Cloud Build (game engine) Use case Protocol (object-oriented programming)

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Key Elements of Site Reliability Engineering (SRE)
  • Introduction to Automation Testing Strategies for Microservices
  • The 5 Books You Absolutely Must Read as an Engineering Manager
  • OWASP Kubernetes Top 10

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: