مرحبًا ، اسمي مكسيم وأنا موظف في قسم تكنولوجيا المعلومات بشركة تجارية واحدة. ذات مرة ، قررت أنا وزملائي أننا نفتقد قسم إشارات المرور. لم نفهم بعد سبب حاجتنا إليها ، لكن "العوز" الذي لا يقاوم ساد علينا ...

والآن ، بعد دقيقتين ، نبحث عنه بالفعل على الإنترنت. كانت المتطلبات: مصباح حقيقي ، رخيص ، دافئ ، يمكنك استخدامه. وجدت بسرعة ، أمر ، مدفوع ، انتظر. تم استلامها ، تفكيكها ، تفكيكها ، غسلها. ضع المصابيح. تم تشغيلها دفعة واحدة. أصبح المكتب أكثر دفئا.
تساءلنا عن مكان تكييفها وكيفية إدارتها.
تم العثور على Ke-USB24R في المنضدة - بشكل أساسي وحدة USB بأربع مرحلات يمكن التحكم فيها من جهاز كمبيوتر عن طريق كتابة البيانات إلى منفذ COM افتراضي ، بالإضافة إلى 18 سطرًا IO وأربعة ADC ذات 10 بت. التفاصيل والتعليمات على موقع الشركة المصنعة http://www.kernelchip.ru/Ke-USB24R.php
لقد قمت بتوصيل إشارة مرور من خلاله. اتضح وميض الأضواء بشكل منفصل ، باستخدام برنامج من موقع الشركة المصنعة.
, zabbix, . :
PowerShell. :
- — , —
- .
xml .
. , . .
traffic_lights.ps1
$trigger_id = $args[0]
$trigger_status = $args[1]
$trigger_nsev = $args[2]
$red = 1
$yellow = 2
$green = 3
$triggers=@{}
$triggers = Import-Clixml -Path C:\Users\User\Desktop\DB_traffic_lights.xml
if ($trigger_status -eq 1)
{
if (!$triggers.ContainsKey($trigger_id))
{
$triggers.Add($trigger_id,$trigger_nsev)
}
}
else
{
if ($triggers.ContainsKey($trigger_id))
{
$triggers.Remove($trigger_id)
}
}
$triggers | Export-Clixml -Path C:\Users\User\Desktop\DB_traffic_lights.xml
$red_turn_on = $false
$yellow_turn_on = $false
foreach ($trigger in $triggers)
{
switch ($trigger.Values)
{
0 { }
1 { }
2 { $yellow_turn_on = $true }
3 { $yellow_turn_on = $true }
4 { $red_turn_on = $true }
5 { $red_turn_on = $true }
}
}
$port = New-Object System.IO.Ports.SerialPort
$port.PortName = 'COM4'
$port.BaudRate = '9600'
$port.Parity = "None"
$port.Handshake = "None"
$port.DataBits = 8
$port.StopBits = 1
$port.ReadTimeout = 500
$port.WriteTimeout = 500
$port.DtrEnable = $true
$port.RtsEnable = $true
$port.Open()
if ($port.IsOpen -eq $true)
{
if($trigger_status -eq "0")
{
$command = '$KE,REL,' + $red + ',0'+"`r"
$port.WriteLine($command)
$command = '$KE,REL,' + $yellow + ',0'+"`r"
$port.WriteLine($command)
$command = '$KE,REL,' + $green + ',1'+"`r"
$port.WriteLine($command)
Start-Sleep -Milliseconds 300
$command = '$KE,REL,' + $green + ',0'+"`r"
$port.WriteLine($command)
Start-Sleep -Milliseconds 300
$command = '$KE,REL,' + $green + ',1'+"`r"
$port.WriteLine($command)
Start-Sleep -Milliseconds 300
$command = '$KE,REL,' + $green + ',0'+"`r"
$port.WriteLine($command)
Start-Sleep -Milliseconds 300
}
if ($red_turn_on)
{
$command = '$KE,REL,' + $red + ',1'+"`r"
$port.WriteLine($command)
}
if ($yellow_turn_on)
{
$command = '$KE,REL,' + $yellow + ',1'+"`r"
$port.WriteLine($command)
}
}
$port.Close()
zabbix- ( -> ), : = , = OK.
" ". — zabbix-:
powershell.exe -File C:\Users\User\Desktop\traffic_lights.ps1 {TRIGGER.ID} {TRIGGER.VALUE} {TRIGGER.NSEVERITY}
- , , . .
وكانت النتيجة عنصرًا داخليًا ممتعًا ووظيفيًا جذب الانتباه كثيرًا. علينا أن نجيب على الكثير من الأسئلة مثل من أين حصلنا عليها ولماذا نحتاجها ، وكم تكلفتها وما إلى ذلك. أخطط في المستقبل لجعل الجهاز مستقلاً ، للابتعاد عن استخدام جهاز كمبيوتر ووحدة تحكم USB. استبدلها ببعض وحدة Ethernet-Relay وانقل المنطق إلى خادم zabbix. قم بتعديل الشاشة وعلقها عموديا.
شكرا لكم على اهتمامكم!