{"id":50527546,"url":"https://github.com/rykovv/sm2dsboc","last_synced_at":"2026-06-03T09:04:03.158Z","repository":{"id":112506391,"uuid":"342098422","full_name":"rykovv/sm2dsboc","owner":"rykovv","description":"Soil Moisture, DHT11 \u0026 DHT22 Sensors Behavior Observance and Calibration (SM2DSBOC)","archived":false,"fork":false,"pushed_at":"2021-02-25T02:29:42.000Z","size":2397,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-01-27T03:01:11.339Z","etag":null,"topics":["dht11","dht22","esp32","mkr1000","soil-moisture","whisper-node"],"latest_commit_sha":null,"homepage":"","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rykovv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-02-25T02:29:06.000Z","updated_at":"2021-05-27T20:00:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"f298b000-cf6a-44d7-8a55-0771f05e6f1f","html_url":"https://github.com/rykovv/sm2dsboc","commit_stats":{"total_commits":9,"total_committers":1,"mean_commits":9.0,"dds":0.0,"last_synced_commit":"e1f242617a7d21978c2478376833729dc6d5e95b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rykovv/sm2dsboc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rykovv%2Fsm2dsboc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rykovv%2Fsm2dsboc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rykovv%2Fsm2dsboc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rykovv%2Fsm2dsboc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rykovv","download_url":"https://codeload.github.com/rykovv/sm2dsboc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rykovv%2Fsm2dsboc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33856288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dht11","dht22","esp32","mkr1000","soil-moisture","whisper-node"],"created_at":"2026-06-03T09:04:01.852Z","updated_at":"2026-06-03T09:04:03.143Z","avatar_url":"https://github.com/rykovv.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Soil Moisture, DHT11 \u0026 DHT22 Sensors Behavior Observance and Calibration (SM2DSBOC)\n\n## Overview ##\nThe intention of this experiment is to see the behavior of different sensors in different mediums, different ADCs from various MCUs and one external ADC, and contrast results. It is crucial to verify that sensors data will demonstrate consistent outcome to rely on the sensors in future applications.\n\nAlthough cheap and not certified sensors were used in the experiment, the intention is not to show the sensors' precision but rather that their modes/tendencies are similar.\n\nThree different MCUs have been used: Whisper Node AVR based on ATmega328p, Arduino MKR1000 based on SAM D21, and ESP32 Hi-Grow design. The soil moisture sensors produce analog input, thus, different ADC modules were involved with different precisions. The following table shows the of used ADC modules\n\n|Node            |ADC type                                   |\n|:--------------:|:-----------------------------------------:|\n|Whisper Node:   |Internal ADC, 10 bits precision            |\n|Hi-Grow ESP32:  |Internal ADC, 12 bits precision            |\n|Arduino MKR1000:|External ADC, TI ADS1115, 16 bits precision|\n\nIn the next sections sensors' connections, experiment configuration, and data outcome and analysis are revealed.\n\n## Table of Contents ##\n\n[[_TOC_]]\n\n## Experiment configuration ##\n\nThe experiment configuration was as exposed in the next scheme. The equipment was placed in the laboratory environment and later moved to the office TD1125.\n```\n        WiFi (UDP)   RX:16,TX:17                                  RX:D0,TX:D1\n              ╤    ┌─────────────────────────────────────────────────────────────────┐       ┌───────┐\n              └──┐ │  RX:27,TX:26    RX:13,TX:14   ┌──────────────────┐              │   ┌───┤ DHT22 │\n                 │ │ ┌─────────────────────────┐   │     ┌───────┐┌───┴───┐          │   │   └───────┘\n    ┌────┐ SPI ╔═┷═┷═┷═╗ ┌─────┐             ╔═┷═══┷═╗ ┌─┤ DHT22 ││ SHS85 │        ╔═┷═══┷═╗   ┌───────┐         \n    │ SD ├─────╢ ESP32 ╟─┘ ┌───┴───┐         ║  MKR  ╟─┘ └───────┘└───┬───┘        ║  WIS  ╟───┤ SHS85 │         \n    └────┘     ╚══┯═┯══╝   │ DHT11 │         ╚═══┯═══╝           ┌────┴────┐       ╚══┯─┯══╝   └───┬───┘        \n                32│ │33    └───────┘             │ I2C           │ HIH8121 │        A1│ │A3   ┌────┴────┐         \n                  │ └──────┐                 1 ┌─┴─┐ 0           └─────────┘          │ │     │ HIH8121 │         \n                  └────┐   │   ┌───────────────┤ADC├────────────┐   ┌─────────────────┘ │     └─────────┘           \n                       │   │   │               ┤   ├────────┐   │   │   ┌───────────────┘              \n                  ____┍┷┑__│__┍┷┑_____       3 └───┘ 2 ____┍┷┑__│__┍┷┑__│______\n                 ╱    │ │ ┍┷┑ │ │ ~  ╱│               ╱ ~  │ │ ┍┷┑ │ │ ┍┷┑  ~ ╱│\n                ╱  ~  ╲.╱ │ │ ╲.╱   ╱ │              ╱     ╲.╱ │ │ ╲.╱ │ │   ╱ │\n               ╱    ~     ╲.╱  ~   ╱  │             ╱ ~  ~     ╲.╱   ~ ╲.╱  ╱  │\n              ╱___________________╱  ╱             ╱_______________________╱  ╱\n              │                   │ ╱              │                       │ ╱\n              │___________________│╱               │_______________________│╱\n```\n\n## Sensors' Connections ##\n\nSPI SD and ESP32 connection\n\n```\n       SPI SD       ESP32\n        ~────┐     ╔═══~\n          3V3├─────╢3V3\n           CS├─────╢5\n         MOSI├─────╢23\n          CLK├─────╢18\n         MISO├─────╢19\n          GND├─────╢GND\n        ~────┘     ╚═══~\n```\n\nDHT22 and MKR1000 connection\n\n```\n        DHT22       MKR1000\n        ~────┐     ╔═══~\n          VCC├─────╢5V\n         DATA├─────╢A1\n          GND├─────╢GND\n        ~────┘     ╚═══~\n```\n\nDHT22 and Whisper Node connection\n```\n        DHT22       Whisper Node\n        ~────┐     ╔═══~\n          VCC├─────╢5V\n         DATA├─────╢A0\n          GND├─────╢GND\n        ~────┘     ╚═══~\n```\n\nDHT11 is internally wired to the ESP32, though the configuration is as following\n```\n         DHT11       ESP32\n         ~────┐     ╔═══~\n           VCC├─────╢5V\n          DATA├─────╢22\n           GND├─────╢GND\n         ~────┘     ╚═══\n```\n\nSHS85 and HIH8121 are connected to the Whisper Node through the I2C interface.\n```\n   SHS85 \u0026 HIH8121  Whisper Node\n        ~────┐     ╔═══~\n          VCC├─────╢5V\n          SDA├─────╢D18\n          SCL├─────╢D19\n          GND├─────╢GND\n        ~────┘     ╚═══~\n```\n\nSHS85 and HIH8121 are connected to the Whisper Node through the I2C interface.\n\n```\n   SHS85 \u0026 HIH8121  MKR1000\n        ~────┐     ╔═══~\n          VCC├─────╢5V\n          SDA├─────╢11\n          SCL├─────╢12\n          GND├─────╢GND\n        ~────┘     ╚═══~\n```\n\n# Data Outcome #\n\n## Artificial Substrate ##\n\nThe first part of the experiment consisted in using a special substrate inside the boxes which resembles the soil properties. On 29/01/2020 both boxes were filled with water. The substrate has been completely dry on 19/02/2020. During this period temperature, humidity and soil moisture data were recollected using different sensors. The data are visualized in the following sections.\n\n### Common graphics ###\n\n![subs_temperature_common.png](/graphics/subs_temperature_common.png)\n![subs_temperature_common_feb7_feb9.png](/graphics/subs_temperature_common_subset.png)\n![subs_humidity_common.png](/graphics/subs_humidity_common.png)\n![subs_humidity_common_feb7_feb9.png](/graphics/subs_humidity_common_subset.png)\n![subs_sm_common.png](/graphics/subs_sm_common.png)\n\nTake heed that the samples _mkr_0_ and and _mkr_2_ are placed in the same box and _mkr_1_ is placed in different box.\n\n### Soil Moisture per Node ###\n\n![subs_sm_whisper_node.png](/graphics/subs_sm_whisper_node.png)\n![subs_sm_esp32.png](/graphics/subs_sm_esp32.png)\n![subs_sm_mkr1000.png](/graphics/subs_sm_mkr1000.png)\n\n### Temperature per Sensor ###\n\n![subs_temperature_dht.png](/graphics/subs_temperature_dht.png)\n![subs_temperature_shs85.png](/graphics/subs_temperature_shs85.png)\n![subs_temperature_hih8121.png](/graphics/subs_temperature_hih8121.png)\n\n### Humidity per Sensor ###\n\n![subs_humidity_dht.png](/graphics/subs_humidity_dht.png)\n![subs_humidity_shs85.png](/graphics/subs_humidity_shs85.png)\n![subs_humidity_hih8121.png](/graphics/subs_humidity_hih8121.png)\n\n## Real Soil ##\n\nThe second part of the experiment consisted in using the **real soil** recollected near the TI building. On 20/02/2020 both boxes were filled with water (around 200ml each). The sensors data are visualized in the following sections.\n\n### Common graphics ###\n\n![soil_temperature_common.png](/graphics/soil_temperature_common.png)\n![soil_temperature_common_feb7_feb9.png](/graphics/soil_temperature_common_subset.png)\n![soil_humidity_common.png](/graphics/soil_humidity_common.png)\n![soil_humidity_common_feb7_feb9.png](/graphics/soil_humidity_common_subset.png)\n![soil_sm_common.png](/graphics/soil_sm_common.png)\n\nTake heed that the samples _mkr_0_ and and _mkr_2_ are placed in the same box and _mkr_1_ is placed in different box.\n\n### Soil Moisture per Node ###\n\n![soil_sm_whisper_node.png](/graphics/soil_sm_whisper_node.png)\n![soil_sm_esp32.png](/graphics/soil_sm_esp32.png)\n![soil_sm_mkr1000.png](/graphics/soil_sm_mkr1000.png)\n\n### Temperature per Sensor ###\n\n![soil_temperature_dht.png](/graphics/soil_temperature_dht.png)\n![soil_temperature_shs85.png](/graphics/soil_temperature_shs85.png)\n![soil_temperature_hih8121.png](/graphics/soil_temperature_hih8121.png)\n\n### Humidity per Sensor ###\n\n![soil_humidity_dht.png](/graphics/soil_humidity_dht.png)\n![soil_humidity_shs85.png](/graphics/soil_humidity_shs85.png)\n![soil_humidity_hih8121.png](/graphics/soil_humidity_hih8121.png)\n\n## Data Analysis ##\n\nThis section can be dedicated to further analysis as RMSE, norm, etc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frykovv%2Fsm2dsboc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frykovv%2Fsm2dsboc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frykovv%2Fsm2dsboc/lists"}