Geiger counter settings

Moderators: grovkillen, Stuntteam, TD-er

Post Reply
Message
Author
lavAzza
Normal user
Posts: 2
Joined: 23 May 2018, 22:18

Geiger counter settings

#1 Post by lavAzza » 23 May 2018, 22:41

Please help to connect Geiger counter to NodeMCU v3 with ESPEasy Mega.
I use noname Geiger counter with 5v logic, logic convertor and NodeMCU v3.
Schema
Geiger counter ----- Converter ----- NodeMCU
GND ------------------ GND | GND --- GND
5V -------------------- 5V | 3,3V ------ 3,3V
VIN ------------------- A4 | B4 --------- D3
There is no any counts in Device page.
I tryed different Debounce Time and Mode Type settings.
Geiger counter is work fine with Arduino Uno.
Attachments
Снимок5.PNG
Снимок5.PNG (9.98 KiB) Viewed 1271 times
Снимок4.PNG
Снимок4.PNG (25.72 KiB) Viewed 1271 times
Снимок3.PNG
Снимок3.PNG (116.15 KiB) Viewed 1271 times
Снимок2.PNG
Снимок2.PNG (222.18 KiB) Viewed 1271 times
Снимок.PNG
Снимок.PNG (511.71 KiB) Viewed 1271 times

lavAzza
Normal user
Posts: 2
Joined: 23 May 2018, 22:18

Re: Geiger counter settings

#2 Post by lavAzza » 27 May 2018, 15:11

Can anybody help?

User avatar
grovkillen
Core team member
Posts: 3437
Joined: 19 Jan 2017, 12:56
Location: Hudiksvall, Sweden
Contact:

Re: Geiger counter settings

#3 Post by grovkillen » 27 May 2018, 15:44

Have you tried any other mode except "LOW"?
ESP Easy Flasher [flash tool and wifi setup at flash time]
ESP Easy Webdumper [easy screendumping of your units]
ESP Easy Netscan [find units]
Official shop: https://firstbyte.shop/
Sponsor ESP Easy, we need you :idea: :idea: :idea:

TD-er
Core team member
Posts: 2110
Joined: 01 Sep 2017, 22:13
Location: the Netherlands
Contact:

Re: Geiger counter settings

#4 Post by TD-er » 28 May 2018, 22:26

100 msec debounce time does sound a bit long.
I can imagine the pulses of this Geiger counter are short, maybe a bit too short for the ESP to detect properly.

You could add a flipflop in between the ESP and the Geiger counter. Then every blip will trigger a status switch on the flipflop output, which will result in a up- or low-level period which is a lot longer.
Every detected level change reflects a count.

belgo
Normal user
Posts: 14
Joined: 14 Jan 2017, 22:15
Location: Belgium

Re: Geiger counter settings

#5 Post by belgo » 06 Jan 2020, 14:27

hi,

i have the same project : connect a cheap Geiger counter to Domoticz with a wemos and Espeasy on it .

Did you finally found a solution to connect them together ? and want to share it ?

thanks a lot

Belgo

belgo
Normal user
Posts: 14
Joined: 14 Jan 2017, 22:15
Location: Belgium

Re: Geiger counter settings

#6 Post by belgo » 13 Feb 2020, 20:32

hi to all,

Finally i dont find anything already done and then i'll make it myself

i use a Wemos ( ESP 8266) , a cheap geiger counter with J305 tube and a LCD 4 X 20 chars.

the ESP send data to Domoticz with JSON http instruction.

here the result .
geiger.JPG
geiger.JPG (86.59 KiB) Viewed 197 times

on domoticz:
Capture d’écran 2020-02-13 à 20.30.52.png
Capture d’écran 2020-02-13 à 20.30.52.png (176.29 KiB) Viewed 197 times
see you

Belgo

User avatar
grovkillen
Core team member
Posts: 3437
Joined: 19 Jan 2017, 12:56
Location: Hudiksvall, Sweden
Contact:

Re: Geiger counter settings

#7 Post by grovkillen » 13 Feb 2020, 21:19

That is really cool! Thanks for sharing.

Please enlighten us with more info on the setup.
ESP Easy Flasher [flash tool and wifi setup at flash time]
ESP Easy Webdumper [easy screendumping of your units]
ESP Easy Netscan [find units]
Official shop: https://firstbyte.shop/
Sponsor ESP Easy, we need you :idea: :idea: :idea:

belgo
Normal user
Posts: 14
Joined: 14 Jan 2017, 22:15
Location: Belgium

Re: Geiger counter settings

#8 Post by belgo » 13 Feb 2020, 21:29

i'll try to take a little time to make a schematics and share my code ..

there is some little bugs to correct , i am not a good coder :-(

but someone else could probably help me to fine tune it ;-)

see you soon

Belgo

belgo
Normal user
Posts: 14
Joined: 14 Jan 2017, 22:15
Location: Belgium

Re: Geiger counter settings

#9 Post by belgo » 16 Feb 2020, 09:47

Hi all ,

here the schematics of my geiger counter to Domoticz .

the code will follow

Belgo
schematicsgeiger2.jpg
schematicsgeiger2.jpg (221.86 KiB) Viewed 133 times

belgo
Normal user
Posts: 14
Joined: 14 Jan 2017, 22:15
Location: Belgium

