かつて私は屋外照明制御システムの近代化の課題に直面しました:ファサードの芸術的な照明、広告看板、街路柱、住所プレートの照明など。近代化の必要性は、照明設備の作業が頻繁に必要であったという事実によって引き起こされました人間の参加。コントロールが期待どおりに機能するためには、オン時間とオフ時間を手動で調整する必要がありました。
IT . , . , , . . , , , .
: , , , .
, , . . , - . , . () .
. (). RS485 -, . SCADA OPC-, Ethernet, . .
, . , : , . . , . . .
, , . . , / , . , . : , () 0. . , "-6" , 6°. , , . .
, . , . -, - . , . , Ethernet, , Linux-.
-, . - , Modbus TCP.
Modbus modpoll. Linux :
$ wget https://www.modbusdriver.com/downloads/modpoll.tgz
$ tar xzf modpoll.tgz
$ sudo cp modpoll/linux_x86-64/modpoll /usr/local/bin/
:
#
$ modpoll -m tcp -r 2 -t 0 -a 1 -p 502 192.168.0.227 1 1 1 1 1 1 1 1
#
$ modpoll -m tcp -r 2 -t 0 -a 1 -p 502 192.168.0.227 0 0 0 0 0 0 0 0
- . , . , , "".
, «». , . : , . , 0°50′ 6°, — 6° 12°, — 12° 18°.
. , , . , ( -6° ) ( -6° ). , , , -6° .
.
, , . . , . , , . , , . - .
, , .
Youtube - / How the sun moves across the sky (by daybit).
, . - , - . Linux Perl, . :
$ sudo cpan install Astro::Coord::ECI
get_sun_elevation.pl, .
#!/usr/bin/perl
#
# get_sun_elevation.pl 55.7558 37.6173 127
# 55.7558 -
# 37.6173 -
# 127 -
use Astro::Coord::ECI::Sun;
use Astro::Coord::ECI::Utils qw{:all};
my ($lat, $lon, $elev) = (deg2rad($ARGV[0]), deg2rad($ARGV[1]), $ARGV[2]/1000);
my $time = time ();
my $loc = Astro::Coord::ECI->geodetic ($lat, $lon, $elev);
my $sun = Astro::Coord::ECI::Sun->universal ($time);
my ($azimuth, $elevation, $range) = $loc->azel ($sun);
print rad2deg ($elevation), "\n";
moscow_lights_ctrl.sh . , , - :
#!/bin/sh
[ -z "$1" ] && angle=-6 || angle=$1
sun_angle=`./sun_pos.pl 55.751244 37.618423 124`
if [ $(echo "$sun_angle >= $angle" |bc -l) -eq "0" ]; then
modpoll -m tcp -r 2 -t 0 -a 1 -p 502 192.168.0.227 1 1 1 1 1 1 1 1
exit 0
fi
modpoll -m tcp -r 2 -t 0 -a 1 -p 502 192.168.0.227 0 0 0 0 0 0 0 0
, , -1.5°. , , .
cron moscow_lights_ctrl.sh :
# 1.5 - , -
* * * * * root /path/to/moscow_lights_ctrl.sh -1.5
. , . -, Modbus TCP.
. .
ZABBIX
, . . , . , .. , . , - ZABBIX.
. ZABBIX.
ZABBIX
astro_outdoor_lighting Zabbix :
{$CIVIL_DEGREES} - . ,
{$ELEV} - ,
{$LAT} - ,
{$LON} - .
- elevation. .
, get_sun_elevation.pl.
/usr/lib/zabbix/externalscripts/get_sun_elevation.pl
#!/usr/bin/perl
#
# get_sun_elevation.pl 55.7558 37.6173 127
# 55.7558 -
# 37.6173 -
# 127 -
use Astro::Coord::ECI::Sun;
use Astro::Coord::ECI::Utils qw{:all};
my ($lat, $lon, $elev) = (deg2rad($ARGV[0]), deg2rad($ARGV[1]), $ARGV[2]/1000);
my $time = time ();
my $loc = Astro::Coord::ECI->geodetic ($lat, $lon, $elev);
my $sun = Astro::Coord::ECI::Sun->universal ($time);
my ($azimuth, $elevation, $range) = $loc->azel ($sun);
print rad2deg ($elevation), "\n";
civil_twilight_dawn , . . , .
, , . .
ZABBIX
[]->[] facade light off facade light on.
civil_twilight_dawn "", , .. facade light on. , facade light off. []->[] facade light, .
.
ZABBIX .
. - .
, ( cron) . . , . ., . , - , .
監視システムを使用したバリアントは、さらに興味深い問題を解決できます。制御に加えて、機器の動作を監視し、故障が検出されたときに担当者に通知することができます。一例は、ショッピングセンターのファサードに広告看板を同期的に含めることです。また、標識に不具合が生じた場合は、運用担当者にメッセージが届きます。
もちろん、上記のすべては、あらゆる種類のITインフラストラクチャが存在する場合に関連します。しかし、原則として、それは利用可能です。
それで全部です。ご清聴ありがとうございました!