Arduino: Make an IoT environment monitor
4.1 (273 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
7,495 students enrolled

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.
4.1 (273 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
7,495 students enrolled
Last updated 10/2019
English
English
Current price: $69.99 Original price: $99.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 5 hours on-demand video
  • 2 articles
  • 21 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • 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
Requirements
  • The basics of electricity, like voltage, current, resistance.
Description

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 16x2 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.

Who this course is for:
  • Makers who have an existing intermediate or better understanding of electronics
  • Beginner Arduino makers
Course content
Expand all 31 lectures 04:53:38
+ Introduction
7 lectures 43:33

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.

Preview 12:41
Please read this before continuing!
01:55

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!

Preview 02:52

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.

Hello World! Diodes, LEDs, and your 1st circuit
08:22

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.

Hello World! Your 1st sketch
08:28

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.

Use Pulse Width Modules, make the LED fade
09:15
+ Arduino development basics
7 lectures 01:23:26

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.

Compilers, the IDE instructions and functions
13:01

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.

Operators
13:28

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.

Control structures
09:28

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.

Frequently used functions
08:43

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.

Custom functions
13:50

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.

Reading and writing digital and analog values
10:58

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.

Digital and analog read/write demonstration
13:58
+ Constructing JING
14 lectures 02:36:22

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.

Preview 05:29

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.

Measuring light with a photoresistor demonstration
12:08

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.

Measuring temperature and humidity
16:38

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

Measuring barometric pressure
16:49

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).

Adding an LCD screen, setup the circuit
12:28

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).

Adding an LCD screen, adding a library and sketch walkthrough
09:29

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.

Create an echo server with the Ethernet Shield
15:56

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.

Transmit sensor data with the Ethernet Shield
12:40

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.

Emoncms, what is it, walkthrough
13:02

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.

Upload data from a single sensor to Emoncms
15:19

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.

Setting up logging and visualising data on Emoncms
08:00

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.

Completing the hardware assembly
06:01

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.

The Jing complete sketch walkthrough
05:40

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.

Completing the Jing dashboard
06:43
+ Video Responses
1 lecture 01:41
How to configure a widget (and why is a widget blank?)
01:41
+ Conclusion
2 lectures 08:35

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.

Wrap-it up, what did we learn, and improvements
07:52
Other educational content from Peter, including coupon offers
00:43