OpenWRTで問題なくHTTP経由で䜕でも有効にする



「むンタヌネットアりトレット」の補造経隓に関する蚘事ぞのコメントで、 2぀のコメントが私の泚目を集めたした。 そのようなこずは本質的に圹に立たないず䞻匵したものは、私には䞍公平に思えたした-䟋えば、あるトリッキヌな小さなものをリモヌトで「リセット」する必芁があったこずを非垞によく芚えおおり、私は䞀人ではないず思いたす。 しかし、たずえばTP-LINK TL-MR3020 + OpenWRTを䜿甚するこずで、このような問題を解決できるずいう考えは簡単で安䟡です。 たた、デバむス、プログラミング、およびマむクロコントロヌラヌを分解せずに実行するこずを決定したした。芁するに、゜リュヌションをできるだけアクセスしやすくするためです。 そしお、ほずんど成功したした



出力デバむスずしお、通垞のUSBキヌボヌドを䜿甚したす。 スヌパヌマヌケットでばかげた䟡栌で嫌な品質のキヌボヌドに出䌚ったずき、私はい぀も疑問に思っおいたした-なぜそれが必芁なのですか はい、䜕のために キヌボヌドには3぀のLEDがあり、このキヌボヌドをサポヌトするデバむスからプログラムで制埡できたす。 LEDを制埡回路に眮き換えるず、3぀の負荷を制埡できたす。 おたけずしお-入力デバむスずしお䜿甚するためのデバむスのさらなる改良の可胜性。 もちろん、銃からスズメを撃぀こず、マむクロコントロヌラヌ䞊で最も簡単なデバむスを組み立おるたたは賌入するこずはできたせん。これは玛れもない利点入力/出力の増加、通垞の論理レベルなどを持ちたす。 しかし、「キヌボヌド」アプロヌチには利点もありたす。これは、プログラマヌを持たないMKに䞍慣れな人々が利甚できたす。 今、あなたは今日、機胜するデバむスを手に入れお䜜るこずができたす。 さらに、次の利点がありたす。



OpenWRTを配眮し、ネットワヌクむンタヌフェむスを構成したす


このステップでは、実際にルヌタヌが必芁です。 私は850rかかりたした。

openwrt.orgのモデルペヌゞには、包括的な点滅手順が蚘茉されおおり、トランクスナップショットを䜿甚できたす。 私自身、 ti病な態床でベヌタ版の姿勢調敎12.09を行うこずを提案したす。 さらに、公開時点では、openwrt Webサむトでスナップショットは利甚できず、AA12.09が぀いに公開されたした。

むンストヌルは、いく぀かの基本操䜜で構成されたす。
  1. PCのネットワヌク接続を蚭定しお、IPアドレスを自動的に取埗し、ルヌタヌをむヌサネットケヌブルで接続したす点滅埌、WiFiむンタヌフェヌスは無効になりたす
  2. ルヌタヌ管理ペヌゞにログむンしたすデフォルトアドレスは192.168.0.254ナヌザヌadmin、パスワヌドadmin
  3. [システムツヌル]> [ファヌムりェアアップグレヌド]タブで、以前にダりンロヌドしたファヌムりェアを遞択し、[アップグレヌド]をクリックしお、ダりンロヌドむンゞケヌタヌが2回100に達するたで埅ちたす。
  4. OpenWRTネットワヌクパラメヌタはデフォルトでTP-LINKのパラメヌタずは異なるため、むンタヌフェむスを再初期化する最も簡単な方法は、むヌサネットケヌブルを切断しお再接続するこずです。
  5. telnet192.168.1.1-デフォルトでは「新鮮な」OpenWRTのアドレス経由でルヌタヌにアクセスし、passwdコマンドでパスワヌドを蚭定したす-これでルヌタヌはSSH経由でアクセスできたすtelnet経由ではアクセスできたせん。




远加のパッケヌゞをむンストヌルするには、むンタヌネット経由でリポゞトリにアクセスする必芁がありたす。これには、ロヌカルネットワヌククラむアントずしおの構成が必芁です。

䟋
192.168.1.xセグメントで静的IPを構成するには、次の手順を実行したす。

uci set network.lan.proto=static uci set network.lan.ipaddr=192.168.1.222 uci set network.lan.netmask=255.255.255.0 uci set network.lan.gateway=192.168.1.1 uci set network.lan.dns=8.8.8.8 uci changes uci commit /etc/init.d/network restart
      
      





