{"id":17214533,"url":"https://github.com/samdphillips/racket-dht11","last_synced_at":"2026-01-05T08:31:24.746Z","repository":{"id":138591134,"uuid":"334503368","full_name":"samdphillips/racket-dht11","owner":"samdphillips","description":"Racket Library to interface DHT11 sensor on Raspberry Pi","archived":false,"fork":false,"pushed_at":"2021-01-30T20:27:57.000Z","size":10,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-30T11:42:19.038Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Racket","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samdphillips.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-30T20:19:22.000Z","updated_at":"2021-01-30T20:48:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"25596ebb-8cb2-4cd0-bb7b-01a54d9409bf","html_url":"https://github.com/samdphillips/racket-dht11","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdphillips%2Fracket-dht11","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdphillips%2Fracket-dht11/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdphillips%2Fracket-dht11/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdphillips%2Fracket-dht11/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samdphillips","download_url":"https://codeload.github.com/samdphillips/racket-dht11/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245467130,"owners_count":20620209,"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":[],"created_at":"2024-10-15T03:03:32.905Z","updated_at":"2026-01-05T08:31:24.722Z","avatar_url":"https://github.com/samdphillips.png","language":"Racket","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Racket DHT11 Library\n\nCode for interfacing to a DHT11 sensor on a Raspberry Pi with [Racket][1]\n\nThis is fairly stable right now.  Obviously I haven't packaged it up (yet!) so\nyou will have to do that on your own.  This has been tested on a Raspberry Pi\n4, running Ubuntu 20.10 with Racket 7.9 [cs].\n\n# Basic Design\n\nI took the conservative route and implemented the part that reads the pin\nstates in C.  It's mostly a translation of an [Adafruit Python C module][2] I\nfound on github.  Basically Racket calls into a C function that fills a uint\narray with \"timings\" of zeroes and ones.  Then on the Racket side there is code\nthat converts that into bytes.  Basically trying to do the least amount of work\nthat needs to be done in C.\n\n# Typical Setup\n\nWhen the C code is running the Racket runtime will be blocked.  To avoid this\nrun a sensor polling process in a separate place and communicate the sensor\nvalues to a place where the main application work is going to occur.\n\n# \"Issues\"\n\n- [ ] Not packaged\n- [ ] Need to confirm that FFI callout locks are (or not) system-wide global.\n      This effects if different Racket processes using the library can conflict\n      with each other.  Still other programs that don't follow some kind of\n      locking protocol can still cause problems.\n- [ ] FFI callout lock name should be unique for each GPIO pin so in theory\n      multiple sensors could be used.\n- [ ] Are the number of timeouts and checksum errors normal or too much?  I get a fair\n      number but it seems acceptable around \u003c 20%.\n\n[1]: https://www.racket-lang.org/\n[2]: https://github.com/adafruit/Adafruit_Python_DHT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamdphillips%2Fracket-dht11","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamdphillips%2Fracket-dht11","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamdphillips%2Fracket-dht11/lists"}