Wednesday 29 July 2015

Arduino Geiger Counter

Hello, this summer has been a mixture of activities for me so far. I have been trying my best to not get too involved in my drone development projects by taking more time out to relax and enjoy new activities. I recently acquired a garden allotment which I must admit is a new direction.

I recommend anyone who has an interest in open code projects to try their best to get involved in gardening as a way to break up the workflow and provide timeout. We often feel that in order to be successful, we have to set our goals to that of silicon valley employees - punctual, perpetual machines, with an aura of privilege.
The reality is more often different. And also we have to be different with our approaches to tackling ideas and projects in different ways. I also got chickens and built a chicken shack! That was a rewarding thing, my hens lay some pretty good sized eggs.


Whereas my garden neighbours are all for healthy harvests and gathering, some of my experiments have included seed cultivation. One thing I have learned from this is that even just allowing a couple of your plants to 'go to seed' will reap you hundreds of seeds for next years crop (I don't think I will be buying turnip seeds for a while).








Anyhow, that's my garden. I get some neat foods, got some chickens, all is good. I hope to do a couple of DIY & tech projects for this place which include:

3D printed Chicken water dispenser


I also hope to gather from skips and waste, enough materials to build an eco-shed. Something like this, but less cool:

Anyway, this week I was up late with time to spare, and decided to give a go an arduino geiger counter project. I have always had an interest in sensor data acquisition and how to do it; it's usually out of most people's reach to have all these expensive and fancy environment monitor devices that are considered specialist items which usually hold a specialist expensive price tag. Where better to start DIY data collecting than good old background radiation levels? I'm joking. Most people start with temperature & humidity using a DHT-22 sensor. It's more straightforward. 

I have had fun with the DHT-22 sensor, and also the MQ-7 gas sensor in the past, and feel I need more challenges like that to feel better with my coding abilities.

(mq7 sensor)


One of the more interesting and exclusive environment variables is that of background radiation. It's not something most of us consider or understand or even care about really. And why should we? Isn't it hard enough just trying to understand the weather?

Two things I learned about global background radiation levels are that the standard measure of radiation dosage seems to be the microsievert per hour (Usv/hr), and that all around the world there are different background levels depending on several factors. Kerala in India, being quite a strange place to lay on the beach and soak up some thorium sand, for instance. Here's Some information on background radiation & global location:

"the average exposure from all radiation sources for a member of the public is around 0.26 uSv/hr (one quarter of one millionth of a sievert)." Source

I believe regular normal background radiation to be between 0.11uSv/hr and 0.25uSv/hr depending upon where you live in the world. Here in the north of the UK, it seems to be about 0.15uSv/hr, in London 0.25uSv/hr.

Here is some more information on background radiation:

"The highest level of background radiation is in the state of Kerala and city of Chennai in southern India, where people receive average doses above 30 millisieverts per year, or 3.42 microsieverts an hour, according to the World Nuclear Association." Article here

Amount of Radiation around the world (PDF


Anyway, I built myself a small and simple click box Geiger counter a while ago, and felt quite good about that. The circuit used a cheaply available SBM-20 tube which is actually quite a good tube to have. I didn't really know much about different sensor tubes back then, and just selected on price and availability...And that it looked like interesting cold war Russian hardware.



I learned some details about the data sheet and that it requires some significant voltage to work. My Russian isn't up to much but thankfully some internet people have translated.

What I ended up with was a simple click-box that would make clicks now-and-then (that's background radiation), and go crazy when I placed a radioactive source next to it; in my case I have an old Pentax camera lens that, well, did you know they used to add thorium to glass lenses to affect distortion and chromatic aberration? No neither did I. Apparently it's still quite desirable for it's unique photographing abilities.


What I found lacking with my click box was that it had no way of recording usable data, it also lacked any type of screen display. I wondered if I could modify it using an Arduino nano that I already had?

It seems I could.





All I had to do was connect the arduino to the speaker of the click box using an analog pin (A0) and GND. All the rest was just coding which is available here (free for public use/not for profit/not for corporate or private enterprise):

unsigned long startMillis = 0;
float secondsElapsed = 0;
int analogPin = 0; // set input pin
unsigned long val = 0;
unsigned long tcount = 0;
float tcountRate=0;
boolean isLow = false;
float microSievert = 0;

void setup() {
  Serial.begin(9600);
  startMillis = millis();
  isLow = true;
}

void loop() {
  val = analogRead(analogPin); 
  if(val>9 && isLow){
    tcount++;
    secondsElapsed = (float) (millis()-startMillis)/1000;
    tcountRate = (float) 60.0 * (tcount / secondsElapsed);
    microSievert = (float) tcountRate * 0.0057;
    Serial.print("tCount:");
    Serial.print(tcount);
    Serial.print(" , Seconds:");
    Serial.print(secondsElapsed);
    Serial.print(" , Rate:");
    Serial.print(tcountRate);
    Serial.print(" CPM,   ");
    Serial.print(microSievert);
    Serial.println(" uSv/hr");
    
    isLow=false;    
  }
  
  if(val<10 span="">
    isLow=true;
  } 
}



This now means that I can include anything from I2c LCD display, SD card recording, ethernet & plotly data chart. I might add bluetooth and make an android app.

It seems the click box is has more value and purpose now, and I hope this code is useful to other people.

Here is 'Geigerduino' with LCD:


Back to the gardening.