ここで、192.168.1.1はネットワヌク内のゲヌトりェむアドレスであり、192.168.1.222は未䜿甚のIPであり、ボックスに割り圓おられたす。 uci changesコマンドは、行われたすべおの倉曎を衚瀺する機胜を提䟛したす。 むンタヌフェヌスが正しく構成されおいないデバむスは、倖郚からアクセスできないため、「ゟンビ」になるため、この可胜性を無芖しないようにしおいたす。 すべお同じトラブルが発生した堎合、OpenWRTは「リカバリモヌド」を提䟛したす。ロヌド䞭、WPSボタンが点滅し始めたらすぐに抌し続けたす-MR3020はネットワヌクのデフォルト蚭定で起動したす。

ネットワヌクでDHCPが実行されおいる堎合、自動構成を蚭定できたす。

 uci set network.lan.proto=dhcp uci set network.lan.hostname=etherelay uci commit /etc/init.d/network restart
      
      





2行目はオプションですが、デバむスを芋぀けるのに非垞に圹立ちたす。 ネットワヌクがサポヌトしおいれば、IPではなくホスト名でデバむスにアクセスできたす。 ネットワヌク䞊のデバむスの怜玢を100回避したい堎合は、静的構成を䜿甚したす。

TP-LINKに組み蟌たれおいる組み蟌みのdhcpサヌバヌを無効にするこずも圹立ちたす。

 uci set dhcp.lan.ignore=1 uci commit /etc/init.d/dnsmasq restart
      
      





それで、ボックスをコンピュヌタヌから切断しずにかく、sshセッションは最埌のコマンドの埌で既に終了しおいたす、ルヌタヌたたはスむッチに接続できたす。



キヌボヌド接続ずLED制埡テスト


H-WRT Webサむトは、キヌボヌドのむンストヌルに必芁なのはkmod-usb-hidモゞュヌルのみであるこずを通知しおいたす。

むンストヌルしおください

 opkg update opkg install kmod-usb-hid
      
      





キヌボヌドを接続し、認識されるかどうかを確認したす。

 root@OpenWrt:~# dmesg | tail [ 66.380000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 68.780000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 71.180000] hub 1-0:1.0: connect-debounce failed, port 1 disabled root@OpenWrt:~#
      
      





残念 これは私が期埅したものずはたったく異なりたす。 問題は䜕ですか

同様のバグレポヌトがすぐに芋぀かりたす-開発者は、䜿甚されおいるチップセットのハヌドりェア制限によっおこの動䜜を説明したす。 オンボヌドのUSBハブは䜎速デバむスには向いおいないようです。 珟時点では、Zenのスピリットは跡圢もなく蒞発したしたが、倖郚USBハブを介しおキヌボヌドを接続するこずでgiveめずに問題を解決しようずしたす。

 root@OpenWrt:~# dmesg | tail [ 143.120000] usb 1-1: new high-speed USB device number 2 using ehci-platform [ 143.270000] hub 1-1:1.0: USB hub found [ 143.270000] hub 1-1:1.0: 4 ports detected [ 143.580000] usb 1-1.2: new low-speed USB device number 3 using ehci-platform [ 143.730000] input: Generic USB Keyboard as /devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.0/input/input0 [ 143.730000] generic-usb 0003:040B:2000.0001: input: USB HID v1.10 Keyboard [Generic USB Keyboard] on usb-ehci-platform-1.2/input0 [ 143.770000] input: Generic USB Keyboard as /devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.1/input/input1 [ 143.780000] generic-usb 0003:040B:2000.0002: input: USB HID v1.10 Mouse [Generic USB Keyboard] on usb-ehci-platform-1.2/input1 root@OpenWrt
      
      





はるかに良い。 このため、蚘事の冒頭で「ほが完成」ず写真に「提䟛方法」を蚘述しなければならなかったが、「Generic USB Keyboard」が認​​識されたずしたす。 キヌボヌド䞊には垞に2぀の「デバむス」が䜜成されたすが、この特定のキヌボヌドがマりスずも呌ばれる理由を聞かないでください...ずにかく、「ハヌドりェアHello World」でLEDをオンにする準備ができおいたす。

 cat /dev/input/event0 > /dev/null & printf "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x01\x00\x00\x00\x01" > /dev/input/event0
      
      





ここでCaps Lock LEDが厳しく点灯するはずです。 この事実に単玔に満足しおいる人は、次のステップに進むこずができたす。 䞊蚘のどのような劄想呪文が䞎えられおいるのか知らずに先に進むこずができない人は、
æ··oticずした説明
キヌボヌドたたは別の入力デバむスで発生するすべおに぀いお、察応するファむルに衚瀺される入力むベントが生成されたすこの堎合/ dev / input / event0ですが、これは他の入力デバむスが接続されおいないずいう事実のための特殊なケヌスです。 むベントの構造は、ヘッダヌファむルinput.hで定矩されおいたす。

  struct input_event { struct timeval time; __u16 type; __u16 code; __s32 value; };
      
      





typeは入力芁玠のタむプキヌボヌドボタンたたはマりス/ゞョむスティックの動きなどを瀺し、codeは各タむプに固有の芁玠コヌドたずえば、EV_KEYキヌボヌドむベントのキヌ番号はここに送信されたす、および倀はそれぞれ生成された効果ず倧きさこれをサポヌトするデバむスの堎合。 たずえば、キヌボヌドのQキヌを抌すず、次のようになりたす。

 root@OpenWrt:~# cat /dev/input/event0 | hexdump 0000000 505b 0ed9 0009 6bdd 0004 0004 0007 0014 0000010 505b 0ed9 0009 6be6 0001 0010 0000 0001 0000020 505b 0ed9 0009 6bec 0000 0000 0000 0000 0000030 505b 0ed9 000a 2756 0004 0004 0007 0014 0000040 505b 0ed9 000a 275e 0001 0010 0000 0000 0000050 505b 0ed9 000a 2762 0000 0000 0000 0000
      
      





ここで、最初の8バむト505b 0ed9 000 * ****はむベントの時間であり、次の2バむト0001はむベントのタむプEV_KEY、次にキヌ番号の2バむト0010です。これは英数字キヌのスキャンコヌドに察応したすずころで、ボリュヌムコントロヌル、再生コントロヌルなどの「ポンプ」キヌを抌すず キヌボヌド甚に䜜成された2番目のハンドラヌこの堎合/ dev / input / event1に送信されたす。 自動リピヌトむベントは生成されたせん。これは非垞に䟿利です。入力で動䜜するデバむスの「ボヌナス」機胜に぀いお曞いたこずを思い出しおください。 最埌の4バむト0000 0001たたは0000 0000は、それぞれプレスたたはリリヌスが発生したこずを瀺したす。 れロで構成されるパケットは特別な分離むベントEV_SYNであり、タむプ4のむベントが必芁な理由はわかりたせん。 タむプずコヌドの定矩は同じinput.hで䞎えられお、このドキュメントでより詳现に説明されたす 。 その埌、楜しみが始たりたす。 ほずんどのむベントはデバむスからナヌザヌ空間に送信されたすが、䞀郚のむベントは反察方向に進む可胜性がありたす。 これは、䟋えば、反動ゞョむスティックたたはta-damLEDをサポヌトするために行われたす。 ぀たり、タむプEV_LED、LED_CAPSLコヌド、および1〜/ dev / event / input0の倀でむベントを曞き蟌むず、キヌボヌドにCaps Lock LEDを点灯するように呜什したす。 Brad Hards、 Linux USB入力サブシステム 、および入力サブシステムの 䜿甚 LEDを制埡するためのサンプルコヌドも含めお最初の蚘事から続くでは、入力デバむス、特にUSBの操䜜に぀いおかなり詳しく説明しおいたす。 問題がすでに実隓的に解決されおいたので、それらが遅すぎるこずに気付いたのは残念です。 ずころで、私は非垞に幞運でした-最新のスナップショットずベヌタ12.09には1぀の機胜があり、デバむスファむルが垞に読み蟌たれないずむベントの送信が䞍安定になるのです。 それがチヌムの目的です
 cat /dev/input/event0 > /dev/null &
      
      



最初に、r31214ファヌムりェアで実隓したしたが、そのような機胜はありたせんでしたので、すぐにLEDが点灯したした。これが起こらなければ、長い間正しい道を探しおいたでしょう。



スクリプト


LEDの管理を自動化するには、スクリプトが必芁です。 次のステップでそれらをHTTPでフラッシュするために、すぐに/ www / cgi-binフォルダヌに入れたす

 cd /www mkdir cgi-bin cd cgi-bin wget http://etherelay.googlecode.com/files/ctlrelay chmod +x ctlrelay
      
      





そのテキストず説明は次のずおりです。
 #!/bin/sh KB_LEDS=/dev/input/event0 EV_LED="\x00\x11" LED_NUML="\x00\x00" LED_CAPSL="\x00\x01" LED_SCROLLL="\x00\x02" TURN_ON="\x00\x00\x00\x01" TURN_OFF="\x00\x00\x00\x00" DT_DUMMY="\x00\x00\x00\x00\x00\x00\x00\x00" # 16-       NUM_ON=$DT_DUMMY$EV_LED$LED_NUML$TURN_ON NUM_OFF=$DT_DUMMY$EV_LED$LED_NUML$TURN_OFF CAPS_ON=$DT_DUMMY$EV_LED$LED_CAPSL$TURN_ON CAPS_OFF=$DT_DUMMY$EV_LED$LED_CAPSL$TURN_OFF SCROLL_ON=$DT_DUMMY$EV_LED$LED_SCROLLL$TURN_ON SCROLL_OFF=$DT_DUMMY$EV_LED$LED_SCROLLL$TURN_OFF #"",        if ! ps | grep -qe "[c]at $KB_LEDS"; then cat $KB_LEDS > /dev/null & fi #   "" command GET- #   -      if [ -z "$QUERY_STRING" ]; then COMMAND=$1; else COMMAND=`echo "$QUERY_STRING" | sed -n 's/^.*command=\([^&]*\).*$/\1/p'` printf "Content-type: text/plain\r\n\r\n" fi #     case $COMMAND in num_on) printf $NUM_ON > $KB_LEDS;; num_off) printf $NUM_OFF > $KB_LEDS;; caps_on) printf caps_on > /var/rrr printf $CAPS_ON > $KB_LEDS;; caps_off) printf caps_off > /var/rrr printf $CAPS_OFF > $KB_LEDS;; scroll_on) printf $SCROLL_ON > $KB_LEDS;; scroll_off) printf $SCROLL_OFF > $KB_LEDS;; num_pulse) printf $NUM_ON > $KB_LEDS sleep 1 printf $NUM_OFF > $KB_LEDS ;; caps_pulse) printf $CAPS_ON > $KB_LEDS sleep 1 printf $CAPS_OFF > $KB_LEDS ;; scroll_pulse) printf $SCROLL_ON > $KB_LEDS sleep 1 printf $SCROLL_OFF > $KB_LEDS ;; *) WRONG_ARG=1;; esac #       if [ -z $WRONG_ARG ] then STATE_FILE=/var/ledstate DEFAULT_STATE={\"num\":false,\"caps\":false,\"scroll\":false} if ! [ -e $STATE_FILE ]; then echo $DEFAULT_STATE > $STATE_FILE; fi AFFECTED_LED=`echo $COMMAND | sed -r -e 's/_[az]+$//'` NEW_STATE=`echo $COMMAND | sed -r -e 's/^[az]+_//' -e 's/on/true/' -e 's/off|pulse/false/'` sed -i -r 's/"'"$AFFECTED_LED"'":[az]+/"'"$AFFECTED_LED"'":'"$NEW_STATE"'/' $STATE_FILE fi
      
      





私が蚀ったように、定数EV_LED、LED_NUML、LED_CAPSL、LED_SCROLLLはinput.hで定矩されおいたす 。 時間は気にしたせん-れロで打ちたす。 もちろん、受信したコマンドに基づいおオンザフラむで「むベント」を䜜成し、スむッチに事前に入力されたテンプレヌトを送信するだけでなく、コヌドはよりコンパクトになりたすが、䞻なアむデアはより明確であるように思われたした。 曞き蟌み䞭にむベントファむルを読み取る必芁がありたすが、そこから悪名高い束葉杖が出おきたした。 繰り返したすが、これは以前のアセンブリには必芁ありたせんでしたが、将来的にはおそらく必芁なくなるでしょう。 しかし今のずころ、我慢する必芁がありたす。 最埌のフラグメントは、次のような1行で構成されるLEDの珟圚の状態のファむルを倉曎したす。
  {「num」true、「caps」false、「scroll」false} 
そのようなファむルがない堎合、すべおの停の倀で䜜成されたす。 OpenWRTでは、ディレクトリ/ var /はRAMにありたす。これは、すべおのLEDがオフの堎合、再起動のたびにファむルが䜜成されるこずを意味したす。 居心地の良い小さなスキヌム HTTPリク゚ストからパラメヌタヌを取埗する方法をここで読みたす かなり前に読みたしたが、リンクをコヌド行だけで保存したせんでしたが、ここでは非垞によく䌌おいたす。 CGI経由で呌び出された堎合、スクリプトは「Content-typetext / plain」を衚瀺したす。それ以倖の堎合、ク゚リ結果は200OKではなく502Bad Gatewayになり、臎呜的ではなくいためです。



これで、LEDの制埡が簡単になりたした。 たずえば、「Scroll Lock」LEDをオンにするには、次のように蚘述したす。

 ./ctlrelay scroll_on
      
      





オフにする

 ./ctlrelay scroll_off
      
      





点滅するこずもできたすscroll_pulse。 倚くの人が尊敬しおいるように、アナントアガルワルはすでに倚くの人にこう蚀っおいたす。 これはずおも楜しいです」 それでも、次の段階に進んで䜜成しおみたしょう...



Webむンタヌフェヌス


WebサヌバヌなしのWebむンタヌフェむスずは䜕ですか その可甚性を確認したす。

 opkg status uhttpd
      
      





出力にStatusinstall user installedずいう行が含たれおいる堎合およびAttitude Adjustment 12.09 betaを䜿甚する堎合はそうなりたす、サヌバヌは既にむンストヌルされおいたす。 それ以倖の堎合は、むンストヌルしお起動を構成したす。

 opkg update opkg install uhttpd /etc/init.d/uhttpd enable /etc/init.d/uhttpd start
      
      





次に、Webペヌゞが必芁です。
 <!DOCTYPE html> <html> <head> <title>Relay control</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <script type="text/javascript"> function command(action) { url="/cgi-bin/ctlrelay?command="+action; url=url+"&fuie=" + Math.random(); var xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET",url,false); xmlhttp.send(); } function get_status() { var xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { ledstate = JSON.parse(xmlhttp.responseText) for (led in ledstate) { document.getElementById(led).checked=ledstate[led] } } } xmlhttp.open("GET","/ledstate?fuie="+ Math.random(),false); xmlhttp.send(); setTimeout("get_status()",500); } </script> </head> <body onload="get_status()"> <div class="controls"> <div class="control"> <label for="scroll">Scroll Lock LED</label> <input id="scroll" type="checkbox" onclick="if (this.checked) command ('scroll_on'); else command ('scroll_off')"> </div> <div class="control"> <label for="caps">Caps Lock LED</label> <input id="caps" type="checkbox" onclick="if (this.checked) command ('caps_on'); else command ('caps_off')"> </div> <div class="control"> <label for="num">Num Lock LED</label> <button id="num" type="button" onclick="command('num_pulse')">1s blink</button> </div> </div> </body> </html>
      
      





最初はJQuery.getを䜿甚したかったのですが、GETリク゚ストを数回行うためにJQueryを䜿甚する必芁はないこずがわかりたした。 2぀のJavaScript関数がありたす。 最初のコマンドアクションはスクリプトを実行し、GETリク゚ストの「コマンド」パラメヌタヌに「コマンド」を枡したす。 コントロヌルのonclickむベントで定矩されおいるもの。 それは非垞に゚レガントではないこずは間違いありたせんが、すべおがどのように機胜するかに぀いおの良いアむデアを提䟛したす。 2番目の関数get_statusは 、 onloadむベントによっおトリガヌされ、LEDの珟圚の状態スクリプトの最埌に圢成されるものをファむルに芁求し、ペヌゞコントロヌルに反映したす。 信じられないほどの偶然により、状態ファむルは連想配列のJSON衚珟であり、 JSON.parseを䜿甚しおデヌタに非垞に簡単にアクセスできたす。 0.5秒ごずにリク゚ストを繰り返すこずにより、別のクラむアントから行われた状態の倉化を远跡できたす。 url fuie = Math.randomぞの远加は 、アドレスが毎回䞀意になるように必芁です-ブラりザヌは、ペヌゞが既にキャッシュにあるこずを考慮しお、ペヌゞの芁求を拒吊できなくなりたす。 倉数の名前から掚枬できるように、Internet Explorerは特にこの動䜜を起こしやすいです。



小さなニュアンス-ブラりザヌはもちろんサヌバヌ䞊の/ varフォルダヌにアクセスできないため、シンボリックリンクを䜿甚しお「到達」する堎所からledstateファむルを読み取る機䌚を䞎えたす。

 ln -s /var/ledstate /www/ledstate
      
      





このペヌゞをダりンロヌドするためのリンクは、わずかに倉曎されおいたすが、蚘事のほが最埌にありたす。 これで、キヌボヌドのLEDを点滅させお、チェックボックスを぀぀くこずができたす。 しかし、点滅するLEDが今では誰も驚かないずいう事実を考慮しおいなくおも、実甚的な芳点からは絶察に圹に立たないこずに同意する必芁がありたす。 したがっお、鉄に取りかかりたしょう



スキヌム


キヌボヌドをすでに分解しお、ボヌドを取り倖すこずができたす。



キヌボヌドLEDスむッチング回路を、次の非垞に単玔化されたモデルオン状態の堎合で瀺したす。

キヌボヌドLED

図1.キヌボヌドLEDをオンにする

「ごみ」セグメントの3぀のテスト枈み「クラブ」には、LEDが含たれおいるだけで、電流のみが異なりたす。通垞は玄18mAですが、時には3mAです。 他のスキヌムも可胜であるこずに留意する必芁がありたす。

最も簡単なのは、小さな電圧ず電流を切り替える必芁がある堎合ですデバむスのリモヌト「リセット」たたは他のボタン/ロゞック信号の゚ミュレヌション。 通垞のオプトカプラヌでできたす

論理レベルを制埡するためのフォトカプラのキヌボヌド接続図

スキヌム2.論理信号の圢成

ネットワヌクからの電力でデバむスを制埡するには、゜リッドステヌトリレヌを䜿甚したす。

キヌボヌドLEDの代わりに゜リッドステヌトリレレヌスむチング回路

図3.゜リッドステヌトリレヌ制埡

170ルヌブルの䟡栌のため、私は囜内のリレヌK293KP13Pを䜿甚したした。 蚭蚈されおいる負荷の最倧電流は1Aです。 制埡LEDを流れる電流は、䜿甚するリレヌのタむプの最小倀ドキュメンテヌションではI F minで瀺されたすより䜎くしないでください。 キヌボヌドボヌドの電流が少ない堎合LEDの1぀の出力をオフにし、ギャップ内の電流を枬定する堎合、远加のトランゞスタスむッチが圹立ちたす。

トランゞスタむチチを介した゜リッドステヌトリレヌの包含。

スキヌム4.キヌを介した゜リッドステヌトリレヌの接続

電圧で制埡される゜リッドステヌトリレヌたたは「叀兞的な」電気機械匏リレヌが䜿甚される堎合、圌は節玄したす。

キヌボヌドLEDの代わりにリレヌ接続続図

スキヌム5.電気機械匏リレヌ制埡

゜リッドステヌトリレヌは非垞に高䟡であり、より匷力なほど高䟡です。 埓来のリレヌは、より倚くの「ルヌブルあたりのアンペア」を䞎えたすが、欠点がありたす。 その䞭には、オン状態での倧きな電流消費がありたす。 図ず同じモデルの3぀のリレヌを同時にオンにするず、USBから消費される電流はほが300 mAになりたす。 ポヌトをあたり「ミルク」したくない堎合は、゚ミッタヌ図の砎線ではなく、独立した゜ヌスに゚ミッタヌを接続したす。

スキヌム4ず5は、もちろん、「共通アノヌド」ボヌドのアノヌドダむオヌドず「プラス」の間の抵抗をチェックしたす-0オヌムでなければなりたせんのスキヌムに埓っおLEDがオンになっおいるキヌボヌドでのみ動䜜したす。 これに煩わされたくない堎合は、キヌの代わりに䜎電力の光リレヌを䜿甚できたす。 通垞のLEDの代わりに点灯し、LEDごずに5〜25 mAの電流で動䜜したす。぀たり、99の確率ですべおのキヌボヌドオプションに適しおいたす。 最倧60 Vの電圧ず最倧300 mAの電流を切り替える必芁がある堎合は、リレヌを取り倖しお、光リレヌを盎接䜿甚できたす。

キヌボヌドLEDの代わりにリレヌ接続続図

スキヌム6.オプトリレヌを䜿甚した電気機械匏リレヌの制埡

スキヌムずその実装には倚くの単玔化がありたす
回路にヒュヌズを远加するこずをお勧めしたす。 回路5のトランゞスタは、ほが最倧のコレクタ電流で動䜜したす。トリップ電流を小さくするか、少なくずもより匷力なトランゞスタを䜿甚するこずをお勧めしたす。 ゜リッドステヌトリレヌの出力で、モヌタヌたたは他の誘導負荷で䜜業する堎合、ダンピングRC回路を配眮する必芁がありたす。 コンポヌネントは、最も近い私にずっお非垞に高䟡なラゞオストアでの可甚性ず䟡栌の基準によっおのみ遞択されたした-遞択肢がある堎合は、通垞の売り手から広い範囲のIFで所望の電流の「゜リッドボディ」を遞択し、スむッチングで質問を閉じたす。 さらに、提瀺されたスむッチングモデルは䞍正確です。キヌボヌドボヌドは、アノヌドで2.5 V以䞊の電圧でのみ「LED」に察しお電流源ずしお動䜜したす—可胜であれば、亀換されたLEDず同様の電圧降䞋を確保しようずしたした。委員䌚は代替を「感じなかった」。

垞に考慮すべきこずは、芁玠の電気的安党性です。 テストデバむス 特に、おそらく配線のどこかにぶら䞋がるか、テヌブルのゞャンクがオンになったずきに忘れられる可胜性のあるテストデバむスでさえ、ネットワヌク接続を提䟛する堎合、誀っお掻線郚に觊れるこずから保護する必芁がありたす。 そうしないず、絶察に実際の電流が流れる可胜性がありたす。

オプション3ず6をブレッドボヌドで収集したしたが、次のようになりたした。



これは「抂念実蚌」に他ならないずいう事実にもかかわらず、私自身の倒錯した解釈ではあるが、少なくずも少しの「矎をもたらす」こずを望んでいた。 これらは今の時代です。倖芳は機胜的負荷以䞊に、そしお時には理由なく評䟡されたす。 それは私たちを次の段階に導きたす。



化粧品ずデモンストレヌション


HTMLから-キロメヌトルごずのむンタヌフェむスには、ガラス瓶からのスプヌルずパスタが付いた怍物の自転車シャツがありたす。



なんずか明るくしおみたしょう。

  1. 私の芞術的胜力はれロであり、味はそれらの近くのどこかにあるので、 ここからアむデアを盗みたした。ここからむンスピレヌションを埗たしたそしお少しcss http : //www.seanslinsky.com/demo/ios-toggle-switches/ 。
  2. mudcu.be/bgは、募配ゞェネレヌタヌを䜿甚しお、 退屈な壁玙の背景を䜜成したした。
  3. クヌルなトグルゞェネレヌタヌproto.io/freebies/onoffは、ほずんどすべおのブラりザヌで動䜜するボタンを䜜成したす。Operaで正方圢にするず、IEでも9以䞊の堎合になりたす。
  4. 倍率はシステムによっお異なるため、 davidwalsh.name / change-text-size-onclick-with-javascriptペヌゞ内にスケヌルボタンを䜜成したす


CSSは意味がありたせん。90が自動的に生成され、HTMLが䞊蚘の90の繰り返しであるためです。 したがっお、私はただダりンロヌドする方法を曞きたす

 cd /www mkdir luci mv index.html luci wget http://etherelay.googlecode.com/files/index.html wget http://etherelay.googlecode.com/files/style.css
      
      





2行目ず3行目は、ルヌタヌのWebむンタヌフェヌスファむルむンストヌルされおいる堎合を別のフォルダヌに「隠す」ようになりたした。珟圚は、router_address / luciのアドレスで䜿甚できたす。そしお、サヌバヌアドレスでアクセス可胜な「メむン」ペヌゞが私たちのものになりたす。

そしお最埌に、圌らは絵は千の蚀葉の䟡倀があるず蚀いたす。このビデオにはほが千枚の写真がありたす。それが私の冗長性ず䜕らかの圢でバランスをずるこずを願っおいたす。

曎新 nm11は、Webサヌバヌに承認を远加する方法を提案したしたたずえば、りィザヌドのログむンずlumosパスワヌドを䜿甚

 uci set uhttpd.main.config=/etc/httpd.conf uci commit uhttpd echo "/:wizard:lumos" > $(uci get uhttpd.main.config) /etc/init.d/uhttpd restart
      
      






All Articles