Do-it-yourself (DIY) enthusiasts generally find rapid success at reading data from simple sensors to an Arduino board. However, it is much more challenging to program an Arduino to perform all required functions of a solar-powered station that collects data from several research-grade environmental sensors, saves to an SD card, transmits to a public server with web services, and puts the sensors to sleep to conserve energy between logging intervals. The EnviroDIY community has made all of this much simpler by creating the ModularSensors library, putting the power of the Internet of Things (IoT) revolution into the hands of DIYers.
These lesson episodes will teach you how to program your Arduino for environmental IoT using ModularSensors.
We organize episodes into two parts:
- Part 1: Arduino and IoT for EnviroDIY (Episodes 1-6) introduces basic Arduino and IoT skills to prepare you for using ModularSensors.
- Part 2: Program with ModularSensors (Episodes 7-13) provides exercises to program, test and deploy a monitoring station based on the example code in the ModularSensors library.
Prerequisites
- A computer, an internet connection, and motivation to tinker and hack.
- For Episodes 1-2, you’ll need an EnviroDIY Mayfly Data Logger Board, a micro-USB cable rated for data, and a CR1220 Lithium Coin Cell 3V Battery.
- Alternately, a EnviroDIY Mayfly Starter Kit can be a good way to get what you need, plus a nice enclosure and small solar panel (but you would still need the coin battery for the clock and a separate Lithium Ion Polymer Battery for solar powering the board)
- These tutorials would also work with an Arduino Uno Starter Kit, or an Adafruit Metro 328 Starter Pack, a Sparkfun RedBoard Tinker Kit, or any Arduino-compatible micro-controller board along with other listed accessories. These starter kits provide additional hardware for fully utilizing existing online tutorials, but these are optional if your focus is to learn Arduino for environmental monitoring.
- For Episodes 5, 6, 10, & 13, you’ll also need:
- a DS18B20 Waterproof Digital Temperature sensor and 4.7kΩ resistor,
- two Grove screw terminals and included Grove cables,
- a Grove BME280 Temperature, Pressure, and Humidity sensor,
- an I2C OLED display with Grove connector (optional), and
- a Grove I2C hub (if you use the OLED display).