4.55 out of 5
4.55
237 reviews on Udemy

Tech Explorations™ Arduino: Make an IoT environment monitor

A perfect start for the new maker: learn by creating a gadget that posts your environment data to a Web logging service.
Instructor:
Dr. Peter Dalmaris
7,075 students enrolled
English
Make simple circuits based on the Arduino board
Acquire data from sensors and display them on an LCD screen
Upload sensor data to a free cloud logging service and visualise it in a dashboard
Understand the basics of programming for microcontrollers

This course is designed for beginner makers. I will help you get started with the basics of creating circuits with the Arduino prototyping board, and by the end of this course you will have an Internet-connected home environment monitoring gadget, build with your own hands!

The only prerequisite is a basic understanding of concepts like voltage, current and resistance, and ability to download and install software on your computer. A very basic understanding of programming is a bonus, but not absolutely necessary.

Along the way, you will learn about programming, sensors, and communications.

The course is split in three parts:

Part 1 is an introduction, which will gently help you create your first circuit and open your appetite for more.

Part 2 contains a primer on making with the Arduino, focusing on the Integrated Development Environment and the sketching language.

Part 3 is about making JING. JING (not an acronym!) is the environment monitoring system that you will put together piece by piece, and line by line.

If learning by making sounds like the way to go, then this course is for you!

Materials:

To fully take advantage of this course, you will need (all of these are easily sourced from Ebay):

1) An Arduino (I suggest a genuine Arduino Uno)

2) A photoresistor

3) A DHT22 temperature and humidity sensor

4) A BMP085 barometric sensor breakout

5) A 16×2 LCD screen based on the Hitachi HD44780 driver (or compatible, these are very common)

6) A potentiometer

7) Assorted resistors

8) A small breadboard

9) Lot’s of breadboard wires.

Introduction

1
Introduction

In this introductory lecture, I'll talk a little bit about the Arduino, what it is, how it came to be, and why it is important.

I am also going to show you the gadget that you will build as you go through the course. This gadget, which I call JING (not an acronym!) will take readings for temperature, humidity, barometric pressure and light intensity from the room in which you happen to put it, and record the data on a free web service on the Internet, from where you will be able to look at them as graphs.

What parts will you need to complete this course? Here's a shopping list:

1) An Arduino, I suggest the Arduino Uno

2) An Arduino Ethernet Shield

3) A few photoresistors

4) A DHT22 sensor

5) A BMP085 sensor

6) An LCD screen, based on the common Hitachi HD44780 or compatible controller, 16 columns by 2 rows.

7) Assorted resistors

8) A potentiometer (pot)

9) A push button

10) A couple of breadboards (so you can have one for Jing and one for running experiments with)

11) Lot's of wires.

You can purchase this from my affiliate shop at http://txplore.com/components-bundle-for-beginning-arduino (fultiffled by Amazon), Ebay, element14, Sparkfun, Adafruit, among many other places.

All sketches used in this course are available for download from my Github account.

2
Please read this before continuing!
3
Components needed for this project
4
Where can you find the sketch source code?

In this video, I show you where to find all the source code used in this course so that you don't have to do any typing at all.

Please watch this video before continuing with the rest of the course!

5
Hello World! Diodes, LEDs, and your 1st circuit

In this lecture I will show you how to put together your first circuit, write the sketch for it, and then upload the sketch to your Arduino to make it all come to life. This circuit will make an LED light to blink on and off.

In the process of getting this circuit to work, you will learn some basic Arduino programming commands and structures, what is a digital output, and, of course, what is an LED!

In this Part 1, I discuss diodes and LEDs, and construct the circuit.

6
Hello World! Your 1st sketch

In this lecture I will show you how to put together your first circuit, write the sketch for it, and then upload the sketch to your Arduino to make it all come to life. This circuit will make an LED light to blink on and off.

In the process of getting this circuit to work, you will learn some basic Arduino programming commands and structures, what is a digital output, and, of course, what is an LED!

In this Part 2, I discuss the sketch.

7
Use Pulse Width Modules, make the LED fade

In the previous lecture, we created a simple circuit in which an LED blinks on and off. The Arduino sketch that drove the circuit simply wrote a HIGH or LOW value to the digital output pin 9, and the LED was turn on or off accordingly.

In this lecture I will show you how to make the LED not blink but fade on and off. We will be keeping the exact same circuit, and we'll only make a small change in the sketch to make this happen.

Arduino development basics

1
Compilers, the IDE instructions and functions

In this lecture, I’d like to talk about how the sketch that you write is translated to code that the micro-controller can understand, instructions and functions.

Then, I take you on a tour of some very useful functions that are built into the IDE.

2
Operators

There are a few components of the Arduino language that you will find yourself using very frequently, so it is worth the effort to have a good look at them and learn what they are and what they do. This will save us a lot of time later. Much of what we’ll learn in this lecture will be hands-on, so keep your Arduino board handy, with the circuit you build in the second lecture (the blinking LED).

