ModularSensors

This Arduino library gives environmental sensors a common interface of functions for use with Arduino-compatible dataloggers.
https://github.com/EnviroDIY/ModularSensors

Category: Sustainable Development
Sub Category: Knowledge Platforms

Keywords

arduino-library environmental-sensors

Keywords from Contributors

environmental-monitoring open-hardware-electronics trinket board sketches arduino-boards

Last synced: about 20 hours ago
JSON representation

Repository metadata

An Arduino library to give environmental sensors a common interface of functions for use with Arduino-framework dataloggers, such as the EnviroDIY Mayfly.

README.md

ModularSensors


The EnviroDIY ModularSensors Library

If you're new to EnviroDIY, I suggest you check out the Just Getting Started section of the documentation!

This Arduino library gives environmental sensors a common interface of functions for use with Arduino-compatible data loggers, such as the EnviroDIY Mayfly.
The ModularSensors library is specifically designed to support wireless, solar-powered environmental data logging applications, that is, to:

  • Retrieve data from many physical sensors;
  • Save that data to a SD memory card;
  • Transmit that data wirelessly to a web server; and
  • Put the processor, sensors and all other peripherals to sleep between readings to conserve power.

The ModularSensors library coordinates these tasks by "wrapping" native sensor libraries into a common interface of functions and returns.
These wrapper functions serve to harmonize and simplify the process of iterating through and logging data from a diverse set of sensors and variables.
Using the common sensor and variable interface, the library attempts to optimize measurement timing as much as possible to reduce logger "on-time" and power consumption.

Although this library was written primarily for the EnviroDIY Mayfly data logger board, it is also designed to be compatible with a variety of other Arduino-based boards as well.

There is extensive documentation available in the ModularSensors github pages including details of the class structures and example code.

Supported Sensors

For some generalized information about attaching sensors to an Arduino style board, see the Sensor Notes page.

Data Endpoints

Within ModularSensors, the "dataPublisher" objects add the functionality to send data to remote web services.
The currently supported services are the Monitor My Watershed data portal, ThingSpeak, the Ubidots IoT platform, Amazon Web Services IoT Core, and Amazon Web Services Simple Storage Service (S3).

  • Monitor My Watershed/EnviroDIY Data Portal
  • ThingSpeak
  • Ubidots IoT platform
  • AWS IoT Core
    • Unlike all other publishers, the connection to IoT Core supports a callback on received data and functions to publish custom messages and subscribe to custom topics.
  • AWS S3
    • The S3 publisher requires you to provide a function that will return an updated pre-signed URL to publish to.
    • The S3 publisher does NOT publish any sensor data by default.
      It is intended for publishing images.

Supported Cellular/Wifi Modules:

All cellular and wifi support is through the TinyGSM library.
For information common to all modems and for tables of the proper class, baud rate, and pins to uses, see the Modem Notes page.

Contributing

Open an issue to suggest and discuss potential changes/additions.
Feel free to open issues about any bugs you find or any sensors you would like to have added.

If you would like to directly help with the coding development of the library, there are some tips here on how to set up PlatformIO so you can fork the library and test programs while in the library repo.
Please take time to familiarize yourself with the terminology, classes and data structures this library uses.
This library is built to fully take advantage of Objecting Oriented Programing (OOP) approaches and is larger and more complicated than many Arduino libraries.
There is doxygen-created documentation on our github pages and an enormous number of comments and debugging printouts in the code itself to help you get going.

License

Software sketches and code are released under the BSD 3-Clause License -- See LICENSE.md file for details.

Documentation is licensed as Creative Commons Attribution-ShareAlike 4.0 (CC-BY-SA) copyright.

Hardware designs shared are released, unless otherwise indicated, under the CERN Open Hardware License 1.2 (CERN_OHL).

Acknowledgments

EnviroDIY™ is presented by the Stroud Water Research Center, with contributions from a community of enthusiasts sharing do-it-yourself ideas for environmental science and monitoring.

Sara Damiano is the primary developer of the EnviroDIY ModularSensors library, with input from many other contributors.

This project has benefited from the support from the following funding sources:

  • William Penn Foundation
  • US Environmental Protection Agency (EPA)
  • National Science Foundation, awards EAR-0724971, EAR-1331856, ACI-1339834
  • Stroud Water Research Center endowment

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: about 1 month ago

Total Commits: 2,877
Total Committers: 15
Avg Commits per committer: 191.8
Development Distribution Score (DDS): 0.103

Commits in past year: 319
Committers in past year: 2
Avg Commits per committer in past year: 159.5
Development Distribution Score (DDS) in past year: 0.006

Name Email Commits
Sara Damiano s****o@s****g 2580
Anthony Aufdenkampe a****e@l****m 148
dependabot[bot] 4****] 32
Thomas Watson t****2@i****m 30
Beth Fisher b****1@g****m 25
Shannon Hicks s****s@s****g 22
Bobby Schulz s****9@u****u 16
neilh20 n****3@w****t 10
neil hancock n****9@b****m 8
neilh n****0 1
mbarneytu m****y@t****g 1
brmiller1 1****1 1
Scott Ensign 4****n 1
Ivan Kravets me@i****m 1
Adam Gold 4****d 1

Committer domains:


Issue and Pull Request metadata

Last synced: 3 months ago

Total issues: 226
Total pull requests: 290
Average time to close issues: 6 months
Average time to close pull requests: about 1 month
Total issue authors: 24
Total pull request authors: 13
Average comments per issue: 4.32
Average comments per pull request: 2.18
Merged pull request: 232
Bot issues: 0
Bot pull requests: 60

Past year issues: 1
Past year pull requests: 14
Past year average time to close issues: N/A
Past year average time to close pull requests: 10 days
Past year issue authors: 1
Past year pull request authors: 3
Past year average comments per issue: 0.0
Past year average comments per pull request: 1.64
Past year merged pull request: 9
Past year bot issues: 0
Past year bot pull requests: 6

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/EnviroDIY/ModularSensors

Top Issue Authors

  • SRGDamia1 (101)
  • neilh10 (44)
  • aufdenkampe (40)
  • fisherba (13)
  • mbarneytu (4)
  • TzionCastillo1 (3)
  • acgold (2)
  • gcutrell (2)
  • GeorgeHSmith (2)
  • brettmelbourne (1)
  • Arnold1 (1)
  • GarrettWarren (1)
  • SinanAkkoyun (1)
  • escaped-echidna (1)
  • moritz89 (1)

Top Pull Request Authors

  • SRGDamia1 (140)
  • dependabot[bot] (59)
  • aufdenkampe (47)
  • neilh10 (27)
  • fisherba (5)
  • tpwrules (3)
  • mbarneytu (2)
  • braedon-d (2)
  • coderabbitai[bot] (1)
  • pfeerick (1)
  • ivankravets (1)
  • acgold (1)
  • dnowacki-usgs (1)

Top Issue Labels

  • feature request (9)
  • bug (7)
  • priority (7)
  • documentation (5)
  • sensor request (1)
  • help wanted (1)
  • enhancement (1)

Top Pull Request Labels

  • enhancement (1)
  • priority (1)

Package metadata

proxy.golang.org: github.com/envirodiy/modularsensors

proxy.golang.org: github.com/EnviroDIY/ModularSensors


Dependencies

.github/workflows/build_documentation.yaml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • peaceiris/actions-gh-pages v3.9.0 composite
.github/workflows/changelog_reminder.yaml actions
  • actions/checkout v3 composite
  • peterjgrainger/action-changelog-reminder v1.3.0 composite
.github/workflows/prepare_release.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • mindsers/changelog-reader-action v2 composite
  • softprops/action-gh-release v0.1.14 composite
.github/workflows/verify_library_structure.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • arduino/arduino-lint-action v1 composite
.github/workflows/build_examples.yaml actions
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • ammaraskar/gcc-problem-matcher master composite
  • arduino/setup-arduino-cli v1.1.2 composite
continuous_integration/requirements.txt pypi
  • platformio *
  • wheel *

Score: -Infinity