{"id":21477733,"url":"https://github.com/edward62740/wmns","last_synced_at":"2026-05-20T15:02:58.929Z","repository":{"id":45166525,"uuid":"298722890","full_name":"edward62740/WMNS","owner":"edward62740","description":"Wireless mesh network system which integrates customizable smart home sensing into a single network. ","archived":false,"fork":false,"pushed_at":"2022-10-06T02:47:28.000Z","size":36918,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-17T08:22:28.447Z","etag":null,"topics":["freertos","grafana","influxdb","iot","mesh","pcb-design","sensor","smart-home"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edward62740.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.txt","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-26T02:37:33.000Z","updated_at":"2024-10-26T05:42:15.000Z","dependencies_parsed_at":"2023-01-19T08:30:59.967Z","dependency_job_id":null,"html_url":"https://github.com/edward62740/WMNS","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/edward62740/WMNS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward62740%2FWMNS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward62740%2FWMNS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward62740%2FWMNS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward62740%2FWMNS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edward62740","download_url":"https://codeload.github.com/edward62740/WMNS/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward62740%2FWMNS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33264586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-20T04:48:54.280Z","status":"ssl_error","status_checked_at":"2026-05-20T04:48:10.851Z","response_time":356,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["freertos","grafana","influxdb","iot","mesh","pcb-design","sensor","smart-home"],"created_at":"2024-11-23T11:14:55.103Z","updated_at":"2026-05-20T15:02:58.900Z","avatar_url":"https://github.com/edward62740.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wireless Mesh Network System (WMNS)\n\n\n![alt text](https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/mesh.png \"Mesh Devices\")\n\n## Overview\n\nThis is a wireless sensor network system as a part of an ongoing project for smart home sensing and security. The intent is to create easily deployable, low-maintenance (thereby low-power) sensors for real-time collection of non-sensitive data. The various sensors have a battery life typically between 1-4 years off a CR2032 (excl. CO2SN - 4 months, Li-ion).\nThe data is collected in InfluxDB and can be viewed graphically in Grafana.\n![alt text](https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/graph.jpg \"Grafana\")\n![alt text](https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/stats.png \"Grafana\")\n\n## Related Development\n_These devices either contribute to the WMNS database or utilize it for their functions._\u003cbr\u003e\n[PMS](https://github.com/edward62740/wmns-pms) - Particulate matter sensor.\u003cbr\u003e\n[IN-16 Display](https://github.com/edward62740/wmns-in16) - IN-16 tubes for displaying database information.\u003cbr\u003e\n[E-Paper Display](https://github.com/edward62740/wmns-epd) - Simple Wi-Fi/BLE enabled e-paper display. Designed for displaying real-time sensor data.\u003cbr\u003e\n[Lamp](https://github.com/edward62740/wmns-epd) - Mood lamp simulating candle flicker.\u003cbr\u003e\n[Transposer](https://github.com/edward62740/wmns-transposer) - Python script to transfer data from InfluxDB to Firebase RTDB.\u003cbr\u003e\n\n## Network Structure\nThis wireless mesh network is a proprietary, decentralized flood type network. The network consists of three distinct node types: routers (R), gateways (GT) and low-power end devices (LP).\\\nRouters retransmit received data to form the backbone of the network.\\\nGateways are similar to routers and forward mesh network data to a server/cloud.\\\nEnd devices are low-power nodes that sleep for most of the time, periodically transmitting data.\n\n\n![alt text](https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/network.png \"Mesh Devices\")\n\n\n## Measured data\nCurrently, the following data is collected by the system through multiple sensor types (sensors in brackets, not necessarily utilized as such):\n* Temperature (BME280, BME680, Si7021, SCD41, BMA400, mcu_internal)\n* Relative humidity (BME280, BME680, Si7021, SCD41)\n* Barometric pressure (BME280, BME680)\n* Illuminance (OPT3001, VEML6030, Si1133/5)\n* UV levels (Si1133/5)\n* Sudden/discontinous motion (BMA400)\n* Person counter (VL53L1X)\n* CO2 concentration (SCD41)\n* VOC concentration (BME680)\n* Battery levels (ADC)\n* Signal strength (radio)\n\n\n## Custom Hardware Devices\nGPSN             |  LRSN      |  CO2SN  | ALSN\n:-------------------------:|:-------------------------:|:-------------------------:|:-------------------------:\n\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/gpsn.png\" alt=\"GPSN\" width=\"150\"/\u003e\u003cbr /\u003eGeneral-purpose configurable sensor for: temperature, humidity, air pressure, light, VOCs, motion|\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/lrsn.png\" alt=\"LRSN\" width=\"200\"/\u003e\u003cbr /\u003ePerson counter sensor |  \u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/co2sn.png\" alt=\"CO2SN\" width=\"200\"/\u003e\u003cbr /\u003eCarbon dioxide concentration sensor | \u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/alsn.png\" alt=\"ALSN\" width=\"200\"/\u003e\u003cbr /\u003eSpecialized light sensor for visible, UV, IR\n\nGATEWAY             |  ROUTER32PA      |  ROUTER40  | LTSN | TERMINAL\n:-------------------------:|:-------------------------:|:-------------------------:|:-------------------------:|:-------------------------:\n\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/gateway.png\" alt=\"GATEWAY\" width=\"250\"/\u003e\u003cbr /\u003eInternet gateway node  |\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/router32pa.png\" alt=\"ROUTER32PA\" width=\"150\"/\u003e\u003cbr /\u003ePower amplified router node |  \u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/router40.png\" alt=\"ROUTER40\" width=\"150\"/\u003e\u003cbr /\u003eUSB-powered router node |\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/ltsn.png\" alt=\"LTSN\" width=\"150\"/\u003e\u003cbr /\u003eSpecialized temp sensor for sub-zero|\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/terminal.png\" alt=\"TERMINAL\" width=\"150\"/\u003e\u003cbr /\u003eSecurity node and gateway redundancy.\n\n## Performance\n\nThe following performance factors were considered during the design of the WMNS:\n* Low maintenance - essentially long battery life and reliability\n\u003c/br\u003e _Low power circuit and software design from bottom up. Certain sensors (i.e those expected to face harsher conditions) are conformally coated to increase reliability._\n\u003c/br\u003e _Network has no central \"coordinator\" type node which is required to sustain the network. Packets can take multiple paths to the gateway. Gateways can be configured as redundancies._\n\u003c/br\u003e _Connectionless protocol. No risk of runtime disconnections, failed acks etc. Sensors only need initial positioning in an area with good RSSI and reasonable packet loss from multipath fading._\n* Ease of use - able to easily add more sensors (and more types), and modify configurations.\n\u003c/br\u003e _Easy plug-and-play to add more sensors. Only the gateway needs modifications to add new sensor types (for database side processing)._\n\u003c/br\u003e _Sensors can easily be configured for different sample rates._\n* Range - good wireless range vs power consumption compromise\n\u003c/br\u003e _Tuned internal antennas allow for lower tx power (and less power consumption)._ \n\u003c/br\u003e\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/gpsntune.PNG\" alt=\"GPSN Return Loss\" width=\"400\"/\u003e\n* Low-cost - cheap sensors\n\u003c/br\u003e _Runs off comparatively low-cost and widely used nRF52 series SoCs. Same design template was used across sensors to drop development time and costs._\n\u003c/br\u003e _No protocol overhead or IP costs involved._\n\n## Deployment\n\nThis system has been deployed in stages since Q1 21 with zero system failures (e.g gateway restarts, sensor malfunctions and drops out of network, hardware failure).\n\u003c/br\u003e\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/deploymentgateway.png\" alt=\"Gateway Deployment v3.0.1\" width=\"200\"/\u003e\n\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/deploymentterminal.png\" alt=\"Terminal Deployment v3.0.1\" width=\"200\"/\u003e\n\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/deploymentco2sn.jpeg\" alt=\"CO2SN Deployment v3.0.1\" width=\"200\"/\u003e\n\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/deploymentgpsn.jpeg\" alt=\"GPSN Deployment v3.0.1\" width=\"200\"/\u003e\n\u003cimg src=\"https://github.com/edward62740/Wireless-Mesh-Network-System/blob/master/Documentation/deploymentltsn.jpeg\" alt=\"LTSN Deployment v3.0.1\" width=\"200\"/\u003e\n\u003c/br\u003e\nDeployed devices: 28\n\n\n\u003cbr\u003e\nThis repo is released under the GPL-2.0 License. Related repos DO NOT INHERIT licenses.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedward62740%2Fwmns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedward62740%2Fwmns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedward62740%2Fwmns/lists"}