{"id":20254633,"url":"https://github.com/hnz1102/temp-logger","last_synced_at":"2025-09-22T09:31:29.301Z","repository":{"id":185872723,"uuid":"674214474","full_name":"hnz1102/temp-logger","owner":"hnz1102","description":"Logging Thermocouple Temperature and Send Data to InfluxDB system. ","archived":false,"fork":false,"pushed_at":"2023-09-04T12:19:41.000Z","size":8628,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-14T10:39:19.706Z","etag":null,"topics":["dashboard","esp32","esp32-c3","influxdb","lipo-battery","logger","max31855","pcb-design","rust","ssd1306","thermocouple"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/hnz1102.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-03T12:00:12.000Z","updated_at":"2024-02-22T02:19:04.000Z","dependencies_parsed_at":"2024-08-10T23:34:13.922Z","dependency_job_id":null,"html_url":"https://github.com/hnz1102/temp-logger","commit_stats":null,"previous_names":["hnz1102/temp-logger"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hnz1102%2Ftemp-logger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hnz1102%2Ftemp-logger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hnz1102%2Ftemp-logger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hnz1102%2Ftemp-logger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hnz1102","download_url":"https://codeload.github.com/hnz1102/temp-logger/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233838291,"owners_count":18738115,"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":["dashboard","esp32","esp32-c3","influxdb","lipo-battery","logger","max31855","pcb-design","rust","ssd1306","thermocouple"],"created_at":"2024-11-14T10:34:09.076Z","updated_at":"2025-09-22T09:31:28.715Z","avatar_url":"https://github.com/hnz1102.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e\u003ccode\u003eTemperature Logger for K-Type Thermocouple\u003c/code\u003e\u003c/h1\u003e\n  \u003cp\u003e\n    \u003cimg src=\"doc/temp-logger.jpg\"/\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n# TempLogger - Temperature Logger for K-Type Thermocouple\n\nThis board provides a logging function that gets data on temperature from a K-type thermocouple.\n\n# Feature\n\n**Microcontroller on board** - No need for a PC when you are measuring a temperature.\n\n**Transfer Temperature data via WiFi** - This Logger can transfer temperature data to Linux PC via WiFi network and you can see the dashboard graph in influxDB.\n\n**Battery Powered** - Using LiPo battery. It can run for 48 hours.\n\n# How to use the TempLogger\nPut on the thermocouple where you want to measure the temperature.  \n\n![termocuple](doc/heatgun.jpg)\n\nPush the START/STOP button, then TempLogger starts to log the temperature. And if you want to send data on temperature, push the SEND button. During the measurement, TempLogger can send the data to a PC. \n\n![board](doc/board.png)\n\n\nA display can show you the current temperature, battery voltage, and WiFi connection status.\n\nIf WiFi could not connect to WiFi Access Point, the WiFi mark won't be shown on the display.\n\nYou can see the realtime data using Dashboard by [InfluxDB](https://www.influxdata.com/influxdb/).\n\n![dashboard](doc/dashboard.png)\n\nAfter the measure, to stop logging, push the START/STOP button again.\n\nTo charge a battery, just connect to a USB mini-B port from the bus-powered USB port. During the charge, the CHG LED is RED ON. After the charging is full, the FUL LED is GREEN ON. And the charging will be stopped automatically. But, \n\nDO NOT CONTINUE THE CHARGE IF THE BATTERY IS FULL FOR A LONG TIME. \n\n# Case\n\n![dashboard](doc/templogger-case.jpg)\n\nThere are data for 3D printer in `hardware/*.stl`.\n\n# How to build code\n\nUsing Ubuntu 22.04.02 LTS\n\n1. Install Rust Compiler\n```bash\n$ sudo apt -y install git python3 python3-pip gcc build-essential curl pkg-config libudev-dev libtinfo5 clang libclang-dev llvm-dev udev\n$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\nselect No.1\n$ source \"$HOME/.cargo/env\"\n```\n\n2. Install toolchain for ESP32-C3\n```bash\n$ cargo install ldproxy\n$ cargo install espup\n$ rustup toolchain install nightly --component rust-src\n$ rustup target add riscv32imc-unknown-none-elf\n$ cargo install cargo-espflash\n```\n\n3. Add UDEV rules\n```bash\n$ sudo sh -c 'echo \"SUBSYSTEMS==\\\"usb\\\", ATTRS{idVendor}==\\\"303a\\\", ATTRS{idProduct}==\\\"1001\\\", MODE=\\\"0666\\\"\" \u003e /etc/udev/rules.d/99-esp32.rules'\n$ sudo udevadm control --reload-rules\n$ sudo udevadm trigger\n```\n\n4. Download Temp-Logger code\n```bash\n$ git clone https://github.com/hnz1102/temp-logger.git\n$ cd temp-logger/src/temp-logger\n``` \n5. Setting WiFi SSID, Password, and InfluxDB server IP address.\n```bash\nsrc\\temp-logger\\cfg.toml\n\n[templogger]\nwifi_ssid = \"\u003cyour-AP-ssid\u003e\"     # Set your AP ssid.\nwifi_psk = \"\u003cyour-AP-Password\u003e\"  # Set password for ssid\nhttp_server = \"\u003cPC address\u003e:3000\" # Set IP address and port. port should be 3000.\n```\n\n6. Connecting the board and Set device and set toolchain.\n```bash\nConnecting the Temp-Logger by USB to this build code PC. Then, \n$ cargo espflash board-info\nselect /dev/ttyACM0\nChip type:         esp32c3 (revision v0.4)\nCrystal frequency: 40MHz\nFlash size:        4MB\nFeatures:          WiFi, BLE\nMAC address:       xx:xx:xx:xx:xx:xx\n\n$ rustup component add rust-src --toolchain nightly-2023-06-10-x86_64-unknown-linux-gnu\n```\n\n7. Build code and writing flash\n```bash\n$ cargo espflash flash --release --monitor\nApp/part. size:    950,864/3,145,728 bytes, 30.23%\n[00:00:00] [========================================]      12/12      0x0                                                                       \n[00:00:00] [========================================]       1/1       0x8000                                                                    \n[00:00:11] [========================================]     535/535     0x10000                                                                   [2023-08-03T13:05:12Z INFO ] Flashing has completed!\n\nAnd automaticaly boot!\n```\n\n# How to Install the influxDB and Agent\n\n1. Download [influxDB](https://docs.influxdata.com/influxdb/v2.7/install/?t=Linux) and Install.\n```bash\n$ wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.0-amd64.deb\n$ sudo dpkg -i influxdb2-2.7.0-amd64.deb\n$ sudo service influxdb start\n```\n\n2. Configure the influxDB\n\n```\nConnect to the 'http://\u003cinfluxDB installed PC Address\u003e:8086'\n```\n\nClick `GET STARTED` and set `Username`, `Password`, `Initial Organization Name`, and `Initial Bucket Name`\n|Term|Value|\n|---|---|\n|Username|Set login username as influxDB administrator web console|\n|Password|Set login password as influxDB administrator web console|\n|Initial Organization Name| Organization Name ex. ORG|\n|Initail Bucket Name| LOGGER |\n\nAfter set them, click `CONTINUE`.\n\n3. Copy the operator API token.\n\nYou can see the operator API token on the browser. YOU WON'T BE ABLE TO SEE IT AGAIN!\n\nAfter copy the token, click `CONFIGURE LATER`.\n\n4. Import the Dashboard Template.\n\nClick the `Dashboard` icon, and select `Import Dashboard` from the `CREATE DASHBOARD` menu.\n\nDrop the `src/server/temp-logger_dashboard.json` file to `Drop a file here`, then click `IMPORT JSON AS DASHBOARD`.\n\nYou can see the `Temp-Logger Dashboard` pannel on the Dashboards page.\n\nClick this panel, and You can see the Temp-Logger Dashboard.\n\nIf you want to customize the dashboard design, click configure mark. You can change the graph design.\n\n5. Install the Agent.\n\nTemp-Logger can't directly send data to influxDB API since ESP32-C3 has not TLS software stack. This agent program is responsible for changing HTTP communication from Temp-Logger to HTTPS communication and passing data to the InfluxDB API. This agent is purpose only for a local network because it has no security.\n\nBefore install you have to change parameters in main.js.\n\nsrc/server/main.js\n```javascript\nconst token = \"\u003cinfluxDB API Access Token\u003e\"\nconst url = 'http://\u003cinfluxDB installed IP address\u003e:8086'\nlet org = `\u003cYOUR ORGANIZATION NAME: it has to be same the Initial Organization Name\u003e`\nlet bucket = `LOGGER`\n```\n\nInstall the agent program.\n\n```bash\n$ cd src/server/\n$ ./install.sh\n```\nIf it is `Active: active`` as shown below, it has started normally.\n```\n● influxdb-agent.service - InfluxDB Agent\n     Loaded: loaded (/lib/systemd/system/influxdb-agent.service; enabled; vendor preset: enabled)\n     Active: active (running) since Sat 2023-08-05 02:24:18 UTC; 15ms ago\n```\n\n6. Start Temp-Logger Logging and Send Data.\n\nPush the START/STOP button, and push SEND button. Logging data will be sent to the influxDB. You can see the data on the dashboard.\n\n# Add Battery Monitor\n\nA small modification was made to monitor the battery voltage.\n\nI already fixed new PCB gerber data.\n\n## LICENSE\nThis source code is licensed under MIT. Other Hardware Schematic documents are licensed under CC-BY-SA V4.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhnz1102%2Ftemp-logger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhnz1102%2Ftemp-logger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhnz1102%2Ftemp-logger/lists"}