{"id":25668494,"url":"https://github.com/borud/thermo","last_synced_at":"2025-02-24T10:34:20.927Z","repository":{"id":19824401,"uuid":"23085350","full_name":"borud/thermo","owner":"borud","description":"Arduino temperature sensor logger","archived":false,"fork":false,"pushed_at":"2014-12-10T03:07:57.000Z","size":176,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-31T12:58:06.718Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/borud.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}},"created_at":"2014-08-18T20:24:59.000Z","updated_at":"2014-12-10T03:07:57.000Z","dependencies_parsed_at":"2022-08-25T23:30:25.803Z","dependency_job_id":null,"html_url":"https://github.com/borud/thermo","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borud%2Fthermo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borud%2Fthermo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borud%2Fthermo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borud%2Fthermo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/borud","download_url":"https://codeload.github.com/borud/thermo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240462641,"owners_count":19805340,"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":"2025-02-24T10:34:20.288Z","updated_at":"2025-02-24T10:34:20.920Z","avatar_url":"https://github.com/borud.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Thermo\n\n__*This is a work in progress so some of the code might be messy or\n  unclear.*__\n\n__For some reason the Xively and WiFi code will not play nice with\nnewer versions of the Arduino IDE.  Version 1.0.5 does *NOT* work,\nwhile 1.0.2 appears to work.  Have not investigated why.  If you know\nwhy and feel like contributing, please fork the project and send me a\npull-request.__\n\nThe goal of this project is to learn about measuring body temperature,\nso the software will implement whatever I need to experiment with\nthis.  The goal isn't necessarily to produce a polished product at the\nend.\n\nIf you find this code usable or if you are able to learn from it,\nplease feel free to clone the project on Github.  That way I can\nperhaps learn something from you and you can contribute features that\nI might include in my version.\n\n## How to get this to work\n\n### `private.h`\n\nThere's a header file called `private.h` which you will notice is\nmissing from this project.  This is because this is where private\ninformation such as WiFi ssid and password is stored as well as Xively\ncredentials.\n\nI've provided a file named `private_template.h` which you should copy\nto `private.h` and then edit that.  __Take care not to check\n`private.h` into any public repositories, or your WiFi and Xively\ncredentials will become public__.\n\n### `thermo_config.h`\n\nThis file contains a bunch of configuration settings and a few useful\nglobal definitions.  Have a look at it.  In particular you will need\nto modify this if you want to add more sensors than the default max\nnumber (3 sensors).\n\n(If you add more sensors you'll have to look at the code in\n`thermo_xively.cpp` as well.  There's a terribly stupid hack there to\ndefine feeds, and if you need more feeds you need to edit this)\n\n## Hardware.\n\nTo use this software you need the following hardware:\n\n  - 4-digit, 8-segment LED display from SparkFun\n  - Maxim MAX7219 LED driver\n  - Dallas DS18B20 digital temperature sensors\n  - Arduino Uno\n\nYou will also need a few resistors and capacitors.\n\n## Software and dependencies.\n\nYou will need the Arduino IDE or a suitable toolchain able to run\n`avr-gcc`, upload the software to the Arduino etc.\n\nThe following libraries are used by this software\n\n  - OneWire library\n  - DallasTemperature\n  - LedControl\n  - WiFi\n  \nI suggest you get the latest versions of everything since having older\nversions of some libraries may result in compile-time errors that may\nbe confusing.\n\n\n## Possible future enhancements.\n\n  - Networking in order to log sensor to some service capable of\n    recording timeseries (there are several).\n  - Low-power features to run this system off a battery so I can use\n    it for wearable systems.\n  - Document hardware including wiring diagram, component values and\n    some explanations.\n\nI might also try out different temperature sensors.  If you know of\nsensors that might be more suitable do not hesitate to drop me a line.\nI'd love for something that can sample faster and provide higher\naccuracy.\n\n## Display status codes\n\n### Boot sequence\n\n  - **b-10** - Boot-time sensor scan.  Looks for sensors connected to\n    the OneWire bus.\n  - **b-20** - Connecting to WiFi.\n  - **b-21** - Found WiFi shield.\n  - **b-99** - Boot finished.  (Normally just a brief flash).\n\n### Errors\n\nThe following error codes may be displayed:\n\n  - **E-01** - No temperature sensor or sensor has been unplugged.\n\n  - **E-02** - Negative temperature (*display only supports positive\n    temperatures up to 99.99 degrees Celsius.  May also be indicative\n    of sensors being unplugged.*).\n\n  - **E-03** - Getting DS18x20 sensor address failed.\n\n  - **E-20** - Sensor index out of bounds.  Indicates a programming\n    error in `thermo_sensor.cpp`\n\n  - **E-21** - Sensor index out of bounds. Indicates a programming\n    error in `thermo_xively.cpp`.\n\n### Reboot\n\n  - **P-01** - No temperature sensors connected.  Keeps rebooting\n    every 2 seconds until one is connected.\n\n## Useful links\n\n### Dallas DS18B20 temperature sensor\n\n  - http://www.milesburton.com/Dallas_Temperature_Control_Library\n\n### Maxim MAX7219 Led display driver\n  - http://playground.arduino.cc/Main/MAX72XXHardware\n  - http://tronixstuff.com/2013/10/11/tutorial-arduino-max7219-led-display-driver-ic/\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborud%2Fthermo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fborud%2Fthermo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborud%2Fthermo/lists"}