Re: Geiger counter settings

#10 Post by belgo » 16 Feb 2020, 10:13

here is my code .

they a re probably some bugs on it but it's working ..

if someone wants to improve it, plz share your modification with the community .

i am waiting your feedback

Belgo




/*************ARDUINO SKETCH FOR GEIGER COUNTER******************
Author: Belgo
*****************************************************************
This sketch was writen for geiger counter cajoe to send data to domoticz ( json http )
*****************************************************************
LCD I2C Connection:
LCD SDA -> D5
LCD SCL -> D6
VCC to +5V and ground
USB powered
V-in geiger counter to D2 pin from nodemcu
****************************************************************/

// include the library code:
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <Wire.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

#define LOG_PERIOD 15000 //Logging period in milliseconds, recommended value 15000-60000.
#define MAX_PERIOD 60000 //Maximum logging period without modifying this sketch
#define PERIOD 60000.0 // (60 sec) one minute measure period
// Conversion factor - CPM to uSV/h
#define CONV_FACTOR 0.00812

const char* ssid = "your_ssid_wifi";
const char* password = "your_wifi_password";
const char* host = "192.168.1.100"; // ip of your domoticz server
const int port = 8080; // ip port of your domoticz server
const int watchdog = 60000; // Fréquence d'envoi des données à Domoticz - Frequency of sending data to Domoticz
//unsigned long previousMillis = millis();

volatile unsigned long CNT; // variable for counting interrupts from dosimeter
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 dispPeriod; // variable for measuring time
unsigned long CPM; // variable for measuring CPM
float radiationValue = 0.0;
const int inputPin = 4; // pin D2 is VIN on geiger counter

// initialize the library with the numbers of the interface pins
LiquidCrystal_I2C lcd(0x27,16,2);

HTTPClient http;

void setup() { // setup
Wire.begin(D5,D6); // pins SDA and SCL of your i2c LCD screen
Serial.begin(115200);
lcd.begin(20, 4);

lcd.backlight();
lcd.home();
lcd.setCursor(3, 0); // Move the cursor at origin
lcd.print("Geiger Counter");
lcd.setCursor(0, 2);
lcd.print("CPM = ");
lcd.setCursor(0, 1);
lcd.print("Pulse = ");
lcd.setCursor(0, 3);
lcd.print("uSv/h = ");

Serial.println("Connecting Wifi...");

WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.print(WiFi.localIP());

CNT = 0;
CPM = 0;
dispPeriod = 0;

attachInterrupt(digitalPinToInterrupt(inputPin), GetEvent, FALLING); // Define interrupt D2 on falling edge
Serial.println("Start counter");

}

int value = 0;

void loop() { // main loop


if (millis() >=dispPeriod + PERIOD) { // If one minute is over
cleanDisplay(); // Clear LCD


lcd.setCursor(9, 1);
lcd.print(" ");

CPM = CNT;
if(WiFi.status() != WL_CONNECTED) {
Serial.println("WiFi not connected !");
} else {
Serial.println("Send data to Domoticz");


String url = "/json.htm?type=command&param=udevice&idx=73&nvalue=0&svalue=";
url += String(CPM); url += ";";


sendDomoticz(url);
}
lcd.setCursor(9, 2);
lcd.print(CPM); //Display CPM
Serial.println("Start counter");
Serial.println(CPM);
radiationValue = CPM * CONV_FACTOR;
lcd.setCursor(9, 3);
lcd.print(radiationValue); //Display usvr/h

CNT = 0;
dispPeriod = millis();
}
}

ICACHE_RAM_ATTR void GetEvent(){ // Get Event from Device
CNT++;
lcd.setCursor(9, 1);
lcd.print(CNT); //Display CNT
}

void cleanDisplay (){ // Clear LCD routine

}

void sendDomoticz(String url){
Serial.print("connecting to ");
Serial.println(host);
Serial.print("Requesting URL: ");
Serial.println(url);
http.begin(host,port,url);
int httpCode = http.GET();
if (httpCode) {
if (httpCode == 200) {
String payload = http.getString();
Serial.println("Domoticz response ");
Serial.println(payload);
}
}
Serial.println("closing connection");
http.end();
}

fluppie
Normal user
Posts: 85
Joined: 09 Oct 2015, 13:23

Re: Geiger counter settings

#11 Post by fluppie » 17 Feb 2020, 09:47

Cool, consider uploading your data to Radmon https://radmon.org
This is mine: https://radmon.org/radmon.php?function= ... fluppie007

Code: Select all

http://www.radmon.org/radmon.php?function=submit&user=RADMONUSERNAME&password=RADMONPOSTPASSWD&value=CPMVALUE&unit=CPM

You have to change:
RADMONUSERNAME
RADMONPOSTPASSWD
CPMVALUE

chemmex
Normal user
Posts: 6
Joined: 15 Feb 2019, 16:18

Re: Geiger counter settings

#12 Post by chemmex » 17 Feb 2020, 22:03

I get similar functionality using ESPEasy with counter plugin and single gpio. Data is uploaded to mqtt broker every minute, then processed in Node-Red and visualised in Grafana.

Post Reply

Who is online

Users browsing this forum: No registered users and 5 guests