Built to order

Geiger Counter with ESP32 and Cloud Radiation Logging

This project builds a Geiger counter with ESP32 and cloud radiation logging, using a J305 Geiger-Müller tube module to detect beta and gamma radiation. The ESP32 counts every tube pulse through a hardware interrupt, converts counts per minute into µSv/h with a configurable tube-specific factor, shows live readings on an OLED and sounds a buzzer alarm above a set threshold. Timestamped readings upload over Wi-Fi to a ThingSpeak channel for dose-history graphs. Suitable for B.E./B.Tech final-year projects in Electronics, Electrical and IoT.

Electronics / E&TC MQTTSSD1306 OLED displayESP32 · Arduino frameworkJ305 Geiger-Müller tube moduleThingSpeak cloudPiezo buzzer · LED alarmWi-Fi station modeC++ firmwareHardware
Geiger Counter with ESP32 and Cloud Radiation Logging — project thumbnail preview
More project photos (2)

The problem

Ionizing radiation is invisible: without an instrument, a student cannot tell whether a room, a shelf of vintage equipment or a field site carries elevated levels, and professional survey meters are expensive closed instruments that leave no data trail. Cheap GM-tube modules have flooded the hobby market, but on their own they are pulse blinkers — raw clicks with no counting, no dose conversion, no threshold alarm and no record of what was measured when. This project turns a J305 Geiger-Müller tube module into a complete measurement instrument: an ESP32 counts every tube pulse with a hardware interrupt, converts counts per minute into µSv/h using a configurable tube-specific factor, displays live readings on an OLED, triggers a buzzer and LED alarm above a set threshold, and uploads timestamped readings over Wi-Fi to a ThingSpeak cloud channel so dose history appears as a graph instead of a blinking LED.

How it works

  1. The J305 module is powered at 5 V; its onboard boost converter biases the glass GM tube at approximately 380 V (datasheet operating value), and each ionizing event inside the tube emits one digital pulse on the module's output pin.
  2. The ESP32 watches that pin with a hardware interrupt (attachInterrupt), incrementing a counter on every falling edge; because counting happens in interrupt context, display refreshes and Wi-Fi uploads never steal a count.
  3. Once per minute the firmware totals the pulses into CPM, multiplies by the configured µSv/h factor (default approximate 0.00332 for current J305 tubes) and feeds a 60-second rolling average (design) to smooth counting noise.
  4. The OLED refreshes every second (expected) with live CPM, µSv/h, the running event total and NORMAL or ALARM status.
  5. If CPM crosses the configured threshold (design default 100 CPM), the buzzer sounds and the red LED latches on until the user acknowledges it.
  6. Every 60 seconds (expected) the ESP32 POSTs the timestamped CPM and µSv/h to a ThingSpeak channel over Wi-Fi; the cloud dashboard renders the dose-rate history as graphs.
  7. Without Wi-Fi the unit keeps counting, converting and displaying on the OLED; a small ring buffer (design) holds unsent readings and uploads them when the connection returns.

Tech stack:

  • ESP32 dev board + Arduino framework (C++ firmware)
  • J305 GM tube module (5 V input, approximately 380 V tube bias, digital pulse output)
  • 0.96-inch SSD1306 OLED over I2C
  • ThingSpeak cloud channel (HTTP upload, JSON fields)
  • Piezo buzzer + LED threshold alarm
  • Wi-Fi station mode with stored credentials
  • Breadboard/veroboard wiring, 5 V USB power
Parameter Value
GM tube J305 glass tube, β + γ detection; datasheet starting voltage < 350 V, operating ~380 V
Module supply 5 V DC via USB; typical draw under ~200 mA (Expected)
Pulse interface Digital pulse output → ESP32 GPIO via hardware interrupt
Counting CPM from interrupt-counted pulses; 60 s window (Design)
Dose conversion Configurable factor; default Approximate 0.00332 µSv/h per CPM (datasheet-derived for current J305 tubes)
Display 0.96" OLED 128x64, I2C, 1 s refresh (Expected)
Alarm Buzzer + latching LED; threshold configurable, design default 100 CPM
Cloud upload ThingSpeak, every 60 s (Expected; free tier minimum 15 s)
Typical background ~25 CPM, ~0.08–0.3 µSv/h (Approximate typical range)
Power options USB 5 V or power bank (Optional configuration)

Project features

  • [Hardware-interrupt pulse counting] The ESP32 counts every J305 module pulse through attachInterrupt on a GPIO pin, so no pulse is missed while the processor handles display and Wi-Fi tasks. Interrupt-safe counting stays accurate from background levels up to elevated rates.
  • [CPM to µSv/h conversion] Firmware converts counts per minute into a dose-rate estimate using a configurable factor. The default is approximately 0.00332 µSv/h per CPM, derived from the J305 datasheet sensitivity (44 CPS at 1 mR/h, Co-60); the value is a firmware constant you can adjust to your own tube's datasheet.
  • [Live OLED readout] A 0.96-inch SSD1306 OLED shows live CPM, µSv/h, total event count and NORMAL or ALARM status, refreshing every second (expected), so the whole instrument works with no phone or laptop attached.
  • [Configurable threshold alarm] A buzzer and LED trigger when CPM crosses a user-set threshold (design default 100 CPM); the threshold is stored in flash and changed over serial or a simple setup page, and the LED latches until acknowledged.
  • [Cloud logging to ThingSpeak] Timestamped CPM and µSv/h readings upload every 60 seconds (expected) over Wi-Fi, well inside the free channel's 15-second minimum. The cloud dashboard draws dose-rate history graphs you can open from anywhere.
  • [Sliding-window averaging] Readings are smoothed over a 60-second rolling window (design) to tame the Poisson noise that dominates low count rates, so background readings read as a steady value instead of jumping numbers.
  • [Serial CSV export] Timestamp, CPM and µSv/h stream over USB serial in CSV format for lab analysis, report graphs and viva demonstrations.

