Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. My Project
  3. Geiger Counter

Geiger Counter

Scheduled Pinned Locked Moved My Project
16 Posts 4 Posters 9.5k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • hekH Offline
    hekH Offline
    hek
    Admin
    wrote on last edited by
    #7

    S_RADIOACTIVITY sounds like useful new device type.

    When reading up a bit more. Wouldn't it be better to send in radiation level (uSv/hr) as V_LEVEL. We try to re-use V_LEVEL between device-types for SI-levels of any kind.

    I have started this a new issue here to discuss it further:
    https://github.com/mysensors/MySensors/issues/567

    1 Reply Last reply
    0
    • alexsh1A Offline
      alexsh1A Offline
      alexsh1
      wrote on last edited by
      #8

      Excellent - thank you guys. I have been looking for an addition to my weather station.
      I think I'll place an order for this one: http://www.ebay.co.uk/itm/182166337823?_trksid=p2060353.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT
      This is 100% Japanese built Arduino based Geiger counter.

      1 Reply Last reply
      0
      • alexsh1A Offline
        alexsh1A Offline
        alexsh1
        wrote on last edited by
        #9

        @hek Henrik, where do you stand with S_RADIOACTIVITY please?
        Unfortunately, I cannot use S_CUSTOM or any other with Domoticz so has to wait for a S_RADIOACTIVITY being implemented with (1) MySensors (2) Domoticz.

        Thanks
        Alex

        1 Reply Last reply
        0
        • hekH Offline
          hekH Offline
          hek
          Admin
          wrote on last edited by
          #10

          It's just a matter on agreeing on what types/data to send. Please post your input in the issue.

          alexsh1A 2 Replies Last reply
          0
          • hekH hek

            It's just a matter on agreeing on what types/data to send. Please post your input in the issue.

            alexsh1A Offline
            alexsh1A Offline
            alexsh1
            wrote on last edited by alexsh1
            #11

            @hek The logging software is reporting is as follows every minute:

            CPS, 2, CPM, 15, uSv/hr, 0.08, SLOW
            (Please see http://mightyohm.com/blog/2012/02/tutorial-geiger-counter-data-logging/)

            Therefore, there are four parameters here and I propose to use the following:

            1. CPS --> ???
            2. CPM --> ???
            3. uSv/hr --> S_RADIOACTIVITY (V_LEVEL)
            4. SLOW/FAST -> S_INFO (V_TEXT)
            1 Reply Last reply
            0
            • alexsh1A Offline
              alexsh1A Offline
              alexsh1
              wrote on last edited by alexsh1
              #12

              We can keep it simple - CPM and uSv/hr are the two typically reported.
              Even more simple - knowing CPM we can figure out uSv/hr

              FotoFieberF 1 Reply Last reply
              0
              • alexsh1A alexsh1

                We can keep it simple - CPM and uSv/hr are the two typically reported.
                Even more simple - knowing CPM we can figure out uSv/hr

                FotoFieberF Offline
                FotoFieberF Offline
                FotoFieber
                Hardware Contributor
                wrote on last edited by
                #13

                @alexsh1
                Calculation of uSv/hr based on CPM is dependent of the tube. If we do not implement the calculation in the sketch, it must be done in the controller.

                alexsh1A 1 Reply Last reply
                0
                • FotoFieberF FotoFieber

                  @alexsh1
                  Calculation of uSv/hr based on CPM is dependent of the tube. If we do not implement the calculation in the sketch, it must be done in the controller.

                  alexsh1A Offline
                  alexsh1A Offline
                  alexsh1
                  wrote on last edited by
                  #14

                  @FotoFieber my understanding is that all meters are calibrated to either Cs137 or Co60, which is more likely down to the tube. However, I do not understand why we care about the conversion. My geiger meter reports both uSv/hr and CPM and a number of other meters reports exactly the same. If there is any conversion required, it has to be done in the sketch IMHO.

                  1 Reply Last reply
                  0
                  • hekH hek

                    It's just a matter on agreeing on what types/data to send. Please post your input in the issue.

                    alexsh1A Offline
                    alexsh1A Offline
                    alexsh1
                    wrote on last edited by
                    #15

                    @hek Any news on this please? I am missing definition for CPS/CPM.

                    1 Reply Last reply
                    0
                    • FotoFieberF FotoFieber

                      Here is the update for mysensors 2.0

                      //
                      #define SKETCH_NAME "Geiger Sensor"
                      #define SKETCH_MAJOR_VER "2"
                      #define SKETCH_MINOR_VER "0"
                      
                      // Enable and select radio type attached
                      #define MY_RADIO_NRF24
                      
                      #define MY_RF24_CHANNEL  13
                      #define MY_RF24_BASE_RADIO_ID ((uint64_t)0xF8A813FC09CL)
                      
                      
                      //
                      #define DIGITAL_INPUT_SENSOR 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
                      #define INTERRUPT DIGITAL_INPUT_SENSOR-2 // Usually the interrupt = pin -2 (on uno/nano anyway)
                      #define CHILD_ID 1   // Id of the sensor child
                      
                      #define LOG_PERIOD 60000     //Logging period in milliseconds, recommended value 15000-60000.
                      
                      #define MAX_PERIOD 60000    //Maximum logging period
                      
                      unsigned long counts;             //variable for GM Tube events
                      
                      unsigned long cpm;                 //variable for CPM
                      
                      unsigned int multiplier;             //variable for calculation CPM in this sketch
                      
                      unsigned long previousMillis;      //variable for time measurement
                      
                      unsigned long timeReceived = 0;
                      unsigned long timeRequested = 0;
                      
                      // Enable debug prints to serial monitor
                      #define MY_DEBUG
                      
                      
                      #include <SPI.h>
                      #include <MySensors.h>
                      
                      MyMessage msg(CHILD_ID, V_VAR1);
                      
                      void setup()
                      {
                        wdt_enable(WDTO_8S);
                        
                        // Geiger initialise
                        counts = 0;
                      
                        cpm = 0;
                      
                        multiplier = MAX_PERIOD / LOG_PERIOD;      //calculating multiplier, depend on your log period
                      
                        pinMode(DIGITAL_INPUT_SENSOR, INPUT);      // sets the geiger sensor digital pin as input
                      
                        digitalWrite(DIGITAL_INPUT_SENSOR, HIGH);                                 // turn on internal pullup resistors, solder C-INT on the PCB
                      
                        attachInterrupt(1, tube_impulse, FALLING);  //define external interrupts
                      
                        wdt_reset();
                      }
                      
                      void presentation() {
                        // Send the sketch version information to the gateway and Controller
                        sendSketchInfo(SKETCH_NAME, SKETCH_MAJOR_VER "." SKETCH_MINOR_VER);
                      
                        wdt_reset();
                        wait(500);
                        present(CHILD_ID, S_ARDUINO_NODE);
                        
                        wdt_reset();
                        wait(500);
                       }
                      
                      void loop()
                      { 
                        wdt_reset();
                        unsigned long currentMillis = millis();
                      
                        if (currentMillis - previousMillis >= LOG_PERIOD) {
                      
                          cpm = counts * multiplier;
                      
                          send(msg.set(cpm));
                      
                          counts = 0;
                          previousMillis = currentMillis;
                      
                        }
                      }
                      
                      
                      void tube_impulse() {              //procedure for capturing events from Geiger Kit
                      
                        counts++;
                      
                      }
                      
                      
                      
                      

                      @Hek
                      What do you think about a sensor type geiger counter with cpm and microsievert? V_VAR1 for cpm ist not cool :cool:

                      alexsh1A Offline
                      alexsh1A Offline
                      alexsh1
                      wrote on last edited by
                      #16

                      @FotoFieber Cannot use MyMessage msg(CHILD_ID, V_VAR1); as this is not supported by Domoticz.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      18

                      Online

                      11.7k

                      Users

                      11.2k

                      Topics

                      113.1k

                      Posts


                      Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • MySensors
                      • OpenHardware.io
                      • Categories
                      • Recent
                      • Tags
                      • Popular