{"id":18610389,"url":"https://github.com/aluedtke7/dew-point-fan","last_synced_at":"2026-05-04T07:32:25.438Z","repository":{"id":213700795,"uuid":"734704005","full_name":"aluedtke7/dew-point-fan","owner":"aluedtke7","description":"Dew point fan controller made with GO for a RaspberryPI","archived":false,"fork":false,"pushed_at":"2023-12-22T13:04:53.000Z","size":1716,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T23:11:34.246Z","etag":null,"topics":["dew-point","go","golang","influxdb","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aluedtke7.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}},"created_at":"2023-12-22T11:36:32.000Z","updated_at":"2025-03-08T08:19:48.000Z","dependencies_parsed_at":"2023-12-22T14:07:20.939Z","dependency_job_id":"131cba52-3f4b-4310-9bb0-31309980fc69","html_url":"https://github.com/aluedtke7/dew-point-fan","commit_stats":null,"previous_names":["aluedtke7/dew-point-fan"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aluedtke7/dew-point-fan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aluedtke7%2Fdew-point-fan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aluedtke7%2Fdew-point-fan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aluedtke7%2Fdew-point-fan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aluedtke7%2Fdew-point-fan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aluedtke7","download_url":"https://codeload.github.com/aluedtke7/dew-point-fan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aluedtke7%2Fdew-point-fan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32598975,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["dew-point","go","golang","influxdb","raspberry-pi"],"created_at":"2024-11-07T03:09:47.671Z","updated_at":"2026-05-04T07:32:25.397Z","avatar_url":"https://github.com/aluedtke7.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dew point fan controller\n\nThis project is a GO/RaspberryPI version of the [Taupunktlüfter](https://github.com/MakeMagazinDE/Taupunktluefter)\nproject from the German **Make** magazine. The original project use C/C++ on an Arduino Nano.\n\nMy dew point fan controller is in many aspects the same as the original project:\n- same power supply\n- same sensors\n- same display\n- same case\n- same fan\n\nDifferences:\n- Raspberry PI 2\n- Solid state relais\n- software written in GO\n- no need for extra ethernet connection board\n- no need for extra real time clock or SD card reader\n\nI've done this, because I had an old Raspberry PI lying around\nand I thought it's convenient to have an ethernet connection right from the start.\n\nI use this ethernet connection to access the little http server to see the readings\nin a browser. In addition, the measured temperatures, humidity values and calculated\ndew points are sent to an InfluxDB time series database. There I have a little dashboard\nconfigured that shows me the values over time.\n\nThere's also a [companion app made with flutter](https://github.com/aluedtke7/dew-point-fan-app) \nthat runs on Android, iOS, Windows, macOS and Linux. This app shows the current temperatures, humidity\nvalues and the status of the fan. In addition, it can override the fan status to switch it on or off.\n\n## Screenshots and photos\nFritzing schematic:\n\u003cp float=\"left\"\u003e\n    \u003cimg src=\"./screenshots/fritzing.png\" title=\"Schematic\" width=\"90%\"\u003e\n\u003c/p\u003e\n\nHardware photos:\n\u003cp float=\"left\"\u003e\n    \u003cimg src=\"./screenshots/case.jpg\" title=\"Case\" width=\"90%\"\u003e\n    \u003cimg src=\"./screenshots/inside.jpg\" title=\"Inside of case\" width=\"90%\"\u003e\n\u003c/p\u003e\n\nScreenshots:\n\u003cp float=\"left\"\u003e\n    \u003cimg src=\"./screenshots/InfluxDB_dashboard.png\" title=\"InfluxDB dashboard\" width=\"90%\"\u003e\n    \u003cimg src=\"./screenshots/http_html.png\" title=\"Html version\" width=\"90%\"\u003e\n    \u003cimg src=\"./screenshots/http_json.png\" title=\"Json version\" width=\"90%\"\u003e\n\u003c/p\u003e\n\n## Start programm automatically\nIn order to start the programm when the Raspberry Pi boots up, you need to paste the following lines to `/etc/rc.local` \n**before** the line containing `exit 0`!\nPlease adjust the exported values to your need. The InfluxDB token is created in the UI of\nInfluxDB. Look for **API Tokens**.\n\nThe url has to be set to the right ip-address of your InfuxDB server including the used\nport, if you use a non standard port. I run InfluxDB in a docker container on my NAS and\nthere I have to use a special port.\n\n````\nexport INFLUX_DP_TOKEN=FJGkvqQ...LPhKA==\nexport INFLUX_SRV_URL=http://192.168.0.22:8086\nsu pi -c '/home/pi/dew_point_fan/dew_point_fan'\n````\n\nI use the user **pi** on the Raspberry and the program is located in the sub folder \n`dew_point_fan` of the home folder of pi.\n\n## Development\nPlease read chapter [Final solution: compile on Raspberry](#final-solution) if you want\nto compile it yourself. The following chapter is a another possibility to build the binary.\n\n### Cross compilation\nCross Compilation is possible, but you have to install a special ARM compiler.\n\n\u003e Important\n\u003e The DHT Package needs a special arm compiler and build tools. The details are\n\u003e described here: [https://github.com/d2r2/go-dht/issues/20](https://github.com/d2r2/go-dht/issues/20)\n\n#### Using special version of go-dht\nThe latest versions of go-dht will lead in binaries that need root priviledge to \nread/write the GPIO pins. There is a fix for this, but that's not yet merged. The \nfollowing version does help in this case:\n\n    go get github.com/d2r2/go-dht@42fe873fbabb\n\nI created a fork of this project with the mentioned fix included:\n[special go-dht](https://github.com/aluedtke7/go-dht)\n\nOn your development machine run the following line to build a `dew_point_fan` binary that\ncan run on a raspberry pi:\n\n    CC=arm-linux-gnueabihf-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=6 go build -o dew_point_fan -v dew_point_fan.go\n\nThis will create a binary named `dew_point_fan` that can run on an ARM processor \nrunning linux.\n\n#### Copy binary to raspberry\nIf your ssh key is present on the raspberry, you don't need credentials to copy the binary:\n\n    scp dew_point_fan pi@192.168.0.29:\n\nor both commands in one go:\n\n    GOOS=linux GOARCH=arm go build -o dew_point_fan -v dew_point_fan.go \u0026\u0026 scp dew_point_fan pi@192.168.0.29:\n\n### Final solution: compile on Raspberry\nEven though I'm using Manjaro as development machine, I was able to cross compile my code\nwithout erros. But when I ran this code on a my Raspberry, I got an error about a GBLIC \nversion mismatch.\n\nNormally, cross compilation is very easy with GO, but in this case I decided to compile \nthe code directly on the Raspberry. On this old Raspberry, the compilation time for this\nis approx. 1 minute. This is very slow compared to running GO on a laptop, but I can live\nwith it.\n\n\u003e **Important**\n\u003e \n\u003e My Raspberry has a single core and only 512MB RAM. When I tried to compile the sources, \n\u003e I got an error message `go build github.com/influxdata/line-protocol: ... signal: killed`.\n\u003e  I had to increase the size of the swapfile:\n\u003e ````\n\u003e sudo nano /etc/dphys-swapfile\n\u003e # inside this file, change the value of CONF_SWAPSIZE to 2048\n\u003e sudo dphys-swapfile setup\n\u003e sudo dphys-swapfile swapon\n\u003e ````\n\u003e With this modification, I can compile the sources.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faluedtke7%2Fdew-point-fan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faluedtke7%2Fdew-point-fan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faluedtke7%2Fdew-point-fan/lists"}