Page 1 of 1

Geiger counter settings

Posted: 23 May 2018, 22:41
by lavAzza
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.

Re: Geiger counter settings

Posted: 27 May 2018, 15:11
by lavAzza
Can anybody help?

Re: Geiger counter settings

Posted: 27 May 2018, 15:44
by grovkillen
Have you tried any other mode except "LOW"?

Re: Geiger counter settings

Posted: 28 May 2018, 22:26
by TD-er
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.

Re: Geiger counter settings

Posted: 06 Jan 2020, 14:27
by belgo
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

Re: Geiger counter settings

Posted: 13 Feb 2020, 20:32
by belgo
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 3313 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 3313 times
see you

Belgo

Re: Geiger counter settings

Posted: 13 Feb 2020, 21:19
by grovkillen
That is really cool! Thanks for sharing.

Please enlighten us with more info on the setup.

Re: Geiger counter settings

Posted: 13 Feb 2020, 21:29
by belgo
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

Re: Geiger counter settings

Posted: 16 Feb 2020, 09:47
by belgo
Hi all ,

here the schematics of my geiger counter to Domoticz .

the code will follow

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

Re: Geiger counter settings

Posted: 16 Feb 2020, 10:13
by belgo
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();
}

Re: Geiger counter settings

Posted: 17 Feb 2020, 09:47
by fluppie
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

Re: Geiger counter settings

Posted: 17 Feb 2020, 22:03
by chemmex
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.

Re: Geiger counter settings

Posted: 11 Mar 2020, 16:36
by dudule
Bonjour Belgo,

J'ai acheté le même matériel que vous pour remonter les infos du compteur geiger vers Domoticz et évidement utilisé votre code et votre schéma de raccordement (merci d'avoir partagé).
Pouvez-vous m'expliquer maintenant ce qu'il faut faire du coté Domoticz ?
Merci pour votre patience !
Cordialement,
Dudule.

Re: Geiger counter settings

Posted: 15 Mar 2020, 08:55
by B7en9
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.
Can you share the settings U used? get it working with the small scripts I can find on the internet but not with ESPeasy or Tasmota.

Re: Geiger counter settings

Posted: 19 Mar 2020, 12:35
by chemmex
Hi, below is my pulse counter plugin screen. My geiger cirquit produce short positive pulses, no debounce, and they just get registered by the plugin.

ggercount.JPG
ggercount.JPG (76.13 KiB) Viewed 1406 times
devs.JPG
devs.JPG (26.36 KiB) Viewed 1406 times