{"id":20079088,"url":"https://github.com/mkgeiger/mqtt-geiger-counter","last_synced_at":"2026-04-10T02:13:02.402Z","repository":{"id":177432000,"uuid":"331095426","full_name":"mkgeiger/mqtt-geiger-counter","owner":"mkgeiger","description":"This project is based on my older Geiger Counter project on the same hardware. It converts the hardware in an MQTT client.","archived":false,"fork":false,"pushed_at":"2021-01-31T16:43:09.000Z","size":771,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-13T01:12:33.292Z","etag":null,"topics":["arduino","async-mqtt-client","async-tcp","cpm","esp8266","geiger-counter","high-voltage","iot","mqtt","theremino","wifi"],"latest_commit_sha":null,"homepage":"","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/mkgeiger.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":"2021-01-19T20:03:53.000Z","updated_at":"2025-01-04T12:09:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"4c489f22-5165-4ce2-9318-7757021cf721","html_url":"https://github.com/mkgeiger/mqtt-geiger-counter","commit_stats":null,"previous_names":["mkgeiger/mqtt-geiger-counter"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkgeiger%2Fmqtt-geiger-counter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkgeiger%2Fmqtt-geiger-counter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkgeiger%2Fmqtt-geiger-counter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkgeiger%2Fmqtt-geiger-counter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkgeiger","download_url":"https://codeload.github.com/mkgeiger/mqtt-geiger-counter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241509659,"owners_count":19974071,"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","async-mqtt-client","async-tcp","cpm","esp8266","geiger-counter","high-voltage","iot","mqtt","theremino","wifi"],"created_at":"2024-11-13T15:19:46.138Z","updated_at":"2025-12-31T01:05:22.192Z","avatar_url":"https://github.com/mkgeiger.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MQTT Geiger Counter\r\n## Overview\r\nIn this project you will see how to build a MQTT client on base of an ESP8266 to measure the local gamma dose rate. I preferred to integrate my older Geiger Counter project (see https://github.com/mkgeiger/geiger-counter-iot) into my MQTT cloud. For that I am reusing the older hardware without any modifications. It will be used then only for long term measurements. Changes are affecting only the software, which will completely re-written to make it MQTT capable.\r\n\r\n## Hardware design\r\n### Schematic\r\nPlease refer to my other project: https://github.com/mkgeiger/geiger-counter-iot/blob/master/README.md#high-voltage-booster. In a second revision I replaced the high voltage circuit with the Theremino Geiger adapter, which is smaller and supplies a much more stable high voltage output. Documentation for this module can be found under https://www.theremino.com/en/technical/schematics#geigeradapter. An external resistor of 100kOhm at the signal output shifts the logical level from 5V to 3.3V.\r\n![MqttSetup](/ThereminoGeiger.png)\r\n\r\n### ESP8266 controller board\r\nPlease refer to my other project: https://github.com/mkgeiger/geiger-counter-iot/blob/master/README.md#nodemcu-esp8266-12e\r\n\r\n### Sensor\r\nPlease refer to my other project: https://github.com/mkgeiger/geiger-counter-iot/blob/master/README.md#gm-tube\r\n\r\n## SW-update\r\nSW-update is done via USB cable.\r\n\r\n## SW installation and SW build\r\nFollowing steps need to be done first:\r\n1. install Arduino IDE 1.8.1x\r\n2. download and install the ESP8266 board supporting libraries with this URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json\r\n3. select the `NodeMCU 1.0 (ESP-12E Module)` board\r\n4. install the `Async MQTT client` library: https://github.com/marvinroger/async-mqtt-client/archive/master.zip\r\n5. install the `Async TCP` library: https://github.com/me-no-dev/ESPAsyncTCP/archive/master.zip\r\n6. config (see next chapter), compile and flash\r\n\r\n## SW configuration\r\nThe configuration is completely done in the web frontend of the WifiManager. At first startup, the software boots up in access point mode. In this mode you can configure parameters like\r\n* Wifi SSID\r\n* Wifi password\r\n* MQTT broker IP address\r\n* MQTT user\r\n* MQTT password\r\n\r\n## SW normal operation\r\nThe software counts the ticks produced by the gamma tubes within measurement cycles of 10 minutes. The software publishes after each measurement cycle to 2 MQTT topics: Counts Per Minute [CPM] and the derived ionizing radiation dose [μSv/h]. Also the software supports re-connection to Wifi and to the MQTT broker in case of power loss, Wifi loss or MQTT broker unavailability. The MQTT topics begin with the device specific MAC-address string (in the following \"A020A600F73A\" as an example). This is useful when having multiple controllers in your MQTT cloud to avoid collisions.\r\n\r\nPublish topics:\r\n* Topic: \"/A020A600F73A/cpm\"            Payload example: \"22.50\"\r\n* Topic: \"/A020A600F73A/usvph\"          Payload example: \"0.1234\"\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkgeiger%2Fmqtt-geiger-counter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkgeiger%2Fmqtt-geiger-counter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkgeiger%2Fmqtt-geiger-counter/lists"}