{"id":15197134,"url":"https://github.com/menaver/menaver.iot.devices","last_synced_at":"2026-01-06T18:03:36.160Z","repository":{"id":242097796,"uuid":"808570539","full_name":"Menaver/Menaver.IoT.Devices","owner":"Menaver","description":".NET implementations that help for better interaction with various IoT devices (LED, displays, keyboards, sensors, etc).","archived":false,"fork":false,"pushed_at":"2024-07-26T16:08:45.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T03:24:48.407Z","etag":null,"topics":["arduino","dotnet","iot","raspberrypi"],"latest_commit_sha":null,"homepage":"https://www.nuget.org/packages/Menaver.IoT.Devices","language":"C#","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/Menaver.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-31T10:46:16.000Z","updated_at":"2024-07-17T18:30:53.000Z","dependencies_parsed_at":"2024-09-23T23:30:52.631Z","dependency_job_id":"12b23263-8498-45b8-af65-66c1dbdb97bd","html_url":"https://github.com/Menaver/Menaver.IoT.Devices","commit_stats":{"total_commits":16,"total_committers":3,"mean_commits":5.333333333333333,"dds":0.5,"last_synced_commit":"eac44eff87c6daea37af4e6c8c0720830a5d8e23"},"previous_names":["menaver/menaver.iot.devices"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Menaver%2FMenaver.IoT.Devices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Menaver%2FMenaver.IoT.Devices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Menaver%2FMenaver.IoT.Devices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Menaver%2FMenaver.IoT.Devices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Menaver","download_url":"https://codeload.github.com/Menaver/Menaver.IoT.Devices/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245805966,"owners_count":20675291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["arduino","dotnet","iot","raspberrypi"],"created_at":"2024-09-28T00:43:03.570Z","updated_at":"2026-01-06T18:03:36.155Z","avatar_url":"https://github.com/Menaver.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview \u003ca name=\"overview\"\u003e\u003c/a\u003e\n\n.NET implementations that help for better interaction with various IoT devices (LED, displays, keyboards, sensors, etc).\n\n## Keynotes\n- Platform: netstandard2.0;\n- Distributed via NuGet (check out [Menaver.IoT.Devices](https://www.nuget.org/packages/Menaver.IoT.Devices))\n- This repository [leverages](https://github.com/Menaver/menaver.iot.devices/actions) Github Actions (GHA);\n\n## Supported devices\n- 💡 [Light-emitting diode](https://en.wikipedia.org/wiki/Light-emitting_diode) (LED)\n- ⌨️ [Matrix Keyboard M×N](https://en.wikipedia.org/wiki/Keyboard_matrix_circuit) \n- 📟 [Liquid-crystal display](https://en.wikipedia.org/wiki/Liquid-crystal_display) (LCD): PCF8574, PCF8575, PCA8574, PCA8575 \n- 🌡️ [Humidity \u0026 Temperature Sensor](https://www.mouser.com/datasheet/2/758/DHT11-Technical-Data-Sheet-Translated-Version-1143054.pdf) (DHT): DHT11, DHT12, DHT21, DHT22 \n\n# Examples \u003ca name=\"examples\"\u003e\u003c/a\u003e\n\nMore examples of using the IoT devices can be found in the test project [Menaver.IoT.Devices.Tests](https://github.com/Menaver/Menaver.IoT.Devices/tree/main/src/Menaver.IoT.Devices.Tests/Programs).\n\n## Basic LED\n\n#### Scheme\n\n\u003cimg src=\"https://github.com/Menaver/Menaver.IoT.Devices/assets/12029392/b9fb32cd-c463-416d-9a9c-fa478ae991c9\" width=\"480\"\u003e\n\n#### Code\n```cs\nList\u003cLed\u003e leds = new()\n{\n    new Led(4, Color.Red, false),\n};\n\nusing var ledPanel = new LedPanel(leds);\n\nledPanel.SetAll(Color.Red);\nawait Task.Delay(300);\n\nledPanel.ResetAll();\nawait Task.Delay(300);\n\nledPanel.Toggle(4);\n```\n\n## Obtaining Humidity \u0026 Temperature data from DHT sensor\n\n#### Scheme\n\n\u003cimg src=\"https://github.com/Menaver/Menaver.IoT.Devices/assets/12029392/a48ca152-fc2d-48aa-86bc-21ef291892e0\" width=\"480\"\u003e\n\n#### Code\n```cs\nusing var dht = new Dht(dataPin: 4, DhtDevice.Dht22);\n\nConsole.WriteLine(\"Waiting for the sensor to response...\");\n\nwhile (true)\n{\n    var temperature = await dht.GetTemperatureAsync(TemperatureUnit.Celsius, CancellationToken.None);\n    Console.WriteLine($\"Temperature: {temperature:F1}\\u00B0C\");\n\n    var humidity = await dht.GetHumidityAsync(CancellationToken.None);\n    Console.WriteLine($\"Humidity: {humidity:F1}%\");\n\n    await Task.Delay(1000);\n}\n```\n\n## Matrix Keyboard 4x4\n\n#### Scheme\n\n\u003cimg src=\"https://github.com/Menaver/Menaver.IoT.Devices/assets/12029392/87dc0a3f-4be9-48f5-8357-aa5fd436e628\" width=\"480\"\u003e\n\n#### Code\n```cs\n    private static readonly int[] _inputs = { 18, 23, 24, 25 };\n    private static readonly int[] _outputs = { 10, 22, 27, 17 };\n\n    private static readonly char[,] _keyMap =\n    {\n        { '1', '2', '3', 'A' },\n        { '4', '5', '6', 'B' },\n        { '7', '8', '9', 'C' },\n        { '*', '0', '#', 'D' }\n    };\n\n    public static async Task\u003cint\u003e RunAsync()\n    {\n        using var keypad4x4 = new MatrixKeyboard(_inputs, _outputs, _keyMap);\n\n        while (true)\n        {\n            var key = await keypad4x4.ReadKeyAsync();\n\n            Console.WriteLine($\"Key pressed: {key}\");\n        }\n    }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenaver%2Fmenaver.iot.devices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmenaver%2Fmenaver.iot.devices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenaver%2Fmenaver.iot.devices/lists"}