The Arduino language can be broken down to a few basic components:

  • A syntax,
  • A few operators,
  • Several control structures
  • Functions

Assuming that you are fairly new to programming languages, I would now like to introduce you to these components through examples. If you are already familiar with these concepts, feel free to skip this lecture.

In this Part 1 (of 3), I discuss Operators.

3
Control structures

There are a few components of the Arduino language that you will find yourself using very frequently, so it is worth the effort to have a good look at them and learn what they are and what they do. This will save us a lot of time later. Much of what we’ll learn in this lecture will be hands-on, so keep your Arduino board handy, with the circuit you build in the second lecture (the blinking LED).

The Arduino language can be broken down to a few basic components:

  • A syntax,
  • A few operators,
  • Several control structures
  • Functions

Assuming that you are fairly new to programming languages, I would now like to introduce you to these components through examples. If you are already familiar with these concepts, feel free to skip this lecture.

In this Part 2 (of 3), I discuss Control Structures.

4
Frequently used functions

There are a few components of the Arduino language that you will find yourself using very frequently, so it is worth the effort to have a good look at them and learn what they are and what they do. This will save us a lot of time later. Much of what we’ll learn in this lecture will be hands-on, so keep your Arduino board handy, with the circuit you build in the second lecture (the blinking LED).

The Arduino language can be broken down to a few basic components:

  • A syntax,
  • A few operators,
  • Several control structures
  • Functions

Assuming that you are fairly new to programming languages, I would now like to introduce you to these components through examples. If you are already familiar with these concepts, feel free to skip this lecture.

In this Part 3 (of 3), I discuss frequently used build-in functions.

5
Custom functions

As your sketches grow in size and complexity, you’ll need to think about organising them so that they are easy to understand when you read them days or months after your write them, and so that the chances of introducing defects are reduced.


The best way to organise your sketches is by making good use of functions. You already know a lot about functions, since you have already played with sketches that contain at least two of them, setup() and loop(). In this lecture, you will write your first custom function, and use it in your sketch.

6
Reading and writing digital and analog values

A micro-controller’s primary task is to interact with its environment. This is done with the help of a variety of input and output devices connected to compatible pins. The Arduino Uno has 20 of those pins, and in this lecture you will learn how to use them.

The easiest way to think about interaction between a computer and its environment, is by splitting all interactions into two categories: Analog and binary (or, from now on, digital).

In this lecture (Part 1 of 2), I discuss digital and analog values and how to deal with them when reading and writing.

7
Digital and analog read/write demonstration

A micro-controller’s primary task is to interact with its environment. This is done with the help of a variety of input and output devices connected to compatible pins. The Arduino Uno has 20 of those pins, and in this lecture you will learn how to use them.

The easiest way to think about interaction between a computer and its environment, is by splitting all interactions into two categories: Analog and binary (or, from now on, digital).

In this lecture (Part 2 of 2), I show you how to take a digital reading from a push button, an analog reading from a photo-resistor and explain the voltage divider circuit.

Constructing JING

1
Measuring light with Lux and the Axel-Benz formula

In the last lecture, you learned how to connect a photoresistor to your breadboard, and how to use the analogRead function to take a raw reading.

In this lecture we will think a little bit deeper about how to deal with raw analog sensor readings, and in particular I’ll show you how to convert a raw reading from the photoresistor into a lux reading.

In this Part 1 (of 2), I introduce the Lux as the unit of measurement of light intensity, and discuss the Axel-Benz formula that will help us calibrate a photo-resistor circuit. I also explain how to convert an arbitrary reading from the photoresists to a Lux value.

2
Measuring light with a photoresistor demonstration

In the last lecture, you learned how to connect a photoresistor to your breadboard, and how to use the analogRead function to take a raw reading.

In this lecture we will think a little bit deeper about how to deal with raw analog sensor readings, and in particular I’ll show you how to convert a raw reading from the photoresistor into a lux reading.

In this Part 2 (of 2), I put the theory we learning in Part 1 to practice and create a circuit that measures light intensity in Lux.

3
Measuring temperature and humidity

In this lecture you will learn how to measure temperature and humidity. To do this, we will use a sensor from the DHT family of temperature and humidity sensors.

4
Measuring barometric pressure

In this lecture I will show you how to measure barometric pressure with the the BMP085 sensor.

5
Adding an LCD screen, setup the circuit

In this lecture I will show you how to use a character LCD screen. Once we get the screen going by showing a simple message on it (Part 1 - this), we’ll start adding the sensors to the breadboard and then create a sketch that shows their values on the screen (Part 2 - next).

6
Adding an LCD screen, adding a library and sketch walkthrough

In this lecture I will show you how to use a character LCD screen. Once we get the screen going by showing a simple message on it (Part 1 - previous), we’ll start adding the sensors to the breadboard and then create a sketch that shows their values on the screen (Part 2 - this).

7
Create an echo server with the Ethernet Shield

In this lecture, I'll show you how to connect your Arduino to the Internet with an Ethernet shield.

In Part 1, you will create a simple echo server on your Arduino. In Part 2 (next), you will learn how to transmit sensor data to a Telnet client.

