Project lead: Dr. Chet Udell
Project Loom & The Internet of Things (IoT)
Cisco Systems estimates that by 2020, more than 250 things will connect to the Internet each second with 50 billion total devices communicating online (Tillman, 2013). The Internet of Things (IoT) is the notion that everyday objects like cars, coffee makers, umbrellas, and traffic lights will collect data and not only communicate over the internet, but autonomously collaborate together to optimize our daily lives. In a world where shoes keep track of how fast and far we run, and watches can detect if its owner has heart trouble and call for help, the implication for internet-enabled distributed sensors for environmental research is truly exciting. Dr. Chet Udell’s work is an extension of this concept focused on optimizing the connections between machines, people, and computing to enhance capabilities and transform how environmental sensing and research is conducted in the face of climate change.
Loom is a multidisciplinary collaboration of the OPEnS Lab with a team of 20+ Computer Science and Electrical Engineering senior capstone students to create a fully open source, modular, user friendly, sensor/actuator system kit that enables environmental research and conservation communities to overcome significant technical hurdles for creating new environmental, agricultural, and ecological instrumentation to measure, monitor, automate, and understand our world.
Design a "plug and play" senor/actuator system
Simple enough for K-12 students to use
Extensible and programmable enough for engineers to customize
Create a wide variety of applications by simply connecting modular components
Make the system wireless, low-power, low latency
Configure all sensors and actuators on a wireless network using an intuitive graphical user interface
Interact with data and control signals on a network in realtime
Make data transmitted from local and remote locations available instantly from anywhere around the world
The Loom hardware is documented in future detail on GitHub.
Uses Adafruit Feather family of devices
Wireless Device Communication
Internet Connectivity Options
AS7262 Spectral Sensor (visible)
AS7263 Spectral Sensor (near infrared)
AS7263 Spectral Sensor Triad (visible, near IR, UV)
FXAS21002 3-Axis Gyroscope
FXOS8700 3-Axis Accelerometer/Magnetometer
HX711 Load Cell Amplifier
MPU6050 Accelerometer / Gyroscope
MS5803 Atmospheric Pressure / Temperature Sensor
SHT31-D Temperature and Humidity
TSL2561 Lux Sensor
TSL2591 Lux Sensor
ZX Distance and Gesture Sensor
Loom also supports the TCA9548A I2C Multiplexer for simple connection of multiple sensors of the same or different type
TCA9548A I2C Multiplexer
MAX31856 Universal Thermocouple Amplifier
Loom supports most analog sensors in a plug-and-play fashion with up to 12-bit resolution. In addition, Loom provides conversions to standard units for the following sensors:
Servo Featherwing for up to 8 servos
DC Motor + Stepper FeatherWing for up to 4 DC/Stepper motors
Neopixel RGB LEDs
A graphical user interface implemented in Max/MSP provides realtime data monitoring and interactivity.
Visualizes all sensor data in the network environment
Visualizes and controls all actuators in the network environment
Enables the user to apply functions, transforms, thresholds, and feature recognition on incoming data
Enables the user to create if-this-then-that conditional relationships between the sensors and actuators (e.g. turn on fan when temperature is above 80 degrees Fahrenheit)
Loom provides near real time data logging to Google Sheets via the free PushingBox API. A single hub can facilitate the logging of data from an entire network of data-collecting nodes.
CS 2017-2018 CAPSTONE TEAM
Degree: Computer Science
Project Focus: Library Architecture, Firmware, Wireless Communication and Networking Protocols
Degree: Computer Science
Project Focus: Library Architecture, Firmware, Scripting, and Data Logging
Degree: Computer Science and Mathematics
Project Focus: Library Architecture, Firmware, Software Interfaces, and IO Visualization
The System Must Be Able To:
Receive and transmit data with physically and wirelessly connected modules
Perform actions based on received data
The firmware should be modular and configurable via a user interface.
Users Must Be Able To:
Select and visualize incoming sensor data on a network via MaxMSP
Remotely trigger events on actuators and monitor these actions via a user interface
Re-calibrate devices remotely
Process or analyze this data for events, thresholds, feature recognition, remap to useful control signals
Program the devices with the Arduino development environment by altering or replicating the open-source code on which the firmware is based
ECE 2017-2018 CAPSTONE TEAM
Degree: Electrical and Computer Engineering / Innovation Management
Specialty: Product Design / Robotics and Control
Completed Blocks: Project Management, I2C Sensors, and Enclosure
Degree: Electrical and Computer Engineering
Specialty: Software Development and Signals
Completed Blocks: Wireless Connectivity, Processors, & SPI/SDI-12 Sensors
Degree: Electrical and Computer Engineering
Specialty: Integrated Circuits
Completed Blocks: Power Supply, PCB Design, and Actuators
The system will be configurable to transmit data through WiFi at rates of 20 Mbps over short distances up to 30 meters.
The system will either create its own WiFi access point to transmit data or will connect to preexisting WiFi access points to transmit data.
The system will be configurable to transmit data through Nordic nRF24L01+ (nRF) at transmission rates of 250 Kbps over mid-range distances up to 100 meters using either the Adafruit 32u4 or Adafruit M0 processors.
The system will be configurable to transmit data through LoRa over distances up to 0.25mi in dense biomass (forest) to between 2 and 26 kilometers open-air "line-of -sight" using either the Adafruit 32u4 or Adafruit M0 processors.
The system will measure light (10 lux - 25,000 lux with 5% accuracy or 10 lux whichever is greater), weight (0-11.24 lbf with 5% accuracy or .5lbf whichever is greater), distance (10mm-200mm with 5% accuracy or 2mm whichever is greater), and humidity (50-100rh with 5% accuracy or 10rh whichever is greater) using either the Adafruit 32u4 or Adafruit M0 processors.
The system will use (when configured) a gyroscope (-2 to 2 rad/s) and an accelerometer (-10 to 10 m/s^2) sensor to measure 3-axis positioning and acceleration using either the Adafruit 32u4 or Adafruit M0 to process the data
The system will use either the Adafruit 32u4 or Adafruit M0 processor to process the code which will position a servo between 0 and 170 degrees.
The system will measure apparent dielectric permittivity (1-80) and water temperature (0-37 C) using the sensors to measure the data at the minimum and maximum cases and using either the Adafruit 32u4 or Adafruit M0 to process the data.
The hardware shields will connect together without soldering connections for ease of swapability; 9/10 people can connect and disconnect at least 4 shields by hand, collect data with one shield, and state current measurement conditions in a 10 minute period.
The system collect data from 8 I2C devices with the same I2C address.
This project is under continual development, with an ever increasing number of sensors, actuators, and other features. For the latest code updates, lists of supported hardware, and documentation, check out the project’s GitHub repository.
Open-Source, IoT, Internet of Things, Remote Sensing, Adafruit, Plug and Play.
Inberg, Tyler (2018). Project Management and Design of a Modularized Internet of Things (IoT) Prototyping System. Retrieved from Scholars Archive @ OSU. (http://ir.library.oregonstate.edu/concern/honors_college_theses/xs55mj293) Location: Oregon State University.