What is included

  • Working prototype: J305 module, ESP32, OLED, buzzer and LED, wired and tested
  • Firmware source code (Arduino framework, C++)
  • Wiring diagram and pin-connection table
  • Component list with sourcing notes
  • Setup and calibration guide: threshold setting, Wi-Fi credentials, conversion-factor configuration
  • Project report PDF (GM physics, interrupt counting, dose conversion, IoT pipeline, testing)
  • PPT presentation for final review
  • Viva Q&A preparation document (tube operation, dead time, calibration, cloud integration)

Limitations & prerequisites

  • This is an educational detector, not a certified dosimeter; readings are indicative and must never guide health, safety or compliance decisions.
  • No radioactive source is included and none is needed; never handle unshielded sources, and during assembly respect the module's boost stage, which runs at approximately 380 V (Datasheet value).
  • The dose-rate conversion is approximate and tube-specific; the default factor suits current J305 datasheet tubes and should be calibrated per build.
  • The J305 glass tube detects β and γ radiation; α particles and neutrons are not detected.
  • Wi-Fi and cloud are optional: offline the OLED keeps showing live readings, but no history graph is recorded.
  • Background-level readings carry high Poisson noise; the rolling average steadies the display, not the underlying physics.

Frequently Asked Questions

What does this project actually measure?

The build measures counts per minute (CPM) of detected beta and gamma events, plus a derived dose-rate estimate in µSv/h. The J305 tube emits one digital pulse per ionization event; the ESP32 counts those pulses and firmware converts CPM to µSv/h with a configurable factor. It measures the rate of a radiation field — it does not identify isotopes or replace laboratory spectrometry.

Is the µSv/h reading certified or accurate?

No. This is an educational detector, not a certified dosimeter. The default factor (approximately 0.00332 µSv/h per CPM, derived from the J305 datasheet) is approximate, and real tubes vary by manufacturer and bias voltage. Treat readings as indicative for demonstrations and experiments, never as the basis for health, safety or compliance decisions.

Does it come with a radioactive source?

No radioactive source is included, and none is required for the demonstration. Background radiation gives a live baseline reading, and the counter also responds to check sources a college physics lab already holds. Never handle unshielded radioactive material, and keep the module away from any source you are not trained to work with.

Does it work without Wi-Fi?

Yes. Pulse counting, OLED display, µSv/h conversion and the buzzer alarm all run fully offline. Wi-Fi is needed only for the ThingSpeak cloud logging and dose-history graphs. A small ring buffer (design) holds readings during Wi-Fi dropouts and uploads them once the connection returns.

Can the dose conversion factor be changed?

Yes — it is a firmware constant, not hard-wired into the circuit. The build ships with the datasheet-derived default for current J305 tubes, and the calibration guide shows how to adjust it against a known reference or your own tube's datasheet values. The guide also explains why online examples disagree (approximately 0.00332 vs 0.00812) and which applies to your tube.

Is this project suitable for a final-year project?

Yes — for Electronics, Electrical, Instrumentation and IoT programs. It demonstrates high-voltage biasing, Geiger-Müller detection physics, hardware-interrupt signal counting, sensor calibration, embedded C++ firmware and an IoT data pipeline with cloud visualization: a complete sensing-to-cloud stack in a single working build.

Components & software requirements
  • ESP32 dev board + Arduino framework (C++ firmware)
  • J305 GM tube module (5 V input, approximately 380 V tube bias, digital pulse output)
  • 0.96-inch SSD1306 OLED over I2C
  • ThingSpeak cloud channel (HTTP upload, JSON fields)
  • Piezo buzzer + LED threshold alarm
  • Wi-Fi station mode with stored credentials
  • Breadboard/veroboard wiring, 5 V USB power
Delivery information

Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.

Support terms

Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.

Download free synopsis (PDF)

Enter your name and email — the synopsis PDF downloads immediately. We may send occasional project updates; no spam, unsubscribe anytime.

Related guides

All guides

Best 10 Budget-Friendly Electronics Projects for Final Year

Budget is the constraint students mention most when enquiring about a final-year build. This guide lists 10 real, published electronics projects — 555 timer circuits, IR automation, AM/FM radio builds, op-amp trainer kits and genuine test instruments — chosen for short parts lists of common components. Each entry explains the problem it solves, how it works and why students pick it, with a comparison table, honest budgeting guidance and FAQs. Every build is made to order and priced by quotation.

Read guide

50+ Final Year Project Ideas for Electronics (ECE) Students

This guide lists 50+ final year project ideas for ECE (Electronics / E&TC) students, grouped by domain — IoT & embedded systems, robotics & automation, power & energy systems, communication & signal processing, plus mini-project picks — each with a one-line scope note covering the core hardware. Pick your idea based on four realities: a component budget (typical prototypes cost ₹2,000–8,000), what lab equipment you can access, a 6–8 month timeline, and whether your team can handle soldering and basic PCB work.

Read guide

Best 10 Smart Parking Projects Students Actually Build

Parking is the rare project topic every examiner has personally suffered through. This guide lists 10 real, published smart-parking projects clients ask for: ESP32 bay sensors with LCD and dashboards, CNN occupancy detection trained on the PKLot dataset, IR barrier vehicle counters, an automated parking-lift demo model, a multi-floor booking web app, and an Android app that holds your spot — with a comparison table and honest guidance on picking yours.

Read guide
Get a quotation