For ESP32 boards
Install in Arduino IDE:
IFTT library Thinkspeak library
Video: https://youtu.be/K28Az3-gV7E
Do-it-Yourself Geiger Counter YouTube video
For ESP32 boards
Install in Arduino IDE:
IFTT library Thinkspeak library
Video: https://youtu.be/K28Az3-gV7E
followed your link and found some code which fixed the IFTTT section of the code so it now works for me; sends both email and phone notifications.
Thanks for the tip
here is the latter part of the .ino code with my edit:
.....
cpm = (60000 * counts) / (millis() - startCountTime) ;
counts = 0 ;
startCountTime = millis() ;
lastCountTime += PERIOD_LOG * 1000;
display.clear();
displayString("Radioactivity", 64, 0);
displayInt(cpm, 64, 30);
if (cpm >= 200) {
if (active) {
active = 0 ;
display.clear();
displayString("¡¡ALARM!!", 64, 0);
displayInt(cpm, 64, 30);
//////////////////////////////////////////////////////////////////
//begin edit---
//Send email
int HTTP_PORT = 80;
String HTTP_METHOD = "POST"; // or "GET"
char HOST_NAME[] = "maker.ifttt.com"; // hostname of web server:
String PATH_NAME = "/trigger/radiationHigh/json/with/key/kBhwl8us_6dBBeL"; //(not a real API key; add your own here, after key/ ... change 'radiationHigh' to whatever is your 'event' name in IFTTT
if(client.connect(HOST_NAME, HTTP_PORT)) {
Serial.println("Connected to server");
} else {
Serial.println("connection failed");
}
// send HTTP request header
client.println(HTTP_METHOD + " " + PATH_NAME + " HTTP/1.1");
client.println("Host: " + String(HOST_NAME));
client.println("Connection: close");
client.println(); // end HTTP request header
//comment out the following 3 lines...
//#ifdef IFTT
// IFTTT(cpm);
//#endif
//end edit---
//////////////////////////////////////////////////////////////////
} ;
}
else if (cpm < 100)
{
active = 1 ;
} ;
#ifdef CONS
Serial.print("cpm: "); Serial.println(cpm);
This code is very picky about what libraries and boards it uses. It refuses to compile without the proper libraries or board. Its disheartening that I am back to testing every library and board combination again.
Which versions of the libraries?
Which boards are actually compiling? [this code DOES NOT compile on all esp32 boards as I discovered in the previous version.]
https://pastebin.com/iPvpbwfG [Wemos lolin 32] [as recommended]
https://pastebin.com/jVVkbUX1 [lolin32]
LOLIN D32 PRO
DOIT ESP32 DEVKIT V1
Bild.pdf
Geigerzaehler-LCD-ESP-Server-IFTTT.zip
IFTTT-APPLET.docx
Ich habe es nun doch geschafft das benötigte APPLET zu erstellen. Der IFTTT-Key und der Event_Name ist im Sketch eingetragen und die Services und das sind active connected. Die App ist auf dem Handy installiert und aktiv.
ThingSpeak habe ich noch nicht verwendet. Erst einmal IFTTT zum Laufen bringen. Ist alles neu für mich.
Ich füge meine Dateien an.
Ich habe im Aufruf: if (CPM > 30 ) IFTTT( EVENT_NAME, CPM); mit einem geringeren Schwellenwert gearbeitet.
Trotzdem wird auf dem Handy keine Benachrichtigung ausgegeben, trotz Überschreitung des Wertes.
Habe ich etwas vergessen oder falsch gemacht? Vielleicht hast Du eine Möglichkeit, dass ich Dateien mailen kann.
Moin Andreas, oder Grüzi. :-)
Zu allerest: Vielen DANK für deine vielen tollen Beiträge!
Aufmerksam geworden durch ein Video auf YT von dir, möchte ich dich auf ein weiteres DIY-Projekt in Richtung Erfassung von Umweltstrahlung machen. Nämlich den PiGi .
Wie der Name unschwer vermuten lässt, ist der PiGi urprünglich für den Raspberry Pi konzipiert worden, lässt sich aber auch leicht mit anderen MCU`s betreiben.
Mehr Informationen zu dem PiGi findest Du/Ihr in unserem WIKI
Bezugsmöglichkeiten für eine bestückte Platine ist in unserem Forum zu finden.
Wer lieber selbst besorgt und lötet findet auch die Zutatenlisten in den Quellen. ;-p
Soweit, so kurz.
Ich hoffe man liest sich. :-)
Gruß vom
Nordrunner
Hi, thanks for this excellent work and instructions.
All is good re display, and thingspeak communication. But problem getting IFTTT webhook connection to work.
I understand you are busy but hoped for some pointers in case i am missing something obvious to you.
I am using ESP32 Built-in OLED Board (Wemos Lolin32) (aliexpress: geiger counter kit)
So far i tried the following, with no success:
-updating the fingerprint/thumbprint for https://ifttt.com/ in IFTTTWebhook.h to 61:62:75:FA:EA:5F:64:95:4A:F6:09:0F:59:C9:0D:E7:1E:6D:66:A3
-compiled and uploaded (Arduino IDE 1.8.19) for both 'wemos lolin32' and 'sparkfun esp32 thing'
-on ifttt.com/create (webhooks); tried both 'receive a web request with a JSON payload' and 'Receive a web request' (...with the 'then that' being email notification)
To trigger the event, i am brushing the end of the tube connector, triggering many clicks and !!alarm!! on the oLED display, but always in serial monitor it says 'IFTTT failed!'
Please tell me if you can think of any suggested avenues i might try in order to fix this/ workaround. I'm determined to get this working, and will report back my solution when i do.. just in need of a pointer. I'm somewhat scrabbling in the dark with limited experience here!
many thanks,
T
I am using wemos mini and it does not counts from the detector.
I have checked via simple wire if I put to gnd it was counted.
Detector board looks like fine, It makes counting noise and blinking led. But via P3 VIN does not sense anyting. Should I do some modification on the detector board??
thanks for sharing the specs, i've setup the counter and was able to measure with it
I was wondering if you have an idea how I could disable the speaker of the RadiationD-v1.1-CAJOE board?
Hello
I tried to run these codes. I'm amateur. I made a connection like this. But in error
"exit status 1
Error compiling for board Arduino / Genuino Uno. "
How can I fix this?
https://ibb.co/hWSrOn
https://ibb.co/d6wJ3n
Thank for this update. It works fine, but in order to measure in counts per minute CPM you need to multiply wit 60 in those two lines:
cpm = 60 * (counts - lastCounts) / PERIOD_LOG ;
int averageCPM = 60 * (counts) / PERIOD_THINKSPEAK;
Kind regards
Jens
Got this email from ThingSpeak
During a recent planned update to the ThingSpeak server infrastructure, we noticed that one or more of your devices are sending data to ThingSpeak and closing the TCP connection without providing sufficient time for ThingSpeak API servers to respond, or confirming the data made its way to the ThingSpeak servers. This is not a recommended approach and may result in loss of data as the assumption that the data being sent is accepted may not always be valid. For example, if your device tried to update a channel 50 times a second, that is faster than your allowed update rate and the data may have been rejected. If the device did check the response, it would notice that it got a '0' response back indicating that the channel was not updated. In the case of closing the connection before ThingSpeak sent a response code back, a HTTP 499 status code would be sent back, but, because the device wasn't leaving the connection open, this was not known to the device.
Analysis of code patterns leads us to believe that the custom code that did this does not use the ThingSpeak library. It is strongly recommended that you use the ThingSpeak library from https://github.com/mathworks/thingspeak-arduino for updating ThingSpeak channels from devices like Arduino, ESP8266, Particle Photon, Particle Electron, etc. The library provides a higher level API and manages the connections for you. The library also contains new examples for newer devices that you may be using or considering.
If you do not wish to use the library, at the very least, you will need to delay for ~200 milliseconds after making the request to ThingSpeak API server, to ensure that the data made its way to our servers. You can also take a look at some of the examples published here as a starting point on how to update your device code.
Based on feedback from users, we temporarily rolled back our changes to the server infrastructure in order to give users time to update the code on their devices. However, we will be re-introducing the change on Feb 1st, 2019.
If you do not make changes to the code on your embedded device before Feb 1st 2019, requests from those devices may no longer make it to the ThingSpeak API servers and your data will no longer be collected on ThingSpeak.
Please refer to, or respond to, this forum post if you need more information.
https://github.com/witnessmenow/arduino-ifttt-maker
The IFTTT library requires older libraries to function:
witnessmenow/arduino-ifttt-maker#5
"ArduinoJSON library version 5.13.2"
also for other users, dont forget: " ArduinoJson library written by Benoît Blanchon" ;)
Hello,
I received this kit as a way to learn about electronics and to learn more about various skill sets. I received my board and followed your calibration guide with the help of this video . I set my R100 to 50 Ohms and then when I turn the board on I only see .9 volts. I am using an Auto ranging multimeter but I locked it into V and it shows .9V . I ideally wouldn't like to purchase another one so would you know how to diagnose or test if my board is failing to step up the voltage? Thank you for your time!
Hi, did you tested this device?
For example manual counting of beeps comparing with counts from program?
IMHO device counts one beep as 3 or more.
Why?
Because this:
https://imgur.com/Dda5uIb
Voltage on "INT" output
Voltage on Q3 base:
https://imgur.com/D6RWXhu
I changed R19 to 1kOhm and interrupt to RISING, without this program counts none.
The true output should be on pin3 of NE555 - same pin that driving LED and Q4.
What do you think?
Feature request for GPS logging.
I bought the same boards used in the video on Youtube, I loaded the arduino code into the esp32 board, but the diplay remains stuck on "Measuring". It connects correctly to the ThingSpeak channel, but always linearly increasing measurements. The number grows continuously (view the attached image). I tried to insert some currentMillis and previousMillis println. Both variables are always 0 in the serial monitor.
So I tried adding currentMillis = millis (); at the beginning of the loop (), at this point the display has finally shown "radioactivity" with the usual increasing numbers. Even if the card is disconnected from the geiger counter, the data are the same and always increasing. How can I solve it?
Dear Andreas,
I just saw your YouTube video. Great project. Thank you very much!
There is just one tiny error in your code:
CPM is hardcoded (value: 105) at line 91.
Kind regards,
Michael
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.