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文档,怎么说呢!站在不同的层次上,眼光和思想不一样....