ATMS 360 Homework and Course Deliverables (return to main page)
[How to write lab report]

Assignments 11
Arduino and Weather Station.
A presentation.

Notes: Click image for a larger version.

1. Learn how to use the Arduino for atmospheric measurements outside.
2. Do measurements to study the variation of surface and air temperature for different locations and times of day (creatively choose your study).
3. Do measurements of the vertical variation of atmospheric parameters.
4. Learn how to incorporate and combine use of multiple sensors.
5. Learn how to record time and date, and to write data to a microSD card.
6. Learn how to make 'clean' breadboard circuits.
7. Learn more about the I2C bus, and daisy chaining sensors.
8. Practice combining code for different sensors (and using breakout boards).

This assignment is somewhat open-ended depending on the progress we make on programming, and the weather for doing measurements.
A presentation including:
A list of the sensors and components used, what they measure, and the method used to get data from them (analog or I2C digital).
A photograph of your board and label each sensor.
A summary of the sensors.
A summary of the procedure used to test the hardware (resistance measurement and pin to pin connectivity measurements as needed).
Graphical and textual data from measurements we obtain.

Atmospheric radiation transfer of solar (0.25 microns to 5 microns) and terrestrial (5 microns to 100 microns) radiation changes the surface and atmospheric temperature continually throughout the day. The atmosphere responds to heating with air motions. We will explore the relationship between surface temperature and air temperature as a function of time of day during this lab, as well as to obtain strategic weather measurements.

We often use the notation 'shortwave radiation' to represent sunlight, and 'longwave radiation' to represent terrestrial radiation. At night the Earth's surface cools by emission of longwave radiation, and is heated by downwelling longwave radiation emitted by the atmsophere. During the day, shortwave radiation contributes as well. Air in contact with the Earth's surface has its temperature affected by conduction of heat to or from the Earth's surface. Heated or cooled air may rise or sink thereafter due to air density changes in the process of convection.

We will measure the surface temperature using the IR sensor, and will use our thermistor to measure air temperature with a relatively fast time constant. We will design this lab to measure the air temperature as a function of height above the Earth's surface. We will operate the Arduino from battery so that we can acquire data outside.

The outcome of this lab will be a presentation, so be sure to take photos of each step of construction and during use.

Summary of sketches for the Weather Station Lab:
Instantaneous measurement sketch for the BME280, VEML, thermistor, IR sensor, chronodot, and microSD card.
Time averaging sketch for the same sensors, though time average length can be chosen.
Sketch to set the time on the Chronodot if needed.

