Linux BASH script for sending to radmon.org
9 years 9 months ago #63
by OM1AMJ
Linux BASH script for sending to radmon.org was created by OM1AMJ
Because I had some trouble connecting GKnet to geiger counter (probably long cable), so I chose another solution.
I use a router Asus WL-500GP with OpenWrt as APRS iGate, but there is small internal memory and I could not install Python.
Therefore I have created a simple BASH script.
Arduino geiger is connected to the router via a USB-TTL converter CP210X.
Note:
DTR pin must be disconnected (otherwise it may be reset geiger)!!!
In geiger sketch must be set RADLOGGER = true (CPM output only) and LOGGING_PERIOD = 60 (or other value, minimum 30s).
In the BASH script is not setting for interval.
When geiger counter sends a value, the value is immediately sent to radmon.org.
BASH script (/root/radmon_send):
And here is the init script (/etc/init.d/radmon_send):
Finally run command /etc/init.d/radmon_send enable (to start automatically after restart), and reboot.
I use a router Asus WL-500GP with OpenWrt as APRS iGate, but there is small internal memory and I could not install Python.
Therefore I have created a simple BASH script.
Arduino geiger is connected to the router via a USB-TTL converter CP210X.
Note:
DTR pin must be disconnected (otherwise it may be reset geiger)!!!
In geiger sketch must be set RADLOGGER = true (CPM output only) and LOGGING_PERIOD = 60 (or other value, minimum 30s).
In the BASH script is not setting for interval.
When geiger counter sends a value, the value is immediately sent to radmon.org.
BASH script (/root/radmon_send):
#!/bin/bash
stty -F /dev/ttyUSB0 9600
while read -r line < /dev/ttyUSB0
do
if (( $line > 0 )); then
echo CPM = $line
user="XXXXX"
password="YYYYY"
exec=`wget -O /dev/null "http://radmon.org/radmon.php?function=submit&user=$user&password=$password&value=$line&unit=CPM"`
else
echo CPM = 0
fi
done
And here is the init script (/etc/init.d/radmon_send):
#!/bin/sh /etc/rc.common
START=99
RADMON_SEND_BIN="/root/radmon_send"
start() {
$RADMON_SEND_BIN > /dev/null
}
stop() {
killall radmon_send
}
Finally run command /etc/init.d/radmon_send enable (to start automatically after restart), and reboot.
Please Log in or Create an account to join the conversation.
9 years 9 months ago #64
by OM1AMJ
Replied by OM1AMJ on topic Linux BASH script for sending to radmon.org
I combined the code for the alarm email and BASH code for sending to radmon.org.
Email is sent immediately if the value is exceeded.![;) ;)](/media/kunena/emoticons/wink.png)
BASH script on the router with openwrt (/root/radmon_send):
PHP script on webhosting ( http://xxxxx.xxx/geiger_email.php ):
Email is sent immediately if the value is exceeded.
![;) ;)](/media/kunena/emoticons/wink.png)
BASH script on the router with openwrt (/root/radmon_send):
#!/bin/bash
stty -F /dev/ttyUSB0 9600
while read -r line < /dev/ttyUSB0
do
alarm=60
if (( $alarm > $line )); then
echo CPM = $line
user="XXXXX"
password="YYYYY"
exec=`wget -O /dev/null "http://radmon.org/radmon.php?function=submit&user=$user&password=$password&value=$line&unit=CPM"`
else
echo ALARM!!! CPM = $line
user="XXXXX"
password="YYYYY"
exec=`wget -O /dev/null "http://radmon.org/radmon.php?function=submit&user=$user&password=$password&value=$line&unit=CPM"`
exec=`wget --user=AAAAAA --password=BBBBBB -O /dev/null "http://xxxxx.xxx/geiger_email.php?cpm=$line"`
fi
done
PHP script on webhosting ( http://xxxxx.xxx/geiger_email.php ):
<?php
$cpm = $_GET["cpm"];
//$usvh = round($cpm/122, 4); //convert CPM to uSv/h (122 is for SI-29BG tube), change to your GM tube
$usvh = round($cpm/175.43, 4); //convert CPM to uSv/h (175.43 is for SBM-20 tube), change to your GM tube
require_once "Mail.php";
$from = "XXXXX - Radiation alarm <xxxxx@xxxxx.xxx>"; //email sender
$to = "yyyyy <yyyyy@yyyyy.yyy>"; //email recipient
$subject = gmdate("H:i:s e", time())." - $usvh uSvh ($cpm CPM)"; //email subject
$body = gmdate("H:i:s e", time())." - $usvh uSvh ($cpm CPM)"; //email content
$host = "ssl://smtp.xxxxx.xxx"; //mail server host
$port = "465"; //mail server port
$username = "xxxxx"; //username
$password = "yyyyy"; //password
$headers = array ('From' => $from,
'Date' => date('r', time()),
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");}
else {
echo "Background radiation is high!!! Alarm email successfully sent.";
echo "<br />\n";
echo "<br />\n";
echo gmdate("Y-m-d H:i:s e", time());
echo " <br />\n";
echo "$cpm CPM";
echo " <br />\n";
echo "$usvh uSv/h";
}
?>
Please Log in or Create an account to join the conversation.
9 years 9 months ago #70
by mw0uzo
Replied by mw0uzo on topic Linux BASH script for sending to radmon.org
Added a link to this thread on the main Download page
![:) :)](/media/kunena/emoticons/smile.png)
The following user(s) said Thank You: OM1AMJ
Please Log in or Create an account to join the conversation.
9 years 8 months ago - 9 years 8 months ago #120
by OM1AMJ
Replied by OM1AMJ on topic Linux BASH script for sending to radmon.org
Because Radlog does not work on Linux, so I wrote another simple BASH script for basic settings.
I want to thank Daniel (mw0uzo) for a list of commands.![;) ;)](/media/kunena/emoticons/wink.png)
First, you need to edit script radmon_config.
In variables is necessary to uncomment the line conversionfactor for your GM tube.
In the options set experiment_mode to "yes" if you want turn off warnings and alerts.
In the options set set_coordinates to "yes" if you want set coordinates, otherwise sets the center of city (defined in location).
Save config.
Run command ./radmon_config which sends the settings to the server.
BASH script (radmon_config):
I want to thank Daniel (mw0uzo) for a list of commands.
![;) ;)](/media/kunena/emoticons/wink.png)
First, you need to edit script radmon_config.
In variables is necessary to uncomment the line conversionfactor for your GM tube.
In the options set experiment_mode to "yes" if you want turn off warnings and alerts.
In the options set set_coordinates to "yes" if you want set coordinates, otherwise sets the center of city (defined in location).
Save config.
Run command ./radmon_config which sends the settings to the server.
BASH script (radmon_config):
#!/bin/bash
######################################################################## Variables ########################################################################
user="XXXXXX" ## Username
password="YYYYYY" ## Password
description="Geiger counter with SBM-20 tube" ## Device, tube, etc...
location="Bratislava, Slovakia" ## City, country
latitude="48.152133" ## Latitude DD.dddddd
longitude="17.111706" ## Longitude DD.dddddd
conversionfactor="0.0057" ## GM tube conversion factor for SBM-20
# conversionfactor="0.0081" ## GM tube conversion factor for SI-29BG
# conversionfactor="0.0021" ## GM tube conversion factor for SBM-19
# conversionfactor="0.0031" ## GM tube conversion factor for SI-180G
# conversionfactor="0.0117" ## GM tube conversion factor for SBT-9
# conversionfactor="0.0050" ## GM tube conversion factor for SBT-11
# conversionfactor="0.0081" ## GM tube conversion factor for J305 / M4011
# conversionfactor="0.0081" ## GM tube conversion factor for LND-712
# conversionfactor="0.0024" ## GM tube conversion factor for LND-7317
# conversionfactor="0.0000" ## GM tube conversion factor for other
warning="50" ## Warning level in CPM
alert="100" ## Alert level in CPM
######################################################################### Options #########################################################################
set_coordinates="yes" ## Coordinates - "yes" sets coordinates, otherwise sets the center of city (defined in location)
experiment_mode="no" ## Experiment mode - "yes" turn off warnings and alerts
##################################################################### Send settings #####################################################################
exec=`wget -O /dev/null "http://radmon.org/radmon.php?function=updatelocation&user=$user&password=$password&location=$location"`
if [[ "$set_coordinates" = "yes" ]]; then
exec=`wget -O /dev/null "http://radmon.org/radmon.php?function=setlatitudelongitude&user=$user&password=$password&latitude=$latitude&longitude=$longitude"`
fi
exec=`wget -O /dev/null "http://radmon.org/radmon.php?function=updatedescription&user=$user&password=$password&description=$description"`
exec=`wget -O /dev/null "http://radmon.org/radmon.php?function=setconversionfactor&user=$user&password=$password&value=$conversionfactor"`
exec=`wget -O /dev/null "http://radmon.org/radmon.php?function=setwarnalert&user=$user&password=$password&warn=$warning&alert=$alert"`
if [[ "$experiment_mode" = "yes" ]]; then
exec=`wget -O /dev/null "http://radmon.org/radmon.php?function=setalertsdisabled&user=$user&password=$password"`
else
exec=`wget -O /dev/null "http://radmon.org/radmon.php?function=setalertsenabled&user=$user&password=$password"`
fi
Last edit: 9 years 8 months ago by OM1AMJ.
Please Log in or Create an account to join the conversation.
9 years 8 months ago #178
by lp
Replied by lp on topic Linux BASH script for sending to radmon.org
Hi
I was checking the Arduino Yun model () , and I wonder if I could use it to send data from the serial port of my MyGeiger counter to radmon.org. Should not be difficult, what do you think guys ?
I was checking the Arduino Yun model () , and I wonder if I could use it to send data from the serial port of my MyGeiger counter to radmon.org. Should not be difficult, what do you think guys ?
Please Log in or Create an account to join the conversation.
9 years 8 months ago #182
by mw0uzo
Replied by mw0uzo on topic Linux BASH script for sending to radmon.org
Those boards look really interesting! Post your development
![:cheer: :cheer:](/media/kunena/emoticons/cheerful.png)
Please Log in or Create an account to join the conversation.
Moderators: Gamma-Man
Time to create page: 0.225 seconds