<WIFI>在soft-AP模式下实现配置UDP实验——手机点灯
2017-04-14 11:54
1106 查看
在看本文档之前,请先参考《wifi模式的获取和设置成AP模式》
前面我们分析了wifi的三种模式以及如何配置成soft-AP模式,在这个基础上,进一步配置UPD通讯,使得wifi板子能和手机进行通讯,下面做一个小实验来说明这个过程。嘿嘿,会了这个实验,就可以在其他专业的小伙伴面前装逼了——看,我能利用手机控制我的台灯。实际上感觉还是挺low的吧。话不多说,直接上图:
在用户手册里面,我们可以看到,esp8266实现TCP/UDP的通信主要是通过espconn这个结构实现的。首先是选择类型,我们选择UDP方式,而在这个结构体下包含了一个联合体proto,并且在最后要注册发送和接收的回调函数。那么我们选择了UPD方式之后,对这个方式要进行什么样的设定呢?接着看:
我们可以看到,在UPD参数的这个结构体中,我们只要配置好了这些参数即可。那么代码如何实现呢?
struct espconn PhoneConn;
esp_udp PhoneConnUdp;
如上,首先我们先利用两个结构体分别定义两个变量,那么接下来就是赋值的问题了。
由于我们仅仅是手机和8266的开发板接做的这么个实验,那么我们的赋值就简单点吧。依照结构体的成员一次填入对应的值,其中local_ip和remote_ip都是255表示传输是以广播的发送的,这也仅仅是作为实验。要是应用在其他场合,请认真了解UDP传输协议。最后我们注册一个UDP的接收回调函数。并且用espconn_create函数,以我们设置的参数生成UDP传输。
那么现在问题来了,板子什么时候能接收来自手机段的数据?这就得利用我们在设置参数时所注册的接收回调函数了,我们先看一下它的结构是什么样的:
在数据手册中我们看到,这个回调函数有两个参数,第一个是对应网络传输的结构体,也就是我们刚才设置参数的结构体。第二个是成功接收网络数据的回调函数,这也就是说我们要自己写一个接收处理函数,那就写呗,关键是怎么写?凭空捏造一个?问我怎么办?我能怎么办,我也很绝望啊。。这时候,就得去看我们万能的用户手册了,讲真,一定要习惯查看数据手册,更关键的是要习惯看英文版的数据手册。不说了,今天的单词还没背完,心疼两分钟。话说能坚持背单词和平时看一下英文版的新闻倒是挺不错的。
哈哈哈......扯远了,还是来继续分析我们的问题吧。我们要想写一个函数,那你总得知道这个函数的结构吧,至少要知道它应该有那些参数吧。设置参数的时候不是要注册回调函数吗?那么我直接跟踪一下它是怎么定义的:
sint8 espconn_regist_recvcb(struct espconn *espconn, espconn_recv_callback recv_cb);
看吧,也就是我要写的接收处理函数它是espconn_recv_callback 这种类型的,可我还是不知道这是什么类型的啊,于是乎,万能的手册来了:
duang!这就是,我要的接收函数...摩擦摩擦..(咋还唱起来了呢,囧)。上面已经解释得很清楚了,我就不废话了,直接写函数吧:
由于只是做个点灯的实验,咱们就不折腾了,怎么简单怎么来吧。
可是还有一个最为严重的问题,手机如何给板子发送消息?先上图,下面是我用易安卓设计的测试APP。
放心,APP的制作也很简单,它的代码全都是中文的,至于APP的源码和教程,我有空的时候再上传,明天开始忙着复习,要考试啦~~实验效果到时候一起上传。
前面我们分析了wifi的三种模式以及如何配置成soft-AP模式,在这个基础上,进一步配置UPD通讯,使得wifi板子能和手机进行通讯,下面做一个小实验来说明这个过程。嘿嘿,会了这个实验,就可以在其他专业的小伙伴面前装逼了——看,我能利用手机控制我的台灯。实际上感觉还是挺low的吧。话不多说,直接上图:
在用户手册里面,我们可以看到,esp8266实现TCP/UDP的通信主要是通过espconn这个结构实现的。首先是选择类型,我们选择UDP方式,而在这个结构体下包含了一个联合体proto,并且在最后要注册发送和接收的回调函数。那么我们选择了UPD方式之后,对这个方式要进行什么样的设定呢?接着看:
我们可以看到,在UPD参数的这个结构体中,我们只要配置好了这些参数即可。那么代码如何实现呢?
struct espconn PhoneConn;
esp_udp PhoneConnUdp;
如上,首先我们先利用两个结构体分别定义两个变量,那么接下来就是赋值的问题了。
由于我们仅仅是手机和8266的开发板接做的这么个实验,那么我们的赋值就简单点吧。依照结构体的成员一次填入对应的值,其中local_ip和remote_ip都是255表示传输是以广播的发送的,这也仅仅是作为实验。要是应用在其他场合,请认真了解UDP传输协议。最后我们注册一个UDP的接收回调函数。并且用espconn_create函数,以我们设置的参数生成UDP传输。
那么现在问题来了,板子什么时候能接收来自手机段的数据?这就得利用我们在设置参数时所注册的接收回调函数了,我们先看一下它的结构是什么样的:
在数据手册中我们看到,这个回调函数有两个参数,第一个是对应网络传输的结构体,也就是我们刚才设置参数的结构体。第二个是成功接收网络数据的回调函数,这也就是说我们要自己写一个接收处理函数,那就写呗,关键是怎么写?凭空捏造一个?问我怎么办?我能怎么办,我也很绝望啊。。这时候,就得去看我们万能的用户手册了,讲真,一定要习惯查看数据手册,更关键的是要习惯看英文版的数据手册。不说了,今天的单词还没背完,心疼两分钟。话说能坚持背单词和平时看一下英文版的新闻倒是挺不错的。
哈哈哈......扯远了,还是来继续分析我们的问题吧。我们要想写一个函数,那你总得知道这个函数的结构吧,至少要知道它应该有那些参数吧。设置参数的时候不是要注册回调函数吗?那么我直接跟踪一下它是怎么定义的:
sint8 espconn_regist_recvcb(struct espconn *espconn, espconn_recv_callback recv_cb);
看吧,也就是我要写的接收处理函数它是espconn_recv_callback 这种类型的,可我还是不知道这是什么类型的啊,于是乎,万能的手册来了:
duang!这就是,我要的接收函数...摩擦摩擦..(咋还唱起来了呢,囧)。上面已经解释得很清楚了,我就不废话了,直接写函数吧:
由于只是做个点灯的实验,咱们就不折腾了,怎么简单怎么来吧。
可是还有一个最为严重的问题,手机如何给板子发送消息?先上图,下面是我用易安卓设计的测试APP。
放心,APP的制作也很简单,它的代码全都是中文的,至于APP的源码和教程,我有空的时候再上传,明天开始忙着复习,要考试啦~~实验效果到时候一起上传。
相关文章推荐
- <WIFI>wifi工作模式的获取和设置为AP模式(基于SDK)
- ubuntu共享wifi(AP)给安卓(Android)手机,如何查看ubuntu无线网卡是否支持AP(master )模式
- Win7无线配置工具VC++(Soft-Ap,Wifi,无线承载网络,ICS,Wifi)
- Win7无线配置工具VC++(Soft-Ap,Wifi,无线承载网络,ICS,Wifi)
- 第九周实验报告 任务2 定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- openwrt配置wifi桥接上级AP,再作为ap路由(可实现ip透传,例如远距离图像传输)
- <VS2010>混合模式程序集是针对“v2.0”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集
- 高功耗的USR-WIFI232-2b的sta+ap配置可以使手机连上互联网
- 第九周实验报告任务 1 定义Time类中的<<和>>运算符重载,实现时间的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- arm9+linux fl2440 实现RT3070无线网卡AP模式并使开发板接入Wifi上网
- <剑指offer>深度探索(一)实现string 类以及单例模式的具体实现
- 怎样用笔记本的无线网卡做一个AP 实现笔记本做wifi热点供手机、平板电脑wifi上网而不用无线路由器
- 配置wifi为AP模式 -- 接入点hostapd基本配置
- Android手机WIFI模式下实现无线adb调试的方法
- <<在手机显示>>文件管理之WiFi
- <网络编程培训之三> 实现TCP/UDP的简单Echo服务器
- <总结> 设计模式之 开放封闭原则OCP C++示例
- <xhtmlConformance mode="Legacy"/> 配置文件
- <@乌龟:>手动实现C语言运行库(1) 堆内存分配,malloc and free
- H3C网络基础架构配置实例<三层交换机接透明模式UTM接路由器>