Sensors and sketches for each device:
Thermistor (Analog sensor from our previous assignment).
IR sensor MLX90614 (I2C) for ground or sky IR.
VEML7700 (I2C) for solar radiation. (Adafruit description including example sketch)
BME280 (I2C) for pressure, temperature, and relative humidity. (Adafruit description)
AHT20 (I2C) for temperature and humidity. (Adafruit description including example sketch)
Chronodot (I2C) for reporting absolute time. (Adafruit description and our example sketch to set the time and read the time to make sure it's working)
MicroSD data storage on disk (SPI). (Adafruit description including example sketch)

Sketches for some of the sensors:
WeatherStation_StartingPoint_2023_ATMS360.ino (includes code for the thermistor, IR sensor, Chronodot, and MicroSD).
Sketch to set the time on the Chronodot.
Sketch to read the time on the Chronodot using the serial port.
Sketch for the VEML 7700 solar sensor. (Autogain selects the best sensor settings). Install the Adafruit library for it.
Compact sketch for the BME280. Be sure to install the BME280 melopero library for it, see the top of the sketch.

Once together and tested we will design the measurement campaigns together.

Assignments 7
, 8, 9, and 10.
Arduino and Atmospheric Sensor Measurements.
A short report for assignments 7-10.

Here is what is expected in report writing.

You will need to acquire data in class, write lab notes about your measurements, and write up each section of the lab as homework as soon after the section is finished so you remember it in detail.

Report Title: You can decide on the title based on your experience with this lab.

a. Become familiar with the Arduino microcontroller as an example of a programmable device for acquiring measurements and controlling systems.
b. Demonstrate ability to modify Arduino sketches for solving problems.
c. Learn about and use sensors with atmospheric relevance.
d. Learn how to bring measurements from the Arduino into computers (interface the Arduino) to acquire data for later analysis and display.

For students that would like to use their own laptops:
Install the Arduino software on your own laptop (if you have one), and use it in class.
Also download CoolTerm and place it somewhere that you can get to it for ease of use. This program allows us to transfer data from the Arduino to the computer.
The code for the projects in the book and kit is here: expand the file and put the folder in your Arduino examples folder.
Here is a link to the an online version of a manual that is similar to the one we use in class. (local backup).



Assignment 7 Photoresistor light sensor

Part 1. In your report, describe the Arduino. It doesn't need to be described in other reports.

Resources for this and other assignments:

Useful Presentations Collected from Others that describe the Arduino and uses.
Microcontroller fundamentals.
What is Arduino, view 1?
What is Arduino, view 2?
Spark fun intro to Arduino.
Spark fun data collection with high altitude balloons.
Maker and Arduino philosophy.

Description of the Arduino and some sensors we'll use.
Discussion of microcontrollers in general.

TMP36 temperature sensor data sheet.
Presentation on the TMP36 measurement principle.

Thermistor presentation

Photoresistor presentation

Part 2.
Do Circuit 6, pg 40 in the book to learn about the photoresistor and how to measure its output.

Then we will measure the photoresistor response time.
An example sketch is given in the next paragraph. `

Zoom discussion of this lab.

Create a circuit to drive the LED at different frequencies to see if the photoresistor resistance can accurately follow the LED output for low and high frequencies.
Point the LED output directly into the photoresistor input. You can use variable delay and the 'Blink' sketch to drive the LED to write your own code, or
here's an example sketch that does the calculation in Lux, read through it so you understand it.

Description of the circuit for the photoresistor test. Click on the image for a larger version.

If the LED is driven by a square wave, the photoresistance should show a crisp square wave too. Use the plot monitor on Arduino to view the photoresistor output,
and save some data with CoolTerm (including time) so that you can graph the photoresistor output from the LED drive as a function of time.
Obtain an approximate value for the time constant of the photoresistor as a sensor of light from a graph of the data.

The light intensity is calculated using the equation LUX = 1.25*107*Rp-1.41 where Rpis the photoresistance in Ohms. (local backup of link).

Then work out the response time of the photoresistor for measuring light using the Solver within Excel.

As time permits, do one set of curves for room lights on, and another for lights off. Is there any difference in the time constant caused by spanning the photoresistor over such a large range of light intensity?

Be sure to photograph your setup and use it in your report.
Include your graphs showing the model fit to measurements, the theory,
discussion of how photoresistors and LEDs work,
what is the response time and why are we interested in it.

Assignment 8. Temperature Sensors

Zoom discussion of the thermistor and TMP36 temperature sensors.

Notes for Part 3 and Part 4, TMP36 and thermistor sensors. Click image for larger version.

Part 3.
Do Circuit 7, pg 44 in the book to be become familiar with the TMP36 temperature sensor.

Answer these questions in your write up.
What is the principle of operation of the TMP36 temperature sensor? How was its signal obtained?

Obtain and discuss the time constant for the sensor as you are warming it up with your fingers, and the time constant as you are cooling it off by letting it sit in air.
First use the sketch for circuit 7 to view the measurement, or just use the example sketch given below this figure..

Description of the analog to digital conversion for the TMP36 sensor. Click on image for a larger version.

Example sketch Revised example sketch for response time measurement. Read it and follow instructions.
Pinch the TMP36 for 2 minutes, then let it cool for 5 minutes. Here's an internet clock that can be used for timing, or use your phone.
Note especially the way that time averaging is implemented in the sketch with the function at the bottom of it, and the difference in this sketch compared with the one for circuit 7.
Record a time series with CoolTerm as you pinch the the sensor to warm it up to a steady temperature, and let it decay to a lower temperature.
Obtain and discuss the time constant for the sensor as you are warming it up with your fingers, and the time constant as you are cooling it off by letting it sit in air.

Presentation on the TMP36 temperature sensor principle of operation

part 4.
Create a voltage divider circuit to measure the resistance of the thermistor sensor using a fixed resistance of 10 kOhm (10,000 ohms). This circuit is similar to the photoresistor circuit.

Answer these questions in your write up.
What is the principle of operation of the thermistor temperature sensor? How was its signal obtained?
Obtain the time constant for the sensor as you are warming it up with your fingers, and the response time as you are cooling it off by letting it sit in air.

You might also be able to put the board and sensor into the freezer or toaster oven (on low heat setting) and do the measurements for the response time that way.

The TMP36 sensor is roughly a cube with sides of length 4.6 mm.
The thermistor sensor is roughly a cube with sides of length 1 mm.
Estimate the ratio of the volume of the sensors.
Also estimate the ratio of the surface area of each sensor.
Calculate the ratio of the response time of the TMP36 sensor to that of the thermistor sensor, one ratio each for heating and cooling.
Does the ratio of response times compare mosty closely with the surface area ratio, or the volume ratio?

Calculate the temperature that corresponds to your measured resistance using the equation given here (thanks Alex).
Record a time series using CoolTerm as you pinch the the sensor to warm it up to a steady temperature, and let it decay to a lower temperature.
Obtain the time constant for the sensor as you are warming it up with your fingers, and the time constant as you are cooling it off by letting it sit in air.
Here's an example sketch to use for the thermistor sensor evaluation. Read the sketch for instructions on what to do.
Pinch the thermistor carefully (without affecting the wires) when the LED is on.

Click on image for larger version.


Thermistor presentation

Assignment 9 Analog and Digital Pressure Sensors

Pressure measurements are extremely important in atmospheric science.

Part 5.
Set up a circuit and sketch to acquire data from the analog pressure sensor.

Add a circuit for the BME280 digital pressure, temperature, and relative humidity sensor.

Answer these questions in your write up:
How do the pressure sensors work? It may be helpful to look at the data sheet and information on the pressure page.
Can you see measure the pressure difference between the lowest level you can get it, and the highest level?
Is that pressure difference correct?

Do the two pressure sensors measure the same pressure value within the specifications given in their data sheets?
Note: We will study digital sensors more in the IR sensor lab coming up next.

Do appropriate data averaging so that you can easily tell the pressure difference
between having the sensor on the desk, and having the sensor about 1 meter higher or lower.
Record data with CoolTerm to demonstrate your results.

Here's an example sketch for the analog pressure sensor.
Here's an example sketch for the BME280 digital pressure sensor. Install the Adafruit library as described at the top of the file and here.
Combine these sketches into a new sketch that gets data from both sensors simultaneously. Everyone may work together on this programming need.
You'll have to comment out some lines near the end to get only the pressure measurements to CoolTerm. Write the data out as comma separated values.
You could write the time and date to the file (here's how) in CoolTerm using the function built in to it.


Procedure for pressure sensor measurements.
Use CoolTerm to save data for the following measurements.
Note with Cool term you can start capture to text file before connecting to the Arduino, so you can capture the data information.

A. Do measurements with 1 second time average, holding the sensor down for 10 seconds, then up for 10 seconds. (1st graph).
Time in miliseconds is x axis, y axis is pressure. Put the analog pressure sensor on one y axis, and the BME280 sensor on the other axis.

B. Then modify the code to obtain 10 second time averages. Test by holding the sensor low for 100 seconds, and high for 100 seconds. (2nd graph).
Time in miliseconds is x axis, y axis is pressure. Put the analog pressure sensor on one y axis, and the BME280 sensor on the other axis.

C. Do measurements with 1 second time averaging with the sensors held constant on the table, for around 100 measurements.
Calculate pressure averages in Excel. Get a calibration factor for the analog pressure sensor=(Average BME280 Value)/(Average Analog Sensor Value).
Multiply the pressure measurement in your sketch by this calibration factor. Upload your program to the Arduino.
Both pressure sensors should measure close to the same value after this.
Graph the time series with milliseconds on the x axis and pressure for each sensor on the y axis, 1 sensor on each y axis. (3rd graph)

D. With the analog pressure sensor calibration factor installed in your sketch we're ready to test the sensors for use in a weather station.
Set the averaging time to 60 seconds (top of the sketch) so that minute data will be produced.
Set up the computer so it doesn't go to sleep.
Set CoolTerm to start recording data to a text file.
Connect CoolTerm to the Arduino so that it will stream measurements to the computer until recording data to text file is ended.
Make a time series graph with time in minutes on the x axis, with pressure from both sensors on the first y axis, and temperature on the 2nd y axis.
Observe anything of interest, especially if temperature changes correlate with pressure changes. (4th graph).


Click on image for larger version.

Note on the analog sensor: It seems the 10 bit analog to digital (a/d) converter of the Arduino would not be able to resolve a pressure difference of about 0.1 mb associated with
1 meter height difference. 1 bit change in the a/d counts corresponds to a voltage change of about 0.005 volts, and a pressure change of and about 1 mb pressure.
Dither helps: the voltage source for the Arduino is noisy enough to cause around 50 mv or so of noise so that the a/d counts fluctuate to a useful average.
The example sketch for pressure averages the measurements of the pressure sensor voltage and the voltage divider voltage about 1800 times for each measurement.
Use of the voltage divider for the power supply voltage measurement is necessary since the a/d range is 5 volts, and direct measurement might be over the measurement range.

Assignment 10 Digital Infrared Sensor for Brightness Temperature Measurements

Part 6.
Implement the infrared sensor.
Use Arduino and Coolterm to demonstrate its performance.
Interface it with Labview instrument software to graph the data in real time.

Here is an example sketch to use with the IR sensor. Note that to make it work on your laptop you'll need to install the Adafruit software library as illustrated here.
NOTE: Add the temperature sensor to the Arduino with the BME280 pressure sensor on it (can take off the analog pressure sensor).

Demonstrate a time series of temperature by moving your hand over the temperature sensor quickly, using Labview and CoolTerm by doing a screen capture or other means.
Here is the Labview code. Unzip the file to get to the code if needed, though it is likely already on the computer.
You can screen shot the Labview graph for your report, or save data

Double click the program named
Saving data with Labview requires that you choose a folder that already exists.

In your report,
A. Include a discussion of how the sensor works. (Discussion).
B. Discuss what I2C is and how I2C works to get data from sensors (Discussion).
B. Include a photo of your breadboard with sensors on it. (Photo).
C. Include a screen shot or other graph of the IR brightness temperature measurement as you move your hand over it several times. (Graph).

Those with laptops can take the IR sensor outside to get a time series of infrared brightness temperature of various targets.
This lab

Notes on the IR sensor: Click on image for larger version.

IR Sensor wiring diagram (from Adafruit).
Note the orientation of the tab on the sensor.
Click on the image for a larger version.



Additional Resources:
Description of the Arduino and some sensors we'll use.
Discussion of microcontrollers in general.

TMP36 temperature sensor data sheet.
Presentation on the TMP36 measurement principle.

Thermistor presentation

Very useful voltage divider circuit to use for measuring sensors that depend on resistance.

Click on image for larger view.

Useful Presentations Collected from Others that describe the Arduino and uses.
Microcontroller fundamentals.
What is Arduino, view 1?
What is Arduino, view 2?
Spark fun intro to Arduino.
Spark fun data collection with high altitude balloons.
Maker and Arduino philosophy.

Project Ideas For Future Work:
1. Develop a weather hardened version of the infrared sensor by 3D printing a housing for it and a Teensy 3.6 microcontroller.
Here are examples.
2. Develop the differential pressure sensor into a windspeed measurement tool. Discussion 1. Discussion 2.
3. Develop a gust probe for turbulence measurements. Paper 1. Paper 2.




Assignment 6

The goal is to develop skill in working with meteorological radar data.
This assignment works with precipitation and Doppler data from NEXRAD radar.
Practice giving presentations of meteorological data.
Become familiar with commonly used meteorological data.
This is a two part assignment: a warm up exercise, and then an exploration.

1. Presentation turned in through webCampus. (50 points possible)
2. Present your presentation to the class. (50 points possible)

Part 1: Choose a specific radar for your study. Here's where you choose the radar.
It's best to find a radar site that has active precipitation going on so that you can see data from it.
Find the coordinates of your radar for locations in the continental US (for Alaska, Hawaii, etc you'll need to estimate the coordinates).

Part 2: Research the time and location of a notorious event from anywhere in the continental US, after February 28th, 2017. Be sure to note the local time and the UTC time.
Possibilities include tornados, hurricanes, derechos, severe thunderstorms, outflow boundary from convective storms, or pyrocumulus clouds and/or fire tornados during wildland fires (example).

Use the NOAA Weather and Climate Toolkit to get the archived radar data for reflectivity and velocity and make an animation of the event for both data types.
You can scope the radar imagery for the event using archived radar data, and then use the NOAA Toolkit to get specific data.

Using the Toolkit, get the GOES 16, 17, or 18 Channel 13 clean IR satellite radiance data that corresponds to your event. Make an animation of the event.
See resources below for more on acquiring GOES data from the Toolkit, and for understanding GOES in general.
Low radiance values correspond to high elevation cloud tops where the temperature is low.
The center wavelength for this band is 10.3 microns, or a wavenumber=970.9 cm-1. (wavenumber=1/wavelength).
Estimate cloud top temperature for any convection in the area assuming cloud top is a blackbody radiator.
You can hover over locations of interest and read the infrared radiance.
The measured cloud top radiance can be used with the wavenumber in this calculator to get the brightness temperature. Example calculation.

Presentation Contents:
Part 1:
1. Put your radar coordinates into Google Earth and make an image of the location of the radar.
2. Get a GIF movie of at least 6 images of base reflectivity data from your radar a day when precipitation is present.
Use the Save Data tab to make and save the GIF movie.
3. Get a base velocity GIF movie of base velocity for the same time.
Use the Save Data tab to make and save the GIF movie.
Part 2:
4. Describe your notorious event for part 2.
5. Show the radar reflectivity movie for your notorious event and interpret it. Discuss any observational challenges that could have affected radar data, such as beam blocking, etc.
6. Show the radar
Doppler velocity movie for your notorious event and interpret it.
Show the IR movie for your event. The IR movie may not resolve small scale phenomena like tornados, but can provide information about the weather system they are embedded in.

In your presentation:
Part 1:
Discuss the location of your radar, in particular, any challenges that come about due to location.
Discuss the dbZ level of your base reflectivity image. Is it large or small?
Discuss your base velocity image, interpreting wind direction and speed.
Part 2:
Discuss your notorious event and the data from it.

Install Google Earth, or use it with a browser.
Install Powerpoint or use it from a browser, or use Google Docs, or Pages on the Mac. Students can download Microsoft Office for free through Office 365.
It may be useful to also explore the National Weather Service radar site.
NOAA Weather and Climate Toolkit to obtain past data.
Resources for Radar:
Radar discussion.
Interpretation of the radar correlation coefficient. (local backup).
Resources for Notorious Weather Events:
Tornado discussion.
Resources for GOES Satellite Imagery on GOES (Geostationary Operational Environmental Satellites):
Overview of how it works. Shorter version.
More details on the satellite instruments.
GOES west real time IR imagery at 10.35 um, converted to brightness temperature. Close look at California and Nevada. Imagery from GOES east.
Resources for the NOAA ToolKit
Change the theme in the upper right corner to get something more useful, like streets.
Level 1 data for channel 13: ABI-L2-CTPF is the infrared radiance arriving at the satellite.
Definition of the level 2 derived data types in the toolkit.
ABI-L2-CTPF is the cloud top pressure.
ABI-L2-ACHAF if the cloud top height.
ABI-L2-ACHTF is the cloud top temperature.


Assignment 5

The goal of this quick-study style lab is to become familiar with meteorological radar used to detect precipitation.
Examples are on this page for composite reflectivity
and for the Reno NWS dual polarization radar measurements.
Example of Doppler image for Des Moines Iowa.

Submission is through webcampus. Copy these questions to MS word and work on them.
Be sure to give your sources for answers.
1. What diameter range are raindrops?
2. What diameter range are drizzle drops?
3. What diameter range are cloud droplets?
4. What is the shape of raindrops?
5. Why don't raindrops get arbitrarily large?

Local Rain Measurements:
6. What is the rainfall rate equation?
7. How does a simple rain gauge work?
8. How does a tipping bucket rain gauge measure rain?
9. How does a disdrometer work?

Weather Radar.
Weather radar presentation as powerpoint and as a pdf document for understanding radar and dbZ.

10. What is the name of weather radars used by the National Weather Service?
11. What wavelength range used by this radar?
12. Briefly, how does radar work to measure rain?
13. Calculate the size parameter x=2 pi * Raindrop Radius / radar wavelength.
14. What 'radiation regime' is the size parameter of question 13? Note that it is the same radiation regime that gives rise to the blue sky on a clear day. Note.
15. What is the basic relationship for radar backscattering in terms of number of raindrops per volume, back scattering strength, droplet diameter D, and radar wavelength lambda? Note.
16. Why must the radar be empirically calibrated for rainfall rate given question 15, and question 6?
17. How does Doppler radar work? What can be detected with it?
18. How does dual polarization radar work, and what can be detected with it?


National Weather Service discussion of weather radar.
Understanding radar discussion from the weather underground.
What's under the dome? Discusses also the rotation of the radar.


Assignment 4
Online (see webCampus) precipitation estimates.

Purpose: Become familiar with precipitation estimate measurements.

Assignment 3 Online (see webCampus) measurement of atmospheric temperature.

Purpose: Become familiar with atmospheric temperature measurements.

Assignment 2 Online (see webCampus) overview of Atmospheric Instrumentation.

Purpose: Broad overview of atmospheric instrumentation measurements.
This is an online homework assignment and is described on webCampus.

Assignment 1 Online (see webCampus) atmospheric radar measurements.

(Top of page) .