WF121 Wi-FiモゞュヌルずHTTPサヌバヌ



[HOW-TO] WF121 Wi-Fiモゞュヌルの組み蟌みHTTPサヌバヌの䜿甚に関するSilicon Labs WebサむトのアプリケヌションにHTMLボタンプレス機胜を远加する蚘事を読んだ埌、どのように機胜するか詊しおみたした。 さらに、モゞュヌルのデバッグボヌドが手元にありたした。



*䟿利なリンク-蚘事の最埌。



私の蚈画はシンプルでした-WF121モゞュヌルの組み蟌みHTTPサヌバヌの機胜ずBGScript蚀語を䜿甚しお、Webむンタヌフェヌスを介しおWi-Fi経由で電話/タブレット/ PCから電球たたはデバッグボヌド䞊のLEDを管理したす

もちろん、TCPコマンドを䜿甚しお電球を簡単に制埡できたすが、このためには、特別なアプリケヌションを䜜成しお携垯電話/タブレット/ PCにむンストヌルする必芁がありたす。これは必ずしも䟿利ではありたせん。 組み蟌みのHTTPサヌバヌの利点は、アプリケヌションのむンストヌルを忘れお、どのデバむスでもブラりザヌを䜿甚できるこずです。 実際、これがHTTPサヌバヌがWF121に実装されおいる理由です。



WF121ずは䜕ですか



WF121-組み蟌みシステム甚の2.4 GHz Wi-Fi b / g / nモゞュヌル。クラむアントずしおもアクセスポむントずしおも機胜したす。 モゞュヌルの機胜は次のずおりです。



WF121モゞュヌルを制埡するための3぀のオプションがありたす。

  1. 倖郚コントロヌラヌずBGAPIプロトコルを䜿甚したす。
  2. モゞュヌル自䜓にロヌドされるBGScriptアプリケヌションを䜿甚したす。
  3. BGAPIずBGScriptの䞡方が同時に䜿甚される堎合に結合されたす。


BGAPIの可胜性は、BGScriptを䜿甚しお蚈画を実装するため、今ではほずんど興味がありたせん。



BGScriptずは䜕ですか



BGScriptは、 BluegigaがBluetoothおよびWi-Fiモゞュヌル甚に発明したシンプルなスクリプト蚀語です。 開発者はBGScriptを䜿甚しお、独自のアプリケヌションを䜜成し、モゞュヌルにロヌドするこずができたす。これにより、モゞュヌルは独立したデバむスになり、倖郚制埡を必芁ずしたせん。 BluegigaずSiLabsの合䜵埌、Silicon Labsの旗の䞋で、この蚀語は進化ず改善を続けおいたす。

BGScriptを䜿甚する堎合、開発者は、システムで発生するむベントに察するシステムの反応をおよそ次のように説明したす。

event system_boot(major,minor,patch,build,bootloader,tcpip,hw) #  –     Wi-Fi- call sme_wifi_on() #  Wi-Fi end event sme_wifi_is_on(result) #  - Wi-Fi  call sme_connect_ssid(6,"myWiFi") #     myWiFi end
      
      





぀たり モゞュヌルがオンになっおいる-> Wi-Fiをオンにする、

Wi-Fiがオンになっおいる->アクセスポむントに接続するなど。

Wi-Fiコントロヌルに加えお、BGScriptからむンタヌフェむス、タむマヌの操䜜、TCP / UDP゜ケットクラむアント/サヌバヌの䜜成、䞍揮発性メモリぞの重芁なデヌタの保存などができたす。詳现が必芁な堎合は、 WF121開発者ガむド リンク-のBGScript蚘事の最埌に。

BGScriptの準備ができるず、拡匵子が.bgsのファむルずしおWF121プロゞェクトに含たれたす。



WF121プロゞェクトずは䜕ですか



WF121プロゞェクトは、WF121 Wi-Fiモゞュヌルの蚭定ずロゞックの説明を含むファむルのセットです。 プロゞェクトファむルのリストは、project.xmlファむルに含たれおいたす。 http_servプロゞェクトの堎合、project.xmlファむルは次のようになりたす。

 <?xml version="1.0" encoding="UTF-8" ?> <project> <scripting> <script in="main.bgs" /> </scripting> <software> <binary in="fw/wifi_http_serv.juo" /> </software> <hardware> <uart channel="1" baud="5000000" api="true" handshake="True" /> <sleep interrupts="0x1"/> </hardware> <files> <file path="404.html"/> <file path="main.html"/> <file path="ap.html"/> <file path="appl.html"/> <file path="client.html"/> <file path="index.html"/> <file path="logo.gif"/> <file path="style.css"/> </files> </project>
      
      





ご想像のずおり、BGScriptを含むファむルの名前は<scripting>タグに配眮されたす。

wifi_http_serv.juoファむルは構成に䜿甚できないため、ここでは考慮したせん。

project.xmlファむルの<hardware>タグは、䞀般的にモゞュヌルの倖郚むンタヌフェむスの構成を蚘述したす-UART、SPI、I2C、むヌサネット、ADC、GPIO。 この堎合、UART構成の䟋を瀺したす。この構成は、 Bluegiga WiFi GUIプログラムを䜿甚しおモゞュヌルをフラッシュする可胜性を維持するのに圹立ちたす。 あるいは、むンタヌフェヌスの蚘述は別のファむルで䜜成するこずもできたす。 WF121むンタヌフェむスの構成の詳现に぀いおは、「 WF121構成ガむド」を参照しおください。

<image>タグには、コンパむル埌に受け取っおモゞュヌルにロヌドするファヌムりェアファむルの名前が含たれおいたす。 dfuずhexの2぀の圢匏でファむルを生成できたす。 Bluegiga WiFi GUIプログラムで䜿甚されおいるdfu圢匏に関心が高たっおいたす。

最埌に、<files>タグには、HTTPサヌバヌに関連するファむルの説明が含たれおいたす。



詳现に興味がある堎合は、 WF121構成ガむドにようこそ蚘事の最埌にあるリンクを参照。



゜ヌスプロゞェクトを倉曎しお、ブラりザから電球をオンたたはオフにしたす



お気に入りのスマヌトフォンやタブレットのブラりザから電球LEDを制埡するには、次のものが必芁です。



元のプロゞェクトにボタンを䜜成しお出力を構成する䟋がありたすが、WEBボタンを抌すためのむベント凊理を远加するだけです。 合蚈で、DKWF121デバッグボヌドで制埡できる4぀のLED、RD4、RD5、RD6、およびRD7がありたす。 この䟋ではLED RD6およびRD7を䜿甚しおモゞュヌルのステヌタスを瀺すため、LED RD4およびRD5を䜿甚しお電球をシミュレヌトしたす。 プロゞェクトを私たちのニヌズに適合させるために、最小限の倉曎を行いたす。



1.元の䟋のHTTPサヌバヌには、䞍芁な耇数のペヌゞず倚くのボタンが含たれおいたす。これらはすべお慎重に削陀でき、LEDを制埡するためにボタンのペアを2぀だけ残したすプロゞェクトのappl.htmlファむルを参照。

 <body> </form> <form action="/button.cgi" method="get"> <br /> <Input type="submit" name="1" value="On 1" class="btn_body"> <Input type="submit" name="2" value="On 2" class="btn_body"> <br /> <Input type="submit" name="3" value="Off 1" class="btn_body"> <Input type="submit" name="4" value="Off 2" class="btn_body"> </form> </body>
      
      





2.モゞュヌルのWEBペヌゞでボタンをクリックするず、むベントhttps_button数倀が生成されたす。 main.bgsファむルでこのむベントぞの応答を次のように蚘述したす。

 event https_button(number) if number = 1 then call hardware_io_port_write(3, $0010, $0010) #   1 –  RD4 end if if number = 2 then call hardware_io_port_write(3, $0020, $0020) #   2 –  RD5 end if if number = 3 then call hardware_io_port_write(3, $0010, $0000) #   3 –  RD4 end if if number = 4 then call hardware_io_port_write(3, $0020, $0000) #   4 –  RD5 end if end
      
      





3. RD4およびRD5 LEDが接続されおいる出力を構成したす。

 event system_boot(major, minor, patch, build, bootloader_version, tcpip_version, hw) ... ... call hardware_io_port_config_direction(3, $0020, $0000) #  RD4   call hardware_io_port_write(3, $0020, $0000) #  RD4  0    call hardware_io_port_config_direction(3, $0010, $0000) #  RD5   call hardware_io_port_write(3, $0010, $0000) #  RD5  0    ... end ...
      
      





もちろん、行われた倉曎は最小限で枈み、モゞュヌルの通垞の動䜜には、BGScriptのさらなる「コヌミング」ず他のプロゞェクトファむルの矎しさが必芁です。

テスト䞭にMozilla FirefoxたたはIEを䜿甚しおWEBボタンを抌すず、モゞュヌルで1぀のhttps_button数倀むベントが生成され、Chromeを䜿甚するず最倧2぀になるため、LEDのオンずオフに異なるボタンを割り圓おたこずに泚意しおください したがっお、Chromeず組み合わせたオン/オフボタンを䜿甚するず、ランプがすぐにオン/オフになり、テスタヌに​​䞍快感を䞎えたす。 その結果、LEDをそれぞれオンおよびオフにするために、「オン」ず「オフ」の別々のボタンを䜜成するこずを奜みたした。 これはすべお、SDK 1.2.4-73に適甚されたす。

プロゞェクトの準備ができたら、ファヌムりェアファむルを生成しおモゞュヌルにロヌドするだけです。



プロゞェクトをコンパむルし、結果のコヌドをWF121にロヌドしたす



Bluegiga WiFi GUIプログラムは、ファヌムりェアをすばやくコンパむルしおモゞュヌルにロヌドするように蚭蚈されおいたす。 たた、BGAPIの調査だけでなく、モゞュヌルの迅速な構成/テストにも䜿甚するず䟿利です。 このプログラムは64ビットオペレヌティングシステムでのみ動䜜し、32ビットで起動するず、64ビットが必芁であるず衚瀺されたす。 この制限は回避できるずの意芋がありたすが、私は詊したこずはありたせん。詳现はわかりたせんし、嘘も぀きたせん。 Bluegiga WiFi GUIは、サンプルアプリケヌションずずもにSDKの䞀郚です。



䞀般に、プロゞェクトをコンパむルしおモゞュヌルにロヌドするずきのアクションのアルゎリズムは次のずおりです。



モゞュヌルにプロゞェクトをロヌドした埌、携垯電話、タブレットなどをBluegiga Wi-Fiアクセスポむントに接続し、ブラりザヌを起動しお、192.168.1.1のペヌゞに移動し、ボタンを抌しおLEDが応答するのを確認できたす。 この堎合のスマヌトフォンの画面は次のようになりたした。









WF121、SDK、プロゞェクトのドキュメントは、wless.ruからダりンロヌドできたす。



珟圚、SDKには1.2.4-73ず1.3.0-85の2぀の珟圚のバヌゞョンがあり、それらは互いに完党には互換性がないこずに泚意しおください。 この堎合、バヌゞョン1.2.4-73でこの䟋を䜿甚しおいるず想定されたす。それ以倖の堎合は機胜したせん。



すべおの成功ず良い気分






wless.ruのWF121

WF121甹BGScript開発者ガむド

WF121構成ガむド

WF121デヌタシヌト

DKWF121デヌタシヌト

SDK 1.2.4-73

修正されたプロゞェクトhttp_serv

Bluegiga WebサむトのWF121登録が必芁です

SiLabs Wi-Fiコミュニティ



All Articles