8
Transmit sensor data with the Ethernet Shield

In this lecture, I'll show you how to connect your Arduino to the Internet with an Ethernet shield.

In Part 1 (previous), you created a simple echo server on your Arduino. In Part 2 (this), you will learn how to transmit sensor data to a Telnet client.

9
Emoncms, what is it, walkthrough

In this lecture I am going to show you how to create an account on Emoncms, and walk you through it’s basic features. Then, we will modify our last sketch from the previous lecture so that instead of sending the photoresistor data to the Telnet client, it will send it to Emoncms.

Once you learn how to do data logging on the cloud for the photoresistor data, we’ll expand our scope so that we log all of our sensor data to Emoncms. At that point, you will have almost completed the construction of JING. Lastly, I’ll show you how to visualise and publish all the data you have collected so that you can view them on your computer and your smartphone.

In this Part 1 of the lecture, I walk you through Emoncms.

10
Upload data from a single sensor to Emoncms

In this lecture I am going to show you how to create an account on Emoncms, and walk you through it’s basic features. Then, we will modify our last sketch from the previous lecture so that instead of sending the photoresistor data to the Telnet client, it will send it to Emoncms.

Once you learn how to do data logging on the cloud for the photoresistor data, we’ll expand our scope so that we log all of our sensor data to Emoncms. At that point, you will have almost completed the construction of JING. Lastly, I’ll show you how to visualise and publish all the data you have collected so that you can view them on your computer and your smartphone.

In this Part 2 of the lecture, I show you how to upload sensor data from a photoresistor to your Emoncms account.

11
Setting up logging and visualising data on Emoncms

In this lecture I am going to show you how to create an account on Emoncms, and walk you through it’s basic features. Then, we will modify our last sketch from the previous lecture so that instead of sending the photoresistor data to the Telnet client, it will send it to Emoncms.

Once you learn how to do data logging on the cloud for the photoresistor data, we’ll expand our scope so that we log all of our sensor data to Emoncms. At that point, you will have almost completed the construction of JING. Lastly, I’ll show you how to visualise and publish all the data you have collected so that you can view them on your computer and your smartphone.

In this Part 3 of the lecture, I show you how to log (as in "record") the data from your sensor, and how to create a visualisation in the Emoncms dashboard.

12
Completing the hardware assembly

In this lecture I am going to show you how to create an account on Emoncms, and walk you through it’s basic features. Then, we will modify our last sketch from the previous lecture so that instead of sending the photoresistor data to the Telnet client, it will send it to Emoncms.

Once you learn how to do data logging on the cloud for the photoresistor data, we’ll expand our scope so that we log all of our sensor data to Emoncms. At that point, you will have almost completed the construction of JING. Lastly, I’ll show you how to visualise and publish all the data you have collected so that you can view them on your computer and your smartphone.

In this Part 4 of the lecture, I show you how to add the remaining sensors to the breadboard, and complete the hardware side of Jing.

13
The Jing complete sketch walkthrough

In this lecture I am going to show you how to create an account on Emoncms, and walk you through it’s basic features. Then, we will modify our last sketch from the previous lecture so that instead of sending the photoresistor data to the Telnet client, it will send it to Emoncms.

Once you learn how to do data logging on the cloud for the photoresistor data, we’ll expand our scope so that we log all of our sensor data to Emoncms. At that point, you will have almost completed the construction of JING. Lastly, I’ll show you how to visualise and publish all the data you have collected so that you can view them on your computer and your smartphone.

In this Part 5 of the lecture, I walk you through the final version of the Jing sketch.

14
Completing the Jing dashboard

In this lecture I am going to show you how to create an account on Emoncms, and walk you through it’s basic features. Then, we will modify our last sketch from the previous lecture so that instead of sending the photoresistor data to the Telnet client, it will send it to Emoncms.

Once you learn how to do data logging on the cloud for the photoresistor data, we’ll expand our scope so that we log all of our sensor data to Emoncms. At that point, you will have almost completed the construction of JING. Lastly, I’ll show you how to visualise and publish all the data you have collected so that you can view them on your computer and your smartphone.

In this Part 6 (and last) of the lecture, I show you how create visualisation of the data retrieved from the sensors, and complete the Emoncms dashboard.

Video Responses

1
How to configure a widget (and why is a widget blank?)

Conclusion

1
Wrap-it up, what did we learn, and improvements

Congradulations!

You have reached the end of this learning journey. You have created perhaps your first Internet of Things gadget, JING, but you are already capable of much more. In this last lecture I’d like to give you some ideas about things that you can make using the knowledge that you already have, and about things that you can go on exploring next.

2
Other educational content from Peter, including coupon offers
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.6
4.6 out of 5
237 Ratings

Detailed Rating

Stars 5
140
Stars 4
73
Stars 3
21
Stars 2
2
Stars 1
1
7a471bf37460bf72c3b7142cc0ae5a58
30-Day Money-Back Guarantee

Includes

5 hours on-demand video
2 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion