25-ESP8266 SDK開発財団初心者 - 制御WIFI接続ルータ

https://www.cnblogs.com/yangfengwu/p/11324411.html

一つのことは言った、と今SDKのバージョン3.0に出てきましたが、私はまだ2.0を使用します

今セレクション3.0を学ぶ場合にのみ!

あなたは、製品やプロジェクトバージョンを選択した場合は2.0以下

我々は、すべてがなぜこのことを理解しておく必要があります。あなたが理解していない場合、あなたはまだ白いです。

 

前のセクションでは、との通信のために、無線のWi-Fi接続を送っている。後の章では、我々はルータにモジュールを接続して、通信しています

コードを使用することができます前に、それは最初に、実際には、すべてのネットワークトラフィックを同時に接続する無線LANモジュールや携帯電話、明確なルータの通信である必要がありますが、IP通信は、もはやあり

192.168.4.1のルータ共有IPを交換する必要は、WIFIモジュールは、ルータモジュールへのルータのIPアドレス・ポイント接続されています

 

このセクションでは、我々は、ルータのプログラムに接続するためのモジュールを書きます

 

あなたは自分のコードを記述する機能を実現(API自身の公式または???百度の組み合わせを参照)を書き込む方法であればそう長くのための学校が、私は知らない、私は信頼性の高い場所!(絶対安定性と信頼性の高い)ことを教えてくれ

あなたは私がLUAについて書いた記事の一部を読めば、私たちは皆、私たちがいることを知っている必要があり、Luaの開発者はWIFIを作ることができ、チーム埋め込まれたLUAがある知っている実際には、我々がされているSDKの開発に基づいて、単純にLUAパッケージ(Luaのソースは、実際にはSDKのさまざまな機能に書き込まれ、LUAバージョン2.0は、あなたが直接コピーを使用することができます使用されています)

Luaは最初に我々はできる、ソースコードが必要

https://www.cnblogs.com/yangfengwu/p/10840517.html

 

 

 

 

 私はこの祭りを入れて、ダウンロードしました

 

 

 そして、内部エンジニアリングにインポート

 

 

命令のluaソース自体をコンパイルするために使用されるコードので、この選択をします

 

 

 

 

 

 

 

 

 今、私たちは、セクションでは、WIFIルータに接続されて制御することを、私はどのように見つけるのことを教えてくれ

私たちは、LUAを開発する際に覚えて、ルータに接続されています

https://nodemcu.readthedocs.io/en/master/modules/wifi/#wifistaconfig

 

 

 

 

 

 

 

 

 

 

 

 

 

 あなたが手順を知ったら、それは特別な要件があるかどうかを確認するために内部のAPIドキュメントで使用される機能を見ることが最善です

 

 

 彼は内部user_initに機能すれば、あなたはwifi_station_connectを呼び出す必要はありませんと言ったが、また、自動再接続

そう

 

 

 

#define APssid "qqqqq"
 の#define APpassword "11223344"
 のstruct station_config stationConf。

 

 

 

stationConf.bssid_set = 0 ; 
    memcpy(stationConf.ssid、APssid、strlenを(APssid))。
    memcpy(stationConf.password、APpassword、strlenを(APpassword))。// 热点密码设置
    wifi_station_disconnect(); 
    wifi_station_set_config(&stationConf)。

 

行くのダウンロード

 

 しかし、これは印刷に付属しているソースコードは、私たちは自分自身を印刷したいんです

WIFIの接続状態を監視することが必要

ルックLuaのソース

 

 

 

 

 

 

 

 

 まず、この関数をコピーします

静的 ボイド wifi_event_monitor_handle_event_cb(System_Event_t * EVT)
{ 

}

 

 

 

wifi_set_event_handler_cb(wifi_event_monitor_handle_event_cb);

 

 其实这样看过去就是注册一个回调函数

回调信息肯定靠这个读取

 

 

 

 那就是说

static void wifi_event_monitor_handle_event_cb(System_Event_t *evt)
{
    switch (evt->event_id)
    {
    case EVENT_STAMODE_CONNECTED://连接上路由器
      break;

    case EVENT_STAMODE_DISCONNECTED://和路由器断开

      break;

    case EVENT_STAMODE_AUTHMODE_CHANGE://这个是 啥..

      break;

    case EVENT_STAMODE_GOT_IP://连接上路由器,并获取了IP

      break;

    case EVENT_STAMODE_DHCP_TIMEOUT://连接上路由器,但是路由器给WIFI模块分配IP等信息超时了

      break;

    case EVENT_SOFTAPMODE_STACONNECTED://AP模式下,有设备连接WIFI模块的无线

      break;

    case EVENT_SOFTAPMODE_STADISCONNECTED://AP模式下,有设备断开和WIFI模块的无线连接

      break;

    case EVENT_SOFTAPMODE_PROBEREQRECVED://这是啥??

      break;

    default://其它错误

      break;
    }
}

 

 

 打印点东西,这样吧,一次性说完吧!

其实现在直接可以看lua版本的那个程序,肯定有现成的可以借鉴

 

 

 

 

 

 需要稍微改改,只留下自己用的

 

 

 我就直接大刀阔斧的复制粘贴

static void wifi_event_monitor_handle_event_cb(System_Event_t *evt)
{
  switch (evt->event_id)
  {
    case EVENT_STAMODE_CONNECTED://连接上路由器
        printf("\n\tSTAMODE_CONNECTED\n");

        printf("\tConnected to SSID %s, Channel %d\n",
          evt->event_info.connected.ssid,
          evt->event_info.connected.channel);
      break;

    case EVENT_STAMODE_DISCONNECTED://和路由器断开
        printf("\n\tSTAMODE_DISCONNECTED\n");

        printf("\tDisconnect from SSID %s, reason %d\n",
          evt->event_info.disconnected.ssid,
          evt->event_info.disconnected.reason);
      break;

    case EVENT_STAMODE_AUTHMODE_CHANGE://这个是 啥..
        printf("\n\tSTAMODE_AUTHMODE_CHANGE\n");

        printf("\tAuthmode: %u -> %u\n",
          evt->event_info.auth_change.old_mode,
          evt->event_info.auth_change.new_mode);
      break;

    case EVENT_STAMODE_GOT_IP://连接上路由器,并获取了IP
        printf("\n\tGOT_IP\n");

        printf("\tIP:" IPSTR ",Mask:" IPSTR ",GW:" IPSTR "\n",
          IP2STR(&evt->event_info.got_ip.ip),
          IP2STR(&evt->event_info.got_ip.mask),
          IP2STR(&evt->event_info.got_ip.gw));
      break;

    case EVENT_STAMODE_DHCP_TIMEOUT://连接上路由器,但是路由器给WIFI模块分配IP等信息超时了
        printf("\n\tSTAMODE_DHCP_TIMEOUT\n");
      break;

    case EVENT_SOFTAPMODE_STACONNECTED://AP模式下,有设备连接WIFI模块的无线
        printf("\n\tSOFTAPMODE_STACONNECTED\n");

        printf("\tStation: " MACSTR "join, AID = %d\n",
          MAC2STR(evt->event_info.sta_connected.mac),
          evt->event_info.sta_connected.aid);
      break;

    case EVENT_SOFTAPMODE_STADISCONNECTED://AP模式下,有设备断开和WIFI模块的无线连接
        printf("\n\tSOFTAPMODE_STADISCONNECTED\n");

        printf("\tstation: " MACSTR "leave, AID = %d\n",
          MAC2STR(evt->event_info.sta_disconnected.mac),
          evt->event_info.sta_disconnected.aid);
      break;

    case EVENT_SOFTAPMODE_PROBEREQRECVED://这是啥??,,,信号强度改变了
        printf("\n\tSOFTAPMODE_PROBEREQRECVED\n");

        printf("Station PROBEREQ: " MACSTR " RSSI = %d\n",
          MAC2STR(evt->event_info.ap_probereqrecved.mac),
          evt->event_info.ap_probereqrecved.rssi);
      break;

    default://其它错误
        printf("\n\tswitch/case default\n");
      break;
  }
}

 

 

下载进去

 

 好了,自己消化吧,如果想通过路由器实现以前的功能,只需要把IP地址修改为 上面打印的就可以 我的是192.168.0.100  (根据自己的修改哈)

 

下节咱用SmartConfig/Airkiss 来配网

 

大家一开始可能感觉看lua的不如直接看官方给的API文档,怎么说呢!站在不同的层次上,眼光和思想不一样....

 

おすすめ

転載: www.cnblogs.com/yangfengwu/p/11427504.html