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 transforms measur archiving observation conversion projection animals compose optimize
Last synced: about 18 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.
- Host: GitHub
- URL: https://github.com/EnviroDIY/ModularSensors
- Owner: EnviroDIY
- License: other
- Created: 2017-02-17T19:20:33.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2025-04-04T16:41:04.000Z (24 days ago)
- Last Synced: 2025-04-10T06:40:08.083Z (18 days ago)
- Topics: arduino-library, environmental-sensors
- Language: C++
- Homepage: https://envirodiy.github.io/ModularSensors/
- Size: 167 MB
- Stars: 82
- Watchers: 12
- Forks: 48
- Open Issues: 67
- Releases: 44
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
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 dataloggers, 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.
- Processor Metrics: battery voltage, free RAM, sample count
- Maxim DS3231: real time clock
- Analog Electrical Conductivity: conductivity
- AOSong AM2315: humidity & temperature
- AOSong DHT: humidity & temperature
- Apogee SQ-212: quantum light sensor, via TI ADS1115
- Atlas Scientific EZO Sensors
- Bosch BME280: barometric pressure, humidity & temperature
- Bosch BMP388 and BMP390: barometric pressure & temperature
- Campbell Scientific OBS-3+: turbidity, via TI ADS1115
- Campbell Scientific ClariVUE10: turbidity
- Campbell Scientific RainVUE10: precipitation
- Decagon Devices ES-2: conductivity
- Decagon Devices CTD-10: conductivity, temperature & depth
- Everlight ALS-PT19 Analog Light Sensor (via processor ADC)
- External Arduino I2C Rain Tipping Bucket Counter: rainfall totals
- Freescale Semiconductor MPL115A2: barometric pressure and temperature
- GroPoint Profile GPLP-8 Eight-Segment Soil Moisture and Temperature Profiling Probe
- In-Situ RDO PRO-X: dissolved oxygen
- In-Situ SDI-12 TROLLs: pressure, temperature, and depth
- Keller Submersible Level Transmitters: pressure and temperature
- MaxBotix MaxSonar: water level
- Maxim DS18: temperature
- Measurement Specialties MS5803: pressure and temperature
- Meter Environmental Soil Moisture Probes: soil Ea and volumetric water content
- Meter Environmental Hydros 21: conductivity, temperature & depth
- Northern Widget Tally Event Counter: number of events
- PaleoTerra Redox Sensor: redox potential
- Sensirion SHT40: humidity & temperature
- TI ADS1115: external voltage with support for divided current
- TI INA219: current, voltage, and power draw
- Turner Cyclops-7F: various parameters
- Vega Puls 21: radar distance
- Yosemitech: water quality sensors
- Y502-A or Y504-A: Optical DO and Temperature
- Y510-B: Optical Turbidity and Temperature
- Y511-A: Optical Turbidity and Temperature
- Y513-A: Self-Cleaning Blue-Green Algae Sensor
- Y514-A: Optical Chlorophyll and Temperature
- Y520-A: Conductivity and Temperature
- Y532-A: Digital pH and Temperature
- Y533: ORP, and Temperature
- Y551: UV254/COD, Turbidity, and Temperature
- Y560: Ammonium, Temperature, and pH
- Y700: Pressure and Temperature
- Y4000 Multiparameter Sonde
- Zebra-Tech D-Opto: dissolved oxygen
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, and the Ubidots IoT platform.
Supported Cellular/Wifi Modules:
For information common to all modems and for tables of the proper class, baud rate, and pins to uses, see the Modem Notes page.
- Digi XBee
- Digi XBee® 3 Cellular LTE-M/NB-IoT
- Digi XBee® 3 Cellular LTE Cat 1 (AT&T or Verizon)
- Digi XBee® Cellular 3G
- Digi XBee® Cellular LTE Cat 1 (Verizon)
- Digi XBee® Wi-Fi (S6B)
- ESP8266
- QuectelBG96
- Sequans Monarch
- SIM7080
- SIM7000
- SIM800, including the Sodaq GPRSBee
- u-blox LTE-M R4 and N4 series, including the Sodaq uBee
- u-blox 2G, 3G, and 4G, including the Sodaq 3GBee
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 extensive 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 funders:
- 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
- Name: EnviroDIY
- Login: EnviroDIY
- Email: [email protected]
- Kind: organization
- Description: Do-It-Yourself Environmental Science & Monitoring
- Website: http://envirodiy.org/
- Location: Stroud Water Research Center, Avondale, PA
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/16213093?v=4
- Repositories: 32
- Last ynced at: 2024-03-27T09:31:56.182Z
- Profile URL: https://github.com/EnviroDIY
GitHub Events
Total
- Watch event: 2
- Delete event: 3
- Issue comment event: 6
- Push event: 43
- Pull request event: 4
- Fork event: 1
- Create event: 2
- Commit comment event: 5
Last Year
- Watch event: 2
- Delete event: 3
- Issue comment event: 6
- Push event: 43
- Pull request event: 4
- Fork event: 1
- Create event: 2
- Commit comment event: 5
Committers metadata
Last synced: 8 days ago
Total Commits: 2,465
Total Committers: 15
Avg Commits per committer: 164.333
Development Distribution Score (DDS): 0.114
Commits in past year: 126
Committers in past year: 3
Avg Commits per committer in past year: 42.0
Development Distribution Score (DDS) in past year: 0.095
Name | Commits | |
---|---|---|
Sara Damiano | s****o@s****g | 2184 |
Anthony Aufdenkampe | a****e@l****m | 148 |
dependabot[bot] | 4****] | 30 |
Beth Fisher | b****1@g****m | 25 |
Shannon Hicks | s****s@s****g | 22 |
Thomas Watson | t****2@i****m | 16 |
Bobby Schulz | s****9@u****u | 16 |
neilh20 | n****3@w****t | 10 |
neil hancock | n****9@b****m | 8 |
mbarneytu | m****y@t****g | 1 |
neilh | n****0 | 1 |
brmiller1 | 1****1 | 1 |
Scott Ensign | 4****n | 1 |
Ivan Kravets | me@i****m | 1 |
Adam Gold | 4****d | 1 |
Committer domains:
- stroudcenter.org: 2
- ikravets.com: 1
- tu.org: 1
- biomoniotrs.com: 1
- wllw.net: 1
- umn.edu: 1
- limno.com: 1
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 226
Total pull requests: 258
Average time to close issues: 6 months
Average time to close pull requests: 29 days
Total issue authors: 23
Total pull request authors: 12
Average comments per issue: 4.33
Average comments per pull request: 2.22
Merged pull request: 213
Bot issues: 0
Bot pull requests: 46
Past year issues: 3
Past year pull requests: 17
Past year average time to close issues: N/A
Past year average time to close pull requests: 23 days
Past year issue authors: 2
Past year pull request authors: 4
Past year average comments per issue: 0.33
Past year average comments per pull request: 1.29
Past year merged pull request: 13
Past year bot issues: 0
Past year bot pull requests: 6
Top Issue Authors
- SRGDamia1 (102)
- neilh10 (44)
- aufdenkampe (40)
- fisherba (13)
- mbarneytu (4)
- TzionCastillo1 (3)
- acgold (2)
- gcutrell (2)
- GeorgeHSmith (2)
- brettmelbourne (1)
- Arnold1 (1)
- GarrettWarren (1)
- escaped-echidna (1)
- moritz89 (1)
- tahickson (1)
Top Pull Request Authors
- SRGDamia1 (127)
- dependabot[bot] (46)
- aufdenkampe (45)
- neilh10 (27)
- fisherba (5)
- tpwrules (2)
- ivankravets (1)
- pfeerick (1)
- mbarneytu (1)
- acgold (1)
- dnowacki-usgs (1)
- braedon-d (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
- Total packages: 2
- Total downloads: unknown
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 86
proxy.golang.org: github.com/envirodiy/modularsensors
- Homepage:
- Documentation: https://pkg.go.dev/github.com/envirodiy/modularsensors#section-documentation
- Licenses:
- Latest release: v0.36.0 (published 7 months ago)
- Last Synced: 2025-04-26T14:36:26.137Z (2 days ago)
- Versions: 43
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.999%
- Average: 8.173%
- Dependent repos count: 9.346%
proxy.golang.org: github.com/EnviroDIY/ModularSensors
- Homepage:
- Documentation: https://pkg.go.dev/github.com/EnviroDIY/ModularSensors#section-documentation
- Licenses:
- Latest release: v0.36.0 (published 7 months ago)
- Last Synced: 2025-04-26T14:36:26.276Z (2 days ago)
- Versions: 43
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.999%
- Average: 8.173%
- Dependent repos count: 9.346%
Dependencies
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- peaceiris/actions-gh-pages v3.9.0 composite
- actions/checkout v3 composite
- peterjgrainger/action-changelog-reminder v1.3.0 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- mindsers/changelog-reader-action v2 composite
- softprops/action-gh-release v0.1.14 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- arduino/arduino-lint-action v1 composite
- 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
- platformio *
- wheel *
Score: -Infinity