Benutzer:Rdnzl/netio opto: Unterschied zwischen den Versionen
Rdnzl (Diskussion | Beiträge) |
Rdnzl (Diskussion | Beiträge) |
||
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= Net-IO schaltet ATX per Optokoppler = | = Net-IO schaltet ATX per Optokoppler = | ||
+ | |||
+ | Oder: Resetbox für Arme. | ||
+ | |||
+ | Die Aufgabe ist mehrere Computer in einem entfernten Raum über Netzwerk einzuschalten. Nachdem WakeOnLan kläglicht versagt hat und netzwerkfähige Steckdosenleisten scheinbar Müll oder richtig teuer sind: Hier meine Lösung mit Ethersex, einem Net-IO und ein wenig Kleinkram. Das Ganze funktioniert bestimmt auch ohne Optokoppler, ich wollte es aber galvanisch getrennt haben. | ||
== Schema == | == Schema == | ||
+ | |||
+ | Die Beschaltung, beispielhaft für '''einen''' zu bedienenden Rechner. Ein Koppler ist zum Einschalten, der wird parallel zum PowerKnopf des Rechners angeklemmt, der zweite Koppler kommt an die PowerLed des Rechners und zeigt mittels einer LED den Zustand des Rechners optisch an, aber der eigentliche Zweck ist den Pin per Software abfragen zu können. | ||
[[Bild:Opto_netio.png]] | [[Bild:Opto_netio.png]] | ||
− | == Oben == | + | Kleiner Tipp: drehe LED4 um und schalte LED3 in Reihe zu R1. R3 entfällt. --[[Benutzer:Sven|Sven]] 22:46, 10. Jul. 2010 (UTC) |
+ | |||
+ | Danke. Ich hatte schon drüber nachgedacht wie ich das noch kompakter hinbekomme. Werd ich mal versuchen. Weitere Verbesserung wäre die beiden GND-Leitungen zum Rechner zusammenzufassen. [[Benutzer:Rdnzl|Rdnzl]] 00:45, 11. Jul. 2010 (UTC) | ||
+ | |||
+ | == Hardware == | ||
+ | === Oben === | ||
[[Bild:DSCN7449.JPG]] | [[Bild:DSCN7449.JPG]] | ||
− | == Unten == | + | === Unten === |
[[Bild:DSCN7448.JPG]] | [[Bild:DSCN7448.JPG]] | ||
Zeile 15: | Zeile 26: | ||
== Pinning == | == Pinning == | ||
+ | |||
+ | pinning/named_pin/default - PortA komplett belegt: | ||
<pre> | <pre> | ||
Zeile 29: | Zeile 42: | ||
== Control6 == | == Control6 == | ||
+ | |||
+ | Um ein ATX-Netzteil anzuschalten drückt man kurz auf den Power-Knopf des Rechners und lässt ihn dann wieder los. Dieses Verhalten soll in C6 nachgestellt werden: | ||
<pre> | <pre> | ||
Zeile 84: | Zeile 99: | ||
</pre> | </pre> | ||
+ | |||
+ | Geht vielleicht noch eleganter, aber es funktioniert soweit. | ||
+ | |||
+ | == Screenshot Named Pins == | ||
+ | |||
+ | So schaut das dann im Webinterface aus: | ||
+ | |||
[[Bild:Named_pins.png]] | [[Bild:Named_pins.png]] | ||
[[Category:Control6_Examples]] | [[Category:Control6_Examples]] |
Aktuelle Version vom 11. Juli 2010, 01:53 Uhr
Inhaltsverzeichnis
Net-IO schaltet ATX per Optokoppler
Oder: Resetbox für Arme.
Die Aufgabe ist mehrere Computer in einem entfernten Raum über Netzwerk einzuschalten. Nachdem WakeOnLan kläglicht versagt hat und netzwerkfähige Steckdosenleisten scheinbar Müll oder richtig teuer sind: Hier meine Lösung mit Ethersex, einem Net-IO und ein wenig Kleinkram. Das Ganze funktioniert bestimmt auch ohne Optokoppler, ich wollte es aber galvanisch getrennt haben.
Schema
Die Beschaltung, beispielhaft für einen zu bedienenden Rechner. Ein Koppler ist zum Einschalten, der wird parallel zum PowerKnopf des Rechners angeklemmt, der zweite Koppler kommt an die PowerLed des Rechners und zeigt mittels einer LED den Zustand des Rechners optisch an, aber der eigentliche Zweck ist den Pin per Software abfragen zu können.
Kleiner Tipp: drehe LED4 um und schalte LED3 in Reihe zu R1. R3 entfällt. --Sven 22:46, 10. Jul. 2010 (UTC)
Danke. Ich hatte schon drüber nachgedacht wie ich das noch kompakter hinbekomme. Werd ich mal versuchen. Weitere Verbesserung wäre die beiden GND-Leitungen zum Rechner zusammenzufassen. Rdnzl 00:45, 11. Jul. 2010 (UTC)
Hardware
Oben
Unten
Pinning
pinning/named_pin/default - PortA komplett belegt:
PA0 INPUT LOW LED_1 PA1 OUTPUT HIGH PWR_1 PA2 INPUT LOW LED_2 PA3 OUTPUT HIGH PWR_2 PA4 INPUT LOW LED_3 PA5 OUTPUT HIGH PWR_3 PA6 INPUT LOW LED_4 PA7 OUTPUT HIGH PWR_4
Control6
Um ein ATX-Netzteil anzuschalten drückt man kurz auf den Power-Knopf des Rechners und lässt ihn dann wieder los. Dieses Verhalten soll in C6 nachgestellt werden:
uint8_t clear1 = 0; uint8_t clear2 = 0; uint8_t clear3 = 0; uint8_t clear4 = 0; uint8_t delay = 2; CONTROL_START THREAD(delay_pin1) TIMER_START(t1) TIMER_WAIT(t1, delay) PIN_CLEAR(PWR_1); DEBUG("clear: 1") clear1 = 1; THREAD_END(delay_pin1) THREAD(delay_pin2) TIMER_START(t2) TIMER_WAIT(t2, delay) PIN_CLEAR(PWR_2); DEBUG("clear: 2") clear2 = 1; THREAD_END(delay_pin2) THREAD(delay_pin3) TIMER_START(t3) TIMER_WAIT(t3, delay) PIN_CLEAR(PWR_3); DEBUG("clear: 3") clear3 = 1; THREAD_END(delay_pin3) THREAD(delay_pin4) TIMER_START(t4) TIMER_WAIT(t4, delay) PIN_CLEAR(PWR_4); DEBUG("clear: 4") clear4 = 1; THREAD_END(delay_pin4) ON ( clear1 ) DO DEBUG("stop: 1") THREAD_STOP(delay_pin1) clear1 = 0; END ON ( clear2 ) DO DEBUG("stop: 2") THREAD_STOP(delay_pin2) clear2 = 0; END ON ( clear3 ) DO DEBUG("stop: 3") THREAD_STOP(delay_pin3) clear3 = 0; END ON ( clear4 ) DO DEBUG("stop: 4") THREAD_STOP(delay_pin4) clear4 = 0; END ON PIN_RISING(PWR_1) DO DEBUG("rising: 1") THREAD_RESTART(delay_pin1) END ON PIN_RISING(PWR_2) DO DEBUG("rising: 2") THREAD_RESTART(delay_pin2) END ON PIN_RISING(PWR_3) DO DEBUG("rising: 3") THREAD_RESTART(delay_pin3) END ON PIN_RISING(PWR_4) DO DEBUG("rising: 4") THREAD_RESTART(delay_pin4) END CONTROL_END
Geht vielleicht noch eleganter, aber es funktioniert soweit.
Screenshot Named Pins
So schaut das dann im Webinterface aus: